29 if (
nullptr == GetString) {
33 const char* verStr =
reinterpret_cast<const char*
>(GetString(
GR_GL_VERSION));
46 if (!extensions.init(
kGLES_GrGLStandard, GetString, GetStringi, GetIntegerv, queryString,
160 }
else if (extensions.has(
"GL_OES_vertex_array_object")) {
168 }
else if (extensions.has(
"GL_OES_tessellation_shader")) {
172 if (glVer >=
GR_GL_VER(3,0) && extensions.has(
"GL_EXT_blend_func_extended")) {
176 if (glVer >=
GR_GL_VER(3,0) && extensions.has(
"GL_EXT_blend_func_extended")) {
180 if (extensions.has(
"GL_KHR_blend_equation_advanced")) {
182 }
else if (extensions.has(
"GL_NV_blend_equation_advanced")) {
186 if (extensions.has(
"GL_EXT_clear_texture")) {
194 }
else if (extensions.has(
"GL_EXT_draw_instanced")) {
197 }
else if (extensions.has(
"GL_ANGLE_instanced_arrays")) {
202 if (extensions.has(
"GL_EXT_base_instance")) {
205 }
else if (extensions.has(
"GL_ANGLE_base_vertex_base_instance")) {
220 if (extensions.has(
"GL_ANGLE_base_vertex_base_instance")) {
222 GET_PROC_SUFFIX(MultiDrawElementsInstancedBaseVertexBaseInstance, ANGLE);
237 if (extensions.has(
"GL_EXT_multi_draw_indirect")) {
244 }
else if (extensions.has(
"GL_OES_texture_buffer")) {
246 }
else if (extensions.has(
"GL_EXT_texture_buffer")) {
252 }
else if (extensions.has(
"GL_OES_texture_buffer")) {
254 }
else if (extensions.has(
"GL_EXT_texture_buffer")) {
260 }
else if (extensions.has(
"GL_EXT_texture_storage")) {
264 if (extensions.has(
"GL_NV_texture_barrier")) {
268 if (extensions.has(
"GL_EXT_discard_framebuffer")) {
272 if (extensions.has(
"GL_QCOM_tiled_rendering")) {
279 }
else if (extensions.has(
"GL_EXT_instanced_arrays")) {
281 }
else if (extensions.has(
"GL_ANGLE_instanced_arrays")) {
299 GET_PROC(GetFramebufferAttachmentParameteriv);
300 GET_PROC(GetRenderbufferParameteriv);
305 }
else if (extensions.has(
"GL_NV_framebuffer_blit")) {
307 }
else if (extensions.has(
"GL_CHROMIUM_framebuffer_multisample")) {
309 }
else if (extensions.has(
"GL_ANGLE_framebuffer_blit")) {
314 GET_PROC(RenderbufferStorageMultisample);
315 }
else if (extensions.has(
"GL_CHROMIUM_framebuffer_multisample")) {
317 }
else if (extensions.has(
"GL_ANGLE_framebuffer_multisample")) {
321 if (extensions.has(
"GL_CHROMIUM_map_sub")) {
328 if (extensions.has(
"GL_EXT_multisampled_render_to_texture")) {
330 }
else if (extensions.has(
"GL_IMG_multisampled_render_to_texture")) {
334 if (extensions.has(
"GL_EXT_multisampled_render_to_texture")) {
338 if (extensions.has(
"GL_IMG_multisampled_render_to_texture")) {
342 if (extensions.has(
"GL_APPLE_framebuffer_multisample")) {
347 if (extensions.has(
"GL_OES_mapbuffer")) {
353 }
else if (extensions.has(
"GL_OES_mapbuffer")) {
360 }
else if (extensions.has(
"GL_EXT_map_buffer_range")) {
365 if (extensions.has(
"GL_EXT_debug_marker")) {
373 }
else if (extensions.has(
"GL_NV_copy_buffer")) {
377 if (extensions.has(
"GL_KHR_debug")) {
387 if (extensions.has(
"GL_CHROMIUM_bind_uniform_location")) {
391 if (extensions.has(
"GL_EXT_window_rectangles")) {
401 }
else if (extensions.has(
"GL_APPLE_sync")) {
416 }
else if (extensions.has(
"GL_OES_get_program_binary")) {
435#if defined(GR_TEST_UTILS)
443 }
else if (extensions.has(
"GL_EXT_occlusion_query_boolean")) {
444#if defined(GR_TEST_UTILS)
454 if (extensions.has(
"GL_ARB_invalidate_subdata")) {
464 }
else if (extensions.has(
"GL_ARB_invalidate_subdata")) {
471 if (extensions.has(
"GL_NV_fence")) {
484 if (extensions.has(
"GL_KHR_debug")) {
490 if (!interface->fFunctions.fDebugMessageControl) {
491 extensions.remove(
"GL_KHR_debug");
495 interface->fExtensions.
swap(&extensions);