* clutter/cogl/gl/cogl.c:
* clutter/cogl/gl/cogl-defines.h.in: * clutter/cogl/gl/cogl-context.h: * clutter/cogl/common/cogl-mesh.c: Rename the glBufferDataSub function to glBufferSubData. When calling glXGetProcAddress with the former Mesa returns a stub dispatch function which will segfault if you try to use it. With NVIDIA it returns NULL so _cogl_features_init decides the card doesn't have VBO support.
This commit is contained in:
parent
58f6aaa589
commit
4aea0d6e48
@ -145,7 +145,7 @@
|
|||||||
#define glGenBuffers ctx->pf_glGenBuffersARB
|
#define glGenBuffers ctx->pf_glGenBuffersARB
|
||||||
#define glBindBuffer ctx->pf_glBindBufferARB
|
#define glBindBuffer ctx->pf_glBindBufferARB
|
||||||
#define glBufferData ctx->pf_glBufferDataARB
|
#define glBufferData ctx->pf_glBufferDataARB
|
||||||
#define glBufferDataSub ctx->pf_glBufferDataSubARB
|
#define glBufferSubData ctx->pf_glBufferSubDataARB
|
||||||
#define glDeleteBuffers ctx->pf_glDeleteBuffersARB
|
#define glDeleteBuffers ctx->pf_glDeleteBuffersARB
|
||||||
#define glMapBuffer ctx->pf_glMapBufferARB
|
#define glMapBuffer ctx->pf_glMapBufferARB
|
||||||
#define glUnmapBuffer ctx->pf_glUnmapBufferARB
|
#define glUnmapBuffer ctx->pf_glUnmapBufferARB
|
||||||
@ -153,14 +153,6 @@
|
|||||||
#define GL_ARRAY_BUFFER GL_ARRAY_BUFFER_ARB
|
#define GL_ARRAY_BUFFER GL_ARRAY_BUFFER_ARB
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#elif defined (HAVE_COGL_GLES)
|
|
||||||
|
|
||||||
/* NB: GLES has had VBOs/GLSL since 1.1, so we don't need any defines in
|
|
||||||
* this case except for glBufferSubData which, just for the fun of it, has a
|
|
||||||
* different name:
|
|
||||||
*/
|
|
||||||
#define glBufferDataSub glBufferSubData
|
|
||||||
|
|
||||||
#elif defined (HAVE_COGL_GLES2)
|
#elif defined (HAVE_COGL_GLES2)
|
||||||
|
|
||||||
#define glVertexPointer cogl_wrap_glVertexPointer
|
#define glVertexPointer cogl_wrap_glVertexPointer
|
||||||
@ -172,8 +164,6 @@
|
|||||||
#define glEnableClientState cogl_wrap_glEnableClientState
|
#define glEnableClientState cogl_wrap_glEnableClientState
|
||||||
#define glDisableClientState cogl_wrap_glDisableClientState
|
#define glDisableClientState cogl_wrap_glDisableClientState
|
||||||
|
|
||||||
#define glBufferDataSub glBufferSubData
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -979,7 +969,7 @@ upload_multipack_vbo_via_buffer_sub_data (CoglMeshVBO *cogl_vbo)
|
|||||||
|
|
||||||
PAD_FOR_ALIGNMENT (offset, gl_type_size);
|
PAD_FOR_ALIGNMENT (offset, gl_type_size);
|
||||||
|
|
||||||
GE (glBufferDataSub (GL_ARRAY_BUFFER,
|
GE (glBufferSubData (GL_ARRAY_BUFFER,
|
||||||
offset,
|
offset,
|
||||||
attribute_size,
|
attribute_size,
|
||||||
attribute->u.pointer));
|
attribute->u.pointer));
|
||||||
|
@ -115,7 +115,7 @@ typedef struct
|
|||||||
COGL_PFNGLGENBUFFERSARBPROC pf_glGenBuffersARB;
|
COGL_PFNGLGENBUFFERSARBPROC pf_glGenBuffersARB;
|
||||||
COGL_PFNGLBINDBUFFERARBPROC pf_glBindBufferARB;
|
COGL_PFNGLBINDBUFFERARBPROC pf_glBindBufferARB;
|
||||||
COGL_PFNGLBUFFERDATAARBPROC pf_glBufferDataARB;
|
COGL_PFNGLBUFFERDATAARBPROC pf_glBufferDataARB;
|
||||||
COGL_PFNGLBUFFERDATASUBARBPROC pf_glBufferDataSubARB;
|
COGL_PFNGLBUFFERSUBDATAARBPROC pf_glBufferSubDataARB;
|
||||||
COGL_PFNGLMAPBUFFERARBPROC pf_glMapBufferARB;
|
COGL_PFNGLMAPBUFFERARBPROC pf_glMapBufferARB;
|
||||||
COGL_PFNGLUNMAPBUFFERARBPROC pf_glUnmapBufferARB;
|
COGL_PFNGLUNMAPBUFFERARBPROC pf_glUnmapBufferARB;
|
||||||
COGL_PFNGLDELETEBUFFERSARBPROC pf_glDeleteBuffersARB;
|
COGL_PFNGLDELETEBUFFERSARBPROC pf_glDeleteBuffersARB;
|
||||||
|
@ -872,7 +872,7 @@ typedef void
|
|||||||
GLenum usage);
|
GLenum usage);
|
||||||
|
|
||||||
typedef void
|
typedef void
|
||||||
(APIENTRYP COGL_PFNGLBUFFERDATASUBARBPROC)
|
(APIENTRYP COGL_PFNGLBUFFERSUBDATAARBPROC)
|
||||||
(GLenum target,
|
(GLenum target,
|
||||||
GLintptr offset,
|
GLintptr offset,
|
||||||
GLsizeiptr size,
|
GLsizeiptr size,
|
||||||
|
@ -1107,9 +1107,9 @@ _cogl_features_init ()
|
|||||||
ctx->pf_glBufferDataARB =
|
ctx->pf_glBufferDataARB =
|
||||||
(COGL_PFNGLBUFFERDATAARBPROC)
|
(COGL_PFNGLBUFFERDATAARBPROC)
|
||||||
cogl_get_proc_address ("glBufferDataARB");
|
cogl_get_proc_address ("glBufferDataARB");
|
||||||
ctx->pf_glBufferDataSubARB =
|
ctx->pf_glBufferSubDataARB =
|
||||||
(COGL_PFNGLBUFFERDATASUBARBPROC)
|
(COGL_PFNGLBUFFERSUBDATAARBPROC)
|
||||||
cogl_get_proc_address ("glBufferDataSubARB");
|
cogl_get_proc_address ("glBufferSubDataARB");
|
||||||
ctx->pf_glDeleteBuffersARB =
|
ctx->pf_glDeleteBuffersARB =
|
||||||
(COGL_PFNGLDELETEBUFFERSARBPROC)
|
(COGL_PFNGLDELETEBUFFERSARBPROC)
|
||||||
cogl_get_proc_address ("glDeleteBuffersARB");
|
cogl_get_proc_address ("glDeleteBuffersARB");
|
||||||
@ -1122,7 +1122,7 @@ _cogl_features_init ()
|
|||||||
if (ctx->pf_glGenBuffersARB
|
if (ctx->pf_glGenBuffersARB
|
||||||
&& ctx->pf_glBindBufferARB
|
&& ctx->pf_glBindBufferARB
|
||||||
&& ctx->pf_glBufferDataARB
|
&& ctx->pf_glBufferDataARB
|
||||||
&& ctx->pf_glBufferDataSubARB
|
&& ctx->pf_glBufferSubDataARB
|
||||||
&& ctx->pf_glDeleteBuffersARB
|
&& ctx->pf_glDeleteBuffersARB
|
||||||
&& ctx->pf_glMapBufferARB
|
&& ctx->pf_glMapBufferARB
|
||||||
&& ctx->pf_glUnmapBufferARB)
|
&& ctx->pf_glUnmapBufferARB)
|
||||||
|
Loading…
Reference in New Issue
Block a user