| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 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 #ifndef GrGLInterface_DEFINED | 8 #ifndef GrGLInterface_DEFINED |
| 9 #define GrGLInterface_DEFINED | 9 #define GrGLInterface_DEFINED |
| 10 | 10 |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 98 * pointers must be valid for the OpenGL context associated with the GrContext. | 98 * pointers must be valid for the OpenGL context associated with the GrContext. |
| 99 * On some platforms, such as Windows, function pointers for OpenGL extensions | 99 * On some platforms, such as Windows, function pointers for OpenGL extensions |
| 100 * may vary between OpenGL contexts. So the caller must be careful to use a | 100 * may vary between OpenGL contexts. So the caller must be careful to use a |
| 101 * GrGLInterface initialized for the correct context. All functions that should | 101 * GrGLInterface initialized for the correct context. All functions that should |
| 102 * be available based on the OpenGL's version and extension string must be | 102 * be available based on the OpenGL's version and extension string must be |
| 103 * non-NULL or GrContext creation will fail. This can be tested with the | 103 * non-NULL or GrContext creation will fail. This can be tested with the |
| 104 * validate() method when the OpenGL context has been made current. | 104 * validate() method when the OpenGL context has been made current. |
| 105 */ | 105 */ |
| 106 struct SK_API GrGLInterface : public SkRefCnt { | 106 struct SK_API GrGLInterface : public SkRefCnt { |
| 107 private: | 107 private: |
| 108 // simple wrapper class that exists only to initialize a pointer to NULL | |
| 109 template <typename FNPTR_TYPE> class GLPtr { | |
| 110 public: | |
| 111 GLPtr() : fPtr(NULL) {} | |
| 112 GLPtr(const GLPtr&) = delete; | |
| 113 GLPtr& operator=(FNPTR_TYPE ptr) { fPtr = ptr; return *this; } | |
| 114 operator FNPTR_TYPE() const { return fPtr; } | |
| 115 private: | |
| 116 FNPTR_TYPE fPtr; | |
| 117 }; | |
| 118 | |
| 119 // This is a temporary workaround to keep Chromium's GrGLInterface factories
compiling until | |
| 120 // they're updated to use the Functions struct. | |
| 121 template <typename FNPTR_TYPE> class GLPtrAlias { | |
| 122 public: | |
| 123 explicit GLPtrAlias(GLPtr<FNPTR_TYPE>* base) : fBase(base) {} | |
| 124 GLPtrAlias(const GLPtrAlias&) = delete; | |
| 125 void operator=(FNPTR_TYPE ptr) { *fBase = ptr; } | |
| 126 private: | |
| 127 GLPtr<FNPTR_TYPE>* fBase; | |
| 128 }; | |
| 129 | |
| 130 typedef SkRefCnt INHERITED; | 108 typedef SkRefCnt INHERITED; |
| 131 | 109 |
| 132 public: | 110 public: |
| 133 GrGLInterface(); | 111 GrGLInterface(); |
| 134 | 112 |
| 135 static GrGLInterface* NewClone(const GrGLInterface*); | 113 static GrGLInterface* NewClone(const GrGLInterface*); |
| 136 | 114 |
| 137 // Validates that the GrGLInterface supports its advertised standard. This m
eans the necessary | 115 // Validates that the GrGLInterface supports its advertised standard. This m
eans the necessary |
| 138 // function pointers have been initialized for both the GL version and any a
dvertised | 116 // function pointers have been initialized for both the GL version and any a
dvertised |
| 139 // extensions. | 117 // extensions. |
| 140 bool validate() const; | 118 bool validate() const; |
| 141 | 119 |
| 142 // Indicates the type of GL implementation | 120 // Indicates the type of GL implementation |
| 143 union { | 121 union { |
| 144 GrGLStandard fStandard; | 122 GrGLStandard fStandard; |
| 145 GrGLStandard fBindingsExported; // Legacy name, will be remove when Chro
mium is updated. | 123 GrGLStandard fBindingsExported; // Legacy name, will be remove when Chro
mium is updated. |
| 146 }; | 124 }; |
| 147 | 125 |
| 148 GrGLExtensions fExtensions; | 126 GrGLExtensions fExtensions; |
| 149 | 127 |
| 150 bool hasExtension(const char ext[]) const { return fExtensions.has(ext); } | 128 bool hasExtension(const char ext[]) const { return fExtensions.has(ext); } |
| 151 | 129 |
| 152 /** | 130 /** |
| 153 * The function pointers are in a struct so that we can have a compiler gene
rated assignment | 131 * The function pointers are in a struct so that we can have a compiler gene
rated assignment |
| 154 * operator. | 132 * operator. |
| 155 */ | 133 */ |
| 156 struct Functions { | 134 struct Functions { |
| 157 GLPtr<GrGLActiveTextureProc> fActiveTexture; | 135 GrGLFunction<GrGLActiveTextureProc> fActiveTexture; |
| 158 GLPtr<GrGLAttachShaderProc> fAttachShader; | 136 GrGLFunction<GrGLAttachShaderProc> fAttachShader; |
| 159 GLPtr<GrGLBeginQueryProc> fBeginQuery; | 137 GrGLFunction<GrGLBeginQueryProc> fBeginQuery; |
| 160 GLPtr<GrGLBindAttribLocationProc> fBindAttribLocation; | 138 GrGLFunction<GrGLBindAttribLocationProc> fBindAttribLocation; |
| 161 GLPtr<GrGLBindBufferProc> fBindBuffer; | 139 GrGLFunction<GrGLBindBufferProc> fBindBuffer; |
| 162 GLPtr<GrGLBindFragDataLocationProc> fBindFragDataLocation; | 140 GrGLFunction<GrGLBindFragDataLocationProc> fBindFragDataLocation; |
| 163 GLPtr<GrGLBindFragDataLocationIndexedProc> fBindFragDataLocationIndexed; | 141 GrGLFunction<GrGLBindFragDataLocationIndexedProc> fBindFragDataLocationI
ndexed; |
| 164 GLPtr<GrGLBindFramebufferProc> fBindFramebuffer; | 142 GrGLFunction<GrGLBindFramebufferProc> fBindFramebuffer; |
| 165 GLPtr<GrGLBindRenderbufferProc> fBindRenderbuffer; | 143 GrGLFunction<GrGLBindRenderbufferProc> fBindRenderbuffer; |
| 166 GLPtr<GrGLBindTextureProc> fBindTexture; | 144 GrGLFunction<GrGLBindTextureProc> fBindTexture; |
| 167 GLPtr<GrGLBindVertexArrayProc> fBindVertexArray; | 145 GrGLFunction<GrGLBindVertexArrayProc> fBindVertexArray; |
| 168 GLPtr<GrGLBlendBarrierProc> fBlendBarrier; | 146 GrGLFunction<GrGLBlendBarrierProc> fBlendBarrier; |
| 169 GLPtr<GrGLBlendColorProc> fBlendColor; | 147 GrGLFunction<GrGLBlendColorProc> fBlendColor; |
| 170 GLPtr<GrGLBlendEquationProc> fBlendEquation; | 148 GrGLFunction<GrGLBlendEquationProc> fBlendEquation; |
| 171 GLPtr<GrGLBlendFuncProc> fBlendFunc; | 149 GrGLFunction<GrGLBlendFuncProc> fBlendFunc; |
| 172 GLPtr<GrGLBlitFramebufferProc> fBlitFramebuffer; | 150 GrGLFunction<GrGLBlitFramebufferProc> fBlitFramebuffer; |
| 173 GLPtr<GrGLBufferDataProc> fBufferData; | 151 GrGLFunction<GrGLBufferDataProc> fBufferData; |
| 174 GLPtr<GrGLBufferSubDataProc> fBufferSubData; | 152 GrGLFunction<GrGLBufferSubDataProc> fBufferSubData; |
| 175 GLPtr<GrGLCheckFramebufferStatusProc> fCheckFramebufferStatus; | 153 GrGLFunction<GrGLCheckFramebufferStatusProc> fCheckFramebufferStatus; |
| 176 GLPtr<GrGLClearProc> fClear; | 154 GrGLFunction<GrGLClearProc> fClear; |
| 177 GLPtr<GrGLClearColorProc> fClearColor; | 155 GrGLFunction<GrGLClearColorProc> fClearColor; |
| 178 GLPtr<GrGLClearStencilProc> fClearStencil; | 156 GrGLFunction<GrGLClearStencilProc> fClearStencil; |
| 179 GLPtr<GrGLColorMaskProc> fColorMask; | 157 GrGLFunction<GrGLColorMaskProc> fColorMask; |
| 180 GLPtr<GrGLCompileShaderProc> fCompileShader; | 158 GrGLFunction<GrGLCompileShaderProc> fCompileShader; |
| 181 GLPtr<GrGLCompressedTexImage2DProc> fCompressedTexImage2D; | 159 GrGLFunction<GrGLCompressedTexImage2DProc> fCompressedTexImage2D; |
| 182 GLPtr<GrGLCompressedTexSubImage2DProc> fCompressedTexSubImage2D; | 160 GrGLFunction<GrGLCompressedTexSubImage2DProc> fCompressedTexSubImage2D; |
| 183 GLPtr<GrGLCopyTexSubImage2DProc> fCopyTexSubImage2D; | 161 GrGLFunction<GrGLCopyTexSubImage2DProc> fCopyTexSubImage2D; |
| 184 GLPtr<GrGLCreateProgramProc> fCreateProgram; | 162 GrGLFunction<GrGLCreateProgramProc> fCreateProgram; |
| 185 GLPtr<GrGLCreateShaderProc> fCreateShader; | 163 GrGLFunction<GrGLCreateShaderProc> fCreateShader; |
| 186 GLPtr<GrGLCullFaceProc> fCullFace; | 164 GrGLFunction<GrGLCullFaceProc> fCullFace; |
| 187 GLPtr<GrGLDeleteBuffersProc> fDeleteBuffers; | 165 GrGLFunction<GrGLDeleteBuffersProc> fDeleteBuffers; |
| 188 GLPtr<GrGLDeleteFramebuffersProc> fDeleteFramebuffers; | 166 GrGLFunction<GrGLDeleteFramebuffersProc> fDeleteFramebuffers; |
| 189 GLPtr<GrGLDeleteProgramProc> fDeleteProgram; | 167 GrGLFunction<GrGLDeleteProgramProc> fDeleteProgram; |
| 190 GLPtr<GrGLDeleteQueriesProc> fDeleteQueries; | 168 GrGLFunction<GrGLDeleteQueriesProc> fDeleteQueries; |
| 191 GLPtr<GrGLDeleteRenderbuffersProc> fDeleteRenderbuffers; | 169 GrGLFunction<GrGLDeleteRenderbuffersProc> fDeleteRenderbuffers; |
| 192 GLPtr<GrGLDeleteShaderProc> fDeleteShader; | 170 GrGLFunction<GrGLDeleteShaderProc> fDeleteShader; |
| 193 GLPtr<GrGLDeleteTexturesProc> fDeleteTextures; | 171 GrGLFunction<GrGLDeleteTexturesProc> fDeleteTextures; |
| 194 GLPtr<GrGLDeleteVertexArraysProc> fDeleteVertexArrays; | 172 GrGLFunction<GrGLDeleteVertexArraysProc> fDeleteVertexArrays; |
| 195 GLPtr<GrGLDepthMaskProc> fDepthMask; | 173 GrGLFunction<GrGLDepthMaskProc> fDepthMask; |
| 196 GLPtr<GrGLDisableProc> fDisable; | 174 GrGLFunction<GrGLDisableProc> fDisable; |
| 197 GLPtr<GrGLDisableVertexAttribArrayProc> fDisableVertexAttribArray; | 175 GrGLFunction<GrGLDisableVertexAttribArrayProc> fDisableVertexAttribArray
; |
| 198 GLPtr<GrGLDrawArraysProc> fDrawArrays; | 176 GrGLFunction<GrGLDrawArraysProc> fDrawArrays; |
| 199 GLPtr<GrGLDrawArraysIndirectProc> fDrawArraysIndirect; | 177 GrGLFunction<GrGLDrawArraysIndirectProc> fDrawArraysIndirect; |
| 200 GLPtr<GrGLDrawArraysInstancedProc> fDrawArraysInstanced; | 178 GrGLFunction<GrGLDrawArraysInstancedProc> fDrawArraysInstanced; |
| 201 GLPtr<GrGLDrawBufferProc> fDrawBuffer; | 179 GrGLFunction<GrGLDrawBufferProc> fDrawBuffer; |
| 202 GLPtr<GrGLDrawBuffersProc> fDrawBuffers; | 180 GrGLFunction<GrGLDrawBuffersProc> fDrawBuffers; |
| 203 GLPtr<GrGLDrawElementsProc> fDrawElements; | 181 GrGLFunction<GrGLDrawElementsProc> fDrawElements; |
| 204 GLPtr<GrGLDrawElementsIndirectProc> fDrawElementsIndirect; | 182 GrGLFunction<GrGLDrawElementsIndirectProc> fDrawElementsIndirect; |
| 205 GLPtr<GrGLDrawElementsInstancedProc> fDrawElementsInstanced; | 183 GrGLFunction<GrGLDrawElementsInstancedProc> fDrawElementsInstanced; |
| 206 GLPtr<GrGLEnableProc> fEnable; | 184 GrGLFunction<GrGLEnableProc> fEnable; |
| 207 GLPtr<GrGLEnableVertexAttribArrayProc> fEnableVertexAttribArray; | 185 GrGLFunction<GrGLEnableVertexAttribArrayProc> fEnableVertexAttribArray; |
| 208 GLPtr<GrGLEndQueryProc> fEndQuery; | 186 GrGLFunction<GrGLEndQueryProc> fEndQuery; |
| 209 GLPtr<GrGLFinishProc> fFinish; | 187 GrGLFunction<GrGLFinishProc> fFinish; |
| 210 GLPtr<GrGLFlushProc> fFlush; | 188 GrGLFunction<GrGLFlushProc> fFlush; |
| 211 GLPtr<GrGLFlushMappedBufferRangeProc> fFlushMappedBufferRange; | 189 GrGLFunction<GrGLFlushMappedBufferRangeProc> fFlushMappedBufferRange; |
| 212 GLPtr<GrGLFramebufferRenderbufferProc> fFramebufferRenderbuffer; | 190 GrGLFunction<GrGLFramebufferRenderbufferProc> fFramebufferRenderbuffer; |
| 213 GLPtr<GrGLFramebufferTexture2DProc> fFramebufferTexture2D; | 191 GrGLFunction<GrGLFramebufferTexture2DProc> fFramebufferTexture2D; |
| 214 GLPtr<GrGLFramebufferTexture2DMultisampleProc> fFramebufferTexture2DMult
isample; | 192 GrGLFunction<GrGLFramebufferTexture2DMultisampleProc> fFramebufferTextur
e2DMultisample; |
| 215 GLPtr<GrGLFrontFaceProc> fFrontFace; | 193 GrGLFunction<GrGLFrontFaceProc> fFrontFace; |
| 216 GLPtr<GrGLGenBuffersProc> fGenBuffers; | 194 GrGLFunction<GrGLGenBuffersProc> fGenBuffers; |
| 217 GLPtr<GrGLGenFramebuffersProc> fGenFramebuffers; | 195 GrGLFunction<GrGLGenFramebuffersProc> fGenFramebuffers; |
| 218 GLPtr<GrGLGenerateMipmapProc> fGenerateMipmap; | 196 GrGLFunction<GrGLGenerateMipmapProc> fGenerateMipmap; |
| 219 GLPtr<GrGLGenQueriesProc> fGenQueries; | 197 GrGLFunction<GrGLGenQueriesProc> fGenQueries; |
| 220 GLPtr<GrGLGenRenderbuffersProc> fGenRenderbuffers; | 198 GrGLFunction<GrGLGenRenderbuffersProc> fGenRenderbuffers; |
| 221 GLPtr<GrGLGenTexturesProc> fGenTextures; | 199 GrGLFunction<GrGLGenTexturesProc> fGenTextures; |
| 222 GLPtr<GrGLGenVertexArraysProc> fGenVertexArrays; | 200 GrGLFunction<GrGLGenVertexArraysProc> fGenVertexArrays; |
| 223 GLPtr<GrGLGetBufferParameterivProc> fGetBufferParameteriv; | 201 GrGLFunction<GrGLGetBufferParameterivProc> fGetBufferParameteriv; |
| 224 GLPtr<GrGLGetErrorProc> fGetError; | 202 GrGLFunction<GrGLGetErrorProc> fGetError; |
| 225 GLPtr<GrGLGetFramebufferAttachmentParameterivProc> fGetFramebufferAttach
mentParameteriv; | 203 GrGLFunction<GrGLGetFramebufferAttachmentParameterivProc> fGetFramebuffe
rAttachmentParameteriv; |
| 226 GLPtr<GrGLGetIntegervProc> fGetIntegerv; | 204 GrGLFunction<GrGLGetIntegervProc> fGetIntegerv; |
| 227 GLPtr<GrGLGetQueryObjecti64vProc> fGetQueryObjecti64v; | 205 GrGLFunction<GrGLGetQueryObjecti64vProc> fGetQueryObjecti64v; |
| 228 GLPtr<GrGLGetQueryObjectivProc> fGetQueryObjectiv; | 206 GrGLFunction<GrGLGetQueryObjectivProc> fGetQueryObjectiv; |
| 229 GLPtr<GrGLGetQueryObjectui64vProc> fGetQueryObjectui64v; | 207 GrGLFunction<GrGLGetQueryObjectui64vProc> fGetQueryObjectui64v; |
| 230 GLPtr<GrGLGetQueryObjectuivProc> fGetQueryObjectuiv; | 208 GrGLFunction<GrGLGetQueryObjectuivProc> fGetQueryObjectuiv; |
| 231 GLPtr<GrGLGetQueryivProc> fGetQueryiv; | 209 GrGLFunction<GrGLGetQueryivProc> fGetQueryiv; |
| 232 GLPtr<GrGLGetProgramInfoLogProc> fGetProgramInfoLog; | 210 GrGLFunction<GrGLGetProgramInfoLogProc> fGetProgramInfoLog; |
| 233 GLPtr<GrGLGetProgramivProc> fGetProgramiv; | 211 GrGLFunction<GrGLGetProgramivProc> fGetProgramiv; |
| 234 GLPtr<GrGLGetRenderbufferParameterivProc> fGetRenderbufferParameteriv; | 212 GrGLFunction<GrGLGetRenderbufferParameterivProc> fGetRenderbufferParamet
eriv; |
| 235 GLPtr<GrGLGetShaderInfoLogProc> fGetShaderInfoLog; | 213 GrGLFunction<GrGLGetShaderInfoLogProc> fGetShaderInfoLog; |
| 236 GLPtr<GrGLGetShaderivProc> fGetShaderiv; | 214 GrGLFunction<GrGLGetShaderivProc> fGetShaderiv; |
| 237 GLPtr<GrGLGetShaderPrecisionFormatProc> fGetShaderPrecisionFormat; | 215 GrGLFunction<GrGLGetShaderPrecisionFormatProc> fGetShaderPrecisionFormat
; |
| 238 GLPtr<GrGLGetStringProc> fGetString; | 216 GrGLFunction<GrGLGetStringProc> fGetString; |
| 239 GLPtr<GrGLGetStringiProc> fGetStringi; | 217 GrGLFunction<GrGLGetStringiProc> fGetStringi; |
| 240 GLPtr<GrGLGetTexLevelParameterivProc> fGetTexLevelParameteriv; | 218 GrGLFunction<GrGLGetTexLevelParameterivProc> fGetTexLevelParameteriv; |
| 241 GLPtr<GrGLGetUniformLocationProc> fGetUniformLocation; | 219 GrGLFunction<GrGLGetUniformLocationProc> fGetUniformLocation; |
| 242 GLPtr<GrGLInsertEventMarkerProc> fInsertEventMarker; | 220 GrGLFunction<GrGLInsertEventMarkerProc> fInsertEventMarker; |
| 243 GLPtr<GrGLInvalidateBufferDataProc> fInvalidateBufferData; | 221 GrGLFunction<GrGLInvalidateBufferDataProc> fInvalidateBufferData; |
| 244 GLPtr<GrGLInvalidateBufferSubDataProc> fInvalidateBufferSubData; | 222 GrGLFunction<GrGLInvalidateBufferSubDataProc> fInvalidateBufferSubData; |
| 245 GLPtr<GrGLInvalidateFramebufferProc> fInvalidateFramebuffer; | 223 GrGLFunction<GrGLInvalidateFramebufferProc> fInvalidateFramebuffer; |
| 246 GLPtr<GrGLInvalidateSubFramebufferProc> fInvalidateSubFramebuffer; | 224 GrGLFunction<GrGLInvalidateSubFramebufferProc> fInvalidateSubFramebuffer
; |
| 247 GLPtr<GrGLInvalidateTexImageProc> fInvalidateTexImage; | 225 GrGLFunction<GrGLInvalidateTexImageProc> fInvalidateTexImage; |
| 248 GLPtr<GrGLInvalidateTexSubImageProc> fInvalidateTexSubImage; | 226 GrGLFunction<GrGLInvalidateTexSubImageProc> fInvalidateTexSubImage; |
| 249 GLPtr<GrGLIsTextureProc> fIsTexture; | 227 GrGLFunction<GrGLIsTextureProc> fIsTexture; |
| 250 GLPtr<GrGLLineWidthProc> fLineWidth; | 228 GrGLFunction<GrGLLineWidthProc> fLineWidth; |
| 251 GLPtr<GrGLLinkProgramProc> fLinkProgram; | 229 GrGLFunction<GrGLLinkProgramProc> fLinkProgram; |
| 252 GLPtr<GrGLMapBufferProc> fMapBuffer; | 230 GrGLFunction<GrGLMapBufferProc> fMapBuffer; |
| 253 GLPtr<GrGLMapBufferRangeProc> fMapBufferRange; | 231 GrGLFunction<GrGLMapBufferRangeProc> fMapBufferRange; |
| 254 GLPtr<GrGLMapBufferSubDataProc> fMapBufferSubData; | 232 GrGLFunction<GrGLMapBufferSubDataProc> fMapBufferSubData; |
| 255 GLPtr<GrGLMapTexSubImage2DProc> fMapTexSubImage2D; | 233 GrGLFunction<GrGLMapTexSubImage2DProc> fMapTexSubImage2D; |
| 256 GLPtr<GrGLPixelStoreiProc> fPixelStorei; | 234 GrGLFunction<GrGLPixelStoreiProc> fPixelStorei; |
| 257 GLPtr<GrGLPopGroupMarkerProc> fPopGroupMarker; | 235 GrGLFunction<GrGLPopGroupMarkerProc> fPopGroupMarker; |
| 258 GLPtr<GrGLPushGroupMarkerProc> fPushGroupMarker; | 236 GrGLFunction<GrGLPushGroupMarkerProc> fPushGroupMarker; |
| 259 GLPtr<GrGLQueryCounterProc> fQueryCounter; | 237 GrGLFunction<GrGLQueryCounterProc> fQueryCounter; |
| 260 GLPtr<GrGLRasterSamplesProc> fRasterSamples; | 238 GrGLFunction<GrGLRasterSamplesProc> fRasterSamples; |
| 261 GLPtr<GrGLReadBufferProc> fReadBuffer; | 239 GrGLFunction<GrGLReadBufferProc> fReadBuffer; |
| 262 GLPtr<GrGLReadPixelsProc> fReadPixels; | 240 GrGLFunction<GrGLReadPixelsProc> fReadPixels; |
| 263 GLPtr<GrGLRenderbufferStorageProc> fRenderbufferStorage; | 241 GrGLFunction<GrGLRenderbufferStorageProc> fRenderbufferStorage; |
| 264 | 242 |
| 265 // On OpenGL ES there are multiple incompatible extensions that add sup
port for MSAA | 243 // On OpenGL ES there are multiple incompatible extensions that add sup
port for MSAA |
| 266 // and ES3 adds MSAA support to the standard. On an ES3 driver we may s
till use the | 244 // and ES3 adds MSAA support to the standard. On an ES3 driver we may s
till use the |
| 267 // older extensions for performance reasons or due to ES3 driver bugs.
We want the function | 245 // older extensions for performance reasons or due to ES3 driver bugs.
We want the function |
| 268 // that creates the GrGLInterface to provide all available functions an
d internally | 246 // that creates the GrGLInterface to provide all available functions an
d internally |
| 269 // we will select among them. They all have a method called glRenderbuf
ferStorageMultisample*. | 247 // we will select among them. They all have a method called glRenderbuf
ferStorageMultisample*. |
| 270 // So we have separate function pointers for GL_IMG/EXT_multisampled_to
_texture, | 248 // So we have separate function pointers for GL_IMG/EXT_multisampled_to
_texture, |
| 271 // GL_CHROMIUM/ANGLE_framebuffer_multisample/ES3, and GL_APPLE_framebuf
fer_multisample | 249 // GL_CHROMIUM/ANGLE_framebuffer_multisample/ES3, and GL_APPLE_framebuf
fer_multisample |
| 272 // variations. | 250 // variations. |
| 273 // | 251 // |
| 274 // If a driver supports multiple GL_ARB_framebuffer_multisample-style e
xtensions then we will | 252 // If a driver supports multiple GL_ARB_framebuffer_multisample-style e
xtensions then we will |
| 275 // assume the function pointers for the standard (or equivalent GL_ARB)
version have | 253 // assume the function pointers for the standard (or equivalent GL_ARB)
version have |
| 276 // been preferred over GL_EXT, GL_CHROMIUM, or GL_ANGLE variations that
have reduced | 254 // been preferred over GL_EXT, GL_CHROMIUM, or GL_ANGLE variations that
have reduced |
| 277 // functionality. | 255 // functionality. |
| 278 | 256 |
| 279 // GL_EXT_multisampled_render_to_texture (preferred) or GL_IMG_multisam
pled_render_to_texture | 257 // GL_EXT_multisampled_render_to_texture (preferred) or GL_IMG_multisam
pled_render_to_texture |
| 280 GLPtr<GrGLRenderbufferStorageMultisampleProc> fRenderbufferStorageMultis
ampleES2EXT; | 258 GrGLFunction<GrGLRenderbufferStorageMultisampleProc> fRenderbufferStorag
eMultisampleES2EXT; |
| 281 // GL_APPLE_framebuffer_multisample | 259 // GL_APPLE_framebuffer_multisample |
| 282 GLPtr<GrGLRenderbufferStorageMultisampleProc> fRenderbufferStorageMultis
ampleES2APPLE; | 260 GrGLFunction<GrGLRenderbufferStorageMultisampleProc> fRenderbufferStorag
eMultisampleES2APPLE; |
| 283 | 261 |
| 284 // This is used to store the pointer for GL_ARB/EXT/ANGLE/CHROMIUM_fram
ebuffer_multisample or | 262 // This is used to store the pointer for GL_ARB/EXT/ANGLE/CHROMIUM_fram
ebuffer_multisample or |
| 285 // the standard function in ES3+ or GL 3.0+. | 263 // the standard function in ES3+ or GL 3.0+. |
| 286 GLPtr<GrGLRenderbufferStorageMultisampleProc> fRenderbufferStorageMultis
ample; | 264 GrGLFunction<GrGLRenderbufferStorageMultisampleProc> fRenderbufferStorag
eMultisample; |
| 287 | 265 |
| 288 // Pointer to BindUniformLocationCHROMIUM from the GL_CHROMIUM_bind_unif
orm_location extension. | 266 // Pointer to BindUniformLocationCHROMIUM from the GL_CHROMIUM_bind_unif
orm_location extension. |
| 289 GLPtr<GrGLBindUniformLocationProc> fBindUniformLocation; | 267 GrGLFunction<GrGLBindUniformLocationProc> fBindUniformLocation; |
| 290 | 268 |
| 291 GLPtr<GrGLResolveMultisampleFramebufferProc> fResolveMultisampleFramebuf
fer; | 269 GrGLFunction<GrGLResolveMultisampleFramebufferProc> fResolveMultisampleF
ramebuffer; |
| 292 GLPtr<GrGLScissorProc> fScissor; | 270 GrGLFunction<GrGLScissorProc> fScissor; |
| 293 GLPtr<GrGLShaderSourceProc> fShaderSource; | 271 GrGLFunction<GrGLShaderSourceProc> fShaderSource; |
| 294 GLPtr<GrGLStencilFuncProc> fStencilFunc; | 272 GrGLFunction<GrGLStencilFuncProc> fStencilFunc; |
| 295 GLPtr<GrGLStencilFuncSeparateProc> fStencilFuncSeparate; | 273 GrGLFunction<GrGLStencilFuncSeparateProc> fStencilFuncSeparate; |
| 296 GLPtr<GrGLStencilMaskProc> fStencilMask; | 274 GrGLFunction<GrGLStencilMaskProc> fStencilMask; |
| 297 GLPtr<GrGLStencilMaskSeparateProc> fStencilMaskSeparate; | 275 GrGLFunction<GrGLStencilMaskSeparateProc> fStencilMaskSeparate; |
| 298 GLPtr<GrGLStencilOpProc> fStencilOp; | 276 GrGLFunction<GrGLStencilOpProc> fStencilOp; |
| 299 GLPtr<GrGLStencilOpSeparateProc> fStencilOpSeparate; | 277 GrGLFunction<GrGLStencilOpSeparateProc> fStencilOpSeparate; |
| 300 GLPtr<GrGLTexImage2DProc> fTexImage2D; | 278 GrGLFunction<GrGLTexImage2DProc> fTexImage2D; |
| 301 GLPtr<GrGLTexParameteriProc> fTexParameteri; | 279 GrGLFunction<GrGLTexParameteriProc> fTexParameteri; |
| 302 GLPtr<GrGLTexParameterivProc> fTexParameteriv; | 280 GrGLFunction<GrGLTexParameterivProc> fTexParameteriv; |
| 303 GLPtr<GrGLTexSubImage2DProc> fTexSubImage2D; | 281 GrGLFunction<GrGLTexSubImage2DProc> fTexSubImage2D; |
| 304 GLPtr<GrGLTexStorage2DProc> fTexStorage2D; | 282 GrGLFunction<GrGLTexStorage2DProc> fTexStorage2D; |
| 305 GLPtr<GrGLTextureBarrierProc> fTextureBarrier; | 283 GrGLFunction<GrGLTextureBarrierProc> fTextureBarrier; |
| 306 GLPtr<GrGLDiscardFramebufferProc> fDiscardFramebuffer; | 284 GrGLFunction<GrGLDiscardFramebufferProc> fDiscardFramebuffer; |
| 307 GLPtr<GrGLUniform1fProc> fUniform1f; | 285 GrGLFunction<GrGLUniform1fProc> fUniform1f; |
| 308 GLPtr<GrGLUniform1iProc> fUniform1i; | 286 GrGLFunction<GrGLUniform1iProc> fUniform1i; |
| 309 GLPtr<GrGLUniform1fvProc> fUniform1fv; | 287 GrGLFunction<GrGLUniform1fvProc> fUniform1fv; |
| 310 GLPtr<GrGLUniform1ivProc> fUniform1iv; | 288 GrGLFunction<GrGLUniform1ivProc> fUniform1iv; |
| 311 GLPtr<GrGLUniform2fProc> fUniform2f; | 289 GrGLFunction<GrGLUniform2fProc> fUniform2f; |
| 312 GLPtr<GrGLUniform2iProc> fUniform2i; | 290 GrGLFunction<GrGLUniform2iProc> fUniform2i; |
| 313 GLPtr<GrGLUniform2fvProc> fUniform2fv; | 291 GrGLFunction<GrGLUniform2fvProc> fUniform2fv; |
| 314 GLPtr<GrGLUniform2ivProc> fUniform2iv; | 292 GrGLFunction<GrGLUniform2ivProc> fUniform2iv; |
| 315 GLPtr<GrGLUniform3fProc> fUniform3f; | 293 GrGLFunction<GrGLUniform3fProc> fUniform3f; |
| 316 GLPtr<GrGLUniform3iProc> fUniform3i; | 294 GrGLFunction<GrGLUniform3iProc> fUniform3i; |
| 317 GLPtr<GrGLUniform3fvProc> fUniform3fv; | 295 GrGLFunction<GrGLUniform3fvProc> fUniform3fv; |
| 318 GLPtr<GrGLUniform3ivProc> fUniform3iv; | 296 GrGLFunction<GrGLUniform3ivProc> fUniform3iv; |
| 319 GLPtr<GrGLUniform4fProc> fUniform4f; | 297 GrGLFunction<GrGLUniform4fProc> fUniform4f; |
| 320 GLPtr<GrGLUniform4iProc> fUniform4i; | 298 GrGLFunction<GrGLUniform4iProc> fUniform4i; |
| 321 GLPtr<GrGLUniform4fvProc> fUniform4fv; | 299 GrGLFunction<GrGLUniform4fvProc> fUniform4fv; |
| 322 GLPtr<GrGLUniform4ivProc> fUniform4iv; | 300 GrGLFunction<GrGLUniform4ivProc> fUniform4iv; |
| 323 GLPtr<GrGLUniformMatrix2fvProc> fUniformMatrix2fv; | 301 GrGLFunction<GrGLUniformMatrix2fvProc> fUniformMatrix2fv; |
| 324 GLPtr<GrGLUniformMatrix3fvProc> fUniformMatrix3fv; | 302 GrGLFunction<GrGLUniformMatrix3fvProc> fUniformMatrix3fv; |
| 325 GLPtr<GrGLUniformMatrix4fvProc> fUniformMatrix4fv; | 303 GrGLFunction<GrGLUniformMatrix4fvProc> fUniformMatrix4fv; |
| 326 GLPtr<GrGLUnmapBufferProc> fUnmapBuffer; | 304 GrGLFunction<GrGLUnmapBufferProc> fUnmapBuffer; |
| 327 GLPtr<GrGLUnmapBufferSubDataProc> fUnmapBufferSubData; | 305 GrGLFunction<GrGLUnmapBufferSubDataProc> fUnmapBufferSubData; |
| 328 GLPtr<GrGLUnmapTexSubImage2DProc> fUnmapTexSubImage2D; | 306 GrGLFunction<GrGLUnmapTexSubImage2DProc> fUnmapTexSubImage2D; |
| 329 GLPtr<GrGLUseProgramProc> fUseProgram; | 307 GrGLFunction<GrGLUseProgramProc> fUseProgram; |
| 330 GLPtr<GrGLVertexAttrib1fProc> fVertexAttrib1f; | 308 GrGLFunction<GrGLVertexAttrib1fProc> fVertexAttrib1f; |
| 331 GLPtr<GrGLVertexAttrib2fvProc> fVertexAttrib2fv; | 309 GrGLFunction<GrGLVertexAttrib2fvProc> fVertexAttrib2fv; |
| 332 GLPtr<GrGLVertexAttrib3fvProc> fVertexAttrib3fv; | 310 GrGLFunction<GrGLVertexAttrib3fvProc> fVertexAttrib3fv; |
| 333 GLPtr<GrGLVertexAttrib4fvProc> fVertexAttrib4fv; | 311 GrGLFunction<GrGLVertexAttrib4fvProc> fVertexAttrib4fv; |
| 334 GLPtr<GrGLVertexAttribDivisorProc> fVertexAttribDivisor; | 312 GrGLFunction<GrGLVertexAttribDivisorProc> fVertexAttribDivisor; |
| 335 GLPtr<GrGLVertexAttribPointerProc> fVertexAttribPointer; | 313 GrGLFunction<GrGLVertexAttribPointerProc> fVertexAttribPointer; |
| 336 GLPtr<GrGLViewportProc> fViewport; | 314 GrGLFunction<GrGLViewportProc> fViewport; |
| 337 | 315 |
| 338 /* GL_NV_path_rendering */ | 316 /* GL_NV_path_rendering */ |
| 339 GLPtr<GrGLMatrixLoadfProc> fMatrixLoadf; | 317 GrGLFunction<GrGLMatrixLoadfProc> fMatrixLoadf; |
| 340 GLPtr<GrGLMatrixLoadIdentityProc> fMatrixLoadIdentity; | 318 GrGLFunction<GrGLMatrixLoadIdentityProc> fMatrixLoadIdentity; |
| 341 GLPtr<GrGLGetProgramResourceLocationProc> fGetProgramResourceLocation; | 319 GrGLFunction<GrGLGetProgramResourceLocationProc> fGetProgramResourceLoca
tion; |
| 342 GLPtr<GrGLPathCommandsProc> fPathCommands; | 320 GrGLFunction<GrGLPathCommandsProc> fPathCommands; |
| 343 GLPtr<GrGLPathParameteriProc> fPathParameteri; | 321 GrGLFunction<GrGLPathParameteriProc> fPathParameteri; |
| 344 GLPtr<GrGLPathParameterfProc> fPathParameterf; | 322 GrGLFunction<GrGLPathParameterfProc> fPathParameterf; |
| 345 GLPtr<GrGLGenPathsProc> fGenPaths; | 323 GrGLFunction<GrGLGenPathsProc> fGenPaths; |
| 346 GLPtr<GrGLDeletePathsProc> fDeletePaths; | 324 GrGLFunction<GrGLDeletePathsProc> fDeletePaths; |
| 347 GLPtr<GrGLIsPathProc> fIsPath; | 325 GrGLFunction<GrGLIsPathProc> fIsPath; |
| 348 GLPtr<GrGLPathStencilFuncProc> fPathStencilFunc; | 326 GrGLFunction<GrGLPathStencilFuncProc> fPathStencilFunc; |
| 349 GLPtr<GrGLStencilFillPathProc> fStencilFillPath; | 327 GrGLFunction<GrGLStencilFillPathProc> fStencilFillPath; |
| 350 GLPtr<GrGLStencilStrokePathProc> fStencilStrokePath; | 328 GrGLFunction<GrGLStencilStrokePathProc> fStencilStrokePath; |
| 351 GLPtr<GrGLStencilFillPathInstancedProc> fStencilFillPathInstanced; | 329 GrGLFunction<GrGLStencilFillPathInstancedProc> fStencilFillPathInstanced
; |
| 352 GLPtr<GrGLStencilStrokePathInstancedProc> fStencilStrokePathInstanced; | 330 GrGLFunction<GrGLStencilStrokePathInstancedProc> fStencilStrokePathInsta
nced; |
| 353 GLPtr<GrGLCoverFillPathProc> fCoverFillPath; | 331 GrGLFunction<GrGLCoverFillPathProc> fCoverFillPath; |
| 354 GLPtr<GrGLCoverStrokePathProc> fCoverStrokePath; | 332 GrGLFunction<GrGLCoverStrokePathProc> fCoverStrokePath; |
| 355 GLPtr<GrGLCoverFillPathInstancedProc> fCoverFillPathInstanced; | 333 GrGLFunction<GrGLCoverFillPathInstancedProc> fCoverFillPathInstanced; |
| 356 GLPtr<GrGLCoverStrokePathInstancedProc> fCoverStrokePathInstanced; | 334 GrGLFunction<GrGLCoverStrokePathInstancedProc> fCoverStrokePathInstanced
; |
| 357 // NV_path_rendering v1.2 | 335 // NV_path_rendering v1.2 |
| 358 GLPtr<GrGLStencilThenCoverFillPathProc> fStencilThenCoverFillPath; | 336 GrGLFunction<GrGLStencilThenCoverFillPathProc> fStencilThenCoverFillPath
; |
| 359 GLPtr<GrGLStencilThenCoverStrokePathProc> fStencilThenCoverStrokePath; | 337 GrGLFunction<GrGLStencilThenCoverStrokePathProc> fStencilThenCoverStroke
Path; |
| 360 GLPtr<GrGLStencilThenCoverFillPathInstancedProc> fStencilThenCoverFillPa
thInstanced; | 338 GrGLFunction<GrGLStencilThenCoverFillPathInstancedProc> fStencilThenCove
rFillPathInstanced; |
| 361 GLPtr<GrGLStencilThenCoverStrokePathInstancedProc> fStencilThenCoverStro
kePathInstanced; | 339 GrGLFunction<GrGLStencilThenCoverStrokePathInstancedProc> fStencilThenCo
verStrokePathInstanced; |
| 362 // NV_path_rendering v1.3 | 340 // NV_path_rendering v1.3 |
| 363 GLPtr<GrGLProgramPathFragmentInputGenProc> fProgramPathFragmentInputGen; | 341 GrGLFunction<GrGLProgramPathFragmentInputGenProc> fProgramPathFragmentIn
putGen; |
| 364 // CHROMIUM_path_rendering | 342 // CHROMIUM_path_rendering |
| 365 GLPtr<GrGLBindFragmentInputLocationProc> fBindFragmentInputLocation; | 343 GrGLFunction<GrGLBindFragmentInputLocationProc> fBindFragmentInputLocati
on; |
| 366 | 344 |
| 367 /* NV_framebuffer_mixed_samples */ | 345 /* NV_framebuffer_mixed_samples */ |
| 368 GLPtr<GrGLCoverageModulationProc> fCoverageModulation; | 346 GrGLFunction<GrGLCoverageModulationProc> fCoverageModulation; |
| 369 | 347 |
| 370 /* EXT_multi_draw_indirect */ | 348 /* EXT_multi_draw_indirect */ |
| 371 GLPtr<GrGLMultiDrawArraysIndirectProc> fMultiDrawArraysIndirect; | 349 GrGLFunction<GrGLMultiDrawArraysIndirectProc> fMultiDrawArraysIndirect; |
| 372 GLPtr<GrGLMultiDrawElementsIndirectProc> fMultiDrawElementsIndirect; | 350 GrGLFunction<GrGLMultiDrawElementsIndirectProc> fMultiDrawElementsIndire
ct; |
| 373 | 351 |
| 374 /* NV_bindless_texture */ | 352 /* NV_bindless_texture */ |
| 375 // We use the NVIDIA verson for now because it does not require dynamica
lly uniform handles. | 353 // We use the NVIDIA verson for now because it does not require dynamica
lly uniform handles. |
| 376 // We may switch the the ARB version and/or omit methods in the future. | 354 // We may switch the the ARB version and/or omit methods in the future. |
| 377 GLPtr<GrGLGetTextureHandleProc> fGetTextureHandle; | 355 GrGLFunction<GrGLGetTextureHandleProc> fGetTextureHandle; |
| 378 GLPtr<GrGLGetTextureSamplerHandleProc> fGetTextureSamplerHandle; | 356 GrGLFunction<GrGLGetTextureSamplerHandleProc> fGetTextureSamplerHandle; |
| 379 GLPtr<GrGLMakeTextureHandleResidentProc> fMakeTextureHandleResident; | 357 GrGLFunction<GrGLMakeTextureHandleResidentProc> fMakeTextureHandleReside
nt; |
| 380 GLPtr<GrGLMakeTextureHandleNonResidentProc> fMakeTextureHandleNonResiden
t; | 358 GrGLFunction<GrGLMakeTextureHandleNonResidentProc> fMakeTextureHandleNon
Resident; |
| 381 GLPtr<GrGLGetImageHandleProc> fGetImageHandle; | 359 GrGLFunction<GrGLGetImageHandleProc> fGetImageHandle; |
| 382 GLPtr<GrGLMakeImageHandleResidentProc> fMakeImageHandleResident; | 360 GrGLFunction<GrGLMakeImageHandleResidentProc> fMakeImageHandleResident; |
| 383 GLPtr<GrGLMakeImageHandleNonResidentProc> fMakeImageHandleNonResident; | 361 GrGLFunction<GrGLMakeImageHandleNonResidentProc> fMakeImageHandleNonResi
dent; |
| 384 GLPtr<GrGLIsTextureHandleResidentProc> fIsTextureHandleResident; | 362 GrGLFunction<GrGLIsTextureHandleResidentProc> fIsTextureHandleResident; |
| 385 GLPtr<GrGLIsImageHandleResidentProc> fIsImageHandleResident; | 363 GrGLFunction<GrGLIsImageHandleResidentProc> fIsImageHandleResident; |
| 386 GLPtr<GrGLUniformHandleui64Proc> fUniformHandleui64; | 364 GrGLFunction<GrGLUniformHandleui64Proc> fUniformHandleui64; |
| 387 GLPtr<GrGLUniformHandleui64vProc> fUniformHandleui64v; | 365 GrGLFunction<GrGLUniformHandleui64vProc> fUniformHandleui64v; |
| 388 GLPtr<GrGLProgramUniformHandleui64Proc> fProgramUniformHandleui64; | 366 GrGLFunction<GrGLProgramUniformHandleui64Proc> fProgramUniformHandleui64
; |
| 389 GLPtr<GrGLProgramUniformHandleui64vProc> fProgramUniformHandleui64v; | 367 GrGLFunction<GrGLProgramUniformHandleui64vProc> fProgramUniformHandleui6
4v; |
| 390 | 368 |
| 391 /* EXT_direct_state_access */ | 369 /* EXT_direct_state_access */ |
| 392 // We use the EXT verson because it is more expansive and interacts with
more extensions | 370 // We use the EXT verson because it is more expansive and interacts with
more extensions |
| 393 // than the ARB or core (4.5) versions. We may switch and/or omit method
s in the future. | 371 // than the ARB or core (4.5) versions. We may switch and/or omit method
s in the future. |
| 394 GLPtr<GrGLTextureParameteriProc> fTextureParameteri; | 372 GrGLFunction<GrGLTextureParameteriProc> fTextureParameteri; |
| 395 GLPtr<GrGLTextureParameterivProc> fTextureParameteriv; | 373 GrGLFunction<GrGLTextureParameterivProc> fTextureParameteriv; |
| 396 GLPtr<GrGLTextureParameterfProc> fTextureParameterf; | 374 GrGLFunction<GrGLTextureParameterfProc> fTextureParameterf; |
| 397 GLPtr<GrGLTextureParameterfvProc> fTextureParameterfv; | 375 GrGLFunction<GrGLTextureParameterfvProc> fTextureParameterfv; |
| 398 GLPtr<GrGLTextureImage1DProc> fTextureImage1D; | 376 GrGLFunction<GrGLTextureImage1DProc> fTextureImage1D; |
| 399 GLPtr<GrGLTextureImage2DProc> fTextureImage2D; | 377 GrGLFunction<GrGLTextureImage2DProc> fTextureImage2D; |
| 400 GLPtr<GrGLTextureSubImage1DProc> fTextureSubImage1D; | 378 GrGLFunction<GrGLTextureSubImage1DProc> fTextureSubImage1D; |
| 401 GLPtr<GrGLTextureSubImage2DProc> fTextureSubImage2D; | 379 GrGLFunction<GrGLTextureSubImage2DProc> fTextureSubImage2D; |
| 402 GLPtr<GrGLCopyTextureImage1DProc> fCopyTextureImage1D; | 380 GrGLFunction<GrGLCopyTextureImage1DProc> fCopyTextureImage1D; |
| 403 GLPtr<GrGLCopyTextureImage2DProc> fCopyTextureImage2D; | 381 GrGLFunction<GrGLCopyTextureImage2DProc> fCopyTextureImage2D; |
| 404 GLPtr<GrGLCopyTextureSubImage1DProc> fCopyTextureSubImage1D; | 382 GrGLFunction<GrGLCopyTextureSubImage1DProc> fCopyTextureSubImage1D; |
| 405 GLPtr<GrGLCopyTextureSubImage2DProc> fCopyTextureSubImage2D; | 383 GrGLFunction<GrGLCopyTextureSubImage2DProc> fCopyTextureSubImage2D; |
| 406 GLPtr<GrGLGetTextureImageProc> fGetTextureImage; | 384 GrGLFunction<GrGLGetTextureImageProc> fGetTextureImage; |
| 407 GLPtr<GrGLGetTextureParameterfvProc> fGetTextureParameterfv; | 385 GrGLFunction<GrGLGetTextureParameterfvProc> fGetTextureParameterfv; |
| 408 GLPtr<GrGLGetTextureParameterivProc> fGetTextureParameteriv; | 386 GrGLFunction<GrGLGetTextureParameterivProc> fGetTextureParameteriv; |
| 409 GLPtr<GrGLGetTextureLevelParameterfvProc> fGetTextureLevelParameterfv; | 387 GrGLFunction<GrGLGetTextureLevelParameterfvProc> fGetTextureLevelParamet
erfv; |
| 410 GLPtr<GrGLGetTextureLevelParameterivProc> fGetTextureLevelParameteriv; | 388 GrGLFunction<GrGLGetTextureLevelParameterivProc> fGetTextureLevelParamet
eriv; |
| 411 // OpenGL 1.2 | 389 // OpenGL 1.2 |
| 412 GLPtr<GrGLTextureImage3DProc> fTextureImage3D; | 390 GrGLFunction<GrGLTextureImage3DProc> fTextureImage3D; |
| 413 GLPtr<GrGLTextureSubImage3DProc> fTextureSubImage3D; | 391 GrGLFunction<GrGLTextureSubImage3DProc> fTextureSubImage3D; |
| 414 GLPtr<GrGLCopyTextureSubImage3DProc> fCopyTextureSubImage3D; | 392 GrGLFunction<GrGLCopyTextureSubImage3DProc> fCopyTextureSubImage3D; |
| 415 GLPtr<GrGLCompressedTextureImage3DProc> fCompressedTextureImage3D; | 393 GrGLFunction<GrGLCompressedTextureImage3DProc> fCompressedTextureImage3D
; |
| 416 GLPtr<GrGLCompressedTextureImage2DProc> fCompressedTextureImage2D; | 394 GrGLFunction<GrGLCompressedTextureImage2DProc> fCompressedTextureImage2D
; |
| 417 GLPtr<GrGLCompressedTextureImage1DProc> fCompressedTextureImage1D; | 395 GrGLFunction<GrGLCompressedTextureImage1DProc> fCompressedTextureImage1D
; |
| 418 GLPtr<GrGLCompressedTextureSubImage3DProc> fCompressedTextureSubImage3D; | 396 GrGLFunction<GrGLCompressedTextureSubImage3DProc> fCompressedTextureSubI
mage3D; |
| 419 GLPtr<GrGLCompressedTextureSubImage2DProc> fCompressedTextureSubImage2D; | 397 GrGLFunction<GrGLCompressedTextureSubImage2DProc> fCompressedTextureSubI
mage2D; |
| 420 GLPtr<GrGLCompressedTextureSubImage1DProc> fCompressedTextureSubImage1D; | 398 GrGLFunction<GrGLCompressedTextureSubImage1DProc> fCompressedTextureSubI
mage1D; |
| 421 GLPtr<GrGLGetCompressedTextureImageProc> fGetCompressedTextureImage; | 399 GrGLFunction<GrGLGetCompressedTextureImageProc> fGetCompressedTextureIma
ge; |
| 422 // OpenGL 1.5 | 400 // OpenGL 1.5 |
| 423 GLPtr<GrGLNamedBufferDataProc> fNamedBufferData; | 401 GrGLFunction<GrGLNamedBufferDataProc> fNamedBufferData; |
| 424 GLPtr<GrGLNamedBufferSubDataProc> fNamedBufferSubData; | 402 GrGLFunction<GrGLNamedBufferSubDataProc> fNamedBufferSubData; |
| 425 GLPtr<GrGLMapNamedBufferProc> fMapNamedBuffer; | 403 GrGLFunction<GrGLMapNamedBufferProc> fMapNamedBuffer; |
| 426 GLPtr<GrGLUnmapNamedBufferProc> fUnmapNamedBuffer; | 404 GrGLFunction<GrGLUnmapNamedBufferProc> fUnmapNamedBuffer; |
| 427 GLPtr<GrGLGetNamedBufferParameterivProc> fGetNamedBufferParameteriv; | 405 GrGLFunction<GrGLGetNamedBufferParameterivProc> fGetNamedBufferParameter
iv; |
| 428 GLPtr<GrGLGetNamedBufferPointervProc> fGetNamedBufferPointerv; | 406 GrGLFunction<GrGLGetNamedBufferPointervProc> fGetNamedBufferPointerv; |
| 429 GLPtr<GrGLGetNamedBufferSubDataProc> fGetNamedBufferSubData; | 407 GrGLFunction<GrGLGetNamedBufferSubDataProc> fGetNamedBufferSubData; |
| 430 // OpenGL 2.0 | 408 // OpenGL 2.0 |
| 431 GLPtr<GrGLProgramUniform1fProc> fProgramUniform1f; | 409 GrGLFunction<GrGLProgramUniform1fProc> fProgramUniform1f; |
| 432 GLPtr<GrGLProgramUniform2fProc> fProgramUniform2f; | 410 GrGLFunction<GrGLProgramUniform2fProc> fProgramUniform2f; |
| 433 GLPtr<GrGLProgramUniform3fProc> fProgramUniform3f; | 411 GrGLFunction<GrGLProgramUniform3fProc> fProgramUniform3f; |
| 434 GLPtr<GrGLProgramUniform4fProc> fProgramUniform4f; | 412 GrGLFunction<GrGLProgramUniform4fProc> fProgramUniform4f; |
| 435 GLPtr<GrGLProgramUniform1iProc> fProgramUniform1i; | 413 GrGLFunction<GrGLProgramUniform1iProc> fProgramUniform1i; |
| 436 GLPtr<GrGLProgramUniform2iProc> fProgramUniform2i; | 414 GrGLFunction<GrGLProgramUniform2iProc> fProgramUniform2i; |
| 437 GLPtr<GrGLProgramUniform3iProc> fProgramUniform3i; | 415 GrGLFunction<GrGLProgramUniform3iProc> fProgramUniform3i; |
| 438 GLPtr<GrGLProgramUniform4iProc> fProgramUniform4i; | 416 GrGLFunction<GrGLProgramUniform4iProc> fProgramUniform4i; |
| 439 GLPtr<GrGLProgramUniform1fvProc> fProgramUniform1fv; | 417 GrGLFunction<GrGLProgramUniform1fvProc> fProgramUniform1fv; |
| 440 GLPtr<GrGLProgramUniform2fvProc> fProgramUniform2fv; | 418 GrGLFunction<GrGLProgramUniform2fvProc> fProgramUniform2fv; |
| 441 GLPtr<GrGLProgramUniform3fvProc> fProgramUniform3fv; | 419 GrGLFunction<GrGLProgramUniform3fvProc> fProgramUniform3fv; |
| 442 GLPtr<GrGLProgramUniform4fvProc> fProgramUniform4fv; | 420 GrGLFunction<GrGLProgramUniform4fvProc> fProgramUniform4fv; |
| 443 GLPtr<GrGLProgramUniform1ivProc> fProgramUniform1iv; | 421 GrGLFunction<GrGLProgramUniform1ivProc> fProgramUniform1iv; |
| 444 GLPtr<GrGLProgramUniform2ivProc> fProgramUniform2iv; | 422 GrGLFunction<GrGLProgramUniform2ivProc> fProgramUniform2iv; |
| 445 GLPtr<GrGLProgramUniform3ivProc> fProgramUniform3iv; | 423 GrGLFunction<GrGLProgramUniform3ivProc> fProgramUniform3iv; |
| 446 GLPtr<GrGLProgramUniform4ivProc> fProgramUniform4iv; | 424 GrGLFunction<GrGLProgramUniform4ivProc> fProgramUniform4iv; |
| 447 GLPtr<GrGLProgramUniformMatrix2fvProc> fProgramUniformMatrix2fv; | 425 GrGLFunction<GrGLProgramUniformMatrix2fvProc> fProgramUniformMatrix2fv; |
| 448 GLPtr<GrGLProgramUniformMatrix3fvProc> fProgramUniformMatrix3fv; | 426 GrGLFunction<GrGLProgramUniformMatrix3fvProc> fProgramUniformMatrix3fv; |
| 449 GLPtr<GrGLProgramUniformMatrix4fvProc> fProgramUniformMatrix4fv; | 427 GrGLFunction<GrGLProgramUniformMatrix4fvProc> fProgramUniformMatrix4fv; |
| 450 // OpenGL 2.1 | 428 // OpenGL 2.1 |
| 451 GLPtr<GrGLProgramUniformMatrix2x3fvProc> fProgramUniformMatrix2x3fv; | 429 GrGLFunction<GrGLProgramUniformMatrix2x3fvProc> fProgramUniformMatrix2x3
fv; |
| 452 GLPtr<GrGLProgramUniformMatrix3x2fvProc> fProgramUniformMatrix3x2fv; | 430 GrGLFunction<GrGLProgramUniformMatrix3x2fvProc> fProgramUniformMatrix3x2
fv; |
| 453 GLPtr<GrGLProgramUniformMatrix2x4fvProc> fProgramUniformMatrix2x4fv; | 431 GrGLFunction<GrGLProgramUniformMatrix2x4fvProc> fProgramUniformMatrix2x4
fv; |
| 454 GLPtr<GrGLProgramUniformMatrix4x2fvProc> fProgramUniformMatrix4x2fv; | 432 GrGLFunction<GrGLProgramUniformMatrix4x2fvProc> fProgramUniformMatrix4x2
fv; |
| 455 GLPtr<GrGLProgramUniformMatrix3x4fvProc> fProgramUniformMatrix3x4fv; | 433 GrGLFunction<GrGLProgramUniformMatrix3x4fvProc> fProgramUniformMatrix3x4
fv; |
| 456 GLPtr<GrGLProgramUniformMatrix4x3fvProc> fProgramUniformMatrix4x3fv; | 434 GrGLFunction<GrGLProgramUniformMatrix4x3fvProc> fProgramUniformMatrix4x3
fv; |
| 457 // OpenGL 3.0 | 435 // OpenGL 3.0 |
| 458 GLPtr<GrGLNamedRenderbufferStorageProc> fNamedRenderbufferStorage; | 436 GrGLFunction<GrGLNamedRenderbufferStorageProc> fNamedRenderbufferStorage
; |
| 459 GLPtr<GrGLGetNamedRenderbufferParameterivProc> fGetNamedRenderbufferPara
meteriv; | 437 GrGLFunction<GrGLGetNamedRenderbufferParameterivProc> fGetNamedRenderbuf
ferParameteriv; |
| 460 GLPtr<GrGLNamedRenderbufferStorageMultisampleProc> fNamedRenderbufferSto
rageMultisample; | 438 GrGLFunction<GrGLNamedRenderbufferStorageMultisampleProc> fNamedRenderbu
fferStorageMultisample; |
| 461 GLPtr<GrGLCheckNamedFramebufferStatusProc> fCheckNamedFramebufferStatus; | 439 GrGLFunction<GrGLCheckNamedFramebufferStatusProc> fCheckNamedFramebuffer
Status; |
| 462 GLPtr<GrGLNamedFramebufferTexture1DProc> fNamedFramebufferTexture1D; | 440 GrGLFunction<GrGLNamedFramebufferTexture1DProc> fNamedFramebufferTexture
1D; |
| 463 GLPtr<GrGLNamedFramebufferTexture2DProc> fNamedFramebufferTexture2D; | 441 GrGLFunction<GrGLNamedFramebufferTexture2DProc> fNamedFramebufferTexture
2D; |
| 464 GLPtr<GrGLNamedFramebufferTexture3DProc> fNamedFramebufferTexture3D; | 442 GrGLFunction<GrGLNamedFramebufferTexture3DProc> fNamedFramebufferTexture
3D; |
| 465 GLPtr<GrGLNamedFramebufferRenderbufferProc> fNamedFramebufferRenderbuffe
r; | 443 GrGLFunction<GrGLNamedFramebufferRenderbufferProc> fNamedFramebufferRend
erbuffer; |
| 466 GLPtr<GrGLGetNamedFramebufferAttachmentParameterivProc> fGetNamedFramebu
fferAttachmentParameteriv; | 444 GrGLFunction<GrGLGetNamedFramebufferAttachmentParameterivProc> fGetNamed
FramebufferAttachmentParameteriv; |
| 467 GLPtr<GrGLGenerateTextureMipmapProc> fGenerateTextureMipmap; | 445 GrGLFunction<GrGLGenerateTextureMipmapProc> fGenerateTextureMipmap; |
| 468 GLPtr<GrGLFramebufferDrawBufferProc> fFramebufferDrawBuffer; | 446 GrGLFunction<GrGLFramebufferDrawBufferProc> fFramebufferDrawBuffer; |
| 469 GLPtr<GrGLFramebufferDrawBuffersProc> fFramebufferDrawBuffers; | 447 GrGLFunction<GrGLFramebufferDrawBuffersProc> fFramebufferDrawBuffers; |
| 470 GLPtr<GrGLFramebufferReadBufferProc> fFramebufferReadBuffer; | 448 GrGLFunction<GrGLFramebufferReadBufferProc> fFramebufferReadBuffer; |
| 471 GLPtr<GrGLGetFramebufferParameterivProc> fGetFramebufferParameteriv; | 449 GrGLFunction<GrGLGetFramebufferParameterivProc> fGetFramebufferParameter
iv; |
| 472 GLPtr<GrGLNamedCopyBufferSubDataProc> fNamedCopyBufferSubData; | 450 GrGLFunction<GrGLNamedCopyBufferSubDataProc> fNamedCopyBufferSubData; |
| 473 GLPtr<GrGLVertexArrayVertexOffsetProc> fVertexArrayVertexOffset; | 451 GrGLFunction<GrGLVertexArrayVertexOffsetProc> fVertexArrayVertexOffset; |
| 474 GLPtr<GrGLVertexArrayColorOffsetProc> fVertexArrayColorOffset; | 452 GrGLFunction<GrGLVertexArrayColorOffsetProc> fVertexArrayColorOffset; |
| 475 GLPtr<GrGLVertexArrayEdgeFlagOffsetProc> fVertexArrayEdgeFlagOffset; | 453 GrGLFunction<GrGLVertexArrayEdgeFlagOffsetProc> fVertexArrayEdgeFlagOffs
et; |
| 476 GLPtr<GrGLVertexArrayIndexOffsetProc> fVertexArrayIndexOffset; | 454 GrGLFunction<GrGLVertexArrayIndexOffsetProc> fVertexArrayIndexOffset; |
| 477 GLPtr<GrGLVertexArrayNormalOffsetProc> fVertexArrayNormalOffset; | 455 GrGLFunction<GrGLVertexArrayNormalOffsetProc> fVertexArrayNormalOffset; |
| 478 GLPtr<GrGLVertexArrayTexCoordOffsetProc> fVertexArrayTexCoordOffset; | 456 GrGLFunction<GrGLVertexArrayTexCoordOffsetProc> fVertexArrayTexCoordOffs
et; |
| 479 GLPtr<GrGLVertexArrayMultiTexCoordOffsetProc> fVertexArrayMultiTexCoordO
ffset; | 457 GrGLFunction<GrGLVertexArrayMultiTexCoordOffsetProc> fVertexArrayMultiTe
xCoordOffset; |
| 480 GLPtr<GrGLVertexArrayFogCoordOffsetProc> fVertexArrayFogCoordOffset; | 458 GrGLFunction<GrGLVertexArrayFogCoordOffsetProc> fVertexArrayFogCoordOffs
et; |
| 481 GLPtr<GrGLVertexArraySecondaryColorOffsetProc> fVertexArraySecondaryColo
rOffset; | 459 GrGLFunction<GrGLVertexArraySecondaryColorOffsetProc> fVertexArraySecond
aryColorOffset; |
| 482 GLPtr<GrGLVertexArrayVertexAttribOffsetProc> fVertexArrayVertexAttribOff
set; | 460 GrGLFunction<GrGLVertexArrayVertexAttribOffsetProc> fVertexArrayVertexAt
tribOffset; |
| 483 GLPtr<GrGLVertexArrayVertexAttribIOffsetProc> fVertexArrayVertexAttribIO
ffset; | 461 GrGLFunction<GrGLVertexArrayVertexAttribIOffsetProc> fVertexArrayVertexA
ttribIOffset; |
| 484 GLPtr<GrGLEnableVertexArrayProc> fEnableVertexArray; | 462 GrGLFunction<GrGLEnableVertexArrayProc> fEnableVertexArray; |
| 485 GLPtr<GrGLDisableVertexArrayProc> fDisableVertexArray; | 463 GrGLFunction<GrGLDisableVertexArrayProc> fDisableVertexArray; |
| 486 GLPtr<GrGLEnableVertexArrayAttribProc> fEnableVertexArrayAttrib; | 464 GrGLFunction<GrGLEnableVertexArrayAttribProc> fEnableVertexArrayAttrib; |
| 487 GLPtr<GrGLDisableVertexArrayAttribProc> fDisableVertexArrayAttrib; | 465 GrGLFunction<GrGLDisableVertexArrayAttribProc> fDisableVertexArrayAttrib
; |
| 488 GLPtr<GrGLGetVertexArrayIntegervProc> fGetVertexArrayIntegerv; | 466 GrGLFunction<GrGLGetVertexArrayIntegervProc> fGetVertexArrayIntegerv; |
| 489 GLPtr<GrGLGetVertexArrayPointervProc> fGetVertexArrayPointerv; | 467 GrGLFunction<GrGLGetVertexArrayPointervProc> fGetVertexArrayPointerv; |
| 490 GLPtr<GrGLGetVertexArrayIntegeri_vProc> fGetVertexArrayIntegeri_v; | 468 GrGLFunction<GrGLGetVertexArrayIntegeri_vProc> fGetVertexArrayIntegeri_v
; |
| 491 GLPtr<GrGLGetVertexArrayPointeri_vProc> fGetVertexArrayPointeri_v; | 469 GrGLFunction<GrGLGetVertexArrayPointeri_vProc> fGetVertexArrayPointeri_v
; |
| 492 GLPtr<GrGLMapNamedBufferRangeProc> fMapNamedBufferRange; | 470 GrGLFunction<GrGLMapNamedBufferRangeProc> fMapNamedBufferRange; |
| 493 GLPtr<GrGLFlushMappedNamedBufferRangeProc> fFlushMappedNamedBufferRange; | 471 GrGLFunction<GrGLFlushMappedNamedBufferRangeProc> fFlushMappedNamedBuffe
rRange; |
| 494 | 472 |
| 495 /* KHR_debug */ | 473 /* KHR_debug */ |
| 496 GLPtr<GrGLDebugMessageControlProc> fDebugMessageControl; | 474 GrGLFunction<GrGLDebugMessageControlProc> fDebugMessageControl; |
| 497 GLPtr<GrGLDebugMessageInsertProc> fDebugMessageInsert; | 475 GrGLFunction<GrGLDebugMessageInsertProc> fDebugMessageInsert; |
| 498 GLPtr<GrGLDebugMessageCallbackProc> fDebugMessageCallback; | 476 GrGLFunction<GrGLDebugMessageCallbackProc> fDebugMessageCallback; |
| 499 GLPtr<GrGLGetDebugMessageLogProc> fGetDebugMessageLog; | 477 GrGLFunction<GrGLGetDebugMessageLogProc> fGetDebugMessageLog; |
| 500 GLPtr<GrGLPushDebugGroupProc> fPushDebugGroup; | 478 GrGLFunction<GrGLPushDebugGroupProc> fPushDebugGroup; |
| 501 GLPtr<GrGLPopDebugGroupProc> fPopDebugGroup; | 479 GrGLFunction<GrGLPopDebugGroupProc> fPopDebugGroup; |
| 502 GLPtr<GrGLObjectLabelProc> fObjectLabel; | 480 GrGLFunction<GrGLObjectLabelProc> fObjectLabel; |
| 503 | 481 |
| 504 /* EGL functions */ | 482 /* EGL functions */ |
| 505 GLPtr<GrEGLCreateImageProc> fEGLCreateImage; | 483 GrGLFunction<GrEGLCreateImageProc> fEGLCreateImage; |
| 506 GLPtr<GrEGLDestroyImageProc> fEGLDestroyImage; | 484 GrGLFunction<GrEGLDestroyImageProc> fEGLDestroyImage; |
| 507 } fFunctions; | 485 } fFunctions; |
| 508 | 486 |
| 509 // Per-GL func callback | 487 // Per-GL func callback |
| 510 #if GR_GL_PER_GL_FUNC_CALLBACK | 488 #if GR_GL_PER_GL_FUNC_CALLBACK |
| 511 GrGLInterfaceCallbackProc fCallback; | 489 GrGLInterfaceCallbackProc fCallback; |
| 512 GrGLInterfaceCallbackData fCallbackData; | 490 GrGLInterfaceCallbackData fCallbackData; |
| 513 #endif | 491 #endif |
| 514 | 492 |
| 515 // This exists for internal testing. | 493 // This exists for internal testing. |
| 516 virtual void abandon() const {} | 494 virtual void abandon() const {} |
| 517 }; | 495 }; |
| 518 | 496 |
| 519 #endif | 497 #endif |
| OLD | NEW |