OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2014 Google Inc. | 2 * Copyright 2014 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 | 8 |
9 #include "gl/GrGLAssembleInterface.h" | 9 #include "gl/GrGLAssembleInterface.h" |
10 #include "GrGLUtil.h" | 10 #include "GrGLUtil.h" |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
137 GET_PROC(DrawBuffer); | 137 GET_PROC(DrawBuffer); |
138 GET_PROC(DrawBuffers); | 138 GET_PROC(DrawBuffers); |
139 GET_PROC(DrawElements); | 139 GET_PROC(DrawElements); |
140 | 140 |
141 if (glVer >= GR_GL_VER(3,1) || extensions.has("GL_ARB_draw_instanced") || | 141 if (glVer >= GR_GL_VER(3,1) || extensions.has("GL_ARB_draw_instanced") || |
142 extensions.has("GL_EXT_draw_instanced")) { | 142 extensions.has("GL_EXT_draw_instanced")) { |
143 GET_PROC(DrawArraysInstanced); | 143 GET_PROC(DrawArraysInstanced); |
144 GET_PROC(DrawElementsInstanced); | 144 GET_PROC(DrawElementsInstanced); |
145 } | 145 } |
146 | 146 |
147 if (glVer >= GR_GL_VER(4,0)) { | 147 if (glVer >= GR_GL_VER(4,0) || extensions.has("GL_ARB_draw_indirect")) { |
148 // We don't use ARB_draw_indirect because it does not support a base ins
tance. | |
149 GET_PROC(DrawArraysIndirect); | 148 GET_PROC(DrawArraysIndirect); |
150 GET_PROC(DrawElementsIndirect); | 149 GET_PROC(DrawElementsIndirect); |
151 } | 150 } |
152 | 151 |
153 GET_PROC(Enable); | 152 GET_PROC(Enable); |
154 GET_PROC(EnableVertexAttribArray); | 153 GET_PROC(EnableVertexAttribArray); |
155 GET_PROC(EndQuery); | 154 GET_PROC(EndQuery); |
156 GET_PROC(Finish); | 155 GET_PROC(Finish); |
157 GET_PROC(Flush); | 156 GET_PROC(Flush); |
158 GET_PROC(FrontFace); | 157 GET_PROC(FrontFace); |
(...skipping 24 matching lines...) Expand all Loading... |
183 GET_PROC(GetStringi); | 182 GET_PROC(GetStringi); |
184 GET_PROC(GetShaderPrecisionFormat); | 183 GET_PROC(GetShaderPrecisionFormat); |
185 GET_PROC(GetTexLevelParameteriv); | 184 GET_PROC(GetTexLevelParameteriv); |
186 GET_PROC(GenQueries); | 185 GET_PROC(GenQueries); |
187 GET_PROC(GenTextures); | 186 GET_PROC(GenTextures); |
188 GET_PROC(GetUniformLocation); | 187 GET_PROC(GetUniformLocation); |
189 GET_PROC(IsTexture); | 188 GET_PROC(IsTexture); |
190 GET_PROC(LineWidth); | 189 GET_PROC(LineWidth); |
191 GET_PROC(LinkProgram); | 190 GET_PROC(LinkProgram); |
192 GET_PROC(MapBuffer); | 191 GET_PROC(MapBuffer); |
| 192 |
| 193 if (glVer >= GR_GL_VER(4,3) || extensions.has("GL_ARB_multi_draw_indirect"))
{ |
| 194 GET_PROC(MultiDrawArraysIndirect); |
| 195 GET_PROC(MultiDrawElementsIndirect); |
| 196 } |
| 197 |
193 GET_PROC(PixelStorei); | 198 GET_PROC(PixelStorei); |
194 if (extensions.has("GL_EXT_raster_multisample")) { | 199 if (extensions.has("GL_EXT_raster_multisample")) { |
195 GET_PROC_SUFFIX(RasterSamples, EXT); | 200 GET_PROC_SUFFIX(RasterSamples, EXT); |
196 } | 201 } |
197 GET_PROC(ReadBuffer); | 202 GET_PROC(ReadBuffer); |
198 GET_PROC(ReadPixels); | 203 GET_PROC(ReadPixels); |
199 GET_PROC(Scissor); | 204 GET_PROC(Scissor); |
200 GET_PROC(ShaderSource); | 205 GET_PROC(ShaderSource); |
201 GET_PROC(StencilFunc); | 206 GET_PROC(StencilFunc); |
202 GET_PROC(StencilFuncSeparate); | 207 GET_PROC(StencilFuncSeparate); |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
361 GET_PROC(InvalidateFramebuffer); | 366 GET_PROC(InvalidateFramebuffer); |
362 GET_PROC(InvalidateSubFramebuffer); | 367 GET_PROC(InvalidateSubFramebuffer); |
363 GET_PROC(InvalidateTexImage); | 368 GET_PROC(InvalidateTexImage); |
364 GET_PROC(InvalidateTexSubImage); | 369 GET_PROC(InvalidateTexSubImage); |
365 } | 370 } |
366 | 371 |
367 if (glVer >= GR_GL_VER(4,3) || extensions.has("GL_ARB_program_interface_quer
y")) { | 372 if (glVer >= GR_GL_VER(4,3) || extensions.has("GL_ARB_program_interface_quer
y")) { |
368 GET_PROC(GetProgramResourceLocation); | 373 GET_PROC(GetProgramResourceLocation); |
369 } | 374 } |
370 | 375 |
371 if (glVer >= GR_GL_VER(4,3)) { | |
372 // We don't use ARB_multi_draw_indirect because it does not support GL_D
RAW_INDIRECT_BUFFER. | |
373 GET_PROC(MultiDrawArraysIndirect); | |
374 GET_PROC(MultiDrawElementsIndirect); | |
375 } | |
376 | |
377 if (extensions.has("GL_NV_bindless_texture")) { | 376 if (extensions.has("GL_NV_bindless_texture")) { |
378 GET_PROC_SUFFIX(GetTextureHandle, NV); | 377 GET_PROC_SUFFIX(GetTextureHandle, NV); |
379 GET_PROC_SUFFIX(GetTextureSamplerHandle, NV); | 378 GET_PROC_SUFFIX(GetTextureSamplerHandle, NV); |
380 GET_PROC_SUFFIX(MakeTextureHandleResident, NV); | 379 GET_PROC_SUFFIX(MakeTextureHandleResident, NV); |
381 GET_PROC_SUFFIX(MakeTextureHandleNonResident, NV); | 380 GET_PROC_SUFFIX(MakeTextureHandleNonResident, NV); |
382 GET_PROC_SUFFIX(GetImageHandle, NV); | 381 GET_PROC_SUFFIX(GetImageHandle, NV); |
383 GET_PROC_SUFFIX(MakeImageHandleResident, NV); | 382 GET_PROC_SUFFIX(MakeImageHandleResident, NV); |
384 GET_PROC_SUFFIX(MakeImageHandleNonResident, NV); | 383 GET_PROC_SUFFIX(MakeImageHandleNonResident, NV); |
385 GET_PROC_SUFFIX(IsTextureHandleResident, NV); | 384 GET_PROC_SUFFIX(IsTextureHandleResident, NV); |
386 GET_PROC_SUFFIX(IsImageHandleResident, NV); | 385 GET_PROC_SUFFIX(IsImageHandleResident, NV); |
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
633 GET_PROC(GetProgramiv); | 632 GET_PROC(GetProgramiv); |
634 GET_PROC(GetShaderInfoLog); | 633 GET_PROC(GetShaderInfoLog); |
635 GET_PROC(GetShaderPrecisionFormat); | 634 GET_PROC(GetShaderPrecisionFormat); |
636 GET_PROC(GetShaderiv); | 635 GET_PROC(GetShaderiv); |
637 GET_PROC(GetString); | 636 GET_PROC(GetString); |
638 GET_PROC(GetStringi); | 637 GET_PROC(GetStringi); |
639 GET_PROC(GetUniformLocation); | 638 GET_PROC(GetUniformLocation); |
640 GET_PROC(IsTexture); | 639 GET_PROC(IsTexture); |
641 GET_PROC(LineWidth); | 640 GET_PROC(LineWidth); |
642 GET_PROC(LinkProgram); | 641 GET_PROC(LinkProgram); |
| 642 |
| 643 if (extensions.has("GL_EXT_multi_draw_indirect")) { |
| 644 GET_PROC_SUFFIX(MultiDrawArraysIndirect, EXT); |
| 645 GET_PROC_SUFFIX(MultiDrawElementsIndirect, EXT); |
| 646 } |
| 647 |
643 GET_PROC(PixelStorei); | 648 GET_PROC(PixelStorei); |
644 | 649 |
645 if (extensions.has("GL_EXT_raster_multisample")) { | 650 if (extensions.has("GL_EXT_raster_multisample")) { |
646 GET_PROC_SUFFIX(RasterSamples, EXT); | 651 GET_PROC_SUFFIX(RasterSamples, EXT); |
647 } | 652 } |
648 | 653 |
649 GET_PROC(ReadPixels); | 654 GET_PROC(ReadPixels); |
650 GET_PROC(Scissor); | 655 GET_PROC(Scissor); |
651 GET_PROC(ShaderSource); | 656 GET_PROC(ShaderSource); |
652 GET_PROC(StencilFunc); | 657 GET_PROC(StencilFunc); |
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
847 GET_PROC_SUFFIX(BindFragmentInputLocation, CHROMIUM); | 852 GET_PROC_SUFFIX(BindFragmentInputLocation, CHROMIUM); |
848 } | 853 } |
849 | 854 |
850 if (extensions.has("GL_NV_framebuffer_mixed_samples")) { | 855 if (extensions.has("GL_NV_framebuffer_mixed_samples")) { |
851 GET_PROC_SUFFIX(CoverageModulation, NV); | 856 GET_PROC_SUFFIX(CoverageModulation, NV); |
852 } | 857 } |
853 if (extensions.has("GL_CHROMIUM_framebuffer_mixed_samples")) { | 858 if (extensions.has("GL_CHROMIUM_framebuffer_mixed_samples")) { |
854 GET_PROC_SUFFIX(CoverageModulation, CHROMIUM); | 859 GET_PROC_SUFFIX(CoverageModulation, CHROMIUM); |
855 } | 860 } |
856 | 861 |
857 if (extensions.has("GL_EXT_multi_draw_indirect")) { | |
858 GET_PROC_SUFFIX(MultiDrawArraysIndirect, EXT); | |
859 GET_PROC_SUFFIX(MultiDrawElementsIndirect, EXT); | |
860 } | |
861 | |
862 if (extensions.has("GL_NV_bindless_texture")) { | 862 if (extensions.has("GL_NV_bindless_texture")) { |
863 GET_PROC_SUFFIX(GetTextureHandle, NV); | 863 GET_PROC_SUFFIX(GetTextureHandle, NV); |
864 GET_PROC_SUFFIX(GetTextureSamplerHandle, NV); | 864 GET_PROC_SUFFIX(GetTextureSamplerHandle, NV); |
865 GET_PROC_SUFFIX(MakeTextureHandleResident, NV); | 865 GET_PROC_SUFFIX(MakeTextureHandleResident, NV); |
866 GET_PROC_SUFFIX(MakeTextureHandleNonResident, NV); | 866 GET_PROC_SUFFIX(MakeTextureHandleNonResident, NV); |
867 GET_PROC_SUFFIX(GetImageHandle, NV); | 867 GET_PROC_SUFFIX(GetImageHandle, NV); |
868 GET_PROC_SUFFIX(MakeImageHandleResident, NV); | 868 GET_PROC_SUFFIX(MakeImageHandleResident, NV); |
869 GET_PROC_SUFFIX(MakeImageHandleNonResident, NV); | 869 GET_PROC_SUFFIX(MakeImageHandleNonResident, NV); |
870 GET_PROC_SUFFIX(IsTextureHandleResident, NV); | 870 GET_PROC_SUFFIX(IsTextureHandleResident, NV); |
871 GET_PROC_SUFFIX(IsImageHandleResident, NV); | 871 GET_PROC_SUFFIX(IsImageHandleResident, NV); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
904 | 904 |
905 if (extensions.has("GL_OES_sample_shading")) { | 905 if (extensions.has("GL_OES_sample_shading")) { |
906 GET_PROC_SUFFIX(MinSampleShading, OES); | 906 GET_PROC_SUFFIX(MinSampleShading, OES); |
907 } | 907 } |
908 | 908 |
909 interface->fStandard = kGLES_GrGLStandard; | 909 interface->fStandard = kGLES_GrGLStandard; |
910 interface->fExtensions.swap(&extensions); | 910 interface->fExtensions.swap(&extensions); |
911 | 911 |
912 return interface; | 912 return interface; |
913 } | 913 } |
OLD | NEW |