Revert 7919 and 7920 (committed wrong version of r7919.)
git-svn-id: http://skia.googlecode.com/svn/trunk@7923 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
parent
c61c3c3101
commit
b82c3993c2
@ -214,7 +214,6 @@
|
|||||||
'<(skia_src_path)/gpu/gl/debug/GrProgramObj.cpp',
|
'<(skia_src_path)/gpu/gl/debug/GrProgramObj.cpp',
|
||||||
'<(skia_src_path)/gpu/gl/debug/GrDebugGL.h',
|
'<(skia_src_path)/gpu/gl/debug/GrDebugGL.h',
|
||||||
'<(skia_src_path)/gpu/gl/debug/GrDebugGL.cpp',
|
'<(skia_src_path)/gpu/gl/debug/GrDebugGL.cpp',
|
||||||
'<(skia_src_path)/gpu/gl/debug/GrVetexArrayObj.h',
|
|
||||||
],
|
],
|
||||||
'gr_null_gl_sources': [
|
'gr_null_gl_sources': [
|
||||||
'<(skia_src_path)/gpu/gl/GrGLCreateNullInterface.cpp',
|
'<(skia_src_path)/gpu/gl/GrGLCreateNullInterface.cpp',
|
||||||
|
@ -26,7 +26,7 @@ typedef short GrGLshort;
|
|||||||
typedef int GrGLint;
|
typedef int GrGLint;
|
||||||
typedef int GrGLsizei;
|
typedef int GrGLsizei;
|
||||||
typedef int64_t GrGLint64;
|
typedef int64_t GrGLint64;
|
||||||
typedef unsigned char GrGLubyte;
|
typedef unsigned char GrGLubyte;
|
||||||
typedef unsigned short GrGLushort;
|
typedef unsigned short GrGLushort;
|
||||||
typedef unsigned int GrGLuint;
|
typedef unsigned int GrGLuint;
|
||||||
typedef uint64_t GrGLuint64;
|
typedef uint64_t GrGLuint64;
|
||||||
@ -52,7 +52,6 @@ extern "C" {
|
|||||||
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* GrGLBindFragDataLocationIndexedProc)(GrGLuint program, GrGLuint colorNumber, GrGLuint index, const GrGLchar * name);
|
||||||
typedef GrGLvoid (GR_GL_FUNCTION_TYPE* GrGLBindVertexArrayProc)(GrGLuint array);
|
|
||||||
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* 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);
|
||||||
@ -74,7 +73,6 @@ extern "C" {
|
|||||||
typedef GrGLvoid (GR_GL_FUNCTION_TYPE* GrGLDeleteRenderbuffersProc)(GrGLsizei n, const GrGLuint *renderbuffers);
|
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* GrGLDeleteVertexArraysProc)(GrGLsizei n, const GrGLuint *arrays);
|
|
||||||
typedef GrGLvoid (GR_GL_FUNCTION_TYPE* GrGLDepthMaskProc)(GrGLboolean flag);
|
typedef GrGLvoid (GR_GL_FUNCTION_TYPE* GrGLDepthMaskProc)(GrGLboolean flag);
|
||||||
typedef GrGLvoid (GR_GL_FUNCTION_TYPE* GrGLDisableProc)(GrGLenum cap);
|
typedef GrGLvoid (GR_GL_FUNCTION_TYPE* GrGLDisableProc)(GrGLenum cap);
|
||||||
typedef GrGLvoid (GR_GL_FUNCTION_TYPE* GrGLDisableVertexAttribArrayProc)(GrGLuint index);
|
typedef GrGLvoid (GR_GL_FUNCTION_TYPE* GrGLDisableVertexAttribArrayProc)(GrGLuint index);
|
||||||
@ -95,7 +93,6 @@ extern "C" {
|
|||||||
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* 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* GrGLGenVertexArraysProc)(GrGLsizei n, GrGLuint *arrays);
|
|
||||||
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* GrGLGetFramebufferAttachmentParameterivProc)(GrGLenum target, GrGLenum attachment, GrGLenum pname, GrGLint* params);
|
||||||
|
@ -146,7 +146,6 @@ public:
|
|||||||
GLPtr<GrGLBindFramebufferProc> fBindFramebuffer;
|
GLPtr<GrGLBindFramebufferProc> fBindFramebuffer;
|
||||||
GLPtr<GrGLBindRenderbufferProc> fBindRenderbuffer;
|
GLPtr<GrGLBindRenderbufferProc> fBindRenderbuffer;
|
||||||
GLPtr<GrGLBindTextureProc> fBindTexture;
|
GLPtr<GrGLBindTextureProc> fBindTexture;
|
||||||
GLPtr<GrGLBindVertexArrayProc> fBindVertexArray;
|
|
||||||
GLPtr<GrGLBlendColorProc> fBlendColor;
|
GLPtr<GrGLBlendColorProc> fBlendColor;
|
||||||
GLPtr<GrGLBlendFuncProc> fBlendFunc;
|
GLPtr<GrGLBlendFuncProc> fBlendFunc;
|
||||||
GLPtr<GrGLBlitFramebufferProc> fBlitFramebuffer;
|
GLPtr<GrGLBlitFramebufferProc> fBlitFramebuffer;
|
||||||
@ -169,7 +168,6 @@ public:
|
|||||||
GLPtr<GrGLDeleteRenderbuffersProc> fDeleteRenderbuffers;
|
GLPtr<GrGLDeleteRenderbuffersProc> fDeleteRenderbuffers;
|
||||||
GLPtr<GrGLDeleteShaderProc> fDeleteShader;
|
GLPtr<GrGLDeleteShaderProc> fDeleteShader;
|
||||||
GLPtr<GrGLDeleteTexturesProc> fDeleteTextures;
|
GLPtr<GrGLDeleteTexturesProc> fDeleteTextures;
|
||||||
GLPtr<GrGLDeleteVertexArraysProc> fDeleteVertexArrays;
|
|
||||||
GLPtr<GrGLDepthMaskProc> fDepthMask;
|
GLPtr<GrGLDepthMaskProc> fDepthMask;
|
||||||
GLPtr<GrGLDisableProc> fDisable;
|
GLPtr<GrGLDisableProc> fDisable;
|
||||||
GLPtr<GrGLDisableVertexAttribArrayProc> fDisableVertexAttribArray;
|
GLPtr<GrGLDisableVertexAttribArrayProc> fDisableVertexAttribArray;
|
||||||
@ -190,7 +188,6 @@ public:
|
|||||||
GLPtr<GrGLGenQueriesProc> fGenQueries;
|
GLPtr<GrGLGenQueriesProc> fGenQueries;
|
||||||
GLPtr<GrGLGenRenderbuffersProc> fGenRenderbuffers;
|
GLPtr<GrGLGenRenderbuffersProc> fGenRenderbuffers;
|
||||||
GLPtr<GrGLGenTexturesProc> fGenTextures;
|
GLPtr<GrGLGenTexturesProc> fGenTextures;
|
||||||
GLPtr<GrGLGenVertexArraysProc> fGenVertexArrays;
|
|
||||||
GLPtr<GrGLGetBufferParameterivProc> fGetBufferParameteriv;
|
GLPtr<GrGLGetBufferParameterivProc> fGetBufferParameteriv;
|
||||||
GLPtr<GrGLGetErrorProc> fGetError;
|
GLPtr<GrGLGetErrorProc> fGetError;
|
||||||
GLPtr<GrGLGetFramebufferAttachmentParameterivProc> fGetFramebufferAttachmentParameteriv;
|
GLPtr<GrGLGetFramebufferAttachmentParameterivProc> fGetFramebufferAttachmentParameteriv;
|
||||||
|
@ -20,7 +20,6 @@ GrGLvoid GR_GL_FUNCTION_TYPE nullGLAttachShader(GrGLuint program, GrGLuint shade
|
|||||||
GrGLvoid GR_GL_FUNCTION_TYPE nullGLBeginQuery(GrGLenum target, GrGLuint id) {}
|
GrGLvoid GR_GL_FUNCTION_TYPE nullGLBeginQuery(GrGLenum target, GrGLuint id) {}
|
||||||
GrGLvoid GR_GL_FUNCTION_TYPE nullGLBindAttribLocation(GrGLuint program, GrGLuint index, const char* name) {}
|
GrGLvoid GR_GL_FUNCTION_TYPE nullGLBindAttribLocation(GrGLuint program, GrGLuint index, const char* name) {}
|
||||||
GrGLvoid GR_GL_FUNCTION_TYPE nullGLBindTexture(GrGLenum target, GrGLuint texture) {}
|
GrGLvoid GR_GL_FUNCTION_TYPE nullGLBindTexture(GrGLenum target, GrGLuint texture) {}
|
||||||
GrGLvoid GR_GL_FUNCTION_TYPE nullGLBindVertexArray(GrGLuint id) {}
|
|
||||||
GrGLvoid GR_GL_FUNCTION_TYPE nullGLBufferData(GrGLenum target, GrGLsizeiptr size, const GrGLvoid* data, GrGLenum usage) {}
|
GrGLvoid GR_GL_FUNCTION_TYPE nullGLBufferData(GrGLenum target, GrGLsizeiptr size, const GrGLvoid* data, GrGLenum usage) {}
|
||||||
GrGLvoid GR_GL_FUNCTION_TYPE nullGLPixelStorei(GrGLenum pname, GrGLint param) {}
|
GrGLvoid GR_GL_FUNCTION_TYPE nullGLPixelStorei(GrGLenum pname, GrGLint param) {}
|
||||||
GrGLvoid GR_GL_FUNCTION_TYPE nullGLReadPixels(GrGLint x, GrGLint y, GrGLsizei width, GrGLsizei height, GrGLenum format, GrGLenum type, GrGLvoid* pixels) {}
|
GrGLvoid GR_GL_FUNCTION_TYPE nullGLReadPixels(GrGLint x, GrGLint y, GrGLsizei width, GrGLsizei height, GrGLenum format, GrGLenum type, GrGLvoid* pixels) {}
|
||||||
@ -47,6 +46,7 @@ GrGLuint GR_GL_FUNCTION_TYPE nullGLCreateShader(GrGLenum type) {
|
|||||||
GrGLvoid GR_GL_FUNCTION_TYPE nullGLDelete(GrGLuint program) {
|
GrGLvoid GR_GL_FUNCTION_TYPE nullGLDelete(GrGLuint program) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// In debug builds we do asserts that ensure we agree with GL about when a buffer
|
// In debug builds we do asserts that ensure we agree with GL about when a buffer
|
||||||
// is mapped.
|
// is mapped.
|
||||||
static SkTDArray<GrGLuint> gMappedBuffers;
|
static SkTDArray<GrGLuint> gMappedBuffers;
|
||||||
@ -168,7 +168,6 @@ const GrGLInterface* GrGLCreateNullInterface() {
|
|||||||
interface->fBindBuffer = nullGLBindBuffer;
|
interface->fBindBuffer = nullGLBindBuffer;
|
||||||
interface->fBindFragDataLocation = noOpGLBindFragDataLocation;
|
interface->fBindFragDataLocation = noOpGLBindFragDataLocation;
|
||||||
interface->fBindTexture = nullGLBindTexture;
|
interface->fBindTexture = nullGLBindTexture;
|
||||||
interface->fBindVertexArray = nullGLBindVertexArray;
|
|
||||||
interface->fBlendColor = noOpGLBlendColor;
|
interface->fBlendColor = noOpGLBlendColor;
|
||||||
interface->fBlendFunc = noOpGLBlendFunc;
|
interface->fBlendFunc = noOpGLBlendFunc;
|
||||||
interface->fBufferData = nullGLBufferData;
|
interface->fBufferData = nullGLBufferData;
|
||||||
@ -187,7 +186,6 @@ const GrGLInterface* GrGLCreateNullInterface() {
|
|||||||
interface->fDeleteQueries = noOpGLDeleteIds;
|
interface->fDeleteQueries = noOpGLDeleteIds;
|
||||||
interface->fDeleteShader = nullGLDelete;
|
interface->fDeleteShader = nullGLDelete;
|
||||||
interface->fDeleteTextures = noOpGLDeleteIds;
|
interface->fDeleteTextures = noOpGLDeleteIds;
|
||||||
interface->fDeleteVertexArrays = noOpGLDeleteIds;
|
|
||||||
interface->fDepthMask = noOpGLDepthMask;
|
interface->fDepthMask = noOpGLDepthMask;
|
||||||
interface->fDisable = noOpGLDisable;
|
interface->fDisable = noOpGLDisable;
|
||||||
interface->fDisableVertexAttribArray = noOpGLDisableVertexAttribArray;
|
interface->fDisableVertexAttribArray = noOpGLDisableVertexAttribArray;
|
||||||
@ -204,7 +202,6 @@ const GrGLInterface* GrGLCreateNullInterface() {
|
|||||||
interface->fGenBuffers = noOpGLGenIds;
|
interface->fGenBuffers = noOpGLGenIds;
|
||||||
interface->fGenQueries = noOpGLGenIds;
|
interface->fGenQueries = noOpGLGenIds;
|
||||||
interface->fGenTextures = noOpGLGenIds;
|
interface->fGenTextures = noOpGLGenIds;
|
||||||
interface->fGenVertexArrays = noOpGLGenIds;
|
|
||||||
interface->fGetBufferParameteriv = nullGLGetBufferParameteriv;
|
interface->fGetBufferParameteriv = nullGLGetBufferParameteriv;
|
||||||
interface->fGetError = noOpGLGetError;
|
interface->fGetError = noOpGLGetError;
|
||||||
interface->fGetIntegerv = noOpGLGetIntegerv;
|
interface->fGetIntegerv = noOpGLGetIntegerv;
|
||||||
|
@ -349,25 +349,5 @@ bool GrGLInterface::validate(GrGLBinding binding) const {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (kDesktop_GrGLBinding == binding) {
|
|
||||||
if (glVer >= GR_GL_VER(3, 0) || extensions.has("GL_ARB_vertex_array_object")) {
|
|
||||||
if (NULL == fBindVertexArray ||
|
|
||||||
NULL == fDeleteVertexArrays ||
|
|
||||||
NULL == fGenVertexArrays) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
#if 0 // Remove this #if once Chromium interfaces set these pointers
|
|
||||||
if (extensions.has("GL_OES_vertex_array_object")) {
|
|
||||||
if (NULL == fBindVertexArray ||
|
|
||||||
NULL == fDeleteVertexArrays ||
|
|
||||||
NULL == fGenVertexArrays) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,6 @@ const GrGLInterface* GrGLCreateNativeInterface() {
|
|||||||
interface->fBindAttribLocation = glBindAttribLocation;
|
interface->fBindAttribLocation = glBindAttribLocation;
|
||||||
interface->fBindBuffer = glBindBuffer;
|
interface->fBindBuffer = glBindBuffer;
|
||||||
interface->fBindTexture = glBindTexture;
|
interface->fBindTexture = glBindTexture;
|
||||||
interface->fBindVertexArray = glBindVertexArrayOES;
|
|
||||||
interface->fBlendColor = glBlendColor;
|
interface->fBlendColor = glBlendColor;
|
||||||
interface->fBlendFunc = glBlendFunc;
|
interface->fBlendFunc = glBlendFunc;
|
||||||
interface->fBufferData = glBufferData;
|
interface->fBufferData = glBufferData;
|
||||||
@ -44,7 +43,6 @@ const GrGLInterface* GrGLCreateNativeInterface() {
|
|||||||
interface->fDeleteProgram = glDeleteProgram;
|
interface->fDeleteProgram = glDeleteProgram;
|
||||||
interface->fDeleteShader = glDeleteShader;
|
interface->fDeleteShader = glDeleteShader;
|
||||||
interface->fDeleteTextures = glDeleteTextures;
|
interface->fDeleteTextures = glDeleteTextures;
|
||||||
interface->fDeleteVertexArrays = glDeleteVertexArraysOES;
|
|
||||||
interface->fDepthMask = glDepthMask;
|
interface->fDepthMask = glDepthMask;
|
||||||
interface->fDisable = glDisable;
|
interface->fDisable = glDisable;
|
||||||
interface->fDisableVertexAttribArray = glDisableVertexAttribArray;
|
interface->fDisableVertexAttribArray = glDisableVertexAttribArray;
|
||||||
@ -57,7 +55,6 @@ const GrGLInterface* GrGLCreateNativeInterface() {
|
|||||||
interface->fFrontFace = glFrontFace;
|
interface->fFrontFace = glFrontFace;
|
||||||
interface->fGenBuffers = glGenBuffers;
|
interface->fGenBuffers = glGenBuffers;
|
||||||
interface->fGenTextures = glGenTextures;
|
interface->fGenTextures = glGenTextures;
|
||||||
interface->fGenVertexArrays= glGenVertexArraysOES;
|
|
||||||
interface->fGetBufferParameteriv = glGetBufferParameteriv;
|
interface->fGetBufferParameteriv = glGetBufferParameteriv;
|
||||||
interface->fGetError = glGetError;
|
interface->fGetError = glGetError;
|
||||||
interface->fGetIntegerv = glGetIntegerv;
|
interface->fGetIntegerv = glGetIntegerv;
|
||||||
|
@ -44,7 +44,6 @@ const GrGLInterface* GrGLCreateANGLEInterface() {
|
|||||||
GR_GET_PROC(GrGLBindAttribLocationProc, BindAttribLocation);
|
GR_GET_PROC(GrGLBindAttribLocationProc, BindAttribLocation);
|
||||||
GR_GET_PROC(GrGLBindBufferProc, BindBuffer);
|
GR_GET_PROC(GrGLBindBufferProc, BindBuffer);
|
||||||
GR_GET_PROC(GrGLBindTextureProc, BindTexture);
|
GR_GET_PROC(GrGLBindTextureProc, BindTexture);
|
||||||
interface->fBindVertexArray = (GrGLBindVertexArrayProc) eglGetProcAddress("glBindVertexArrayOES");
|
|
||||||
GR_GET_PROC(GrGLBlendColorProc, BlendColor);
|
GR_GET_PROC(GrGLBlendColorProc, BlendColor);
|
||||||
GR_GET_PROC(GrGLBlendFuncProc, BlendFunc);
|
GR_GET_PROC(GrGLBlendFuncProc, BlendFunc);
|
||||||
GR_GET_PROC(GrGLBufferDataProc, BufferData);
|
GR_GET_PROC(GrGLBufferDataProc, BufferData);
|
||||||
@ -62,7 +61,6 @@ const GrGLInterface* GrGLCreateANGLEInterface() {
|
|||||||
GR_GET_PROC(GrGLDeleteProgramProc, DeleteProgram);
|
GR_GET_PROC(GrGLDeleteProgramProc, DeleteProgram);
|
||||||
GR_GET_PROC(GrGLDeleteShaderProc, DeleteShader);
|
GR_GET_PROC(GrGLDeleteShaderProc, DeleteShader);
|
||||||
GR_GET_PROC(GrGLDeleteTexturesProc, DeleteTextures);
|
GR_GET_PROC(GrGLDeleteTexturesProc, DeleteTextures);
|
||||||
interface->fDeleteVertexArrays = (GrGLDeleteVertexArraysProc) eglGetProcAddress("glDeleteVertexArraysOES");
|
|
||||||
GR_GET_PROC(GrGLDepthMaskProc, DepthMask);
|
GR_GET_PROC(GrGLDepthMaskProc, DepthMask);
|
||||||
GR_GET_PROC(GrGLDisableProc, Disable);
|
GR_GET_PROC(GrGLDisableProc, Disable);
|
||||||
GR_GET_PROC(GrGLDisableVertexAttribArrayProc, DisableVertexAttribArray);
|
GR_GET_PROC(GrGLDisableVertexAttribArrayProc, DisableVertexAttribArray);
|
||||||
@ -75,7 +73,6 @@ const GrGLInterface* GrGLCreateANGLEInterface() {
|
|||||||
GR_GET_PROC(GrGLFrontFaceProc, FrontFace);
|
GR_GET_PROC(GrGLFrontFaceProc, FrontFace);
|
||||||
GR_GET_PROC(GrGLGenBuffersProc, GenBuffers);
|
GR_GET_PROC(GrGLGenBuffersProc, GenBuffers);
|
||||||
GR_GET_PROC(GrGLGenTexturesProc, GenTextures);
|
GR_GET_PROC(GrGLGenTexturesProc, GenTextures);
|
||||||
interface->fGenVertexArrays = (GrGLGenVertexArraysProc) eglGetProcAddress("glGenVertexArraysOES");
|
|
||||||
GR_GET_PROC(GrGLGetBufferParameterivProc, GetBufferParameteriv);
|
GR_GET_PROC(GrGLGetBufferParameterivProc, GetBufferParameteriv);
|
||||||
GR_GET_PROC(GrGLGetErrorProc, GetError);
|
GR_GET_PROC(GrGLGetErrorProc, GetError);
|
||||||
GR_GET_PROC(GrGLGetIntegervProc, GetIntegerv);
|
GR_GET_PROC(GrGLGetIntegervProc, GetIntegerv);
|
||||||
@ -104,7 +101,9 @@ const GrGLInterface* GrGLCreateANGLEInterface() {
|
|||||||
#if GL_ARB_texture_storage
|
#if GL_ARB_texture_storage
|
||||||
GR_GET_PROC(GrGLTexStorage2DProc, TexStorage2D);
|
GR_GET_PROC(GrGLTexStorage2DProc, TexStorage2D);
|
||||||
#elif GL_EXT_texture_storage
|
#elif GL_EXT_texture_storage
|
||||||
interface->fTexStorage2D = (PFNGLTEXSTORAGE2DEXTPROC) eglGetProcAddress("glTexStorage2DEXT");
|
interface->fTexStorage2D = (GrGLTexStorage2DProc)
|
||||||
|
GetProcAddress(ghANGLELib,
|
||||||
|
"glTexStorage2DEXT");
|
||||||
#endif
|
#endif
|
||||||
GR_GET_PROC(GrGLUniform1fProc, Uniform1f);
|
GR_GET_PROC(GrGLUniform1fProc, Uniform1f);
|
||||||
GR_GET_PROC(GrGLUniform1iProc, Uniform1i);
|
GR_GET_PROC(GrGLUniform1iProc, Uniform1i);
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
#include "GrShaderObj.h"
|
#include "GrShaderObj.h"
|
||||||
#include "GrProgramObj.h"
|
#include "GrProgramObj.h"
|
||||||
#include "GrTextureUnitObj.h"
|
#include "GrTextureUnitObj.h"
|
||||||
#include "GrVertexArrayObj.h"
|
|
||||||
|
|
||||||
GrDebugGL* GrDebugGL::gObj = NULL;
|
GrDebugGL* GrDebugGL::gObj = NULL;
|
||||||
int GrDebugGL::gStaticRefCount = 0;
|
int GrDebugGL::gStaticRefCount = 0;
|
||||||
@ -26,7 +26,6 @@ GrDebugGL::Create GrDebugGL::gFactoryFunc[kObjTypeCount] = {
|
|||||||
GrShaderObj::createGrShaderObj,
|
GrShaderObj::createGrShaderObj,
|
||||||
GrProgramObj::createGrProgramObj,
|
GrProgramObj::createGrProgramObj,
|
||||||
GrTextureUnitObj::createGrTextureUnitObj,
|
GrTextureUnitObj::createGrTextureUnitObj,
|
||||||
GrVertexArrayObj::createGrVertexArrayObj,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -39,8 +38,7 @@ GrDebugGL::GrDebugGL()
|
|||||||
, fFrameBuffer(NULL)
|
, fFrameBuffer(NULL)
|
||||||
, fRenderBuffer(NULL)
|
, fRenderBuffer(NULL)
|
||||||
, fProgram(NULL)
|
, fProgram(NULL)
|
||||||
, fTexture(NULL)
|
, fTexture(NULL) {
|
||||||
, fVertexArray(NULL) {
|
|
||||||
|
|
||||||
for (int i = 0; i < kDefaultMaxTextureUnits; ++i) {
|
for (int i = 0; i < kDefaultMaxTextureUnits; ++i) {
|
||||||
|
|
||||||
@ -72,7 +70,6 @@ GrDebugGL::~GrDebugGL() {
|
|||||||
fRenderBuffer = NULL;
|
fRenderBuffer = NULL;
|
||||||
fProgram = NULL;
|
fProgram = NULL;
|
||||||
fTexture = NULL;
|
fTexture = NULL;
|
||||||
fVertexArray = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GrFakeRefObj *GrDebugGL::findObject(GrGLuint ID, GrObjTypes type) {
|
GrFakeRefObj *GrDebugGL::findObject(GrGLuint ID, GrObjTypes type) {
|
||||||
@ -110,10 +107,6 @@ void GrDebugGL::setArrayBuffer(GrBufferObj *arrayBuffer) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GrDebugGL::setVertexArray(GrVertexArrayObj* vertexArray) {
|
|
||||||
SkRefCnt_SafeAssign(fVertexArray, vertexArray);
|
|
||||||
}
|
|
||||||
|
|
||||||
void GrDebugGL::setElementArrayBuffer(GrBufferObj *elementArrayBuffer) {
|
void GrDebugGL::setElementArrayBuffer(GrBufferObj *elementArrayBuffer) {
|
||||||
if (fElementArrayBuffer) {
|
if (fElementArrayBuffer) {
|
||||||
// automatically break the binding of the old buffer
|
// automatically break the binding of the old buffer
|
||||||
|
@ -12,14 +12,13 @@
|
|||||||
#include "SkTArray.h"
|
#include "SkTArray.h"
|
||||||
#include "gl/GrGLInterface.h"
|
#include "gl/GrGLInterface.h"
|
||||||
|
|
||||||
class GrBufferObj;
|
|
||||||
class GrFakeRefObj;
|
class GrFakeRefObj;
|
||||||
class GrFrameBufferObj;
|
|
||||||
class GrProgramObj;
|
|
||||||
class GrRenderBufferObj;
|
|
||||||
class GrTextureObj;
|
|
||||||
class GrTextureUnitObj;
|
class GrTextureUnitObj;
|
||||||
class GrVertexArrayObj;
|
class GrBufferObj;
|
||||||
|
class GrTextureObj;
|
||||||
|
class GrFrameBufferObj;
|
||||||
|
class GrRenderBufferObj;
|
||||||
|
class GrProgramObj;
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// This is the main debugging object. It is a singleton and keeps track of
|
// This is the main debugging object. It is a singleton and keeps track of
|
||||||
@ -34,7 +33,6 @@ public:
|
|||||||
kShader_ObjTypes,
|
kShader_ObjTypes,
|
||||||
kProgram_ObjTypes,
|
kProgram_ObjTypes,
|
||||||
kTextureUnit_ObjTypes,
|
kTextureUnit_ObjTypes,
|
||||||
kVertexArray_ObjTypes,
|
|
||||||
kObjTypeCount
|
kObjTypeCount
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -65,9 +63,6 @@ public:
|
|||||||
void setElementArrayBuffer(GrBufferObj *elementArrayBuffer);
|
void setElementArrayBuffer(GrBufferObj *elementArrayBuffer);
|
||||||
GrBufferObj *getElementArrayBuffer() { return fElementArrayBuffer; }
|
GrBufferObj *getElementArrayBuffer() { return fElementArrayBuffer; }
|
||||||
|
|
||||||
void setVertexArray(GrVertexArrayObj* vertexArray);
|
|
||||||
GrVertexArrayObj* getVertexArray() { return fVertexArray; }
|
|
||||||
|
|
||||||
void setTexture(GrTextureObj *texture);
|
void setTexture(GrTextureObj *texture);
|
||||||
|
|
||||||
void setFrameBuffer(GrFrameBufferObj *frameBuffer);
|
void setFrameBuffer(GrFrameBufferObj *frameBuffer);
|
||||||
@ -124,14 +119,13 @@ private:
|
|||||||
GrGLint fUnPackRowLength;
|
GrGLint fUnPackRowLength;
|
||||||
GrGLuint fMaxTextureUnits;
|
GrGLuint fMaxTextureUnits;
|
||||||
GrGLuint fCurTextureUnit;
|
GrGLuint fCurTextureUnit;
|
||||||
GrBufferObj* fArrayBuffer;
|
GrBufferObj * fArrayBuffer;
|
||||||
GrBufferObj* fElementArrayBuffer;
|
GrBufferObj * fElementArrayBuffer;
|
||||||
GrFrameBufferObj* fFrameBuffer;
|
GrFrameBufferObj *fFrameBuffer;
|
||||||
GrRenderBufferObj* fRenderBuffer;
|
GrRenderBufferObj *fRenderBuffer;
|
||||||
GrProgramObj* fProgram;
|
GrProgramObj * fProgram;
|
||||||
GrTextureObj* fTexture;
|
GrTextureObj * fTexture;
|
||||||
GrTextureUnitObj *fTextureUnits[kDefaultMaxTextureUnits];
|
GrTextureUnitObj *fTextureUnits[kDefaultMaxTextureUnits];
|
||||||
GrVertexArrayObj *fVertexArray;
|
|
||||||
|
|
||||||
typedef GrFakeRefObj *(*Create)();
|
typedef GrFakeRefObj *(*Create)();
|
||||||
|
|
||||||
|
@ -16,7 +16,6 @@
|
|||||||
#include "GrTextureObj.h"
|
#include "GrTextureObj.h"
|
||||||
#include "GrFrameBufferObj.h"
|
#include "GrFrameBufferObj.h"
|
||||||
#include "GrRenderBufferObj.h"
|
#include "GrRenderBufferObj.h"
|
||||||
#include "GrVertexArrayObj.h"
|
|
||||||
#include "SkFloatingPoint.h"
|
#include "SkFloatingPoint.h"
|
||||||
#include "../GrGLNoOpInterface.h"
|
#include "../GrGLNoOpInterface.h"
|
||||||
|
|
||||||
@ -213,7 +212,8 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLReadPixels(GrGLint x,
|
|||||||
GrDebugGL::getInstance()->setFrameBuffer(frameBuffer);
|
GrDebugGL::getInstance()->setFrameBuffer(frameBuffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
GrGLvoid GR_GL_FUNCTION_TYPE debugGLBindRenderbuffer(GrGLenum target, GrGLuint renderBufferID) {
|
GrGLvoid GR_GL_FUNCTION_TYPE debugGLBindRenderbuffer(GrGLenum target,
|
||||||
|
GrGLuint renderBufferID) {
|
||||||
|
|
||||||
GrAlwaysAssert(GR_GL_RENDERBUFFER == target);
|
GrAlwaysAssert(GR_GL_RENDERBUFFER == target);
|
||||||
|
|
||||||
@ -225,7 +225,8 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLReadPixels(GrGLint x,
|
|||||||
GrDebugGL::getInstance()->setRenderBuffer(renderBuffer);
|
GrDebugGL::getInstance()->setRenderBuffer(renderBuffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteTextures(GrGLsizei n, const GrGLuint* textures) {
|
GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteTextures(GrGLsizei n,
|
||||||
|
const GrGLuint* textures) {
|
||||||
|
|
||||||
// first potentially unbind the texture
|
// first potentially unbind the texture
|
||||||
// TODO: move this into GrDebugGL as unBindTexture?
|
// TODO: move this into GrDebugGL as unBindTexture?
|
||||||
@ -286,6 +287,7 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLReadPixels(GrGLint x,
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteFramebuffers(GrGLsizei n,
|
GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteFramebuffers(GrGLsizei n,
|
||||||
const GrGLuint *frameBuffers) {
|
const GrGLuint *frameBuffers) {
|
||||||
|
|
||||||
@ -516,55 +518,32 @@ GrGLvoid debugGenObjs(GrDebugGL::GrObjTypes type,
|
|||||||
}
|
}
|
||||||
|
|
||||||
GrGLvoid GR_GL_FUNCTION_TYPE debugGLGenBuffers(GrGLsizei n, GrGLuint* ids) {
|
GrGLvoid GR_GL_FUNCTION_TYPE debugGLGenBuffers(GrGLsizei n, GrGLuint* ids) {
|
||||||
|
|
||||||
debugGenObjs(GrDebugGL::kBuffer_ObjTypes, n, ids);
|
debugGenObjs(GrDebugGL::kBuffer_ObjTypes, n, ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
GrGLvoid GR_GL_FUNCTION_TYPE debugGLGenFramebuffers(GrGLsizei n,
|
GrGLvoid GR_GL_FUNCTION_TYPE debugGLGenFramebuffers(GrGLsizei n,
|
||||||
GrGLuint* ids) {
|
GrGLuint* ids) {
|
||||||
|
|
||||||
debugGenObjs(GrDebugGL::kFrameBuffer_ObjTypes, n, ids);
|
debugGenObjs(GrDebugGL::kFrameBuffer_ObjTypes, n, ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
GrGLvoid GR_GL_FUNCTION_TYPE debugGLGenRenderbuffers(GrGLsizei n,
|
GrGLvoid GR_GL_FUNCTION_TYPE debugGLGenRenderbuffers(GrGLsizei n,
|
||||||
GrGLuint* ids) {
|
GrGLuint* ids) {
|
||||||
|
|
||||||
debugGenObjs(GrDebugGL::kRenderBuffer_ObjTypes, n, ids);
|
debugGenObjs(GrDebugGL::kRenderBuffer_ObjTypes, n, ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
GrGLvoid GR_GL_FUNCTION_TYPE debugGLGenTextures(GrGLsizei n, GrGLuint* ids) {
|
GrGLvoid GR_GL_FUNCTION_TYPE debugGLGenTextures(GrGLsizei n, GrGLuint* ids) {
|
||||||
|
|
||||||
debugGenObjs(GrDebugGL::kTexture_ObjTypes, n, ids);
|
debugGenObjs(GrDebugGL::kTexture_ObjTypes, n, ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
GrGLvoid GR_GL_FUNCTION_TYPE debugGLGenVertexArrays(GrGLsizei n, GrGLuint* ids) {
|
GrGLvoid GR_GL_FUNCTION_TYPE debugGLBindBuffer(GrGLenum target,
|
||||||
debugGenObjs(GrDebugGL::kVertexArray_ObjTypes, n, ids);
|
GrGLuint bufferID) {
|
||||||
}
|
|
||||||
|
|
||||||
GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteVertexArrays(GrGLsizei n, const GrGLuint* ids) {
|
GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target ||
|
||||||
for (GrGLsizei i = 0; i < n; ++i) {
|
GR_GL_ELEMENT_ARRAY_BUFFER == target);
|
||||||
GrVertexArrayObj* array =
|
|
||||||
GR_FIND(ids[i], GrVertexArrayObj, GrDebugGL::kVertexArray_ObjTypes);
|
|
||||||
GrAlwaysAssert(array);
|
|
||||||
|
|
||||||
// Deleting the current vertex array binds object 0
|
|
||||||
if (GrDebugGL::getInstance()->getVertexArray() == array) {
|
|
||||||
GrDebugGL::getInstance()->setVertexArray(NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (array->getRefCount()) {
|
|
||||||
// someone is still using this shader so we can't delete it here
|
|
||||||
array->setMarkedForDeletion();
|
|
||||||
} else {
|
|
||||||
array->deleteAction();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
GrGLvoid GR_GL_FUNCTION_TYPE debugGLBindVertexArray(GrGLuint id) {
|
|
||||||
GrVertexArrayObj* array = GR_FIND(id, GrVertexArrayObj, GrDebugGL::kVertexArray_ObjTypes);
|
|
||||||
GrAlwaysAssert(array);
|
|
||||||
GrDebugGL::getInstance()->setVertexArray(array);
|
|
||||||
}
|
|
||||||
|
|
||||||
GrGLvoid GR_GL_FUNCTION_TYPE debugGLBindBuffer(GrGLenum target, GrGLuint bufferID) {
|
|
||||||
GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target || GR_GL_ELEMENT_ARRAY_BUFFER == target);
|
|
||||||
|
|
||||||
GrBufferObj *buffer = GR_FIND(bufferID,
|
GrBufferObj *buffer = GR_FIND(bufferID,
|
||||||
GrBufferObj,
|
GrBufferObj,
|
||||||
@ -585,7 +564,8 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLBindBuffer(GrGLenum target, GrGLuint bufferI
|
|||||||
}
|
}
|
||||||
|
|
||||||
// deleting a bound buffer has the side effect of binding 0
|
// deleting a bound buffer has the side effect of binding 0
|
||||||
GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteBuffers(GrGLsizei n, const GrGLuint* ids) {
|
GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteBuffers(GrGLsizei n,
|
||||||
|
const GrGLuint* ids) {
|
||||||
// first potentially unbind the buffers
|
// first potentially unbind the buffers
|
||||||
for (int i = 0; i < n; ++i) {
|
for (int i = 0; i < n; ++i) {
|
||||||
|
|
||||||
@ -615,7 +595,8 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteBuffers(GrGLsizei n, const GrGLuint* i
|
|||||||
}
|
}
|
||||||
|
|
||||||
// map a buffer to the caller's address space
|
// map a buffer to the caller's address space
|
||||||
GrGLvoid* GR_GL_FUNCTION_TYPE debugGLMapBuffer(GrGLenum target, GrGLenum access) {
|
GrGLvoid* GR_GL_FUNCTION_TYPE debugGLMapBuffer(GrGLenum target,
|
||||||
|
GrGLenum access) {
|
||||||
|
|
||||||
GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target ||
|
GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target ||
|
||||||
GR_GL_ELEMENT_ARRAY_BUFFER == target);
|
GR_GL_ELEMENT_ARRAY_BUFFER == target);
|
||||||
@ -786,7 +767,6 @@ const GrGLInterface* GrGLCreateDebugInterface() {
|
|||||||
interface->fBindBuffer = debugGLBindBuffer;
|
interface->fBindBuffer = debugGLBindBuffer;
|
||||||
interface->fBindFragDataLocation = noOpGLBindFragDataLocation;
|
interface->fBindFragDataLocation = noOpGLBindFragDataLocation;
|
||||||
interface->fBindTexture = debugGLBindTexture;
|
interface->fBindTexture = debugGLBindTexture;
|
||||||
interface->fBindVertexArray = debugGLBindVertexArray;
|
|
||||||
interface->fBlendColor = noOpGLBlendColor;
|
interface->fBlendColor = noOpGLBlendColor;
|
||||||
interface->fBlendFunc = noOpGLBlendFunc;
|
interface->fBlendFunc = noOpGLBlendFunc;
|
||||||
interface->fBufferData = debugGLBufferData;
|
interface->fBufferData = debugGLBufferData;
|
||||||
@ -805,7 +785,6 @@ const GrGLInterface* GrGLCreateDebugInterface() {
|
|||||||
interface->fDeleteQueries = noOpGLDeleteIds;
|
interface->fDeleteQueries = noOpGLDeleteIds;
|
||||||
interface->fDeleteShader = debugGLDeleteShader;
|
interface->fDeleteShader = debugGLDeleteShader;
|
||||||
interface->fDeleteTextures = debugGLDeleteTextures;
|
interface->fDeleteTextures = debugGLDeleteTextures;
|
||||||
interface->fDeleteVertexArrays = debugGLDeleteVertexArrays;
|
|
||||||
interface->fDepthMask = noOpGLDepthMask;
|
interface->fDepthMask = noOpGLDepthMask;
|
||||||
interface->fDisable = noOpGLDisable;
|
interface->fDisable = noOpGLDisable;
|
||||||
interface->fDisableVertexAttribArray = noOpGLDisableVertexAttribArray;
|
interface->fDisableVertexAttribArray = noOpGLDisableVertexAttribArray;
|
||||||
@ -838,7 +817,6 @@ const GrGLInterface* GrGLCreateDebugInterface() {
|
|||||||
interface->fGetStringi = noOpGLGetStringi;
|
interface->fGetStringi = noOpGLGetStringi;
|
||||||
interface->fGetTexLevelParameteriv = noOpGLGetTexLevelParameteriv;
|
interface->fGetTexLevelParameteriv = noOpGLGetTexLevelParameteriv;
|
||||||
interface->fGetUniformLocation = noOpGLGetUniformLocation;
|
interface->fGetUniformLocation = noOpGLGetUniformLocation;
|
||||||
interface->fGenVertexArrays = debugGLGenVertexArrays;
|
|
||||||
interface->fLineWidth = noOpGLLineWidth;
|
interface->fLineWidth = noOpGLLineWidth;
|
||||||
interface->fLinkProgram = noOpGLLinkProgram;
|
interface->fLinkProgram = noOpGLLinkProgram;
|
||||||
interface->fPixelStorei = debugGLPixelStorei;
|
interface->fPixelStorei = debugGLPixelStorei;
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2013 Google Inc.
|
|
||||||
*
|
|
||||||
* Use of this source code is governed by a BSD-style license that can be
|
|
||||||
* found in the LICENSE file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef GrVertexArrayObj_DEFINED
|
|
||||||
#define GrVertexArrayObj_DEFINED
|
|
||||||
|
|
||||||
#include "GrFakeRefObj.h"
|
|
||||||
|
|
||||||
class GrVertexArrayObj : public GrFakeRefObj {
|
|
||||||
GR_DEFINE_CREATOR(GrVertexArrayObj);
|
|
||||||
|
|
||||||
public:
|
|
||||||
GrVertexArrayObj() : GrFakeRefObj() {}
|
|
||||||
|
|
||||||
typedef GrFakeRefObj INHERITED;
|
|
||||||
};
|
|
||||||
#endif
|
|
@ -79,11 +79,11 @@ const GrGLInterface* GrGLCreateNativeInterface() {
|
|||||||
// mac uses GLenum for internalFormat param (non-standard)
|
// mac uses GLenum for internalFormat param (non-standard)
|
||||||
// amounts to int vs. uint.
|
// amounts to int vs. uint.
|
||||||
interface->fTexImage2D = (GrGLTexImage2DProc)glTexImage2D;
|
interface->fTexImage2D = (GrGLTexImage2DProc)glTexImage2D;
|
||||||
#if GL_ARB_texture_storage
|
#if GL_ARB_texture_storage
|
||||||
interface->fTexStorage2D = glTexStorage2D;
|
interface->fTexStorage2D = glTexStorage2D;
|
||||||
#elif GL_EXT_texture_storage
|
#elif GL_EXT_texture_storage
|
||||||
interface->fTexStorage2D = glTexStorage2DEXT;
|
interface->fTexStorage2D = glTexStorage2DEXT;
|
||||||
#endif
|
#endif
|
||||||
interface->fTexParameteri = glTexParameteri;
|
interface->fTexParameteri = glTexParameteri;
|
||||||
interface->fTexParameteriv = glTexParameteriv;
|
interface->fTexParameteriv = glTexParameteriv;
|
||||||
interface->fTexSubImage2D = glTexSubImage2D;
|
interface->fTexSubImage2D = glTexSubImage2D;
|
||||||
@ -124,21 +124,16 @@ const GrGLInterface* GrGLCreateNativeInterface() {
|
|||||||
interface->fFramebufferRenderbuffer = glFramebufferRenderbuffer;
|
interface->fFramebufferRenderbuffer = glFramebufferRenderbuffer;
|
||||||
interface->fBindRenderbuffer = glBindRenderbuffer;
|
interface->fBindRenderbuffer = glBindRenderbuffer;
|
||||||
|
|
||||||
#if GL_OES_mapbuffer
|
#if GL_OES_mapbuffer
|
||||||
interface->fMapBuffer = glMapBufferOES;
|
interface->fMapBuffer = glMapBufferOES;
|
||||||
interface->fUnmapBuffer = glUnmapBufferOES;
|
interface->fUnmapBuffer = glUnmapBufferOES;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if GL_APPLE_framebuffer_multisample
|
#if GL_APPLE_framebuffer_multisample
|
||||||
interface->fRenderbufferStorageMultisample = glRenderbufferStorageMultisampleAPPLE;
|
interface->fRenderbufferStorageMultisample = glRenderbufferStorageMultisampleAPPLE;
|
||||||
interface->fResolveMultisampleFramebuffer = glResolveMultisampleFramebufferAPPLE;
|
interface->fResolveMultisampleFramebuffer = glResolveMultisampleFramebufferAPPLE;
|
||||||
#endif
|
#endif
|
||||||
|
interface->fBindFragDataLocationIndexed = NULL;
|
||||||
#if GL_OES_vertex_array_object
|
|
||||||
interface->fBindVertexArray = glBindVertexArrayOES;
|
|
||||||
interface->fDeleteVertexArrays = glDeleteVertexArraysOES;
|
|
||||||
interface->fGenVertexArrays = glGenVertexArraysOES;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
interface->fBindingsExported = kES2_GrGLBinding;
|
interface->fBindingsExported = kES2_GrGLBinding;
|
||||||
}
|
}
|
||||||
|
@ -45,11 +45,11 @@ const GrGLInterface* GrGLCreateNativeInterface() {
|
|||||||
interface->fBindAttribLocation = glBindAttribLocation;
|
interface->fBindAttribLocation = glBindAttribLocation;
|
||||||
interface->fBindBuffer = glBindBuffer;
|
interface->fBindBuffer = glBindBuffer;
|
||||||
if (ver >= GR_GL_VER(3,0)) {
|
if (ver >= GR_GL_VER(3,0)) {
|
||||||
#if GL_VERSION_3_0
|
#if GL_VERSION_3_0
|
||||||
interface->fBindFragDataLocation = glBindFragDataLocation;
|
interface->fBindFragDataLocation = glBindFragDataLocation;
|
||||||
#else
|
#else
|
||||||
GET_PROC(BindFragDataLocation);
|
interface->fBindFragDataLocation = GET_PROC(BindFragDataLocation);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
interface->fBindTexture = glBindTexture;
|
interface->fBindTexture = glBindTexture;
|
||||||
interface->fBlendFunc = glBlendFunc;
|
interface->fBlendFunc = glBlendFunc;
|
||||||
@ -131,17 +131,17 @@ const GrGLInterface* GrGLCreateNativeInterface() {
|
|||||||
interface->fTexImage2D = (GrGLTexImage2DProc)glTexImage2D;
|
interface->fTexImage2D = (GrGLTexImage2DProc)glTexImage2D;
|
||||||
interface->fTexParameteri = glTexParameteri;
|
interface->fTexParameteri = glTexParameteri;
|
||||||
interface->fTexParameteriv = glTexParameteriv;
|
interface->fTexParameteriv = glTexParameteriv;
|
||||||
#if GL_ARB_texture_storage || GL_VERSION_4_2
|
#if GL_ARB_texture_storage || GL_VERSION_4_2
|
||||||
interface->fTexStorage2D = glTexStorage2D
|
interface->fTexStorage2D = glTexStorage2D
|
||||||
#elif GL_EXT_texture_storage
|
#elif GL_EXT_texture_storage
|
||||||
interface->fTexStorage2D = glTexStorage2DEXT;
|
interface->fTexStorage2D = glTexStorage2DEXT;
|
||||||
#else
|
#else
|
||||||
if (ver >= GR_GL_VER(4,2) || extensions.has("GL_ARB_texture_storage")) {
|
if (ver >= GR_GL_VER(4,2) || extensions.has("GL_ARB_texture_storage")) {
|
||||||
GET_PROC(TexStorage2D);
|
GET_PROC(TexStorage2D);
|
||||||
} else if (extensions.has("GL_EXT_texture_storage")) {
|
} else if (extensions.has("GL_EXT_texture_storage")) {
|
||||||
GET_PROC_SUFFIX(TexStorage2D, EXT);
|
GET_PROC_SUFFIX(TexStorage2D, EXT);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
interface->fTexSubImage2D = glTexSubImage2D;
|
interface->fTexSubImage2D = glTexSubImage2D;
|
||||||
interface->fUniform1f = glUniform1f;
|
interface->fUniform1f = glUniform1f;
|
||||||
interface->fUniform1i = glUniform1i;
|
interface->fUniform1i = glUniform1i;
|
||||||
@ -169,43 +169,30 @@ const GrGLInterface* GrGLCreateNativeInterface() {
|
|||||||
interface->fVertexAttribPointer = glVertexAttribPointer;
|
interface->fVertexAttribPointer = glVertexAttribPointer;
|
||||||
interface->fViewport = glViewport;
|
interface->fViewport = glViewport;
|
||||||
|
|
||||||
if (ver >= GR_GL_VER(3,0) || extensions.has("GL_ARB_vertex_array_object")) {
|
|
||||||
// no ARB suffix for GL_ARB_vertex_array_object
|
|
||||||
#if GL_ARB_vertex_array_object || GL_VERSION_3_0
|
|
||||||
interface->fBindVertexArray = glBindVertexArray;
|
|
||||||
interface->fDeleteVertexArrays = glDeleteVertexArrays;
|
|
||||||
interface->fGenVertexArrays = glGenVertexArrays;
|
|
||||||
#else
|
|
||||||
GET_PROC(BindVertexArray);
|
|
||||||
GET_PROC(DeleteVertexArrays);
|
|
||||||
GET_PROC(GenVertexArrays);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ver >= GR_GL_VER(3,3) || extensions.has("GL_ARB_timer_query")) {
|
if (ver >= GR_GL_VER(3,3) || extensions.has("GL_ARB_timer_query")) {
|
||||||
// ARB extension doesn't use the ARB suffix on the function name
|
// ARB extension doesn't use the ARB suffix on the function name
|
||||||
#if GL_ARB_timer_query || GL_VERSION_3_3
|
#if GL_ARB_timer_query || GL_VERSION_3_3
|
||||||
interface->fQueryCounter = glQueryCounter;
|
interface->fQueryCounter = glQueryCounter;
|
||||||
interface->fGetQueryObjecti64v = glGetQueryObjecti64v;
|
interface->fGetQueryObjecti64v = glGetQueryObjecti64v;
|
||||||
interface->fGetQueryObjectui64v = glGetQueryObjectui64v;
|
interface->fGetQueryObjectui64v = glGetQueryObjectui64v;
|
||||||
#else
|
#else
|
||||||
GET_PROC(QueryCounter);
|
interface->fQueryCounter = GET_PROC(QueryCounter);
|
||||||
GET_PROC(GetQueryObjecti64v);
|
interface->fGetQueryObjecti64v = GET_PROC(GetQueryObjecti64v);
|
||||||
GET_PROC(GetQueryObjectui64v);
|
interface->fGetQueryObjectui64v = GET_PROC(GetQueryObjectui64v);
|
||||||
#endif
|
#endif
|
||||||
} else if (extensions.has("GL_EXT_timer_query")) {
|
} else if (extensions.has("GL_EXT_timer_query")) {
|
||||||
#if GL_EXT_timer_query
|
#if GL_EXT_timer_query
|
||||||
interface->fGetQueryObjecti64v = glGetQueryObjecti64vEXT;
|
interface->fGetQueryObjecti64v = glGetQueryObjecti64vEXT;
|
||||||
interface->fGetQueryObjectui64v = glGetQueryObjectui64vEXT;
|
interface->fGetQueryObjectui64v = glGetQueryObjectui64vEXT;
|
||||||
#else
|
#else
|
||||||
GET_PROC_SUFFIX(GetQueryObjecti64v, EXT);
|
interface->fGetQueryObjecti64v = GET_PROC_SUFFIX(GetQueryObjecti64v, EXT);
|
||||||
GET_PROC_SUFFIX(GetQueryObjectui64v, EXT);
|
interface->fGetQueryObjectui64v = GET_PROC_SUFFIX(GetQueryObjectui64v, EXT);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ver >= GR_GL_VER(3,0) || extensions.has("GL_ARB_framebuffer_object")) {
|
if (ver >= GR_GL_VER(3,0) || extensions.has("GL_ARB_framebuffer_object")) {
|
||||||
// ARB extension doesn't use the ARB suffix on the function names
|
// ARB extension doesn't use the ARB suffix on the function names
|
||||||
#if GL_VERSION_3_0 || GL_ARB_framebuffer_object
|
#if GL_VERSION_3_0 || GL_ARB_framebuffer_object
|
||||||
interface->fGenFramebuffers = glGenFramebuffers;
|
interface->fGenFramebuffers = glGenFramebuffers;
|
||||||
interface->fGetFramebufferAttachmentParameteriv = glGetFramebufferAttachmentParameteriv;
|
interface->fGetFramebufferAttachmentParameteriv = glGetFramebufferAttachmentParameteriv;
|
||||||
interface->fGetRenderbufferParameteriv = glGetRenderbufferParameteriv;
|
interface->fGetRenderbufferParameteriv = glGetRenderbufferParameteriv;
|
||||||
@ -220,74 +207,74 @@ const GrGLInterface* GrGLCreateNativeInterface() {
|
|||||||
interface->fBindRenderbuffer = glBindRenderbuffer;
|
interface->fBindRenderbuffer = glBindRenderbuffer;
|
||||||
interface->fRenderbufferStorageMultisample = glRenderbufferStorageMultisample;
|
interface->fRenderbufferStorageMultisample = glRenderbufferStorageMultisample;
|
||||||
interface->fBlitFramebuffer = glBlitFramebuffer;
|
interface->fBlitFramebuffer = glBlitFramebuffer;
|
||||||
#else
|
#else
|
||||||
GET_PROC(GenFramebuffers);
|
interface->fGenFramebuffers = GET_PROC(GenFramebuffers);
|
||||||
GET_PROC(GetFramebufferAttachmentParameteriv);
|
interface->fGetFramebufferAttachmentParameteriv = GET_PROC(GetFramebufferAttachmentParameteriv);
|
||||||
GET_PROC(GetRenderbufferParameteriv);
|
interface->fGetRenderbufferParameteriv = GET_PROC(GetRenderbufferParameteriv);
|
||||||
GET_PROC(BindFramebuffer);
|
interface->fBindFramebuffer = GET_PROC(BindFramebuffer);
|
||||||
GET_PROC(FramebufferTexture2D);
|
interface->fFramebufferTexture2D = GET_PROC(FramebufferTexture2D);
|
||||||
GET_PROC(CheckFramebufferStatus);
|
interface->fCheckFramebufferStatus = GET_PROC(CheckFramebufferStatus);
|
||||||
GET_PROC(DeleteFramebuffers);
|
interface->fDeleteFramebuffers = GET_PROC(DeleteFramebuffers);
|
||||||
GET_PROC(RenderbufferStorage);
|
interface->fRenderbufferStorage = GET_PROC(RenderbufferStorage);
|
||||||
GET_PROC(GenRenderbuffers);
|
interface->fGenRenderbuffers = GET_PROC(GenRenderbuffers);
|
||||||
GET_PROC(DeleteRenderbuffers);
|
interface->fDeleteRenderbuffers = GET_PROC(DeleteRenderbuffers);
|
||||||
GET_PROC(FramebufferRenderbuffer);
|
interface->fFramebufferRenderbuffer = GET_PROC(FramebufferRenderbuffer);
|
||||||
GET_PROC(BindRenderbuffer);
|
interface->fBindRenderbuffer = GET_PROC(BindRenderbuffer);
|
||||||
GET_PROC(RenderbufferStorageMultisample);
|
interface->fRenderbufferStorageMultisample = GET_PROC(RenderbufferStorageMultisample);
|
||||||
GET_PROC(BlitFramebuffer);
|
interface->fBlitFramebuffer = GET_PROC(BlitFramebuffer);
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
if (extensions.has("GL_EXT_framebuffer_object")) {
|
if (extensions.has("GL_EXT_framebuffer_object")) {
|
||||||
#if GL_EXT_framebuffer_object
|
#if GL_EXT_framebuffer_object
|
||||||
interface->fGenFramebuffers = glGenFramebuffersEXT;
|
interface->fGenFramebuffers = glGenFramebuffersEXT;
|
||||||
interface->fGetFramebufferAttachmentParameteriv = glGetFramebufferAttachmentParameterivEXT;
|
interface->fGetFramebufferAttachmentParameteriv = glGetFramebufferAttachmentParameterivEXT;
|
||||||
interface->fGetRenderbufferParameteriv = glGetRenderbufferParameterivEXT;
|
interface->fGetRenderbufferParameteriv = glGetRenderbufferParameterivEXT;
|
||||||
interface->fBindFramebuffer = glBindFramebufferEXT;
|
interface->fBindFramebuffer = glBindFramebufferEXT;
|
||||||
interface->fFramebufferTexture2D = glFramebufferTexture2DEXT;
|
interface->fFramebufferTexture2D = glFramebufferTexture2DEXT;
|
||||||
interface->fCheckFramebufferStatus = glCheckFramebufferStatusEXT;
|
interface->fCheckFramebufferStatus = glCheckFramebufferStatusEXT;
|
||||||
interface->fDeleteFramebuffers = glDeleteFramebuffersEXT;
|
interface->fDeleteFramebuffers = glDeleteFramebuffersEXT;
|
||||||
interface->fRenderbufferStorage = glRenderbufferStorageEXT;
|
interface->fRenderbufferStorage = glRenderbufferStorageEXT;
|
||||||
interface->fGenRenderbuffers = glGenRenderbuffersEXT;
|
interface->fGenRenderbuffers = glGenRenderbuffersEXT;
|
||||||
interface->fDeleteRenderbuffers = glDeleteRenderbuffersEXT;
|
interface->fDeleteRenderbuffers = glDeleteRenderbuffersEXT;
|
||||||
interface->fFramebufferRenderbuffer = glFramebufferRenderbufferEXT;
|
interface->fFramebufferRenderbuffer = glFramebufferRenderbufferEXT;
|
||||||
interface->fBindRenderbuffer = glBindRenderbufferEXT;
|
interface->fBindRenderbuffer = glBindRenderbufferEXT;
|
||||||
#else
|
#else
|
||||||
GET_PROC_SUFFIX(GenFramebuffers, EXT);
|
interface->fGenFramebuffers = GET_PROC_SUFFIX(GenFramebuffers, EXT);
|
||||||
GET_PROC_SUFFIX(GetFramebufferAttachmentParameteriv, EXT);
|
interface->fGetFramebufferAttachmentParameteriv = GET_PROC_SUFFIX(GetFramebufferAttachmentParameteriv, EXT);
|
||||||
GET_PROC_SUFFIX(GetRenderbufferParameteriv, EXT);
|
interface->fGetRenderbufferParameteriv = GET_PROC_SUFFIX(GetRenderbufferParameteriv, EXT);
|
||||||
GET_PROC_SUFFIX(BindFramebuffer, EXT);
|
interface->fBindFramebuffer = GET_PROC_SUFFIX(BindFramebuffer, EXT);
|
||||||
GET_PROC_SUFFIX(FramebufferTexture2D, EXT);
|
interface->fFramebufferTexture2D = GET_PROC_SUFFIX(FramebufferTexture2D, EXT);
|
||||||
GET_PROC_SUFFIX(CheckFramebufferStatus, EXT);
|
interface->fCheckFramebufferStatus = GET_PROC_SUFFIX(CheckFramebufferStatus, EXT);
|
||||||
GET_PROC_SUFFIX(DeleteFramebuffers, EXT);
|
interface->fDeleteFramebuffers = GET_PROC_SUFFIX(DeleteFramebuffers, EXT);
|
||||||
GET_PROC_SUFFIX(RenderbufferStorage, EXT);
|
interface->fRenderbufferStorage = GET_PROC_SUFFIX(RenderbufferStorage, EXT);
|
||||||
GET_PROC_SUFFIX(GenRenderbuffers, EXT);
|
interface->fGenRenderbuffers = GET_PROC_SUFFIX(GenRenderbuffers, EXT);
|
||||||
GET_PROC_SUFFIX(DeleteRenderbuffers, EXT);
|
interface->fDeleteRenderbuffers = GET_PROC_SUFFIX(DeleteRenderbuffers, EXT);
|
||||||
GET_PROC_SUFFIX(FramebufferRenderbuffer, EXT);
|
interface->fFramebufferRenderbuffer = GET_PROC_SUFFIX(FramebufferRenderbuffer, EXT);
|
||||||
GET_PROC_SUFFIX(BindRenderbuffer, EXT);
|
interface->fBindRenderbuffer = GET_PROC_SUFFIX(BindRenderbuffer, EXT);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
if (extensions.has("GL_EXT_framebuffer_multisample")) {
|
if (extensions.has("GL_EXT_framebuffer_multisample")) {
|
||||||
#if GL_EXT_framebuffer_multisample
|
#if GL_EXT_framebuffer_multisample
|
||||||
interface->fRenderbufferStorageMultisample = glRenderbufferStorageMultisampleEXT;
|
interface->fRenderbufferStorageMultisample = glRenderbufferStorageMultisampleEXT;
|
||||||
#else
|
#else
|
||||||
GET_PROC_SUFFIX(RenderbufferStorageMultisample, EXT);
|
interface->fRenderbufferStorageMultisample = GET_PROC_SUFFIX(RenderbufferStorageMultisample, EXT);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
if (extensions.has("GL_EXT_framebuffer_blit")) {
|
if (extensions.has("GL_EXT_framebuffer_blit")) {
|
||||||
#if GL_EXT_framebuffer_blit
|
#if GL_EXT_framebuffer_blit
|
||||||
interface->fBlitFramebuffer = glBlitFramebufferEXT;
|
interface->fBlitFramebuffer = glBlitFramebufferEXT;
|
||||||
#else
|
#else
|
||||||
GET_PROC_SUFFIX(BlitFramebuffer, EXT);
|
interface->fBlitFramebuffer = GET_PROC_SUFFIX(BlitFramebuffer, EXT);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ver >= GR_GL_VER(3,3) || extensions.has("GL_ARB_blend_func_extended")) {
|
if (ver >= GR_GL_VER(3,3) || extensions.has("GL_ARB_blend_func_extended")) {
|
||||||
// ARB extension doesn't use the ARB suffix on the function name
|
// ARB extension doesn't use the ARB suffix on the function name
|
||||||
#if GL_VERSION_3_3 || GL_ARB_blend_func_extended
|
#if GL_VERSION_3_3 || GL_ARB_blend_func_extended
|
||||||
interface->fBindFragDataLocationIndexed = glBindFragDataLocationIndexed;
|
interface->fBindFragDataLocationIndexed = glBindFragDataLocationIndexed;
|
||||||
#else
|
#else
|
||||||
GET_PROC(BindFragDataLocationIndexed);
|
interface->fBindFragDataLocationIndexed = GET_PROC(BindFragDataLocationIndexed);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
glInterface.get()->ref();
|
glInterface.get()->ref();
|
||||||
|
@ -161,13 +161,6 @@ const GrGLInterface* GrGLCreateMesaInterface() {
|
|||||||
GR_GL_GET_PROC(VertexAttribPointer);
|
GR_GL_GET_PROC(VertexAttribPointer);
|
||||||
GR_GL_GET_PROC(Viewport);
|
GR_GL_GET_PROC(Viewport);
|
||||||
|
|
||||||
if (glVer >= GR_GL_VER(3,0) || extensions.has("GL_ARB_vertex_array_object")) {
|
|
||||||
// no ARB suffix for GL_ARB_vertex_array_object
|
|
||||||
GR_GL_GET_PROC(BindVertexArray);
|
|
||||||
GR_GL_GET_PROC(DeleteVertexArrays);
|
|
||||||
GR_GL_GET_PROC(GenVertexArrays);
|
|
||||||
}
|
|
||||||
|
|
||||||
// First look for GL3.0 FBO or GL_ARB_framebuffer_object (same since
|
// First look for GL3.0 FBO or GL_ARB_framebuffer_object (same since
|
||||||
// GL_ARB_framebuffer_object doesn't use ARB suffix.)
|
// GL_ARB_framebuffer_object doesn't use ARB suffix.)
|
||||||
if (glVer >= GR_GL_VER(3,0) || extensions.has("GL_ARB_framebuffer_object")) {
|
if (glVer >= GR_GL_VER(3,0) || extensions.has("GL_ARB_framebuffer_object")) {
|
||||||
|
@ -202,16 +202,9 @@ const GrGLInterface* GrGLCreateNativeInterface() {
|
|||||||
WGL_SET_PROC(VertexAttribPointer);
|
WGL_SET_PROC(VertexAttribPointer);
|
||||||
WGL_SET_PROC(BindFragDataLocationIndexed);
|
WGL_SET_PROC(BindFragDataLocationIndexed);
|
||||||
|
|
||||||
if (glVer >= GR_GL_VER(3,0) || extensions.has("GL_ARB_vertex_array_object")) {
|
|
||||||
// no ARB suffix for GL_ARB_vertex_array_object
|
|
||||||
WGL_SET_PROC(BindVertexArray);
|
|
||||||
WGL_SET_PROC(DeleteVertexArrays);
|
|
||||||
WGL_SET_PROC(GenVertexArrays);
|
|
||||||
}
|
|
||||||
|
|
||||||
// First look for GL3.0 FBO or GL_ARB_framebuffer_object (same since
|
// First look for GL3.0 FBO or GL_ARB_framebuffer_object (same since
|
||||||
// GL_ARB_framebuffer_object doesn't use ARB suffix.)
|
// GL_ARB_framebuffer_object doesn't use ARB suffix.)
|
||||||
if (glVer >= GR_GL_VER(3,0) || extensions.has("GL_ARB_framebuffer_object")) {
|
if (glVer > GR_GL_VER(3,0) || extensions.has("GL_ARB_framebuffer_object")) {
|
||||||
WGL_SET_PROC(GenFramebuffers);
|
WGL_SET_PROC(GenFramebuffers);
|
||||||
WGL_SET_PROC(GetFramebufferAttachmentParameteriv);
|
WGL_SET_PROC(GetFramebufferAttachmentParameteriv);
|
||||||
WGL_SET_PROC(GetRenderbufferParameteriv);
|
WGL_SET_PROC(GetRenderbufferParameteriv);
|
||||||
|
Loading…
Reference in New Issue
Block a user