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