OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2014 Google Inc. | 3 * Copyright 2014 Google Inc. |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 | 9 |
10 #include "GrGLAssembleInterface.h" | 10 #include "GrGLAssembleInterface.h" |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
146 GET_PROC(GetString); | 146 GET_PROC(GetString); |
147 GET_PROC(GetStringi); | 147 GET_PROC(GetStringi); |
148 GET_PROC(GetShaderPrecisionFormat); | 148 GET_PROC(GetShaderPrecisionFormat); |
149 GET_PROC(GetTexLevelParameteriv); | 149 GET_PROC(GetTexLevelParameteriv); |
150 GET_PROC(GenQueries); | 150 GET_PROC(GenQueries); |
151 GET_PROC(GenTextures); | 151 GET_PROC(GenTextures); |
152 GET_PROC(GetUniformLocation); | 152 GET_PROC(GetUniformLocation); |
153 GET_PROC(LineWidth); | 153 GET_PROC(LineWidth); |
154 GET_PROC(LinkProgram); | 154 GET_PROC(LinkProgram); |
155 GET_PROC(MapBuffer); | 155 GET_PROC(MapBuffer); |
| 156 if (extensions.has("GL_EXT_direct_state_access")) { |
| 157 GET_PROC_SUFFIX(MatrixLoadf, EXT); |
| 158 GET_PROC_SUFFIX(MatrixLoadIdentity, EXT); |
| 159 } |
156 GET_PROC(PixelStorei); | 160 GET_PROC(PixelStorei); |
157 if (extensions.has("GL_EXT_raster_multisample")) { | 161 if (extensions.has("GL_EXT_raster_multisample")) { |
158 GET_PROC_SUFFIX(RasterSamples, EXT); | 162 GET_PROC_SUFFIX(RasterSamples, EXT); |
159 } | 163 } |
160 GET_PROC(ReadBuffer); | 164 GET_PROC(ReadBuffer); |
161 GET_PROC(ReadPixels); | 165 GET_PROC(ReadPixels); |
162 GET_PROC(Scissor); | 166 GET_PROC(Scissor); |
163 GET_PROC(ShaderSource); | 167 GET_PROC(ShaderSource); |
164 GET_PROC(StencilFunc); | 168 GET_PROC(StencilFunc); |
165 GET_PROC(StencilFuncSeparate); | 169 GET_PROC(StencilFuncSeparate); |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
262 if (extensions.has("GL_EXT_framebuffer_blit")) { | 266 if (extensions.has("GL_EXT_framebuffer_blit")) { |
263 GET_PROC_SUFFIX(BlitFramebuffer, EXT); | 267 GET_PROC_SUFFIX(BlitFramebuffer, EXT); |
264 } | 268 } |
265 } else { | 269 } else { |
266 // we must have FBOs | 270 // we must have FBOs |
267 delete interface; | 271 delete interface; |
268 return NULL; | 272 return NULL; |
269 } | 273 } |
270 | 274 |
271 if (extensions.has("GL_NV_path_rendering")) { | 275 if (extensions.has("GL_NV_path_rendering")) { |
272 GET_PROC_SUFFIX(MatrixLoadf, EXT); | |
273 GET_PROC_SUFFIX(MatrixLoadIdentity, EXT); | |
274 GET_PROC_SUFFIX(PathCommands, NV); | 276 GET_PROC_SUFFIX(PathCommands, NV); |
275 GET_PROC_SUFFIX(PathCoords, NV); | 277 GET_PROC_SUFFIX(PathCoords, NV); |
276 GET_PROC_SUFFIX(PathParameteri, NV); | 278 GET_PROC_SUFFIX(PathParameteri, NV); |
277 GET_PROC_SUFFIX(PathParameterf, NV); | 279 GET_PROC_SUFFIX(PathParameterf, NV); |
278 GET_PROC_SUFFIX(GenPaths, NV); | 280 GET_PROC_SUFFIX(GenPaths, NV); |
279 GET_PROC_SUFFIX(DeletePaths, NV); | 281 GET_PROC_SUFFIX(DeletePaths, NV); |
280 GET_PROC_SUFFIX(IsPath, NV); | 282 GET_PROC_SUFFIX(IsPath, NV); |
281 GET_PROC_SUFFIX(PathStencilFunc, NV); | 283 GET_PROC_SUFFIX(PathStencilFunc, NV); |
282 GET_PROC_SUFFIX(StencilFillPath, NV); | 284 GET_PROC_SUFFIX(StencilFillPath, NV); |
283 GET_PROC_SUFFIX(StencilStrokePath, NV); | 285 GET_PROC_SUFFIX(StencilStrokePath, NV); |
(...skipping 30 matching lines...) Expand all Loading... |
314 GET_PROC(InvalidateFramebuffer); | 316 GET_PROC(InvalidateFramebuffer); |
315 GET_PROC(InvalidateSubFramebuffer); | 317 GET_PROC(InvalidateSubFramebuffer); |
316 GET_PROC(InvalidateTexImage); | 318 GET_PROC(InvalidateTexImage); |
317 GET_PROC(InvalidateTexSubImage); | 319 GET_PROC(InvalidateTexSubImage); |
318 } | 320 } |
319 | 321 |
320 if (glVer >= GR_GL_VER(4,3) || extensions.has("GL_ARB_program_interface_quer
y")) { | 322 if (glVer >= GR_GL_VER(4,3) || extensions.has("GL_ARB_program_interface_quer
y")) { |
321 GET_PROC(GetProgramResourceLocation); | 323 GET_PROC(GetProgramResourceLocation); |
322 } | 324 } |
323 | 325 |
324 if (glVer >= GR_GL_VER(3,1) || extensions.has("GL_ARB_draw_instanced")) { | |
325 GET_PROC(DrawArraysInstanced); | |
326 GET_PROC(DrawElementsInstanced); | |
327 } | |
328 | |
329 if (glVer >= GR_GL_VER(3,2) || extensions.has("GL_ARB_instanced_arrays")) { | |
330 GET_PROC(VertexAttribDivisor); | |
331 if (extensions.has("GL_EXT_direct_state_access")) { | |
332 GET_PROC_SUFFIX(VertexArrayVertexAttribDivisor, EXT); | |
333 } | |
334 } | |
335 | |
336 if (extensions.has("GL_NV_bindless_texture")) { | |
337 GET_PROC_SUFFIX(GetTextureHandle, NV); | |
338 GET_PROC_SUFFIX(GetTextureSamplerHandle, NV); | |
339 GET_PROC_SUFFIX(MakeTextureHandleResident, NV); | |
340 GET_PROC_SUFFIX(MakeTextureHandleNonResident, NV); | |
341 GET_PROC_SUFFIX(GetImageHandle, NV); | |
342 GET_PROC_SUFFIX(MakeImageHandleResident, NV); | |
343 GET_PROC_SUFFIX(MakeImageHandleNonResident, NV); | |
344 GET_PROC_SUFFIX(IsTextureHandleResident, NV); | |
345 GET_PROC_SUFFIX(IsImageHandleResident, NV); | |
346 GET_PROC_SUFFIX(UniformHandleui64, NV); | |
347 GET_PROC_SUFFIX(UniformHandleui64v, NV); | |
348 GET_PROC_SUFFIX(ProgramUniformHandleui64, NV); | |
349 GET_PROC_SUFFIX(ProgramUniformHandleui64v, NV); | |
350 } | |
351 | |
352 if (extensions.has("GL_EXT_direct_state_access")) { | |
353 GET_PROC_SUFFIX(TextureParameteri, EXT); | |
354 GET_PROC_SUFFIX(TextureParameteriv, EXT); | |
355 GET_PROC_SUFFIX(TextureParameterf, EXT); | |
356 GET_PROC_SUFFIX(TextureParameterfv, EXT); | |
357 GET_PROC_SUFFIX(TextureImage1D, EXT); | |
358 GET_PROC_SUFFIX(TextureImage2D, EXT); | |
359 GET_PROC_SUFFIX(TextureSubImage1D, EXT); | |
360 GET_PROC_SUFFIX(TextureSubImage2D, EXT); | |
361 GET_PROC_SUFFIX(CopyTextureImage1D, EXT); | |
362 GET_PROC_SUFFIX(CopyTextureImage2D, EXT); | |
363 GET_PROC_SUFFIX(CopyTextureSubImage1D, EXT); | |
364 GET_PROC_SUFFIX(CopyTextureSubImage2D, EXT); | |
365 GET_PROC_SUFFIX(GetTextureImage, EXT); | |
366 GET_PROC_SUFFIX(GetTextureParameterfv, EXT); | |
367 GET_PROC_SUFFIX(GetTextureParameteriv, EXT); | |
368 GET_PROC_SUFFIX(GetTextureLevelParameterfv, EXT); | |
369 GET_PROC_SUFFIX(GetTextureLevelParameteriv, EXT); | |
370 if (glVer >= GR_GL_VER(1,2)) { | |
371 GET_PROC_SUFFIX(TextureImage3D, EXT); | |
372 GET_PROC_SUFFIX(TextureSubImage3D, EXT); | |
373 GET_PROC_SUFFIX(CopyTextureSubImage3D, EXT); | |
374 GET_PROC_SUFFIX(CompressedTextureImage3D, EXT); | |
375 GET_PROC_SUFFIX(CompressedTextureImage2D, EXT); | |
376 GET_PROC_SUFFIX(CompressedTextureImage1D, EXT); | |
377 GET_PROC_SUFFIX(CompressedTextureSubImage3D, EXT); | |
378 GET_PROC_SUFFIX(CompressedTextureSubImage2D, EXT); | |
379 GET_PROC_SUFFIX(CompressedTextureSubImage1D, EXT); | |
380 GET_PROC_SUFFIX(GetCompressedTextureImage, EXT); | |
381 } | |
382 if (glVer >= GR_GL_VER(1,5)) { | |
383 GET_PROC_SUFFIX(NamedBufferData, EXT); | |
384 GET_PROC_SUFFIX(NamedBufferSubData, EXT); | |
385 GET_PROC_SUFFIX(MapNamedBuffer, EXT); | |
386 GET_PROC_SUFFIX(UnmapNamedBuffer, EXT); | |
387 GET_PROC_SUFFIX(GetNamedBufferParameteriv, EXT); | |
388 GET_PROC_SUFFIX(GetNamedBufferPointerv, EXT); | |
389 GET_PROC_SUFFIX(GetNamedBufferSubData, EXT); | |
390 } | |
391 if (glVer >= GR_GL_VER(2,0)) { | |
392 GET_PROC_SUFFIX(ProgramUniform1f, EXT); | |
393 GET_PROC_SUFFIX(ProgramUniform2f, EXT); | |
394 GET_PROC_SUFFIX(ProgramUniform3f, EXT); | |
395 GET_PROC_SUFFIX(ProgramUniform4f, EXT); | |
396 GET_PROC_SUFFIX(ProgramUniform1i, EXT); | |
397 GET_PROC_SUFFIX(ProgramUniform2i, EXT); | |
398 GET_PROC_SUFFIX(ProgramUniform3i, EXT); | |
399 GET_PROC_SUFFIX(ProgramUniform4i, EXT); | |
400 GET_PROC_SUFFIX(ProgramUniform1fv, EXT); | |
401 GET_PROC_SUFFIX(ProgramUniform2fv, EXT); | |
402 GET_PROC_SUFFIX(ProgramUniform3fv, EXT); | |
403 GET_PROC_SUFFIX(ProgramUniform4fv, EXT); | |
404 GET_PROC_SUFFIX(ProgramUniform1iv, EXT); | |
405 GET_PROC_SUFFIX(ProgramUniform2iv, EXT); | |
406 GET_PROC_SUFFIX(ProgramUniform3iv, EXT); | |
407 GET_PROC_SUFFIX(ProgramUniform4iv, EXT); | |
408 GET_PROC_SUFFIX(ProgramUniformMatrix2fv, EXT); | |
409 GET_PROC_SUFFIX(ProgramUniformMatrix3fv, EXT); | |
410 GET_PROC_SUFFIX(ProgramUniformMatrix4fv, EXT); | |
411 } | |
412 if (glVer >= GR_GL_VER(2,1)) { | |
413 GET_PROC_SUFFIX(ProgramUniformMatrix2x3fv, EXT); | |
414 GET_PROC_SUFFIX(ProgramUniformMatrix3x2fv, EXT); | |
415 GET_PROC_SUFFIX(ProgramUniformMatrix2x4fv, EXT); | |
416 GET_PROC_SUFFIX(ProgramUniformMatrix4x2fv, EXT); | |
417 GET_PROC_SUFFIX(ProgramUniformMatrix3x4fv, EXT); | |
418 GET_PROC_SUFFIX(ProgramUniformMatrix4x3fv, EXT); | |
419 } | |
420 if (glVer >= GR_GL_VER(3,0)) { | |
421 GET_PROC_SUFFIX(NamedRenderbufferStorage, EXT); | |
422 GET_PROC_SUFFIX(GetNamedRenderbufferParameteriv, EXT); | |
423 GET_PROC_SUFFIX(NamedRenderbufferStorageMultisample, EXT); | |
424 GET_PROC_SUFFIX(CheckNamedFramebufferStatus, EXT); | |
425 GET_PROC_SUFFIX(NamedFramebufferTexture1D, EXT); | |
426 GET_PROC_SUFFIX(NamedFramebufferTexture2D, EXT); | |
427 GET_PROC_SUFFIX(NamedFramebufferTexture3D, EXT); | |
428 GET_PROC_SUFFIX(NamedFramebufferRenderbuffer, EXT); | |
429 GET_PROC_SUFFIX(GetNamedFramebufferAttachmentParameteriv, EXT); | |
430 GET_PROC_SUFFIX(GenerateTextureMipmap, EXT); | |
431 GET_PROC_SUFFIX(FramebufferDrawBuffer, EXT); | |
432 GET_PROC_SUFFIX(FramebufferDrawBuffers, EXT); | |
433 GET_PROC_SUFFIX(FramebufferReadBuffer, EXT); | |
434 GET_PROC_SUFFIX(GetFramebufferParameteriv, EXT); | |
435 GET_PROC_SUFFIX(NamedCopyBufferSubData, EXT); | |
436 GET_PROC_SUFFIX(VertexArrayVertexOffset, EXT); | |
437 GET_PROC_SUFFIX(VertexArrayColorOffset, EXT); | |
438 GET_PROC_SUFFIX(VertexArrayEdgeFlagOffset, EXT); | |
439 GET_PROC_SUFFIX(VertexArrayIndexOffset, EXT); | |
440 GET_PROC_SUFFIX(VertexArrayNormalOffset, EXT); | |
441 GET_PROC_SUFFIX(VertexArrayTexCoordOffset, EXT); | |
442 GET_PROC_SUFFIX(VertexArrayMultiTexCoordOffset, EXT); | |
443 GET_PROC_SUFFIX(VertexArrayFogCoordOffset, EXT); | |
444 GET_PROC_SUFFIX(VertexArraySecondaryColorOffset, EXT); | |
445 GET_PROC_SUFFIX(VertexArrayVertexAttribOffset, EXT); | |
446 GET_PROC_SUFFIX(VertexArrayVertexAttribIOffset, EXT); | |
447 GET_PROC_SUFFIX(EnableVertexArray, EXT); | |
448 GET_PROC_SUFFIX(DisableVertexArray, EXT); | |
449 GET_PROC_SUFFIX(EnableVertexArrayAttrib, EXT); | |
450 GET_PROC_SUFFIX(DisableVertexArrayAttrib, EXT); | |
451 GET_PROC_SUFFIX(GetVertexArrayIntegerv, EXT); | |
452 GET_PROC_SUFFIX(GetVertexArrayPointerv, EXT); | |
453 GET_PROC_SUFFIX(GetVertexArrayIntegeri_v, EXT); | |
454 GET_PROC_SUFFIX(GetVertexArrayPointeri_v, EXT); | |
455 GET_PROC_SUFFIX(MapNamedBufferRange, EXT); | |
456 GET_PROC_SUFFIX(FlushMappedNamedBufferRange, EXT); | |
457 } | |
458 } | |
459 | |
460 if (glVer >= GR_GL_VER(4,3)) { | |
461 GET_PROC(DebugMessageControl); | |
462 GET_PROC(DebugMessageInsert); | |
463 GET_PROC(DebugMessageCallback); | |
464 GET_PROC(GetDebugMessageLog); | |
465 GET_PROC(PushDebugGroup); | |
466 GET_PROC(PopDebugGroup); | |
467 GET_PROC(ObjectLabel); | |
468 } else if (extensions.has("GL_KHR_debug")) { | |
469 GET_PROC_SUFFIX(DebugMessageControl, KHR); | |
470 GET_PROC_SUFFIX(DebugMessageInsert, KHR); | |
471 GET_PROC_SUFFIX(DebugMessageCallback, KHR); | |
472 GET_PROC_SUFFIX(GetDebugMessageLog, KHR); | |
473 GET_PROC_SUFFIX(PushDebugGroup, KHR); | |
474 GET_PROC_SUFFIX(PopDebugGroup, KHR); | |
475 GET_PROC_SUFFIX(ObjectLabel, KHR); | |
476 } | |
477 | |
478 interface->fStandard = kGL_GrGLStandard; | 326 interface->fStandard = kGL_GrGLStandard; |
479 interface->fExtensions.swap(&extensions); | 327 interface->fExtensions.swap(&extensions); |
480 | 328 |
481 return interface; | 329 return interface; |
482 } | 330 } |
483 | 331 |
484 const GrGLInterface* GrGLAssembleGLESInterface(void* ctx, GrGLGetProc get) { | 332 const GrGLInterface* GrGLAssembleGLESInterface(void* ctx, GrGLGetProc get) { |
485 GET_PROC_LOCAL(GetString); | 333 GET_PROC_LOCAL(GetString); |
486 if (NULL == GetString) { | 334 if (NULL == GetString) { |
487 return NULL; | 335 return NULL; |
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
711 GET_PROC_SUFFIX(StencilThenCoverFillPathInstanced, NV); | 559 GET_PROC_SUFFIX(StencilThenCoverFillPathInstanced, NV); |
712 GET_PROC_SUFFIX(StencilThenCoverStrokePathInstanced, NV); | 560 GET_PROC_SUFFIX(StencilThenCoverStrokePathInstanced, NV); |
713 GET_PROC_SUFFIX(ProgramPathFragmentInputGen, NV); | 561 GET_PROC_SUFFIX(ProgramPathFragmentInputGen, NV); |
714 GET_PROC_SUFFIX(PathMemoryGlyphIndexArray, NV); | 562 GET_PROC_SUFFIX(PathMemoryGlyphIndexArray, NV); |
715 } | 563 } |
716 | 564 |
717 if (extensions.has("GL_NV_framebuffer_mixed_samples")) { | 565 if (extensions.has("GL_NV_framebuffer_mixed_samples")) { |
718 GET_PROC_SUFFIX(CoverageModulation, NV); | 566 GET_PROC_SUFFIX(CoverageModulation, NV); |
719 } | 567 } |
720 | 568 |
721 if (version >= GR_GL_VER(3,0) || extensions.has("GL_EXT_draw_instanced")) { | |
722 GET_PROC(DrawArraysInstanced); | |
723 GET_PROC(DrawElementsInstanced); | |
724 } | |
725 | |
726 if (version >= GR_GL_VER(3,0) || extensions.has("GL_EXT_instanced_arrays"))
{ | |
727 GET_PROC(VertexAttribDivisor); | |
728 } | |
729 | |
730 if (extensions.has("GL_NV_bindless_texture")) { | |
731 GET_PROC_SUFFIX(GetTextureHandle, NV); | |
732 GET_PROC_SUFFIX(GetTextureSamplerHandle, NV); | |
733 GET_PROC_SUFFIX(MakeTextureHandleResident, NV); | |
734 GET_PROC_SUFFIX(MakeTextureHandleNonResident, NV); | |
735 GET_PROC_SUFFIX(GetImageHandle, NV); | |
736 GET_PROC_SUFFIX(MakeImageHandleResident, NV); | |
737 GET_PROC_SUFFIX(MakeImageHandleNonResident, NV); | |
738 GET_PROC_SUFFIX(IsTextureHandleResident, NV); | |
739 GET_PROC_SUFFIX(IsImageHandleResident, NV); | |
740 GET_PROC_SUFFIX(UniformHandleui64, NV); | |
741 GET_PROC_SUFFIX(UniformHandleui64v, NV); | |
742 GET_PROC_SUFFIX(ProgramUniformHandleui64, NV); | |
743 GET_PROC_SUFFIX(ProgramUniformHandleui64v, NV); | |
744 } | |
745 | |
746 if (extensions.has("GL_KHR_debug")) { | |
747 GET_PROC_SUFFIX(DebugMessageControl, KHR); | |
748 GET_PROC_SUFFIX(DebugMessageInsert, KHR); | |
749 GET_PROC_SUFFIX(DebugMessageCallback, KHR); | |
750 GET_PROC_SUFFIX(GetDebugMessageLog, KHR); | |
751 GET_PROC_SUFFIX(PushDebugGroup, KHR); | |
752 GET_PROC_SUFFIX(PopDebugGroup, KHR); | |
753 GET_PROC_SUFFIX(ObjectLabel, KHR); | |
754 } | |
755 | |
756 interface->fStandard = kGLES_GrGLStandard; | 569 interface->fStandard = kGLES_GrGLStandard; |
757 interface->fExtensions.swap(&extensions); | 570 interface->fExtensions.swap(&extensions); |
758 | 571 |
759 return interface; | 572 return interface; |
760 } | 573 } |
OLD | NEW |