From dc6545ccd1dcf63ae9981b4c2171eb74d704183f Mon Sep 17 00:00:00 2001 From: Neil Roberts Date: Wed, 10 Dec 2008 12:13:20 +0000 Subject: [PATCH] * 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. --- ChangeLog | 11 +++++++++++ clutter/cogl/common/cogl-mesh.c | 14 ++------------ clutter/cogl/gl/cogl-context.h | 2 +- clutter/cogl/gl/cogl-defines.h.in | 2 +- clutter/cogl/gl/cogl.c | 8 ++++---- 5 files changed, 19 insertions(+), 18 deletions(-) diff --git a/ChangeLog b/ChangeLog index b2776fc..1701dae 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,16 @@ 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 * clutter/clutter-behaviour-ellipse.c (actor_apply_knot_foreach): diff --git a/clutter/cogl/common/cogl-mesh.c b/clutter/cogl/common/cogl-mesh.c index 5b35463..88a0ba4 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 df62a53..8a2fc87 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 8658bed..480aafb 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 64bd6fa..411cd8a 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) -- 2.7.4