8#ifndef GrGLInterface_DEFINED
9#define GrGLInterface_DEFINED
21#if !defined(SK_DISABLE_LEGACY_GL_MAKE_NATIVE_INTERFACE)
55 mutable bool fOOMed =
false;
56 bool fSuppressErrorLogging =
false;
65 bool validate()
const;
68 GrGLenum checkError(
const char* location,
const char*
call)
const;
69 bool checkAndResetOOMed()
const;
70 void suppressErrorLogging();
73#if defined(GR_TEST_UTILS)
332#if defined(GR_TEST_UTILS)
334 virtual void abandon()
const;
SK_API sk_sp< const GrGLInterface > GrGLMakeNativeInterface()
bool has(const char[]) const
GrGLFunction< GrGLGetQueryObjectuivFn > fGetQueryObjectuiv
GrGLFunction< GrGLBufferSubDataFn > fBufferSubData
GrGLFunction< GrGLEnableVertexAttribArrayFn > fEnableVertexAttribArray
GrGLFunction< GrGLGenerateMipmapFn > fGenerateMipmap
GrGLFunction< GrGLBindSamplerFn > fBindSampler
GrGLFunction< GrGLDisableFn > fDisable
GrGLFunction< GrGLGetQueryObjectivFn > fGetQueryObjectiv
GrGLFunction< GrGLBlitFramebufferFn > fBlitFramebuffer
GrGLFunction< GrGLBlendBarrierFn > fBlendBarrier
GrGLFunction< GrGLEndTilingFn > fEndTiling
GrGLFunction< GrGLDrawElementsIndirectFn > fDrawElementsIndirect
GrGLFunction< GrGLDrawElementsFn > fDrawElements
GrGLFunction< GrGLMapBufferSubDataFn > fMapBufferSubData
GrGLFunction< GrGLBeginQueryFn > fBeginQuery
GrGLFunction< GrGLVertexAttrib2fvFn > fVertexAttrib2fv
GrGLFunction< GrGLSamplerParameterfFn > fSamplerParameterf
GrGLFunction< GrGLDiscardFramebufferFn > fDiscardFramebuffer
GrGLFunction< GrGLUniform3fvFn > fUniform3fv
GrGLFunction< GrGLClearTexImageFn > fClearTexImage
GrGLFunction< GrGLBlendColorFn > fBlendColor
GrGLFunction< GrGLDepthMaskFn > fDepthMask
GrGLFunction< GrGLClientWaitSyncFn > fClientWaitSync
GrGLFunction< GrGLGetBufferParameterivFn > fGetBufferParameteriv
GrGLFunction< GrGLUnmapBufferFn > fUnmapBuffer
GrGLFunction< GrGLIsSyncFn > fIsSync
GrGLFunction< GrGLClearTexSubImageFn > fClearTexSubImage
GrGLFunction< GrGLInvalidateTexSubImageFn > fInvalidateTexSubImage
GrGLFunction< GrGLInvalidateBufferDataFn > fInvalidateBufferData
GrGLFunction< GrGLFramebufferRenderbufferFn > fFramebufferRenderbuffer
GrGLFunction< GrGLGetShaderivFn > fGetShaderiv
GrGLFunction< GrGLQueryCounterFn > fQueryCounter
GrGLFunction< GrGLMultiDrawElementsInstancedBaseVertexBaseInstanceFn > fMultiDrawElementsInstancedBaseVertexBaseInstance
GrGLFunction< GrGLPixelStoreiFn > fPixelStorei
GrGLFunction< GrGLCreateProgramFn > fCreateProgram
GrGLFunction< GrGLUniform4fvFn > fUniform4fv
GrGLFunction< GrGLFinishFenceFn > fFinishFence
GrGLFunction< GrGLUniform3fFn > fUniform3f
GrGLFunction< GrGLGetUniformLocationFn > fGetUniformLocation
GrGLFunction< GrGLTexSubImage2DFn > fTexSubImage2D
GrGLFunction< GrGLMultiDrawElementsIndirectFn > fMultiDrawElementsIndirect
GrGLFunction< GrGLInvalidateSubFramebufferFn > fInvalidateSubFramebuffer
GrGLFunction< GrGLDrawRangeElementsFn > fDrawRangeElements
GrGLFunction< GrGLActiveTextureFn > fActiveTexture
GrGLFunction< GrGLReadPixelsFn > fReadPixels
GrGLFunction< GrGLVertexAttrib4fvFn > fVertexAttrib4fv
GrGLFunction< GrGLAttachShaderFn > fAttachShader
GrGLFunction< GrGLRenderbufferStorageMultisampleFn > fRenderbufferStorageMultisampleES2EXT
GrGLFunction< GrGLVertexAttribIPointerFn > fVertexAttribIPointer
GrGLFunction< GrGLMultiDrawArraysIndirectFn > fMultiDrawArraysIndirect
GrGLFunction< GrGLRenderbufferStorageMultisampleFn > fRenderbufferStorageMultisampleES2APPLE
GrGLFunction< GrGLBindFragDataLocationIndexedFn > fBindFragDataLocationIndexed
GrGLFunction< GrGLUniform2ivFn > fUniform2iv
GrGLFunction< GrGLShaderSourceFn > fShaderSource
GrGLFunction< GrGLPatchParameteriFn > fPatchParameteri
GrGLFunction< GrGLVertexAttrib3fvFn > fVertexAttrib3fv
GrGLFunction< GrGLCompileShaderFn > fCompileShader
GrGLFunction< GrGLRenderbufferStorageFn > fRenderbufferStorage
GrGLFunction< GrGLTexImage2DFn > fTexImage2D
GrGLFunction< GrGLPopDebugGroupFn > fPopDebugGroup
GrGLFunction< GrGLLinkProgramFn > fLinkProgram
GrGLFunction< GrGLGetErrorFn > fGetError
GrGLFunction< GrGLTexBufferFn > fTexBuffer
GrGLFunction< GrGLResolveMultisampleFramebufferFn > fResolveMultisampleFramebuffer
GrGLFunction< GrGLGetShaderInfoLogFn > fGetShaderInfoLog
GrGLFunction< GrGLDebugMessageCallbackFn > fDebugMessageCallback
GrGLFunction< GrGLInvalidateBufferSubDataFn > fInvalidateBufferSubData
GrGLFunction< GrGLUniformMatrix2fvFn > fUniformMatrix2fv
GrGLFunction< GrGLCullFaceFn > fCullFace
GrGLFunction< GrGLGenQueriesFn > fGenQueries
GrGLFunction< GrGLCopyBufferSubDataFn > fCopyBufferSubData
GrGLFunction< GrGLUniform2fFn > fUniform2f
GrGLFunction< GrGLUniform1fvFn > fUniform1fv
GrGLFunction< GrGLDrawElementsInstancedBaseVertexBaseInstanceFn > fDrawElementsInstancedBaseVertexBaseInstance
GrGLFunction< GrGLBindFragDataLocationFn > fBindFragDataLocation
GrGLFunction< GrGLUniform4ivFn > fUniform4iv
GrGLFunction< GrGLMapTexSubImage2DFn > fMapTexSubImage2D
GrGLFunction< GrGLDeleteVertexArraysFn > fDeleteVertexArrays
GrGLFunction< GrGLUseProgramFn > fUseProgram
GrGLFunction< GrGLDebugMessageInsertFn > fDebugMessageInsert
GrGLFunction< GrGLReadBufferFn > fReadBuffer
GrGLFunction< GrGLFrontFaceFn > fFrontFace
GrGLFunction< GrGLInvalidateFramebufferFn > fInvalidateFramebuffer
GrGLFunction< GrGLViewportFn > fViewport
GrGLFunction< GrGLTexParameterivFn > fTexParameteriv
GrGLFunction< GrGLStencilOpFn > fStencilOp
GrGLFunction< GrGLStencilOpSeparateFn > fStencilOpSeparate
GrGLFunction< GrGLTexBufferRangeFn > fTexBufferRange
GrGLFunction< GrGLGenFencesFn > fGenFences
GrGLFunction< GrGLDeleteTexturesFn > fDeleteTextures
GrGLFunction< GrGLEnableFn > fEnable
GrGLFunction< GrGLUniform2iFn > fUniform2i
GrGLFunction< GrGLGenSamplersFn > fGenSamplers
GrGLFunction< GrGLMapBufferFn > fMapBuffer
GrGLFunction< GrGLStencilFuncFn > fStencilFunc
GrGLFunction< GrGLDeleteFramebuffersFn > fDeleteFramebuffers
GrGLFunction< GrGLGenBuffersFn > fGenBuffers
GrGLFunction< GrGLDeleteSyncFn > fDeleteSync
GrGLFunction< GrGLMultiDrawArraysInstancedBaseInstanceFn > fMultiDrawArraysInstancedBaseInstance
GrGLFunction< GrGLDrawArraysInstancedFn > fDrawArraysInstanced
GrGLFunction< GrGLDrawElementsInstancedFn > fDrawElementsInstanced
GrGLFunction< GrGLUniform3iFn > fUniform3i
GrGLFunction< GrGLDeleteProgramFn > fDeleteProgram
GrGLFunction< GrGLIsTextureFn > fIsTexture
GrGLFunction< GrGLGetMultisamplefvFn > fGetMultisamplefv
GrGLFunction< GrGLDeleteShaderFn > fDeleteShader
GrGLFunction< GrGLStencilMaskSeparateFn > fStencilMaskSeparate
GrGLFunction< GrGLUniform1ivFn > fUniform1iv
GrGLFunction< GrGLDrawBufferFn > fDrawBuffer
GrGLFunction< GrGLPolygonModeFn > fPolygonMode
GrGLFunction< GrGLCopyTexSubImage2DFn > fCopyTexSubImage2D
GrGLFunction< GrGLStencilFuncSeparateFn > fStencilFuncSeparate
GrGLFunction< GrGLUnmapBufferSubDataFn > fUnmapBufferSubData
GrGLFunction< GrGLGetIntegervFn > fGetIntegerv
GrGLFunction< GrGLObjectLabelFn > fObjectLabel
GrGLFunction< GrGLFramebufferTexture2DFn > fFramebufferTexture2D
GrGLFunction< GrGLUniform2fvFn > fUniform2fv
GrGLFunction< GrGLTexParameteriFn > fTexParameteri
GrGLFunction< GrGLFlushMappedBufferRangeFn > fFlushMappedBufferRange
GrGLFunction< GrGLBufferDataFn > fBufferData
GrGLFunction< GrGLGetShaderPrecisionFormatFn > fGetShaderPrecisionFormat
GrGLFunction< GrGLVertexAttrib1fFn > fVertexAttrib1f
GrGLFunction< GrGLMapBufferRangeFn > fMapBufferRange
GrGLFunction< GrGLDeleteBuffersFn > fDeleteBuffers
GrGLFunction< GrGLScissorFn > fScissor
GrGLFunction< GrGLUniformMatrix3fvFn > fUniformMatrix3fv
GrGLFunction< GrGLBlendEquationFn > fBlendEquation
GrGLFunction< GrGLProgramBinaryFn > fProgramBinary
GrGLFunction< GrGLClearStencilFn > fClearStencil
GrGLFunction< GrGLGenVertexArraysFn > fGenVertexArrays
GrGLFunction< GrGLGetFramebufferAttachmentParameterivFn > fGetFramebufferAttachmentParameteriv
GrGLFunction< GrGLUniform4fFn > fUniform4f
GrGLFunction< GrGLGetProgramivFn > fGetProgramiv
GrGLFunction< GrGLGetFloatvFn > fGetFloatv
GrGLFunction< GrGLCompressedTexImage2DFn > fCompressedTexImage2D
GrGLFunction< GrGLGetDebugMessageLogFn > fGetDebugMessageLog
GrGLFunction< GrGLFenceSyncFn > fFenceSync
GrGLFunction< GrGLInsertEventMarkerFn > fInsertEventMarker
GrGLFunction< GrGLProgramParameteriFn > fProgramParameteri
GrGLFunction< GrGLBindVertexArrayFn > fBindVertexArray
GrGLFunction< GrGLBlendFuncFn > fBlendFunc
GrGLFunction< GrGLGetQueryObjectui64vFn > fGetQueryObjectui64v
GrGLFunction< GrGLGetProgramBinaryFn > fGetProgramBinary
GrGLFunction< GrGLBindTextureFn > fBindTexture
GrGLFunction< GrGLGetQueryivFn > fGetQueryiv
GrGLFunction< GrGLFramebufferTexture2DMultisampleFn > fFramebufferTexture2DMultisample
GrGLFunction< GrGLBindRenderbufferFn > fBindRenderbuffer
GrGLFunction< GrGLDrawBuffersFn > fDrawBuffers
GrGLFunction< GrGLColorMaskFn > fColorMask
GrGLFunction< GrGLTextureBarrierFn > fTextureBarrier
GrGLFunction< GrGLDeleteFencesFn > fDeleteFences
GrGLFunction< GrGLDeleteQueriesFn > fDeleteQueries
GrGLFunction< GrGLPopGroupMarkerFn > fPopGroupMarker
GrGLFunction< GrGLTexStorage2DFn > fTexStorage2D
GrGLFunction< GrGLBindFramebufferFn > fBindFramebuffer
GrGLFunction< GrGLDeleteRenderbuffersFn > fDeleteRenderbuffers
GrGLFunction< GrGLCheckFramebufferStatusFn > fCheckFramebufferStatus
GrGLFunction< GrGLInvalidateTexImageFn > fInvalidateTexImage
GrGLFunction< GrGLDrawArraysInstancedBaseInstanceFn > fDrawArraysInstancedBaseInstance
GrGLFunction< GrGLVertexAttribDivisorFn > fVertexAttribDivisor
GrGLFunction< GrGLClearColorFn > fClearColor
GrGLFunction< GrGLGenFramebuffersFn > fGenFramebuffers
GrGLFunction< GrGLCompressedTexSubImage2DFn > fCompressedTexSubImage2D
GrGLFunction< GrGLUniform4iFn > fUniform4i
GrGLFunction< GrGLGetProgramInfoLogFn > fGetProgramInfoLog
GrGLFunction< GrGLRenderbufferStorageMultisampleFn > fRenderbufferStorageMultisample
GrGLFunction< GrGLGetQueryObjecti64vFn > fGetQueryObjecti64v
GrGLFunction< GrGLGetStringFn > fGetString
GrGLFunction< GrGLBindAttribLocationFn > fBindAttribLocation
GrGLFunction< GrGLStencilMaskFn > fStencilMask
GrGLFunction< GrGLGetRenderbufferParameterivFn > fGetRenderbufferParameteriv
GrGLFunction< GrGLBindBufferFn > fBindBuffer
GrGLFunction< GrGLDrawArraysIndirectFn > fDrawArraysIndirect
GrGLFunction< GrGLGetStringiFn > fGetStringi
GrGLFunction< GrGLTexParameterfFn > fTexParameterf
GrGLFunction< GrGLGenRenderbuffersFn > fGenRenderbuffers
GrGLFunction< GrGLUniform1fFn > fUniform1f
GrGLFunction< GrGLWindowRectanglesFn > fWindowRectangles
GrGLFunction< GrGLDeleteSamplersFn > fDeleteSamplers
GrGLFunction< GrGLUniform3ivFn > fUniform3iv
GrGLFunction< GrGLSetFenceFn > fSetFence
GrGLFunction< GrGLGetTexLevelParameterivFn > fGetTexLevelParameteriv
GrGLFunction< GrGLBindUniformLocationFn > fBindUniformLocation
GrGLFunction< GrGLSamplerParameteriFn > fSamplerParameteri
GrGLFunction< GrGLFinishFn > fFinish
GrGLFunction< GrGLDrawArraysFn > fDrawArrays
GrGLFunction< GrGLDisableVertexAttribArrayFn > fDisableVertexAttribArray
GrGLFunction< GrGLTexParameterfvFn > fTexParameterfv
GrGLFunction< GrGLTestFenceFn > fTestFence
GrGLFunction< GrGLDebugMessageControlFn > fDebugMessageControl
GrGLFunction< GrGLUniform1iFn > fUniform1i
GrGLFunction< GrGLFlushFn > fFlush
GrGLFunction< GrGLCreateShaderFn > fCreateShader
GrGLFunction< GrGLLineWidthFn > fLineWidth
GrGLFunction< GrGLPushGroupMarkerFn > fPushGroupMarker
GrGLFunction< GrGLPushDebugGroupFn > fPushDebugGroup
GrGLFunction< GrGLUnmapTexSubImage2DFn > fUnmapTexSubImage2D
GrGLFunction< GrGLClearFn > fClear
GrGLFunction< GrGLSamplerParameterivFn > fSamplerParameteriv
GrGLFunction< GrGLWaitSyncFn > fWaitSync
GrGLFunction< GrGLGetInternalformativFn > fGetInternalformativ
GrGLFunction< GrGLGenTexturesFn > fGenTextures
GrGLFunction< GrGLUniformMatrix4fvFn > fUniformMatrix4fv
GrGLFunction< GrGLStartTilingFn > fStartTiling
GrGLFunction< GrGLMemoryBarrierFn > fMemoryBarrier
GrGLFunction< GrGLEndQueryFn > fEndQuery
GrGLFunction< GrGLVertexAttribPointerFn > fVertexAttribPointer
bool hasExtension(const char ext[]) const
struct GrGLInterface::Functions fFunctions
GrGLExtensions fExtensions