diff --git a/ChangeLog b/ChangeLog index bc17d65ae..565b8532d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2008-04-14 Matthew Allum + + * clutter/cogl/gles/cogl.c: (cogl_color): + Disable use of color4ub, issues with latest MBX SDL (#857) + + * clutter/eglx/clutter-backend-egl.c: + * clutter/eglx/clutter-stage-egl.c: + * configure.ac: + Fixup for the eglx backend to work with new backend/multistage code. + Some issues remain in destroying stages. + 2008-04-14 Neil Roberts Bug #853 diff --git a/clutter/cogl/gles/cogl.c b/clutter/cogl/gles/cogl.c index f87812d81..495702aee 100644 --- a/clutter/cogl/gles/cogl.c +++ b/clutter/cogl/gles/cogl.c @@ -242,7 +242,12 @@ cogl_enable_depth_test (gboolean setting) void cogl_color (const ClutterColor *color) { -#if HAVE_GLES_COLOR4UB +#if 0 /*HAVE_GLES_COLOR4UB*/ + + /* NOTE: seems SDK_OGLES-1.1_LINUX_PCEMULATION_2.02.22.0756 has this call + * but is broken - see #857. Therefor disabling. + */ + /* * GLES 1.1 does actually have this function, it's in the header file but * missing in the reference manual (and SDK): @@ -253,6 +258,8 @@ cogl_color (const ClutterColor *color) color->green, color->blue, color->alpha) ); + + #else /* conversion can cause issues with picking on some gles implementations */ GE( glColor4x ((color->red << 16) / 0xff, diff --git a/clutter/eglx/clutter-backend-egl.c b/clutter/eglx/clutter-backend-egl.c index d335d94bf..eb567a9df 100644 --- a/clutter/eglx/clutter-backend-egl.c +++ b/clutter/eglx/clutter-backend-egl.c @@ -7,6 +7,7 @@ #include "../clutter-private.h" #include "../clutter-main.h" #include "../clutter-debug.h" +#include "../clutter-version.h" static ClutterBackendEGL *backend_singleton = NULL; @@ -107,10 +108,9 @@ clutter_backend_egl_redraw (ClutterBackend *backend, ClutterStage *stage) { ClutterBackendEGL *backend_egl = CLUTTER_BACKEND_EGL (backend); - ClutterBackendX11 *backend_x11 = CLUTTER_BACKEND_X11 (backend); - ClutterStageWindow *impl; ClutterStageEGL *stage_egl; ClutterStageX11 *stage_x11; + ClutterStageWindow *impl; impl = _clutter_stage_get_window (stage); if (!impl) @@ -162,7 +162,7 @@ clutter_backend_egl_dispose (GObject *gobject) if (backend_egl->edpy) { eglTerminate (backend_egl->edpy); - backend_egl->edpy = NULL; + backend_egl->edpy = 0; } G_OBJECT_CLASS (clutter_backend_egl_parent_class)->dispose (gobject); @@ -201,8 +201,8 @@ clutter_backend_egl_get_features (ClutterBackend *backend) "GL_VENDOR: %s\n" "GL_RENDERER: %s\n" "GL_VERSION: %s\n" - "EGL_VENDOR: %s\n", - "EGL_VERSION: %s\n", + "EGL_VENDOR: %s\n" + "EGL_VERSION: %s\n" "EGL_EXTENSIONS: %s\n", glGetString (GL_VENDOR), glGetString (GL_RENDERER), @@ -247,9 +247,9 @@ clutter_backend_egl_create_stage (ClutterBackend *backend, g_object_set_data (G_OBJECT (stage), "clutter-backend", backend); - clutter_actor_realize (backend_x11->stage); + clutter_actor_realize (stage); - if (!CLUTTER_ACTOR_IS_REALIZED (backend_x11->stage)) + if (!CLUTTER_ACTOR_IS_REALIZED (stage)) { g_set_error (error, CLUTTER_INIT_ERROR, CLUTTER_INIT_ERROR_INTERNAL, diff --git a/clutter/eglx/clutter-stage-egl.c b/clutter/eglx/clutter-stage-egl.c index 157281aa0..684de9ebf 100644 --- a/clutter/eglx/clutter-stage-egl.c +++ b/clutter/eglx/clutter-stage-egl.c @@ -40,7 +40,7 @@ clutter_stage_egl_unrealize (ClutterActor *actor) CLUTTER_ACTOR_CLASS (clutter_stage_egl_parent_class)->unrealize (actor); - clutter_x11_trap_x_errors () + clutter_x11_trap_x_errors (); if (G_UNLIKELY (was_offscreen)) { @@ -48,7 +48,7 @@ clutter_stage_egl_unrealize (ClutterActor *actor) } else { - if (!stage_X11->is_foreign_xwin && stage_x11->xwin != None) + if (!stage_x11->is_foreign_xwin && stage_x11->xwin != None) { XDestroyWindow (stage_x11->xdpy, stage_x11->xwin); stage_x11->xwin = None; @@ -211,6 +211,8 @@ clutter_stage_egl_draw_to_pixbuf (ClutterStageWindow *stage_window, gint width, gint height) { + ClutterStage *stage = CLUTTER_STAGE (stage_window); + g_warning ("Stages of type `%s' do not support " "ClutterStageWindow::draw_to_pixbuf", G_OBJECT_TYPE_NAME (stage)); diff --git a/configure.ac b/configure.ac index a3883c75a..6b3b8ebf8 100644 --- a/configure.ac +++ b/configure.ac @@ -193,7 +193,7 @@ case $clutterbackend in clutter_gl_header="GLES/gl.h" CLUTTER_FLAVOUR="eglx" - CLUTTER_STAGE_TYPE="CLUTTER_TYPE_STAGE_EGLX" + CLUTTER_STAGE_TYPE="CLUTTER_TYPE_STAGE_EGL" AC_DEFINE([HAVE_CLUTTER_EGL], 1, [Have the EGL backend]) # We currently assume having egl means also having gles..