diff --git a/ChangeLog b/ChangeLog index f1f7f129d..1701dae8b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,23 @@ +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): + Don't set the depth if there is no x or y tilt. That way it can + still be used in conjunction with ClutterBehaviourDepth. Thanks to + Tonny Tzeng. + 2008-12-08 Emmanuele Bassi * clutter/clutter-binding-pool.h: Fix the ActivateFunc diff --git a/clutter/clutter-behaviour-ellipse.c b/clutter/clutter-behaviour-ellipse.c index a24cd3c97..e7450ca5b 100644 --- a/clutter/clutter-behaviour-ellipse.c +++ b/clutter/clutter-behaviour-ellipse.c @@ -178,10 +178,13 @@ actor_apply_knot_foreach (ClutterBehaviour *behave, ClutterActor *actor, gpointer data) { + ClutterBehaviourEllipsePrivate *priv + = ((ClutterBehaviourEllipse *) behave)->priv; knot3d *knot = data; clutter_actor_set_position (actor, knot->x, knot->y); - clutter_actor_set_depth (actor, knot->z); + if (priv->angle_tilt_x != 0 || priv->angle_tilt_y != 0) + clutter_actor_set_depth (actor, knot->z); } static inline ClutterAngle 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 edabaca50..f4f0486a0 100644 --- a/clutter/cogl/gl/cogl-context.h +++ b/clutter/cogl/gl/cogl-context.h @@ -121,7 +121,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)