| 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 |