diff --git a/ChangeLog b/ChangeLog index b2776fcf6..1701dae8b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2008-12-10 Neil Roberts + + * 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. + 2008-12-10 Neil Roberts Bug 1323 - ClutterBehaviorDepth conflicts with other behaviors diff --git a/clutter/cogl/common/cogl-mesh.c b/clutter/cogl/common/cogl-mesh.c index 5b35463ea..88a0ba473 100644 --- a/clutter/cogl/common/cogl-mesh.c +++ b/clutter/cogl/common/cogl-mesh.c @@ -145,7 +145,7 @@ #define glGenBuffers ctx->pf_glGenBuffersARB #define glBindBuffer ctx->pf_glBindBufferARB #define glBufferData ctx->pf_glBufferDataARB -#define glBufferDataSub ctx->pf_glBufferDataSubARB +#define glBufferSubData ctx->pf_glBufferSubDataARB #define glDeleteBuffers ctx->pf_glDeleteBuffersARB #define glMapBuffer ctx->pf_glMapBufferARB #define glUnmapBuffer ctx->pf_glUnmapBufferARB @@ -153,14 +153,6 @@ #define GL_ARRAY_BUFFER GL_ARRAY_BUFFER_ARB #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) #define glVertexPointer cogl_wrap_glVertexPointer @@ -172,8 +164,6 @@ #define glEnableClientState cogl_wrap_glEnableClientState #define glDisableClientState cogl_wrap_glDisableClientState -#define glBufferDataSub glBufferSubData - #endif /* @@ -979,7 +969,7 @@ upload_multipack_vbo_via_buffer_sub_data (CoglMeshVBO *cogl_vbo) PAD_FOR_ALIGNMENT (offset, gl_type_size); - GE (glBufferDataSub (GL_ARRAY_BUFFER, + GE (glBufferSubData (GL_ARRAY_BUFFER, offset, attribute_size, attribute->u.pointer)); diff --git a/clutter/cogl/gl/cogl-context.h b/clutter/cogl/gl/cogl-context.h index df62a53e8..8a2fc877d 100644 --- a/clutter/cogl/gl/cogl-context.h +++ b/clutter/cogl/gl/cogl-context.h @@ -115,7 +115,7 @@ typedef struct COGL_PFNGLGENBUFFERSARBPROC pf_glGenBuffersARB; COGL_PFNGLBINDBUFFERARBPROC pf_glBindBufferARB; COGL_PFNGLBUFFERDATAARBPROC pf_glBufferDataARB; - COGL_PFNGLBUFFERDATASUBARBPROC pf_glBufferDataSubARB; + COGL_PFNGLBUFFERSUBDATAARBPROC pf_glBufferSubDataARB; COGL_PFNGLMAPBUFFERARBPROC pf_glMapBufferARB; COGL_PFNGLUNMAPBUFFERARBPROC pf_glUnmapBufferARB; COGL_PFNGLDELETEBUFFERSARBPROC pf_glDeleteBuffersARB; diff --git a/clutter/cogl/gl/cogl-defines.h.in b/clutter/cogl/gl/cogl-defines.h.in index 8658bed46..480aafb0e 100644 --- a/clutter/cogl/gl/cogl-defines.h.in +++ b/clutter/cogl/gl/cogl-defines.h.in @@ -872,7 +872,7 @@ typedef void GLenum usage); typedef void - (APIENTRYP COGL_PFNGLBUFFERDATASUBARBPROC) + (APIENTRYP COGL_PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptr offset, GLsizeiptr size, diff --git a/clutter/cogl/gl/cogl.c b/clutter/cogl/gl/cogl.c index 64bd6faf3..411cd8adc 100644 --- a/clutter/cogl/gl/cogl.c +++ b/clutter/cogl/gl/cogl.c @@ -1107,9 +1107,9 @@ _cogl_features_init () ctx->pf_glBufferDataARB = (COGL_PFNGLBUFFERDATAARBPROC) cogl_get_proc_address ("glBufferDataARB"); - ctx->pf_glBufferDataSubARB = - (COGL_PFNGLBUFFERDATASUBARBPROC) - cogl_get_proc_address ("glBufferDataSubARB"); + ctx->pf_glBufferSubDataARB = + (COGL_PFNGLBUFFERSUBDATAARBPROC) + cogl_get_proc_address ("glBufferSubDataARB"); ctx->pf_glDeleteBuffersARB = (COGL_PFNGLDELETEBUFFERSARBPROC) cogl_get_proc_address ("glDeleteBuffersARB"); @@ -1122,7 +1122,7 @@ _cogl_features_init () if (ctx->pf_glGenBuffersARB && ctx->pf_glBindBufferARB && ctx->pf_glBufferDataARB - && ctx->pf_glBufferDataSubARB + && ctx->pf_glBufferSubDataARB && ctx->pf_glDeleteBuffersARB && ctx->pf_glMapBufferARB && ctx->pf_glUnmapBufferARB)