diff --git a/ChangeLog b/ChangeLog index e80eb636b..1d0a07a9b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,28 @@ +2008-05-13 Emmanuele Bassi + + * clutter/clutter-backend.c: + (_clutter_backend_create_stage): Call _clutter_stage_set_window() + ourselves, thus removing yet another action that backends must + implement and might get wrong; also cuts a backend-agnostic piece + of code duplication. + + * clutter/eglnative/clutter-backend-egl.c: + (clutter_backend_egl_create_stage): Update the EGL native backend. + + * clutter/eglx/clutter-backend-egl.c: + (clutter_backend_egl_create_stage): Update the EGLX backend. + + * clutter/fruity/clutter-backend-fruity.c: + (clutter_backend_egl_create_stage): Update the fruity backend + + * clutter/glx/clutter-backend-glx.c: + (clutter_backend_glx_create_stage): Update the GLX backend. + + * clutter/sdl/clutter-backend-sdl.c: + (clutter_backend_sdl_create_stage): Update the SDL backend. + + * HACKING.backends: Update the ::create_stage() description. + 2008-05-13 Emmanuele Bassi * clutter/x11/clutter-event-x11.c (event_translate): Remove the diff --git a/HACKING.backends b/HACKING.backends index 128be7529..5908de16a 100644 --- a/HACKING.backends +++ b/HACKING.backends @@ -105,13 +105,8 @@ can be overridden: -- This function is used to create the stage implementation. It will receive as an argument the ClutterStage instance that is "wrapping" the actual implementation being created. The backend must create - its stage implementation and call _clutter_stage_set_window() with - the wrapper and the stage implementation instance: - - _clutter_stage_set_window (wrapper, CLUTTER_STAGE_WINDOW (impl)); - - in case of error, the backend must return NULL and set the passed - GError. + its stage implementation, initialise it and then return it; in case + of error, the backend must return NULL and set the passed GError. Implementing the stage ---------------------- diff --git a/clutter/clutter-backend.c b/clutter/clutter-backend.c index bb6209147..869c33403 100644 --- a/clutter/clutter-backend.c +++ b/clutter/clutter-backend.c @@ -163,6 +163,8 @@ _clutter_backend_create_stage (ClutterBackend *backend, if (!stage) return NULL; + g_assert (CLUTTER_IS_STAGE_WINDOW (stage)); + _clutter_stage_set_window (wrapper, CLUTTER_STAGE_WINDOW (stage)); _clutter_stage_manager_add_stage (context->stage_manager, wrapper); return stage; diff --git a/clutter/eglnative/clutter-backend-egl.c b/clutter/eglnative/clutter-backend-egl.c index bc6f7b4e6..d5c00c1ba 100644 --- a/clutter/eglnative/clutter-backend-egl.c +++ b/clutter/eglnative/clutter-backend-egl.c @@ -98,8 +98,6 @@ clutter_backend_egl_create_stage (ClutterBackend *backend, stage_egl->backend = backend_egl; stage_egl->wrapper = wrapper; - _clutter_stage_set_window (wrapper, CLUTTER_STAGE_WINDOW (stage)); - backend_egl->stage = CLUTTER_ACTOR (stage_egl); return stage; diff --git a/clutter/eglx/clutter-backend-egl.c b/clutter/eglx/clutter-backend-egl.c index 6ff874157..cf44b2456 100644 --- a/clutter/eglx/clutter-backend-egl.c +++ b/clutter/eglx/clutter-backend-egl.c @@ -244,9 +244,6 @@ clutter_backend_egl_create_stage (ClutterBackend *backend, stage_x11->backend = backend_x11; stage_x11->wrapper = wrapper; - /* set the pointer back into the wrapper */ - _clutter_stage_set_window (wrapper, CLUTTER_STAGE_WINDOW (stage)); - CLUTTER_NOTE (MISC, "EGLX stage created (display:%p, screen:%d, root:%u)", stage_x11->xdpy, stage_x11->xscreen, diff --git a/clutter/fruity/clutter-backend-fruity.c b/clutter/fruity/clutter-backend-fruity.c index 35be50ce3..b182e7e77 100644 --- a/clutter/fruity/clutter-backend-fruity.c +++ b/clutter/fruity/clutter-backend-fruity.c @@ -97,8 +97,6 @@ clutter_backend_egl_create_stage (ClutterBackend *backend, stage_egl->backend = backend_egl; stage_egl->wrapper = wrapper; - _clutter_stage_set_window (wrapper, CLUTTER_STAGE_WINDOW (stage)); - backend_egl->stage = CLUTTER_ACTOR (stage_egl); return stage; diff --git a/clutter/glx/clutter-backend-glx.c b/clutter/glx/clutter-backend-glx.c index 66335ca1a..34a0da408 100644 --- a/clutter/glx/clutter-backend-glx.c +++ b/clutter/glx/clutter-backend-glx.c @@ -476,9 +476,6 @@ clutter_backend_glx_create_stage (ClutterBackend *backend, stage_x11->backend = backend_x11; stage_x11->wrapper = wrapper; - /* set the pointer back into the wrapper */ - _clutter_stage_set_window (wrapper, CLUTTER_STAGE_WINDOW (stage)); - CLUTTER_NOTE (BACKEND, "GLX stage created (display:%p, screen:%d, root:%u)", stage_x11->xdpy, stage_x11->xscreen, diff --git a/clutter/sdl/clutter-backend-sdl.c b/clutter/sdl/clutter-backend-sdl.c index a06cd3957..b81b43ae6 100644 --- a/clutter/sdl/clutter-backend-sdl.c +++ b/clutter/sdl/clutter-backend-sdl.c @@ -93,8 +93,6 @@ clutter_backend_sdl_create_stage (ClutterBackend *backend, stage_sdl = CLUTTER_STAGE_SDL (stage); stage_sdl->wrapper = wrapper; - _clutter_stage_set_window (wrapper, CLUTTER_STAGE_WINDOW (stage)); - backend_sdl->stage = stage_sdl; return stage;