Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(645)

Side by Side Diff: src/gpu/gl/GrGLAssembleInterface.cpp

Issue 1185573003: Import new functionality for GL4 backend (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: fix KHR_debug suffixes Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « include/gpu/gl/GrGLInterface.h ('k') | src/gpu/gl/GrGLCaps.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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 }
OLDNEW
« no previous file with comments | « include/gpu/gl/GrGLInterface.h ('k') | src/gpu/gl/GrGLCaps.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698