Chromium Code Reviews| Index: include/gpu/gl/GrGLInterface.h |
| diff --git a/include/gpu/gl/GrGLInterface.h b/include/gpu/gl/GrGLInterface.h |
| index 2c2a6911d114f383d4de1fbc63adeca15cb99042..3a54cee9b057781bca59f51c8a7640a70d757b72 100644 |
| --- a/include/gpu/gl/GrGLInterface.h |
| +++ b/include/gpu/gl/GrGLInterface.h |
| @@ -95,6 +95,16 @@ private: |
| FNPTR_TYPE fPtr; |
| }; |
| + // This is a temporary workaround to keep Chromium's GrGLInterface factories compiling until |
| + // they're updated to use the Functions struct. |
| + template <typename FNPTR_TYPE> class GLPtrAlias { |
| + public: |
| + GLPtrAlias(GLPtr<FNPTR_TYPE>* base) : fBase(base) {} |
|
robertphillips
2014/01/21 15:38:05
rm space between operator & =?
bsalomon
2014/01/21 16:04:54
Done.
|
| + void operator =(FNPTR_TYPE ptr) { *fBase = ptr; } |
| + private: |
| + GLPtr<FNPTR_TYPE>* fBase; |
| + }; |
| + |
| typedef SkRefCnt INHERITED; |
| public: |
| @@ -120,226 +130,419 @@ public: |
| bool hasExtension(const char ext[]) const { |
| if (!fExtensions.isInitialized()) { |
| GrGLExtensions* extensions = const_cast<GrGLExtensions*>(&fExtensions); |
| - if (!extensions->init(fStandard, fGetString, fGetStringi, fGetIntegerv)) { |
| + if (!extensions->init(fStandard, fFunctions.fGetString, |
| + fFunctions.fGetStringi, fFunctions.fGetIntegerv)) { |
| return false; |
| } |
| } |
| return fExtensions.has(ext); |
| } |
|
robertphillips
2014/01/21 15:38:05
Maybe a comment as to why we need the Functions st
bsalomon
2014/01/21 16:04:54
Done.
|
| - GLPtr<GrGLActiveTextureProc> fActiveTexture; |
| - GLPtr<GrGLAttachShaderProc> fAttachShader; |
| - GLPtr<GrGLBeginQueryProc> fBeginQuery; |
| - GLPtr<GrGLBindAttribLocationProc> fBindAttribLocation; |
| - GLPtr<GrGLBindBufferProc> fBindBuffer; |
| - GLPtr<GrGLBindFragDataLocationProc> fBindFragDataLocation; |
| - GLPtr<GrGLBindFragDataLocationIndexedProc> fBindFragDataLocationIndexed; |
| - GLPtr<GrGLBindFramebufferProc> fBindFramebuffer; |
| - GLPtr<GrGLBindRenderbufferProc> fBindRenderbuffer; |
| - GLPtr<GrGLBindTextureProc> fBindTexture; |
| - GLPtr<GrGLBindVertexArrayProc> fBindVertexArray; |
| - GLPtr<GrGLBlendColorProc> fBlendColor; |
| - GLPtr<GrGLBlendFuncProc> fBlendFunc; |
| - GLPtr<GrGLBlitFramebufferProc> fBlitFramebuffer; |
| - GLPtr<GrGLBufferDataProc> fBufferData; |
| - GLPtr<GrGLBufferSubDataProc> fBufferSubData; |
| - GLPtr<GrGLCheckFramebufferStatusProc> fCheckFramebufferStatus; |
| - GLPtr<GrGLClearProc> fClear; |
| - GLPtr<GrGLClearColorProc> fClearColor; |
| - GLPtr<GrGLClearStencilProc> fClearStencil; |
| - GLPtr<GrGLClientActiveTextureProc> fClientActiveTexture; |
| - GLPtr<GrGLColorMaskProc> fColorMask; |
| - GLPtr<GrGLCompileShaderProc> fCompileShader; |
| - GLPtr<GrGLCompressedTexImage2DProc> fCompressedTexImage2D; |
| - GLPtr<GrGLCopyTexSubImage2DProc> fCopyTexSubImage2D; |
| - GLPtr<GrGLCreateProgramProc> fCreateProgram; |
| - GLPtr<GrGLCreateShaderProc> fCreateShader; |
| - GLPtr<GrGLCullFaceProc> fCullFace; |
| - GLPtr<GrGLDeleteBuffersProc> fDeleteBuffers; |
| - GLPtr<GrGLDeleteFramebuffersProc> fDeleteFramebuffers; |
| - GLPtr<GrGLDeleteProgramProc> fDeleteProgram; |
| - GLPtr<GrGLDeleteQueriesProc> fDeleteQueries; |
| - GLPtr<GrGLDeleteRenderbuffersProc> fDeleteRenderbuffers; |
| - GLPtr<GrGLDeleteShaderProc> fDeleteShader; |
| - GLPtr<GrGLDeleteTexturesProc> fDeleteTextures; |
| - GLPtr<GrGLDeleteVertexArraysProc> fDeleteVertexArrays; |
| - GLPtr<GrGLDepthMaskProc> fDepthMask; |
| - GLPtr<GrGLDisableProc> fDisable; |
| - GLPtr<GrGLDisableClientStateProc> fDisableClientState; |
| - GLPtr<GrGLDisableVertexAttribArrayProc> fDisableVertexAttribArray; |
| - GLPtr<GrGLDrawArraysProc> fDrawArrays; |
| - GLPtr<GrGLDrawBufferProc> fDrawBuffer; |
| - GLPtr<GrGLDrawBuffersProc> fDrawBuffers; |
| - GLPtr<GrGLDrawElementsProc> fDrawElements; |
| - GLPtr<GrGLEnableProc> fEnable; |
| - GLPtr<GrGLEnableClientStateProc> fEnableClientState; |
| - GLPtr<GrGLEnableVertexAttribArrayProc> fEnableVertexAttribArray; |
| - GLPtr<GrGLEndQueryProc> fEndQuery; |
| - GLPtr<GrGLFinishProc> fFinish; |
| - GLPtr<GrGLFlushProc> fFlush; |
| - GLPtr<GrGLFramebufferRenderbufferProc> fFramebufferRenderbuffer; |
| - GLPtr<GrGLFramebufferTexture2DProc> fFramebufferTexture2D; |
| - GLPtr<GrGLFramebufferTexture2DMultisampleProc> fFramebufferTexture2DMultisample; |
| - GLPtr<GrGLFrontFaceProc> fFrontFace; |
| - GLPtr<GrGLGenBuffersProc> fGenBuffers; |
| - GLPtr<GrGLGenFramebuffersProc> fGenFramebuffers; |
| - GLPtr<GrGLGenerateMipmapProc> fGenerateMipmap; |
| - GLPtr<GrGLGenQueriesProc> fGenQueries; |
| - GLPtr<GrGLGenRenderbuffersProc> fGenRenderbuffers; |
| - GLPtr<GrGLGenTexturesProc> fGenTextures; |
| - GLPtr<GrGLGenVertexArraysProc> fGenVertexArrays; |
| - GLPtr<GrGLGetBufferParameterivProc> fGetBufferParameteriv; |
| - GLPtr<GrGLGetErrorProc> fGetError; |
| - GLPtr<GrGLGetFramebufferAttachmentParameterivProc> fGetFramebufferAttachmentParameteriv; |
| - GLPtr<GrGLGetIntegervProc> fGetIntegerv; |
| - GLPtr<GrGLGetQueryObjecti64vProc> fGetQueryObjecti64v; |
| - GLPtr<GrGLGetQueryObjectivProc> fGetQueryObjectiv; |
| - GLPtr<GrGLGetQueryObjectui64vProc> fGetQueryObjectui64v; |
| - GLPtr<GrGLGetQueryObjectuivProc> fGetQueryObjectuiv; |
| - GLPtr<GrGLGetQueryivProc> fGetQueryiv; |
| - GLPtr<GrGLGetProgramInfoLogProc> fGetProgramInfoLog; |
| - GLPtr<GrGLGetProgramivProc> fGetProgramiv; |
| - GLPtr<GrGLGetRenderbufferParameterivProc> fGetRenderbufferParameteriv; |
| - GLPtr<GrGLGetShaderInfoLogProc> fGetShaderInfoLog; |
| - GLPtr<GrGLGetShaderivProc> fGetShaderiv; |
| - GLPtr<GrGLGetStringProc> fGetString; |
| - GLPtr<GrGLGetStringiProc> fGetStringi; |
| - GLPtr<GrGLGetTexLevelParameterivProc> fGetTexLevelParameteriv; |
| - GLPtr<GrGLGetUniformLocationProc> fGetUniformLocation; |
| - GLPtr<GrGLLineWidthProc> fLineWidth; |
| - GLPtr<GrGLLinkProgramProc> fLinkProgram; |
| - GLPtr<GrGLLoadIdentityProc> fLoadIdentity; |
| - GLPtr<GrGLLoadMatrixfProc> fLoadMatrixf; |
| - GLPtr<GrGLMapBufferProc> fMapBuffer; |
| - GLPtr<GrGLMatrixModeProc> fMatrixMode; |
| - GLPtr<GrGLPixelStoreiProc> fPixelStorei; |
| - GLPtr<GrGLQueryCounterProc> fQueryCounter; |
| - GLPtr<GrGLReadBufferProc> fReadBuffer; |
| - GLPtr<GrGLReadPixelsProc> fReadPixels; |
| - GLPtr<GrGLRenderbufferStorageProc> fRenderbufferStorage; |
| - |
| - // On OpenGL ES there are multiple incompatible extensions that add support for MSAA |
| - // and ES3 adds MSAA support to the standard. On an ES3 driver we may still use the |
| - // older extensions for performance reasons or due to ES3 driver bugs. We want the function |
| - // that creates the GrGLInterface to provide all available functions and internally |
| - // we will select among them. They all have a method called glRenderbufferStorageMultisample*. |
| - // So we have separate function pointers for GL_IMG/EXT_multisampled_to_texture, |
| - // GL_CHROMIUM/ANGLE_framebuffer_multisample/ES3, and GL_APPLE_framebuffer_multisample |
| - // variations. |
| - // |
| - // If a driver supports multiple GL_ARB_framebuffer_multisample-style extensions then we will |
| - // assume the function pointers for the standard (or equivalent GL_ARB) version have |
| - // been preferred over GL_EXT, GL_CHROMIUM, or GL_ANGLE variations that have reduced |
| - // functionality. |
| - |
| - // GL_EXT_multisampled_render_to_texture (preferred) or GL_IMG_multisampled_render_to_texture |
| - GLPtr<GrGLRenderbufferStorageMultisampleProc> fRenderbufferStorageMultisampleES2EXT; |
| - // GL_APPLE_framebuffer_multisample |
| - GLPtr<GrGLRenderbufferStorageMultisampleProc> fRenderbufferStorageMultisampleES2APPLE; |
| - |
| - // This is used to store the pointer for GL_ARB/EXT/ANGLE/CHROMIUM_framebuffer_multisample or |
| - // the standard function in ES3+ or GL 3.0+. |
| - GLPtr<GrGLRenderbufferStorageMultisampleProc> fRenderbufferStorageMultisample; |
| - |
| - // Pointer to BindUniformLocationCHROMIUM from the GL_CHROMIUM_bind_uniform_location extension. |
| - GLPtr<GrGLBindUniformLocation> fBindUniformLocation; |
| - |
| - GLPtr<GrGLResolveMultisampleFramebufferProc> fResolveMultisampleFramebuffer; |
| - GLPtr<GrGLScissorProc> fScissor; |
| - GLPtr<GrGLShaderSourceProc> fShaderSource; |
| - GLPtr<GrGLStencilFuncProc> fStencilFunc; |
| - GLPtr<GrGLStencilFuncSeparateProc> fStencilFuncSeparate; |
| - GLPtr<GrGLStencilMaskProc> fStencilMask; |
| - GLPtr<GrGLStencilMaskSeparateProc> fStencilMaskSeparate; |
| - GLPtr<GrGLStencilOpProc> fStencilOp; |
| - GLPtr<GrGLStencilOpSeparateProc> fStencilOpSeparate; |
| - GLPtr<GrGLTexGenfProc> fTexGenf; |
| - GLPtr<GrGLTexGenfvProc> fTexGenfv; |
| - GLPtr<GrGLTexGeniProc> fTexGeni; |
| - GLPtr<GrGLTexImage2DProc> fTexImage2D; |
| - GLPtr<GrGLTexParameteriProc> fTexParameteri; |
| - GLPtr<GrGLTexParameterivProc> fTexParameteriv; |
| - GLPtr<GrGLTexSubImage2DProc> fTexSubImage2D; |
| - GLPtr<GrGLTexStorage2DProc> fTexStorage2D; |
| - GLPtr<GrGLDiscardFramebufferProc> fDiscardFramebuffer; |
| - GLPtr<GrGLUniform1fProc> fUniform1f; |
| - GLPtr<GrGLUniform1iProc> fUniform1i; |
| - GLPtr<GrGLUniform1fvProc> fUniform1fv; |
| - GLPtr<GrGLUniform1ivProc> fUniform1iv; |
| - GLPtr<GrGLUniform2fProc> fUniform2f; |
| - GLPtr<GrGLUniform2iProc> fUniform2i; |
| - GLPtr<GrGLUniform2fvProc> fUniform2fv; |
| - GLPtr<GrGLUniform2ivProc> fUniform2iv; |
| - GLPtr<GrGLUniform3fProc> fUniform3f; |
| - GLPtr<GrGLUniform3iProc> fUniform3i; |
| - GLPtr<GrGLUniform3fvProc> fUniform3fv; |
| - GLPtr<GrGLUniform3ivProc> fUniform3iv; |
| - GLPtr<GrGLUniform4fProc> fUniform4f; |
| - GLPtr<GrGLUniform4iProc> fUniform4i; |
| - GLPtr<GrGLUniform4fvProc> fUniform4fv; |
| - GLPtr<GrGLUniform4ivProc> fUniform4iv; |
| - GLPtr<GrGLUniformMatrix2fvProc> fUniformMatrix2fv; |
| - GLPtr<GrGLUniformMatrix3fvProc> fUniformMatrix3fv; |
| - GLPtr<GrGLUniformMatrix4fvProc> fUniformMatrix4fv; |
| - GLPtr<GrGLUnmapBufferProc> fUnmapBuffer; |
| - GLPtr<GrGLUseProgramProc> fUseProgram; |
| - GLPtr<GrGLVertexAttrib4fvProc> fVertexAttrib4fv; |
| - GLPtr<GrGLVertexAttribPointerProc> fVertexAttribPointer; |
| - GLPtr<GrGLVertexPointerProc> fVertexPointer; |
| - GLPtr<GrGLViewportProc> fViewport; |
| - |
| - // Experimental: Functions for GL_NV_path_rendering. These will be |
| - // alphabetized with the above functions once this is fully supported |
| - // (and functions we are unlikely to use will possibly be omitted). |
| - GLPtr<GrGLPathCommandsProc> fPathCommands; |
| - GLPtr<GrGLPathCoordsProc> fPathCoords; |
| - GLPtr<GrGLPathSubCommandsProc> fPathSubCommands; |
| - GLPtr<GrGLPathSubCoordsProc> fPathSubCoords; |
| - GLPtr<GrGLPathStringProc> fPathString; |
| - GLPtr<GrGLPathGlyphsProc> fPathGlyphs; |
| - GLPtr<GrGLPathGlyphRangeProc> fPathGlyphRange; |
| - GLPtr<GrGLWeightPathsProc> fWeightPaths; |
| - GLPtr<GrGLCopyPathProc> fCopyPath; |
| - GLPtr<GrGLInterpolatePathsProc> fInterpolatePaths; |
| - GLPtr<GrGLTransformPathProc> fTransformPath; |
| - GLPtr<GrGLPathParameterivProc> fPathParameteriv; |
| - GLPtr<GrGLPathParameteriProc> fPathParameteri; |
| - GLPtr<GrGLPathParameterfvProc> fPathParameterfv; |
| - GLPtr<GrGLPathParameterfProc> fPathParameterf; |
| - GLPtr<GrGLPathDashArrayProc> fPathDashArray; |
| - GLPtr<GrGLGenPathsProc> fGenPaths; |
| - GLPtr<GrGLDeletePathsProc> fDeletePaths; |
| - GLPtr<GrGLIsPathProc> fIsPath; |
| - GLPtr<GrGLPathStencilFuncProc> fPathStencilFunc; |
| - GLPtr<GrGLPathStencilDepthOffsetProc> fPathStencilDepthOffset; |
| - GLPtr<GrGLStencilFillPathProc> fStencilFillPath; |
| - GLPtr<GrGLStencilStrokePathProc> fStencilStrokePath; |
| - GLPtr<GrGLStencilFillPathInstancedProc> fStencilFillPathInstanced; |
| - GLPtr<GrGLStencilStrokePathInstancedProc> fStencilStrokePathInstanced; |
| - GLPtr<GrGLPathCoverDepthFuncProc> fPathCoverDepthFunc; |
| - GLPtr<GrGLPathColorGenProc> fPathColorGen; |
| - GLPtr<GrGLPathTexGenProc> fPathTexGen; |
| - GLPtr<GrGLPathFogGenProc> fPathFogGen; |
| - GLPtr<GrGLCoverFillPathProc> fCoverFillPath; |
| - GLPtr<GrGLCoverStrokePathProc> fCoverStrokePath; |
| - GLPtr<GrGLCoverFillPathInstancedProc> fCoverFillPathInstanced; |
| - GLPtr<GrGLCoverStrokePathInstancedProc> fCoverStrokePathInstanced; |
| - GLPtr<GrGLGetPathParameterivProc> fGetPathParameteriv; |
| - GLPtr<GrGLGetPathParameterfvProc> fGetPathParameterfv; |
| - GLPtr<GrGLGetPathCommandsProc> fGetPathCommands; |
| - GLPtr<GrGLGetPathCoordsProc> fGetPathCoords; |
| - GLPtr<GrGLGetPathDashArrayProc> fGetPathDashArray; |
| - GLPtr<GrGLGetPathMetricsProc> fGetPathMetrics; |
| - GLPtr<GrGLGetPathMetricRangeProc> fGetPathMetricRange; |
| - GLPtr<GrGLGetPathSpacingProc> fGetPathSpacing; |
| - GLPtr<GrGLGetPathColorGenivProc> fGetPathColorGeniv; |
| - GLPtr<GrGLGetPathColorGenfvProc> fGetPathColorGenfv; |
| - GLPtr<GrGLGetPathTexGenivProc> fGetPathTexGeniv; |
| - GLPtr<GrGLGetPathTexGenfvProc> fGetPathTexGenfv; |
| - GLPtr<GrGLIsPointInFillPathProc> fIsPointInFillPath; |
| - GLPtr<GrGLIsPointInStrokePathProc> fIsPointInStrokePath; |
| - GLPtr<GrGLGetPathLengthProc> fGetPathLength; |
| - GLPtr<GrGLPointAlongPathProc> fPointAlongPath; |
| + struct Functions { |
| + GLPtr<GrGLActiveTextureProc> fActiveTexture; |
| + GLPtr<GrGLAttachShaderProc> fAttachShader; |
| + GLPtr<GrGLBeginQueryProc> fBeginQuery; |
| + GLPtr<GrGLBindAttribLocationProc> fBindAttribLocation; |
| + GLPtr<GrGLBindBufferProc> fBindBuffer; |
| + GLPtr<GrGLBindFragDataLocationProc> fBindFragDataLocation; |
| + GLPtr<GrGLBindFragDataLocationIndexedProc> fBindFragDataLocationIndexed; |
| + GLPtr<GrGLBindFramebufferProc> fBindFramebuffer; |
| + GLPtr<GrGLBindRenderbufferProc> fBindRenderbuffer; |
| + GLPtr<GrGLBindTextureProc> fBindTexture; |
| + GLPtr<GrGLBindVertexArrayProc> fBindVertexArray; |
| + GLPtr<GrGLBlendColorProc> fBlendColor; |
| + GLPtr<GrGLBlendFuncProc> fBlendFunc; |
| + GLPtr<GrGLBlitFramebufferProc> fBlitFramebuffer; |
| + GLPtr<GrGLBufferDataProc> fBufferData; |
| + GLPtr<GrGLBufferSubDataProc> fBufferSubData; |
| + GLPtr<GrGLCheckFramebufferStatusProc> fCheckFramebufferStatus; |
| + GLPtr<GrGLClearProc> fClear; |
| + GLPtr<GrGLClearColorProc> fClearColor; |
| + GLPtr<GrGLClearStencilProc> fClearStencil; |
| + GLPtr<GrGLClientActiveTextureProc> fClientActiveTexture; |
| + GLPtr<GrGLColorMaskProc> fColorMask; |
| + GLPtr<GrGLCompileShaderProc> fCompileShader; |
| + GLPtr<GrGLCompressedTexImage2DProc> fCompressedTexImage2D; |
| + GLPtr<GrGLCopyTexSubImage2DProc> fCopyTexSubImage2D; |
| + GLPtr<GrGLCreateProgramProc> fCreateProgram; |
| + GLPtr<GrGLCreateShaderProc> fCreateShader; |
| + GLPtr<GrGLCullFaceProc> fCullFace; |
| + GLPtr<GrGLDeleteBuffersProc> fDeleteBuffers; |
| + GLPtr<GrGLDeleteFramebuffersProc> fDeleteFramebuffers; |
| + GLPtr<GrGLDeleteProgramProc> fDeleteProgram; |
| + GLPtr<GrGLDeleteQueriesProc> fDeleteQueries; |
| + GLPtr<GrGLDeleteRenderbuffersProc> fDeleteRenderbuffers; |
| + GLPtr<GrGLDeleteShaderProc> fDeleteShader; |
| + GLPtr<GrGLDeleteTexturesProc> fDeleteTextures; |
| + GLPtr<GrGLDeleteVertexArraysProc> fDeleteVertexArrays; |
| + GLPtr<GrGLDepthMaskProc> fDepthMask; |
| + GLPtr<GrGLDisableProc> fDisable; |
| + GLPtr<GrGLDisableClientStateProc> fDisableClientState; |
| + GLPtr<GrGLDisableVertexAttribArrayProc> fDisableVertexAttribArray; |
| + GLPtr<GrGLDrawArraysProc> fDrawArrays; |
| + GLPtr<GrGLDrawBufferProc> fDrawBuffer; |
| + GLPtr<GrGLDrawBuffersProc> fDrawBuffers; |
| + GLPtr<GrGLDrawElementsProc> fDrawElements; |
| + GLPtr<GrGLEnableProc> fEnable; |
| + GLPtr<GrGLEnableClientStateProc> fEnableClientState; |
| + GLPtr<GrGLEnableVertexAttribArrayProc> fEnableVertexAttribArray; |
| + GLPtr<GrGLEndQueryProc> fEndQuery; |
| + GLPtr<GrGLFinishProc> fFinish; |
| + GLPtr<GrGLFlushProc> fFlush; |
| + GLPtr<GrGLFramebufferRenderbufferProc> fFramebufferRenderbuffer; |
| + GLPtr<GrGLFramebufferTexture2DProc> fFramebufferTexture2D; |
| + GLPtr<GrGLFramebufferTexture2DMultisampleProc> fFramebufferTexture2DMultisample; |
| + GLPtr<GrGLFrontFaceProc> fFrontFace; |
| + GLPtr<GrGLGenBuffersProc> fGenBuffers; |
| + GLPtr<GrGLGenFramebuffersProc> fGenFramebuffers; |
| + GLPtr<GrGLGenerateMipmapProc> fGenerateMipmap; |
| + GLPtr<GrGLGenQueriesProc> fGenQueries; |
| + GLPtr<GrGLGenRenderbuffersProc> fGenRenderbuffers; |
| + GLPtr<GrGLGenTexturesProc> fGenTextures; |
| + GLPtr<GrGLGenVertexArraysProc> fGenVertexArrays; |
| + GLPtr<GrGLGetBufferParameterivProc> fGetBufferParameteriv; |
| + GLPtr<GrGLGetErrorProc> fGetError; |
| + GLPtr<GrGLGetFramebufferAttachmentParameterivProc> fGetFramebufferAttachmentParameteriv; |
| + GLPtr<GrGLGetIntegervProc> fGetIntegerv; |
| + GLPtr<GrGLGetQueryObjecti64vProc> fGetQueryObjecti64v; |
| + GLPtr<GrGLGetQueryObjectivProc> fGetQueryObjectiv; |
| + GLPtr<GrGLGetQueryObjectui64vProc> fGetQueryObjectui64v; |
| + GLPtr<GrGLGetQueryObjectuivProc> fGetQueryObjectuiv; |
| + GLPtr<GrGLGetQueryivProc> fGetQueryiv; |
| + GLPtr<GrGLGetProgramInfoLogProc> fGetProgramInfoLog; |
| + GLPtr<GrGLGetProgramivProc> fGetProgramiv; |
| + GLPtr<GrGLGetRenderbufferParameterivProc> fGetRenderbufferParameteriv; |
| + GLPtr<GrGLGetShaderInfoLogProc> fGetShaderInfoLog; |
| + GLPtr<GrGLGetShaderivProc> fGetShaderiv; |
| + GLPtr<GrGLGetStringProc> fGetString; |
| + GLPtr<GrGLGetStringiProc> fGetStringi; |
| + GLPtr<GrGLGetTexLevelParameterivProc> fGetTexLevelParameteriv; |
| + GLPtr<GrGLGetUniformLocationProc> fGetUniformLocation; |
| + GLPtr<GrGLLineWidthProc> fLineWidth; |
| + GLPtr<GrGLLinkProgramProc> fLinkProgram; |
| + GLPtr<GrGLLoadIdentityProc> fLoadIdentity; |
| + GLPtr<GrGLLoadMatrixfProc> fLoadMatrixf; |
| + GLPtr<GrGLMapBufferProc> fMapBuffer; |
| + GLPtr<GrGLMatrixModeProc> fMatrixMode; |
| + GLPtr<GrGLPixelStoreiProc> fPixelStorei; |
| + GLPtr<GrGLQueryCounterProc> fQueryCounter; |
| + GLPtr<GrGLReadBufferProc> fReadBuffer; |
| + GLPtr<GrGLReadPixelsProc> fReadPixels; |
| + GLPtr<GrGLRenderbufferStorageProc> fRenderbufferStorage; |
| + |
| + // On OpenGL ES there are multiple incompatible extensions that add support for MSAA |
| + // and ES3 adds MSAA support to the standard. On an ES3 driver we may still use the |
| + // older extensions for performance reasons or due to ES3 driver bugs. We want the function |
| + // that creates the GrGLInterface to provide all available functions and internally |
| + // we will select among them. They all have a method called glRenderbufferStorageMultisample*. |
| + // So we have separate function pointers for GL_IMG/EXT_multisampled_to_texture, |
| + // GL_CHROMIUM/ANGLE_framebuffer_multisample/ES3, and GL_APPLE_framebuffer_multisample |
| + // variations. |
| + // |
| + // If a driver supports multiple GL_ARB_framebuffer_multisample-style extensions then we will |
| + // assume the function pointers for the standard (or equivalent GL_ARB) version have |
| + // been preferred over GL_EXT, GL_CHROMIUM, or GL_ANGLE variations that have reduced |
| + // functionality. |
| + |
| + // GL_EXT_multisampled_render_to_texture (preferred) or GL_IMG_multisampled_render_to_texture |
| + GLPtr<GrGLRenderbufferStorageMultisampleProc> fRenderbufferStorageMultisampleES2EXT; |
| + // GL_APPLE_framebuffer_multisample |
| + GLPtr<GrGLRenderbufferStorageMultisampleProc> fRenderbufferStorageMultisampleES2APPLE; |
| + |
| + // This is used to store the pointer for GL_ARB/EXT/ANGLE/CHROMIUM_framebuffer_multisample or |
| + // the standard function in ES3+ or GL 3.0+. |
| + GLPtr<GrGLRenderbufferStorageMultisampleProc> fRenderbufferStorageMultisample; |
| + |
| + // Pointer to BindUniformLocationCHROMIUM from the GL_CHROMIUM_bind_uniform_location extension. |
| + GLPtr<GrGLBindUniformLocation> fBindUniformLocation; |
| + |
| + GLPtr<GrGLResolveMultisampleFramebufferProc> fResolveMultisampleFramebuffer; |
| + GLPtr<GrGLScissorProc> fScissor; |
| + GLPtr<GrGLShaderSourceProc> fShaderSource; |
| + GLPtr<GrGLStencilFuncProc> fStencilFunc; |
| + GLPtr<GrGLStencilFuncSeparateProc> fStencilFuncSeparate; |
| + GLPtr<GrGLStencilMaskProc> fStencilMask; |
| + GLPtr<GrGLStencilMaskSeparateProc> fStencilMaskSeparate; |
| + GLPtr<GrGLStencilOpProc> fStencilOp; |
| + GLPtr<GrGLStencilOpSeparateProc> fStencilOpSeparate; |
| + GLPtr<GrGLTexGenfProc> fTexGenf; |
| + GLPtr<GrGLTexGenfvProc> fTexGenfv; |
| + GLPtr<GrGLTexGeniProc> fTexGeni; |
| + GLPtr<GrGLTexImage2DProc> fTexImage2D; |
| + GLPtr<GrGLTexParameteriProc> fTexParameteri; |
| + GLPtr<GrGLTexParameterivProc> fTexParameteriv; |
| + GLPtr<GrGLTexSubImage2DProc> fTexSubImage2D; |
| + GLPtr<GrGLTexStorage2DProc> fTexStorage2D; |
| + GLPtr<GrGLDiscardFramebufferProc> fDiscardFramebuffer; |
| + GLPtr<GrGLUniform1fProc> fUniform1f; |
| + GLPtr<GrGLUniform1iProc> fUniform1i; |
| + GLPtr<GrGLUniform1fvProc> fUniform1fv; |
| + GLPtr<GrGLUniform1ivProc> fUniform1iv; |
| + GLPtr<GrGLUniform2fProc> fUniform2f; |
| + GLPtr<GrGLUniform2iProc> fUniform2i; |
| + GLPtr<GrGLUniform2fvProc> fUniform2fv; |
| + GLPtr<GrGLUniform2ivProc> fUniform2iv; |
| + GLPtr<GrGLUniform3fProc> fUniform3f; |
| + GLPtr<GrGLUniform3iProc> fUniform3i; |
| + GLPtr<GrGLUniform3fvProc> fUniform3fv; |
| + GLPtr<GrGLUniform3ivProc> fUniform3iv; |
| + GLPtr<GrGLUniform4fProc> fUniform4f; |
| + GLPtr<GrGLUniform4iProc> fUniform4i; |
| + GLPtr<GrGLUniform4fvProc> fUniform4fv; |
| + GLPtr<GrGLUniform4ivProc> fUniform4iv; |
| + GLPtr<GrGLUniformMatrix2fvProc> fUniformMatrix2fv; |
| + GLPtr<GrGLUniformMatrix3fvProc> fUniformMatrix3fv; |
| + GLPtr<GrGLUniformMatrix4fvProc> fUniformMatrix4fv; |
| + GLPtr<GrGLUnmapBufferProc> fUnmapBuffer; |
| + GLPtr<GrGLUseProgramProc> fUseProgram; |
| + GLPtr<GrGLVertexAttrib4fvProc> fVertexAttrib4fv; |
| + GLPtr<GrGLVertexAttribPointerProc> fVertexAttribPointer; |
| + GLPtr<GrGLVertexPointerProc> fVertexPointer; |
| + GLPtr<GrGLViewportProc> fViewport; |
| + |
| + // Experimental: Functions for GL_NV_path_rendering. These will be |
| + // alphabetized with the above functions once this is fully supported |
| + // (and functions we are unlikely to use will possibly be omitted). |
| + GLPtr<GrGLPathCommandsProc> fPathCommands; |
| + GLPtr<GrGLPathCoordsProc> fPathCoords; |
| + GLPtr<GrGLPathSubCommandsProc> fPathSubCommands; |
| + GLPtr<GrGLPathSubCoordsProc> fPathSubCoords; |
| + GLPtr<GrGLPathStringProc> fPathString; |
| + GLPtr<GrGLPathGlyphsProc> fPathGlyphs; |
| + GLPtr<GrGLPathGlyphRangeProc> fPathGlyphRange; |
| + GLPtr<GrGLWeightPathsProc> fWeightPaths; |
| + GLPtr<GrGLCopyPathProc> fCopyPath; |
| + GLPtr<GrGLInterpolatePathsProc> fInterpolatePaths; |
| + GLPtr<GrGLTransformPathProc> fTransformPath; |
| + GLPtr<GrGLPathParameterivProc> fPathParameteriv; |
| + GLPtr<GrGLPathParameteriProc> fPathParameteri; |
| + GLPtr<GrGLPathParameterfvProc> fPathParameterfv; |
| + GLPtr<GrGLPathParameterfProc> fPathParameterf; |
| + GLPtr<GrGLPathDashArrayProc> fPathDashArray; |
| + GLPtr<GrGLGenPathsProc> fGenPaths; |
| + GLPtr<GrGLDeletePathsProc> fDeletePaths; |
| + GLPtr<GrGLIsPathProc> fIsPath; |
| + GLPtr<GrGLPathStencilFuncProc> fPathStencilFunc; |
| + GLPtr<GrGLPathStencilDepthOffsetProc> fPathStencilDepthOffset; |
| + GLPtr<GrGLStencilFillPathProc> fStencilFillPath; |
| + GLPtr<GrGLStencilStrokePathProc> fStencilStrokePath; |
| + GLPtr<GrGLStencilFillPathInstancedProc> fStencilFillPathInstanced; |
| + GLPtr<GrGLStencilStrokePathInstancedProc> fStencilStrokePathInstanced; |
| + GLPtr<GrGLPathCoverDepthFuncProc> fPathCoverDepthFunc; |
| + GLPtr<GrGLPathColorGenProc> fPathColorGen; |
| + GLPtr<GrGLPathTexGenProc> fPathTexGen; |
| + GLPtr<GrGLPathFogGenProc> fPathFogGen; |
| + GLPtr<GrGLCoverFillPathProc> fCoverFillPath; |
| + GLPtr<GrGLCoverStrokePathProc> fCoverStrokePath; |
| + GLPtr<GrGLCoverFillPathInstancedProc> fCoverFillPathInstanced; |
| + GLPtr<GrGLCoverStrokePathInstancedProc> fCoverStrokePathInstanced; |
| + GLPtr<GrGLGetPathParameterivProc> fGetPathParameteriv; |
| + GLPtr<GrGLGetPathParameterfvProc> fGetPathParameterfv; |
| + GLPtr<GrGLGetPathCommandsProc> fGetPathCommands; |
| + GLPtr<GrGLGetPathCoordsProc> fGetPathCoords; |
| + GLPtr<GrGLGetPathDashArrayProc> fGetPathDashArray; |
| + GLPtr<GrGLGetPathMetricsProc> fGetPathMetrics; |
| + GLPtr<GrGLGetPathMetricRangeProc> fGetPathMetricRange; |
| + GLPtr<GrGLGetPathSpacingProc> fGetPathSpacing; |
| + GLPtr<GrGLGetPathColorGenivProc> fGetPathColorGeniv; |
| + GLPtr<GrGLGetPathColorGenfvProc> fGetPathColorGenfv; |
| + GLPtr<GrGLGetPathTexGenivProc> fGetPathTexGeniv; |
| + GLPtr<GrGLGetPathTexGenfvProc> fGetPathTexGenfv; |
| + GLPtr<GrGLIsPointInFillPathProc> fIsPointInFillPath; |
| + GLPtr<GrGLIsPointInStrokePathProc> fIsPointInStrokePath; |
| + GLPtr<GrGLGetPathLengthProc> fGetPathLength; |
| + GLPtr<GrGLPointAlongPathProc> fPointAlongPath; |
| + } fFunctions; |
| + |
| + |
| + // Temporary workaround aliases to keep Chromium GrGLInterface factories compiling until they |
| + // assign the members of fFunctions. |
| + GLPtrAlias<GrGLActiveTextureProc> fActiveTexture; |
| + GLPtrAlias<GrGLAttachShaderProc> fAttachShader; |
| + GLPtrAlias<GrGLBeginQueryProc> fBeginQuery; |
| + GLPtrAlias<GrGLBindAttribLocationProc> fBindAttribLocation; |
| + GLPtrAlias<GrGLBindBufferProc> fBindBuffer; |
| + GLPtrAlias<GrGLBindFragDataLocationProc> fBindFragDataLocation; |
| + GLPtrAlias<GrGLBindFragDataLocationIndexedProc> fBindFragDataLocationIndexed; |
| + GLPtrAlias<GrGLBindFramebufferProc> fBindFramebuffer; |
| + GLPtrAlias<GrGLBindRenderbufferProc> fBindRenderbuffer; |
| + GLPtrAlias<GrGLBindTextureProc> fBindTexture; |
| + GLPtrAlias<GrGLBindVertexArrayProc> fBindVertexArray; |
| + GLPtrAlias<GrGLBlendColorProc> fBlendColor; |
| + GLPtrAlias<GrGLBlendFuncProc> fBlendFunc; |
| + GLPtrAlias<GrGLBlitFramebufferProc> fBlitFramebuffer; |
| + GLPtrAlias<GrGLBufferDataProc> fBufferData; |
| + GLPtrAlias<GrGLBufferSubDataProc> fBufferSubData; |
| + GLPtrAlias<GrGLCheckFramebufferStatusProc> fCheckFramebufferStatus; |
| + GLPtrAlias<GrGLClearProc> fClear; |
| + GLPtrAlias<GrGLClearColorProc> fClearColor; |
| + GLPtrAlias<GrGLClearStencilProc> fClearStencil; |
| + GLPtrAlias<GrGLClientActiveTextureProc> fClientActiveTexture; |
| + GLPtrAlias<GrGLColorMaskProc> fColorMask; |
| + GLPtrAlias<GrGLCompileShaderProc> fCompileShader; |
| + GLPtrAlias<GrGLCompressedTexImage2DProc> fCompressedTexImage2D; |
| + GLPtrAlias<GrGLCopyTexSubImage2DProc> fCopyTexSubImage2D; |
| + GLPtrAlias<GrGLCreateProgramProc> fCreateProgram; |
| + GLPtrAlias<GrGLCreateShaderProc> fCreateShader; |
| + GLPtrAlias<GrGLCullFaceProc> fCullFace; |
| + GLPtrAlias<GrGLDeleteBuffersProc> fDeleteBuffers; |
| + GLPtrAlias<GrGLDeleteFramebuffersProc> fDeleteFramebuffers; |
| + GLPtrAlias<GrGLDeleteProgramProc> fDeleteProgram; |
| + GLPtrAlias<GrGLDeleteQueriesProc> fDeleteQueries; |
| + GLPtrAlias<GrGLDeleteRenderbuffersProc> fDeleteRenderbuffers; |
| + GLPtrAlias<GrGLDeleteShaderProc> fDeleteShader; |
| + GLPtrAlias<GrGLDeleteTexturesProc> fDeleteTextures; |
| + GLPtrAlias<GrGLDeleteVertexArraysProc> fDeleteVertexArrays; |
| + GLPtrAlias<GrGLDepthMaskProc> fDepthMask; |
| + GLPtrAlias<GrGLDisableProc> fDisable; |
| + GLPtrAlias<GrGLDisableClientStateProc> fDisableClientState; |
| + GLPtrAlias<GrGLDisableVertexAttribArrayProc> fDisableVertexAttribArray; |
| + GLPtrAlias<GrGLDrawArraysProc> fDrawArrays; |
| + GLPtrAlias<GrGLDrawBufferProc> fDrawBuffer; |
| + GLPtrAlias<GrGLDrawBuffersProc> fDrawBuffers; |
| + GLPtrAlias<GrGLDrawElementsProc> fDrawElements; |
| + GLPtrAlias<GrGLEnableProc> fEnable; |
| + GLPtrAlias<GrGLEnableClientStateProc> fEnableClientState; |
| + GLPtrAlias<GrGLEnableVertexAttribArrayProc> fEnableVertexAttribArray; |
| + GLPtrAlias<GrGLEndQueryProc> fEndQuery; |
| + GLPtrAlias<GrGLFinishProc> fFinish; |
| + GLPtrAlias<GrGLFlushProc> fFlush; |
| + GLPtrAlias<GrGLFramebufferRenderbufferProc> fFramebufferRenderbuffer; |
| + GLPtrAlias<GrGLFramebufferTexture2DProc> fFramebufferTexture2D; |
| + GLPtrAlias<GrGLFramebufferTexture2DMultisampleProc> fFramebufferTexture2DMultisample; |
| + GLPtrAlias<GrGLFrontFaceProc> fFrontFace; |
| + GLPtrAlias<GrGLGenBuffersProc> fGenBuffers; |
| + GLPtrAlias<GrGLGenFramebuffersProc> fGenFramebuffers; |
| + GLPtrAlias<GrGLGenerateMipmapProc> fGenerateMipmap; |
| + GLPtrAlias<GrGLGenQueriesProc> fGenQueries; |
| + GLPtrAlias<GrGLGenRenderbuffersProc> fGenRenderbuffers; |
| + GLPtrAlias<GrGLGenTexturesProc> fGenTextures; |
| + GLPtrAlias<GrGLGenVertexArraysProc> fGenVertexArrays; |
| + GLPtrAlias<GrGLGetBufferParameterivProc> fGetBufferParameteriv; |
| + GLPtrAlias<GrGLGetErrorProc> fGetError; |
| + GLPtrAlias<GrGLGetFramebufferAttachmentParameterivProc> fGetFramebufferAttachmentParameteriv; |
| + GLPtrAlias<GrGLGetIntegervProc> fGetIntegerv; |
| + GLPtrAlias<GrGLGetQueryObjecti64vProc> fGetQueryObjecti64v; |
| + GLPtrAlias<GrGLGetQueryObjectivProc> fGetQueryObjectiv; |
| + GLPtrAlias<GrGLGetQueryObjectui64vProc> fGetQueryObjectui64v; |
| + GLPtrAlias<GrGLGetQueryObjectuivProc> fGetQueryObjectuiv; |
| + GLPtrAlias<GrGLGetQueryivProc> fGetQueryiv; |
| + GLPtrAlias<GrGLGetProgramInfoLogProc> fGetProgramInfoLog; |
| + GLPtrAlias<GrGLGetProgramivProc> fGetProgramiv; |
| + GLPtrAlias<GrGLGetRenderbufferParameterivProc> fGetRenderbufferParameteriv; |
| + GLPtrAlias<GrGLGetShaderInfoLogProc> fGetShaderInfoLog; |
| + GLPtrAlias<GrGLGetShaderivProc> fGetShaderiv; |
| + GLPtrAlias<GrGLGetStringProc> fGetString; |
| + GLPtrAlias<GrGLGetStringiProc> fGetStringi; |
| + GLPtrAlias<GrGLGetTexLevelParameterivProc> fGetTexLevelParameteriv; |
| + GLPtrAlias<GrGLGetUniformLocationProc> fGetUniformLocation; |
| + GLPtrAlias<GrGLLineWidthProc> fLineWidth; |
| + GLPtrAlias<GrGLLinkProgramProc> fLinkProgram; |
| + GLPtrAlias<GrGLLoadIdentityProc> fLoadIdentity; |
| + GLPtrAlias<GrGLLoadMatrixfProc> fLoadMatrixf; |
| + GLPtrAlias<GrGLMapBufferProc> fMapBuffer; |
| + GLPtrAlias<GrGLMatrixModeProc> fMatrixMode; |
| + GLPtrAlias<GrGLPixelStoreiProc> fPixelStorei; |
| + GLPtrAlias<GrGLQueryCounterProc> fQueryCounter; |
| + GLPtrAlias<GrGLReadBufferProc> fReadBuffer; |
| + GLPtrAlias<GrGLReadPixelsProc> fReadPixels; |
| + GLPtrAlias<GrGLRenderbufferStorageProc> fRenderbufferStorage; |
| + GLPtrAlias<GrGLRenderbufferStorageMultisampleProc> fRenderbufferStorageMultisampleES2EXT; |
| + GLPtrAlias<GrGLRenderbufferStorageMultisampleProc> fRenderbufferStorageMultisampleES2APPLE; |
| + GLPtrAlias<GrGLRenderbufferStorageMultisampleProc> fRenderbufferStorageMultisample; |
| + GLPtrAlias<GrGLBindUniformLocation> fBindUniformLocation; |
| + GLPtrAlias<GrGLResolveMultisampleFramebufferProc> fResolveMultisampleFramebuffer; |
| + GLPtrAlias<GrGLScissorProc> fScissor; |
| + GLPtrAlias<GrGLShaderSourceProc> fShaderSource; |
| + GLPtrAlias<GrGLStencilFuncProc> fStencilFunc; |
| + GLPtrAlias<GrGLStencilFuncSeparateProc> fStencilFuncSeparate; |
| + GLPtrAlias<GrGLStencilMaskProc> fStencilMask; |
| + GLPtrAlias<GrGLStencilMaskSeparateProc> fStencilMaskSeparate; |
| + GLPtrAlias<GrGLStencilOpProc> fStencilOp; |
| + GLPtrAlias<GrGLStencilOpSeparateProc> fStencilOpSeparate; |
| + GLPtrAlias<GrGLTexGenfProc> fTexGenf; |
| + GLPtrAlias<GrGLTexGenfvProc> fTexGenfv; |
| + GLPtrAlias<GrGLTexGeniProc> fTexGeni; |
| + GLPtrAlias<GrGLTexImage2DProc> fTexImage2D; |
| + GLPtrAlias<GrGLTexParameteriProc> fTexParameteri; |
| + GLPtrAlias<GrGLTexParameterivProc> fTexParameteriv; |
| + GLPtrAlias<GrGLTexSubImage2DProc> fTexSubImage2D; |
| + GLPtrAlias<GrGLTexStorage2DProc> fTexStorage2D; |
| + GLPtrAlias<GrGLDiscardFramebufferProc> fDiscardFramebuffer; |
| + GLPtrAlias<GrGLUniform1fProc> fUniform1f; |
| + GLPtrAlias<GrGLUniform1iProc> fUniform1i; |
| + GLPtrAlias<GrGLUniform1fvProc> fUniform1fv; |
| + GLPtrAlias<GrGLUniform1ivProc> fUniform1iv; |
| + GLPtrAlias<GrGLUniform2fProc> fUniform2f; |
| + GLPtrAlias<GrGLUniform2iProc> fUniform2i; |
| + GLPtrAlias<GrGLUniform2fvProc> fUniform2fv; |
| + GLPtrAlias<GrGLUniform2ivProc> fUniform2iv; |
| + GLPtrAlias<GrGLUniform3fProc> fUniform3f; |
| + GLPtrAlias<GrGLUniform3iProc> fUniform3i; |
| + GLPtrAlias<GrGLUniform3fvProc> fUniform3fv; |
| + GLPtrAlias<GrGLUniform3ivProc> fUniform3iv; |
| + GLPtrAlias<GrGLUniform4fProc> fUniform4f; |
| + GLPtrAlias<GrGLUniform4iProc> fUniform4i; |
| + GLPtrAlias<GrGLUniform4fvProc> fUniform4fv; |
| + GLPtrAlias<GrGLUniform4ivProc> fUniform4iv; |
| + GLPtrAlias<GrGLUniformMatrix2fvProc> fUniformMatrix2fv; |
| + GLPtrAlias<GrGLUniformMatrix3fvProc> fUniformMatrix3fv; |
| + GLPtrAlias<GrGLUniformMatrix4fvProc> fUniformMatrix4fv; |
| + GLPtrAlias<GrGLUnmapBufferProc> fUnmapBuffer; |
| + GLPtrAlias<GrGLUseProgramProc> fUseProgram; |
| + GLPtrAlias<GrGLVertexAttrib4fvProc> fVertexAttrib4fv; |
| + GLPtrAlias<GrGLVertexAttribPointerProc> fVertexAttribPointer; |
| + GLPtrAlias<GrGLVertexPointerProc> fVertexPointer; |
| + GLPtrAlias<GrGLViewportProc> fViewport; |
| + GLPtrAlias<GrGLPathCommandsProc> fPathCommands; |
| + GLPtrAlias<GrGLPathCoordsProc> fPathCoords; |
| + GLPtrAlias<GrGLPathSubCommandsProc> fPathSubCommands; |
| + GLPtrAlias<GrGLPathSubCoordsProc> fPathSubCoords; |
| + GLPtrAlias<GrGLPathStringProc> fPathString; |
| + GLPtrAlias<GrGLPathGlyphsProc> fPathGlyphs; |
| + GLPtrAlias<GrGLPathGlyphRangeProc> fPathGlyphRange; |
| + GLPtrAlias<GrGLWeightPathsProc> fWeightPaths; |
| + GLPtrAlias<GrGLCopyPathProc> fCopyPath; |
| + GLPtrAlias<GrGLInterpolatePathsProc> fInterpolatePaths; |
| + GLPtrAlias<GrGLTransformPathProc> fTransformPath; |
| + GLPtrAlias<GrGLPathParameterivProc> fPathParameteriv; |
| + GLPtrAlias<GrGLPathParameteriProc> fPathParameteri; |
| + GLPtrAlias<GrGLPathParameterfvProc> fPathParameterfv; |
| + GLPtrAlias<GrGLPathParameterfProc> fPathParameterf; |
| + GLPtrAlias<GrGLPathDashArrayProc> fPathDashArray; |
| + GLPtrAlias<GrGLGenPathsProc> fGenPaths; |
| + GLPtrAlias<GrGLDeletePathsProc> fDeletePaths; |
| + GLPtrAlias<GrGLIsPathProc> fIsPath; |
| + GLPtrAlias<GrGLPathStencilFuncProc> fPathStencilFunc; |
| + GLPtrAlias<GrGLPathStencilDepthOffsetProc> fPathStencilDepthOffset; |
| + GLPtrAlias<GrGLStencilFillPathProc> fStencilFillPath; |
| + GLPtrAlias<GrGLStencilStrokePathProc> fStencilStrokePath; |
| + GLPtrAlias<GrGLStencilFillPathInstancedProc> fStencilFillPathInstanced; |
| + GLPtrAlias<GrGLStencilStrokePathInstancedProc> fStencilStrokePathInstanced; |
| + GLPtrAlias<GrGLPathCoverDepthFuncProc> fPathCoverDepthFunc; |
| + GLPtrAlias<GrGLPathColorGenProc> fPathColorGen; |
| + GLPtrAlias<GrGLPathTexGenProc> fPathTexGen; |
| + GLPtrAlias<GrGLPathFogGenProc> fPathFogGen; |
| + GLPtrAlias<GrGLCoverFillPathProc> fCoverFillPath; |
| + GLPtrAlias<GrGLCoverStrokePathProc> fCoverStrokePath; |
| + GLPtrAlias<GrGLCoverFillPathInstancedProc> fCoverFillPathInstanced; |
| + GLPtrAlias<GrGLCoverStrokePathInstancedProc> fCoverStrokePathInstanced; |
| + GLPtrAlias<GrGLGetPathParameterivProc> fGetPathParameteriv; |
| + GLPtrAlias<GrGLGetPathParameterfvProc> fGetPathParameterfv; |
| + GLPtrAlias<GrGLGetPathCommandsProc> fGetPathCommands; |
| + GLPtrAlias<GrGLGetPathCoordsProc> fGetPathCoords; |
| + GLPtrAlias<GrGLGetPathDashArrayProc> fGetPathDashArray; |
| + GLPtrAlias<GrGLGetPathMetricsProc> fGetPathMetrics; |
| + GLPtrAlias<GrGLGetPathMetricRangeProc> fGetPathMetricRange; |
| + GLPtrAlias<GrGLGetPathSpacingProc> fGetPathSpacing; |
| + GLPtrAlias<GrGLGetPathColorGenivProc> fGetPathColorGeniv; |
| + GLPtrAlias<GrGLGetPathColorGenfvProc> fGetPathColorGenfv; |
| + GLPtrAlias<GrGLGetPathTexGenivProc> fGetPathTexGeniv; |
| + GLPtrAlias<GrGLGetPathTexGenfvProc> fGetPathTexGenfv; |
| + GLPtrAlias<GrGLIsPointInFillPathProc> fIsPointInFillPath; |
| + GLPtrAlias<GrGLIsPointInStrokePathProc> fIsPointInStrokePath; |
| + GLPtrAlias<GrGLGetPathLengthProc> fGetPathLength; |
| + GLPtrAlias<GrGLPointAlongPathProc> fPointAlongPath; |
| // Per-GL func callback |
| #if GR_GL_PER_GL_FUNC_CALLBACK |