Alphabetize gl function pointer typedefs / decls. Wrap pointers to auto-NULL them.

Review URL: http://codereview.appspot.com/5959048/



git-svn-id: http://skia.googlecode.com/svn/trunk@3549 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
bsalomon@google.com 2012-03-29 21:04:52 +00:00
parent 48ea377b3a
commit ba800e2225
2 changed files with 146 additions and 274 deletions

View File

@ -149,12 +149,17 @@ extern "C" {
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLBeginQueryProc)(GrGLenum target, GrGLuint id); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLBeginQueryProc)(GrGLenum target, GrGLuint id);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLBindAttribLocationProc)(GrGLuint program, GrGLuint index, const char* name); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLBindAttribLocationProc)(GrGLuint program, GrGLuint index, const char* name);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLBindBufferProc)(GrGLenum target, GrGLuint buffer); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLBindBufferProc)(GrGLenum target, GrGLuint buffer);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLBindFramebufferProc)(GrGLenum target, GrGLuint framebuffer);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLBindRenderbufferProc)(GrGLenum target, GrGLuint renderbuffer);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLBindTextureProc)(GrGLenum target, GrGLuint texture); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLBindTextureProc)(GrGLenum target, GrGLuint texture);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLBlendColorProc)(GrGLclampf red, GrGLclampf green, GrGLclampf blue, GrGLclampf alpha); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLBlendColorProc)(GrGLclampf red, GrGLclampf green, GrGLclampf blue, GrGLclampf alpha);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLBindFragDataLocationProc)(GrGLuint program, GrGLuint colorNumber, const GrGLchar* name); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLBindFragDataLocationProc)(GrGLuint program, GrGLuint colorNumber, const GrGLchar* name);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLBindFragDataLocationIndexedProc)(GrGLuint program, GrGLuint colorNumber, GrGLuint index, const GrGLchar * name);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLBlendFuncProc)(GrGLenum sfactor, GrGLenum dfactor); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLBlendFuncProc)(GrGLenum sfactor, GrGLenum dfactor);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLBlitFramebufferProc)(GrGLint srcX0, GrGLint srcY0, GrGLint srcX1, GrGLint srcY1, GrGLint dstX0, GrGLint dstY0, GrGLint dstX1, GrGLint dstY1, GrGLbitfield mask, GrGLenum filter);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLBufferDataProc)(GrGLenum target, GrGLsizeiptr size, const GrGLvoid* data, GrGLenum usage); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLBufferDataProc)(GrGLenum target, GrGLsizeiptr size, const GrGLvoid* data, GrGLenum usage);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLBufferSubDataProc)(GrGLenum target, GrGLintptr offset, GrGLsizeiptr size, const GrGLvoid* data); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLBufferSubDataProc)(GrGLenum target, GrGLintptr offset, GrGLsizeiptr size, const GrGLvoid* data);
typedef GrGLenum (GR_GL_FUNCTION_TYPE *GrGLCheckFramebufferStatusProc)(GrGLenum target);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLClearProc)(GrGLbitfield mask); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLClearProc)(GrGLbitfield mask);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLClearColorProc)(GrGLclampf red, GrGLclampf green, GrGLclampf blue, GrGLclampf alpha); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLClearColorProc)(GrGLclampf red, GrGLclampf green, GrGLclampf blue, GrGLclampf alpha);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLClearStencilProc)(GrGLint s); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLClearStencilProc)(GrGLint s);
@ -166,8 +171,10 @@ extern "C" {
typedef GrGLuint (GR_GL_FUNCTION_TYPE *GrGLCreateShaderProc)(GrGLenum type); typedef GrGLuint (GR_GL_FUNCTION_TYPE *GrGLCreateShaderProc)(GrGLenum type);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLCullFaceProc)(GrGLenum mode); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLCullFaceProc)(GrGLenum mode);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLDeleteBuffersProc)(GrGLsizei n, const GrGLuint* buffers); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLDeleteBuffersProc)(GrGLsizei n, const GrGLuint* buffers);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLDeleteFramebuffersProc)(GrGLsizei n, const GrGLuint *framebuffers);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLDeleteProgramProc)(GrGLuint program); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLDeleteProgramProc)(GrGLuint program);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLDeleteQueriesProc)(GrGLsizei n, const GrGLuint *ids); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLDeleteQueriesProc)(GrGLsizei n, const GrGLuint *ids);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLDeleteRenderbuffersProc)(GrGLsizei n, const GrGLuint *renderbuffers);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLDeleteShaderProc)(GrGLuint shader); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLDeleteShaderProc)(GrGLuint shader);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLDeleteTexturesProc)(GrGLsizei n, const GrGLuint* textures); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLDeleteTexturesProc)(GrGLsizei n, const GrGLuint* textures);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLDepthMaskProc)(GrGLboolean flag); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLDepthMaskProc)(GrGLboolean flag);
@ -182,12 +189,17 @@ extern "C" {
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLEndQueryProc)(GrGLenum target); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLEndQueryProc)(GrGLenum target);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLFinishProc)(); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLFinishProc)();
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLFlushProc)(); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLFlushProc)();
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLFramebufferRenderbufferProc)(GrGLenum target, GrGLenum attachment, GrGLenum renderbuffertarget, GrGLuint renderbuffer);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLFramebufferTexture2DProc)(GrGLenum target, GrGLenum attachment, GrGLenum textarget, GrGLuint texture, GrGLint level);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLFrontFaceProc)(GrGLenum mode); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLFrontFaceProc)(GrGLenum mode);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGenBuffersProc)(GrGLsizei n, GrGLuint* buffers); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGenBuffersProc)(GrGLsizei n, GrGLuint* buffers);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGenFramebuffersProc)(GrGLsizei n, GrGLuint *framebuffers);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGenQueriesProc)(GrGLsizei n, GrGLuint *ids); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGenQueriesProc)(GrGLsizei n, GrGLuint *ids);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGenRenderbuffersProc)(GrGLsizei n, GrGLuint *renderbuffers);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGenTexturesProc)(GrGLsizei n, GrGLuint* textures); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGenTexturesProc)(GrGLsizei n, GrGLuint* textures);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGetBufferParameterivProc)(GrGLenum target, GrGLenum pname, GrGLint* params); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGetBufferParameterivProc)(GrGLenum target, GrGLenum pname, GrGLint* params);
typedef GrGLenum (GR_GL_FUNCTION_TYPE *GrGLGetErrorProc)(); typedef GrGLenum (GR_GL_FUNCTION_TYPE *GrGLGetErrorProc)();
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGetFramebufferAttachmentParameterivProc)(GrGLenum target, GrGLenum attachment, GrGLenum pname, GrGLint* params);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGetIntegervProc)(GrGLenum pname, GrGLint* params); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGetIntegervProc)(GrGLenum pname, GrGLint* params);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGetProgramInfoLogProc)(GrGLuint program, GrGLsizei bufsize, GrGLsizei* length, char* infolog); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGetProgramInfoLogProc)(GrGLuint program, GrGLsizei bufsize, GrGLsizei* length, char* infolog);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGetProgramivProc)(GrGLuint program, GrGLenum pname, GrGLint* params); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGetProgramivProc)(GrGLuint program, GrGLenum pname, GrGLint* params);
@ -196,6 +208,7 @@ extern "C" {
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGetQueryObjectivProc)(GrGLuint id, GrGLenum pname, GrGLint *params); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGetQueryObjectivProc)(GrGLuint id, GrGLenum pname, GrGLint *params);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGetQueryObjectui64vProc)(GrGLuint id, GrGLenum pname, GrGLuint64 *params); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGetQueryObjectui64vProc)(GrGLuint id, GrGLenum pname, GrGLuint64 *params);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGetQueryObjectuivProc)(GrGLuint id, GrGLenum pname, GrGLuint *params); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGetQueryObjectuivProc)(GrGLuint id, GrGLenum pname, GrGLuint *params);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGetRenderbufferParameterivProc)(GrGLenum target, GrGLenum pname, GrGLint* params);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGetShaderInfoLogProc)(GrGLuint shader, GrGLsizei bufsize, GrGLsizei* length, char* infolog); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGetShaderInfoLogProc)(GrGLuint shader, GrGLsizei bufsize, GrGLsizei* length, char* infolog);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGetShaderivProc)(GrGLuint shader, GrGLenum pname, GrGLint* params); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGetShaderivProc)(GrGLuint shader, GrGLenum pname, GrGLint* params);
typedef const GrGLubyte* (GR_GL_FUNCTION_TYPE *GrGLGetStringProc)(GrGLenum name); typedef const GrGLubyte* (GR_GL_FUNCTION_TYPE *GrGLGetStringProc)(GrGLenum name);
@ -203,10 +216,14 @@ extern "C" {
typedef GrGLint (GR_GL_FUNCTION_TYPE *GrGLGetUniformLocationProc)(GrGLuint program, const char* name); typedef GrGLint (GR_GL_FUNCTION_TYPE *GrGLGetUniformLocationProc)(GrGLuint program, const char* name);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLLineWidthProc)(GrGLfloat width); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLLineWidthProc)(GrGLfloat width);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLLinkProgramProc)(GrGLuint program); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLLinkProgramProc)(GrGLuint program);
typedef GrGLvoid* (GR_GL_FUNCTION_TYPE *GrGLMapBufferProc)(GrGLenum target, GrGLenum access);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLPixelStoreiProc)(GrGLenum pname, GrGLint param); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLPixelStoreiProc)(GrGLenum pname, GrGLint param);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLQueryCounterProc)(GrGLuint id, GrGLenum target); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLQueryCounterProc)(GrGLuint id, GrGLenum target);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLReadBufferProc)(GrGLenum src); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLReadBufferProc)(GrGLenum src);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLReadPixelsProc)(GrGLint x, GrGLint y, GrGLsizei width, GrGLsizei height, GrGLenum format, GrGLenum type, GrGLvoid* pixels); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLReadPixelsProc)(GrGLint x, GrGLint y, GrGLsizei width, GrGLsizei height, GrGLenum format, GrGLenum type, GrGLvoid* pixels);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLRenderbufferStorageProc)(GrGLenum target, GrGLenum internalformat, GrGLsizei width, GrGLsizei height);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLRenderbufferStorageMultisampleProc)(GrGLenum target, GrGLsizei samples, GrGLenum internalformat, GrGLsizei width, GrGLsizei height);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLResolveMultisampleFramebufferProc)();
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLScissorProc)(GrGLint x, GrGLint y, GrGLsizei width, GrGLsizei height); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLScissorProc)(GrGLint x, GrGLint y, GrGLsizei width, GrGLsizei height);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLShaderSourceProc)(GrGLuint shader, GrGLsizei count, const char** str, const GrGLint* length); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLShaderSourceProc)(GrGLuint shader, GrGLsizei count, const char** str, const GrGLint* length);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLStencilFuncProc)(GrGLenum func, GrGLint ref, GrGLuint mask); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLStencilFuncProc)(GrGLenum func, GrGLint ref, GrGLuint mask);
@ -238,39 +255,11 @@ extern "C" {
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLUniformMatrix2fvProc)(GrGLint location, GrGLsizei count, GrGLboolean transpose, const GrGLfloat* value); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLUniformMatrix2fvProc)(GrGLint location, GrGLsizei count, GrGLboolean transpose, const GrGLfloat* value);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLUniformMatrix3fvProc)(GrGLint location, GrGLsizei count, GrGLboolean transpose, const GrGLfloat* value); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLUniformMatrix3fvProc)(GrGLint location, GrGLsizei count, GrGLboolean transpose, const GrGLfloat* value);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLUniformMatrix4fvProc)(GrGLint location, GrGLsizei count, GrGLboolean transpose, const GrGLfloat* value); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLUniformMatrix4fvProc)(GrGLint location, GrGLsizei count, GrGLboolean transpose, const GrGLfloat* value);
typedef GrGLboolean (GR_GL_FUNCTION_TYPE *GrGLUnmapBufferProc)(GrGLenum target);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLUseProgramProc)(GrGLuint program); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLUseProgramProc)(GrGLuint program);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLVertexAttrib4fvProc)(GrGLuint indx, const GrGLfloat* values); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLVertexAttrib4fvProc)(GrGLuint indx, const GrGLfloat* values);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLVertexAttribPointerProc)(GrGLuint indx, GrGLint size, GrGLenum type, GrGLboolean normalized, GrGLsizei stride, const GrGLvoid* ptr); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLVertexAttribPointerProc)(GrGLuint indx, GrGLint size, GrGLenum type, GrGLboolean normalized, GrGLsizei stride, const GrGLvoid* ptr);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLViewportProc)(GrGLint x, GrGLint y, GrGLsizei width, GrGLsizei height); typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLViewportProc)(GrGLint x, GrGLint y, GrGLsizei width, GrGLsizei height);
// FBO Extension Functions
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLBindFramebufferProc)(GrGLenum target, GrGLuint framebuffer);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLBindRenderbufferProc)(GrGLenum target, GrGLuint renderbuffer);
typedef GrGLenum (GR_GL_FUNCTION_TYPE *GrGLCheckFramebufferStatusProc)(GrGLenum target);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLDeleteFramebuffersProc)(GrGLsizei n, const GrGLuint *framebuffers);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLDeleteRenderbuffersProc)(GrGLsizei n, const GrGLuint *renderbuffers);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLFramebufferRenderbufferProc)(GrGLenum target, GrGLenum attachment, GrGLenum renderbuffertarget, GrGLuint renderbuffer);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLFramebufferTexture2DProc)(GrGLenum target, GrGLenum attachment, GrGLenum textarget, GrGLuint texture, GrGLint level);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGenFramebuffersProc)(GrGLsizei n, GrGLuint *framebuffers);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGenRenderbuffersProc)(GrGLsizei n, GrGLuint *renderbuffers);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGetFramebufferAttachmentParameterivProc)(GrGLenum target, GrGLenum attachment, GrGLenum pname, GrGLint* params);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLGetRenderbufferParameterivProc)(GrGLenum target, GrGLenum pname, GrGLint* params);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLRenderbufferStorageProc)(GrGLenum target, GrGLenum internalformat, GrGLsizei width, GrGLsizei height);
// Multisampling Extension Functions
// same prototype for ARB_FBO, EXT_FBO, GL 3.0, & Apple ES extension
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLRenderbufferStorageMultisampleProc)(GrGLenum target, GrGLsizei samples, GrGLenum internalformat, GrGLsizei width, GrGLsizei height);
// desktop: ext_fbo_blit, arb_fbo, gl 3.0
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLBlitFramebufferProc)(GrGLint srcX0, GrGLint srcY0, GrGLint srcX1, GrGLint srcY1, GrGLint dstX0, GrGLint dstY0, GrGLint dstX1, GrGLint dstY1, GrGLbitfield mask, GrGLenum filter);
// apple's es extension
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLResolveMultisampleFramebufferProc)();
// Buffer mapping (extension in ES).
typedef GrGLvoid* (GR_GL_FUNCTION_TYPE *GrGLMapBufferProc)(GrGLenum target, GrGLenum access);
typedef GrGLboolean (GR_GL_FUNCTION_TYPE *GrGLUnmapBufferProc)(GrGLenum target);
// Dual source blending
typedef GrGLvoid (GR_GL_FUNCTION_TYPE *GrGLBindFragDataLocationIndexedProc)(GrGLuint program, GrGLuint colorNumber, GrGLuint index, const GrGLchar * name);
} // extern "C" } // extern "C"
#if GR_GL_PER_GL_FUNC_CALLBACK #if GR_GL_PER_GL_FUNC_CALLBACK
@ -293,7 +282,18 @@ enum GrGLCapability {
* extension pointer will be valid across contexts. * extension pointer will be valid across contexts.
*/ */
struct GR_API GrGLInterface : public GrRefCnt { struct GR_API GrGLInterface : public GrRefCnt {
private:
// simple wrapper class that exists only to initialize a pointers to NULL
template <typename FNPTR_TYPE> class GLPtr {
public:
GLPtr() : fPtr(NULL) {}
GLPtr operator =(FNPTR_TYPE ptr) { fPtr = ptr; return *this; }
operator FNPTR_TYPE() const { return fPtr; }
private:
FNPTR_TYPE fPtr;
};
public:
GrGLInterface(); GrGLInterface();
// Validates that the GrGLInterface supports a binding. This means that // Validates that the GrGLInterface supports a binding. This means that
@ -302,136 +302,125 @@ struct GR_API GrGLInterface : public GrRefCnt {
bool validate(GrGLBinding binding) const; bool validate(GrGLBinding binding) const;
// Indicator variable specifying the type of GL implementation // Indicator variable specifying the type of GL implementation
// exported: GLES{1|2} or Desktop. // exported: GLES2 and/or Desktop.
GrGLBinding fBindingsExported; GrGLBinding fBindingsExported;
GrGLActiveTextureProc fActiveTexture; GLPtr<GrGLActiveTextureProc> fActiveTexture;
GrGLAttachShaderProc fAttachShader; GLPtr<GrGLAttachShaderProc> fAttachShader;
GrGLBeginQueryProc fBeginQuery; GLPtr<GrGLBeginQueryProc> fBeginQuery;
GrGLBindAttribLocationProc fBindAttribLocation; GLPtr<GrGLBindAttribLocationProc> fBindAttribLocation;
GrGLBindBufferProc fBindBuffer; GLPtr<GrGLBindBufferProc> fBindBuffer;
GrGLBindFragDataLocationProc fBindFragDataLocation; GLPtr<GrGLBindFragDataLocationProc> fBindFragDataLocation;
GrGLBindTextureProc fBindTexture; GLPtr<GrGLBindFragDataLocationIndexedProc> fBindFragDataLocationIndexed;
GrGLBlendColorProc fBlendColor; GLPtr<GrGLBindFramebufferProc> fBindFramebuffer;
GrGLBlendFuncProc fBlendFunc; GLPtr<GrGLBindRenderbufferProc> fBindRenderbuffer;
GrGLBufferDataProc fBufferData; GLPtr<GrGLBindTextureProc> fBindTexture;
GrGLBufferSubDataProc fBufferSubData; GLPtr<GrGLBlendColorProc> fBlendColor;
GrGLClearProc fClear; GLPtr<GrGLBlendFuncProc> fBlendFunc;
GrGLClearColorProc fClearColor; GLPtr<GrGLBlitFramebufferProc> fBlitFramebuffer;
GrGLClearStencilProc fClearStencil; GLPtr<GrGLBufferDataProc> fBufferData;
GrGLColorMaskProc fColorMask; GLPtr<GrGLBufferSubDataProc> fBufferSubData;
GrGLColorPointerProc fColorPointer; GLPtr<GrGLCheckFramebufferStatusProc> fCheckFramebufferStatus;
GrGLCompileShaderProc fCompileShader; GLPtr<GrGLClearProc> fClear;
GrGLCompressedTexImage2DProc fCompressedTexImage2D; GLPtr<GrGLClearColorProc> fClearColor;
GrGLCreateProgramProc fCreateProgram; GLPtr<GrGLClearStencilProc> fClearStencil;
GrGLCreateShaderProc fCreateShader; GLPtr<GrGLColorMaskProc> fColorMask;
GrGLCullFaceProc fCullFace; GLPtr<GrGLColorPointerProc> fColorPointer;
GrGLDeleteBuffersProc fDeleteBuffers; GLPtr<GrGLCompileShaderProc> fCompileShader;
GrGLDeleteProgramProc fDeleteProgram; GLPtr<GrGLCompressedTexImage2DProc> fCompressedTexImage2D;
GrGLDeleteQueriesProc fDeleteQueries; GLPtr<GrGLCreateProgramProc> fCreateProgram;
GrGLDeleteShaderProc fDeleteShader; GLPtr<GrGLCreateShaderProc> fCreateShader;
GrGLDeleteTexturesProc fDeleteTextures; GLPtr<GrGLCullFaceProc> fCullFace;
GrGLDepthMaskProc fDepthMask; GLPtr<GrGLDeleteBuffersProc> fDeleteBuffers;
GrGLDisableProc fDisable; GLPtr<GrGLDeleteFramebuffersProc> fDeleteFramebuffers;
GrGLDisableVertexAttribArrayProc fDisableVertexAttribArray; GLPtr<GrGLDeleteProgramProc> fDeleteProgram;
GrGLDrawArraysProc fDrawArrays; GLPtr<GrGLDeleteQueriesProc> fDeleteQueries;
GrGLDrawBufferProc fDrawBuffer; GLPtr<GrGLDeleteRenderbuffersProc> fDeleteRenderbuffers;
GrGLDrawBuffersProc fDrawBuffers; GLPtr<GrGLDeleteShaderProc> fDeleteShader;
GrGLDrawElementsProc fDrawElements; GLPtr<GrGLDeleteTexturesProc> fDeleteTextures;
GrGLEnableProc fEnable; GLPtr<GrGLDepthMaskProc> fDepthMask;
GrGLEnableVertexAttribArrayProc fEnableVertexAttribArray; GLPtr<GrGLDisableProc> fDisable;
GrGLEndQueryProc fEndQuery; GLPtr<GrGLDisableVertexAttribArrayProc> fDisableVertexAttribArray;
GrGLFinishProc fFinish; GLPtr<GrGLDrawArraysProc> fDrawArrays;
GrGLFlushProc fFlush; GLPtr<GrGLDrawBufferProc> fDrawBuffer;
GrGLFrontFaceProc fFrontFace; GLPtr<GrGLDrawBuffersProc> fDrawBuffers;
GrGLGenBuffersProc fGenBuffers; GLPtr<GrGLDrawElementsProc> fDrawElements;
GrGLGenQueriesProc fGenQueries; GLPtr<GrGLEnableProc> fEnable;
GrGLGenTexturesProc fGenTextures; GLPtr<GrGLEnableVertexAttribArrayProc> fEnableVertexAttribArray;
GrGLGetBufferParameterivProc fGetBufferParameteriv; GLPtr<GrGLEndQueryProc> fEndQuery;
GrGLGetErrorProc fGetError; GLPtr<GrGLFinishProc> fFinish;
GrGLGetIntegervProc fGetIntegerv; GLPtr<GrGLFlushProc> fFlush;
GrGLGetQueryObjecti64vProc fGetQueryObjecti64v; GLPtr<GrGLFramebufferRenderbufferProc> fFramebufferRenderbuffer;
GrGLGetQueryObjectivProc fGetQueryObjectiv; GLPtr<GrGLFramebufferTexture2DProc> fFramebufferTexture2D;
GrGLGetQueryObjectui64vProc fGetQueryObjectui64v; GLPtr<GrGLFrontFaceProc> fFrontFace;
GrGLGetQueryObjectuivProc fGetQueryObjectuiv; GLPtr<GrGLGenBuffersProc> fGenBuffers;
GrGLGetQueryivProc fGetQueryiv; GLPtr<GrGLGenFramebuffersProc> fGenFramebuffers;
GrGLGetProgramInfoLogProc fGetProgramInfoLog; GLPtr<GrGLGenQueriesProc> fGenQueries;
GrGLGetProgramivProc fGetProgramiv; GLPtr<GrGLGenRenderbuffersProc> fGenRenderbuffers;
GrGLGetShaderInfoLogProc fGetShaderInfoLog; GLPtr<GrGLGenTexturesProc> fGenTextures;
GrGLGetShaderivProc fGetShaderiv; GLPtr<GrGLGetBufferParameterivProc> fGetBufferParameteriv;
GrGLGetStringProc fGetString; GLPtr<GrGLGetErrorProc> fGetError;
GrGLGetTexLevelParameterivProc fGetTexLevelParameteriv; GLPtr<GrGLGetFramebufferAttachmentParameterivProc> fGetFramebufferAttachmentParameteriv;
GrGLGetUniformLocationProc fGetUniformLocation; GLPtr<GrGLGetIntegervProc> fGetIntegerv;
GrGLLineWidthProc fLineWidth; GLPtr<GrGLGetQueryObjecti64vProc> fGetQueryObjecti64v;
GrGLLinkProgramProc fLinkProgram; GLPtr<GrGLGetQueryObjectivProc> fGetQueryObjectiv;
GrGLPixelStoreiProc fPixelStorei; GLPtr<GrGLGetQueryObjectui64vProc> fGetQueryObjectui64v;
GrGLQueryCounterProc fQueryCounter; GLPtr<GrGLGetQueryObjectuivProc> fGetQueryObjectuiv;
GrGLReadBufferProc fReadBuffer; GLPtr<GrGLGetQueryivProc> fGetQueryiv;
GrGLReadPixelsProc fReadPixels; GLPtr<GrGLGetProgramInfoLogProc> fGetProgramInfoLog;
GrGLScissorProc fScissor; GLPtr<GrGLGetProgramivProc> fGetProgramiv;
GrGLShaderSourceProc fShaderSource; GLPtr<GrGLGetRenderbufferParameterivProc> fGetRenderbufferParameteriv;
GrGLStencilFuncProc fStencilFunc; GLPtr<GrGLGetShaderInfoLogProc> fGetShaderInfoLog;
GrGLStencilFuncSeparateProc fStencilFuncSeparate; GLPtr<GrGLGetShaderivProc> fGetShaderiv;
GrGLStencilMaskProc fStencilMask; GLPtr<GrGLGetStringProc> fGetString;
GrGLStencilMaskSeparateProc fStencilMaskSeparate; GLPtr<GrGLGetTexLevelParameterivProc> fGetTexLevelParameteriv;
GrGLStencilOpProc fStencilOp; GLPtr<GrGLGetUniformLocationProc> fGetUniformLocation;
GrGLStencilOpSeparateProc fStencilOpSeparate; GLPtr<GrGLLineWidthProc> fLineWidth;
GrGLTexImage2DProc fTexImage2D; GLPtr<GrGLLinkProgramProc> fLinkProgram;
GrGLTexParameteriProc fTexParameteri; GLPtr<GrGLMapBufferProc> fMapBuffer;
GrGLTexSubImage2DProc fTexSubImage2D; GLPtr<GrGLPixelStoreiProc> fPixelStorei;
GrGLTexStorage2DProc fTexStorage2D; GLPtr<GrGLQueryCounterProc> fQueryCounter;
GrGLUniform1fProc fUniform1f; GLPtr<GrGLReadBufferProc> fReadBuffer;
GrGLUniform1iProc fUniform1i; GLPtr<GrGLReadPixelsProc> fReadPixels;
GrGLUniform1fvProc fUniform1fv; GLPtr<GrGLRenderbufferStorageProc> fRenderbufferStorage;
GrGLUniform1ivProc fUniform1iv; GLPtr<GrGLRenderbufferStorageMultisampleProc> fRenderbufferStorageMultisample;
GrGLUniform2fProc fUniform2f; GLPtr<GrGLResolveMultisampleFramebufferProc> fResolveMultisampleFramebuffer;
GrGLUniform2iProc fUniform2i; GLPtr<GrGLScissorProc> fScissor;
GrGLUniform2fvProc fUniform2fv; GLPtr<GrGLShaderSourceProc> fShaderSource;
GrGLUniform2ivProc fUniform2iv; GLPtr<GrGLStencilFuncProc> fStencilFunc;
GrGLUniform3fProc fUniform3f; GLPtr<GrGLStencilFuncSeparateProc> fStencilFuncSeparate;
GrGLUniform3iProc fUniform3i; GLPtr<GrGLStencilMaskProc> fStencilMask;
GrGLUniform3fvProc fUniform3fv; GLPtr<GrGLStencilMaskSeparateProc> fStencilMaskSeparate;
GrGLUniform3ivProc fUniform3iv; GLPtr<GrGLStencilOpProc> fStencilOp;
GrGLUniform4fProc fUniform4f; GLPtr<GrGLStencilOpSeparateProc> fStencilOpSeparate;
GrGLUniform4iProc fUniform4i; GLPtr<GrGLTexImage2DProc> fTexImage2D;
GrGLUniform4fvProc fUniform4fv; GLPtr<GrGLTexParameteriProc> fTexParameteri;
GrGLUniform4ivProc fUniform4iv; GLPtr<GrGLTexSubImage2DProc> fTexSubImage2D;
GrGLUniformMatrix2fvProc fUniformMatrix2fv; GLPtr<GrGLTexStorage2DProc> fTexStorage2D;
GrGLUniformMatrix3fvProc fUniformMatrix3fv; GLPtr<GrGLUniform1fProc> fUniform1f;
GrGLUniformMatrix4fvProc fUniformMatrix4fv; GLPtr<GrGLUniform1iProc> fUniform1i;
GrGLUseProgramProc fUseProgram; GLPtr<GrGLUniform1fvProc> fUniform1fv;
GrGLVertexAttrib4fvProc fVertexAttrib4fv; GLPtr<GrGLUniform1ivProc> fUniform1iv;
GrGLVertexAttribPointerProc fVertexAttribPointer; GLPtr<GrGLUniform2fProc> fUniform2f;
GrGLViewportProc fViewport; GLPtr<GrGLUniform2iProc> fUniform2i;
GLPtr<GrGLUniform2fvProc> fUniform2fv;
// FBO Extension Functions GLPtr<GrGLUniform2ivProc> fUniform2iv;
GrGLBindFramebufferProc fBindFramebuffer; GLPtr<GrGLUniform3fProc> fUniform3f;
GrGLBindRenderbufferProc fBindRenderbuffer; GLPtr<GrGLUniform3iProc> fUniform3i;
GrGLCheckFramebufferStatusProc fCheckFramebufferStatus; GLPtr<GrGLUniform3fvProc> fUniform3fv;
GrGLDeleteFramebuffersProc fDeleteFramebuffers; GLPtr<GrGLUniform3ivProc> fUniform3iv;
GrGLDeleteRenderbuffersProc fDeleteRenderbuffers; GLPtr<GrGLUniform4fProc> fUniform4f;
GrGLFramebufferRenderbufferProc fFramebufferRenderbuffer; GLPtr<GrGLUniform4iProc> fUniform4i;
GrGLFramebufferTexture2DProc fFramebufferTexture2D; GLPtr<GrGLUniform4fvProc> fUniform4fv;
GrGLGenFramebuffersProc fGenFramebuffers; GLPtr<GrGLUniform4ivProc> fUniform4iv;
GrGLGenRenderbuffersProc fGenRenderbuffers; GLPtr<GrGLUniformMatrix2fvProc> fUniformMatrix2fv;
GrGLGetFramebufferAttachmentParameterivProc fGetFramebufferAttachmentParameteriv; GLPtr<GrGLUniformMatrix3fvProc> fUniformMatrix3fv;
GrGLGetRenderbufferParameterivProc fGetRenderbufferParameteriv; GLPtr<GrGLUniformMatrix4fvProc> fUniformMatrix4fv;
GrGLRenderbufferStorageProc fRenderbufferStorage; GLPtr<GrGLUnmapBufferProc> fUnmapBuffer;
GLPtr<GrGLUseProgramProc> fUseProgram;
// Multisampling Extension Functions GLPtr<GrGLVertexAttrib4fvProc> fVertexAttrib4fv;
// same prototype for ARB_FBO, EXT_FBO, GL 3.0, & Apple ES extension GLPtr<GrGLVertexAttribPointerProc> fVertexAttribPointer;
GrGLRenderbufferStorageMultisampleProc fRenderbufferStorageMultisample; GLPtr<GrGLViewportProc> fViewport;
// desktop: ext_fbo_blit, arb_fbo, gl 3.0
GrGLBlitFramebufferProc fBlitFramebuffer;
// apple's es extension
GrGLResolveMultisampleFramebufferProc fResolveMultisampleFramebuffer;
// Buffer mapping (extension in ES).
GrGLMapBufferProc fMapBuffer;
GrGLUnmapBufferProc fUnmapBuffer;
// Dual Source Blending
GrGLBindFragDataLocationIndexedProc fBindFragDataLocationIndexed;
// Per-GL func callback // Per-GL func callback
#if GR_GL_PER_GL_FUNC_CALLBACK #if GR_GL_PER_GL_FUNC_CALLBACK

View File

@ -151,123 +151,6 @@ GrGLSLVersion GrGLGetGLSLVersion(const GrGLInterface* gl) {
GrGLInterface::GrGLInterface() { GrGLInterface::GrGLInterface() {
fBindingsExported = kNone_GrGLBinding; fBindingsExported = kNone_GrGLBinding;
fActiveTexture = NULL;
fAttachShader = NULL;
fBeginQuery = NULL;
fBindAttribLocation = NULL;
fBindBuffer = NULL;
fBindFragDataLocation = NULL;
fBindTexture = NULL;
fBlendColor = NULL;
fBlendFunc = NULL;
fBufferData = NULL;
fBufferSubData = NULL;
fClear = NULL;
fClearColor = NULL;
fClearStencil = NULL;
fColorMask = NULL;
fColorPointer = NULL;
fCompileShader = NULL;
fCompressedTexImage2D = NULL;
fCreateProgram = NULL;
fCreateShader = NULL;
fCullFace = NULL;
fDeleteBuffers = NULL;
fDeleteProgram = NULL;
fDeleteQueries = NULL;
fDeleteShader = NULL;
fDeleteTextures = NULL;
fDepthMask = NULL;
fDisable = NULL;
fDisableVertexAttribArray = NULL;
fDrawArrays = NULL;
fDrawBuffer = NULL;
fDrawBuffers = NULL;
fDrawElements = NULL;
fEndQuery = NULL;
fFinish = NULL;
fFlush = NULL;
fEnable = NULL;
fEnableVertexAttribArray = NULL;
fFrontFace = NULL;
fGenBuffers = NULL;
fGenQueries = NULL;
fGenTextures = NULL;
fGetBufferParameteriv = NULL;
fGetError = NULL;
fGetIntegerv = NULL;
fGetQueryiv = NULL;
fGetQueryObjecti64v = NULL;
fGetQueryObjectiv = NULL;
fGetQueryObjectui64v = NULL;
fGetQueryObjectuiv = NULL;
fGetProgramInfoLog = NULL;
fGetProgramiv = NULL;
fGetShaderInfoLog = NULL;
fGetShaderiv = NULL;
fGetString = NULL;
fGetTexLevelParameteriv = NULL;
fGetUniformLocation = NULL;
fLineWidth = NULL;
fLinkProgram = NULL;
fPixelStorei = NULL;
fQueryCounter = NULL;
fReadBuffer = NULL;
fReadPixels = NULL;
fScissor = NULL;
fShaderSource = NULL;
fStencilFunc = NULL;
fStencilFuncSeparate = NULL;
fStencilMask = NULL;
fStencilMaskSeparate = NULL;
fStencilOp = NULL;
fStencilOpSeparate = NULL;
fTexImage2D = NULL;
fTexParameteri = NULL;
fTexStorage2D = NULL;
fTexSubImage2D = NULL;
fUniform1f = NULL;
fUniform1i = NULL;
fUniform1fv = NULL;
fUniform1iv = NULL;
fUniform2f = NULL;
fUniform2i = NULL;
fUniform2fv = NULL;
fUniform2iv = NULL;
fUniform3f = NULL;
fUniform3i = NULL;
fUniform3fv = NULL;
fUniform3iv = NULL;
fUniform4f = NULL;
fUniform4i = NULL;
fUniform4fv = NULL;
fUniform4iv = NULL;
fUniformMatrix2fv = NULL;
fUniformMatrix3fv = NULL;
fUniformMatrix4fv = NULL;
fUseProgram = NULL;
fVertexAttrib4fv = NULL;
fVertexAttribPointer = NULL;
fViewport = NULL;
fBindFramebuffer = NULL;
fBindRenderbuffer = NULL;
fCheckFramebufferStatus = NULL;
fDeleteFramebuffers = NULL;
fDeleteRenderbuffers = NULL;
fFramebufferRenderbuffer = NULL;
fFramebufferTexture2D = NULL;
fGenFramebuffers = NULL;
fGenRenderbuffers = NULL;
fGetFramebufferAttachmentParameteriv = NULL;
fGetRenderbufferParameteriv = NULL;
fRenderbufferStorage = NULL;
fRenderbufferStorageMultisample = NULL;
fBlitFramebuffer = NULL;
fResolveMultisampleFramebuffer = NULL;
fMapBuffer = NULL;
fUnmapBuffer = NULL;
fBindFragDataLocationIndexed = NULL;
#if GR_GL_PER_GL_FUNC_CALLBACK #if GR_GL_PER_GL_FUNC_CALLBACK
fCallback = GrGLDefaultInterfaceCallback; fCallback = GrGLDefaultInterfaceCallback;
fCallbackData = 0; fCallbackData = 0;