backend: Do not call ensure_context() with NULL stage

Always call ensure_context() if we have a valid Stage.

https://bugzilla.gnome.org/show_bug.cgi?id=652566
This commit is contained in:
Emmanuele Bassi 2011-06-14 15:50:42 +01:00
parent 0b20739232
commit 81e9bf6127

View File

@ -478,18 +478,18 @@ _clutter_backend_ensure_context (ClutterBackend *backend,
new_stage); new_stage);
} }
_clutter_backend_ensure_context_internal (backend, new_stage);
/* XXX: Until Cogl becomes fully responsible for backend windows /* XXX: Until Cogl becomes fully responsible for backend windows
* Clutter need to manually keep it informed of the current window size * Clutter need to manually keep it informed of the current window size
* *
* NB: This must be done after we ensure_context above because Cogl * NB: This must be done after we ensure_context above because Cogl
* always assumes there is a current GL context. * always assumes there is a current GL context.
*/ */
if (new_stage) if (new_stage != NULL)
{ {
float width, height; float width, height;
_clutter_backend_ensure_context_internal (backend, new_stage);
clutter_actor_get_size (CLUTTER_ACTOR (stage), &width, &height); clutter_actor_get_size (CLUTTER_ACTOR (stage), &width, &height);
cogl_onscreen_clutter_backend_set_size (width, height); cogl_onscreen_clutter_backend_set_size (width, height);
@ -501,7 +501,8 @@ _clutter_backend_ensure_context (ClutterBackend *backend,
* switch between stages. * switch between stages.
* *
* This dirty mechanism will ensure they are asserted before * This dirty mechanism will ensure they are asserted before
* the next paint... */ * the next paint...
*/
_clutter_stage_dirty_viewport (stage); _clutter_stage_dirty_viewport (stage);
_clutter_stage_dirty_projection (stage); _clutter_stage_dirty_projection (stage);
} }
@ -509,7 +510,7 @@ _clutter_backend_ensure_context (ClutterBackend *backend,
/* FIXME: With a NULL stage and thus no active context it may make more /* FIXME: With a NULL stage and thus no active context it may make more
* sense to clean the context but then re call with the default stage * sense to clean the context but then re call with the default stage
* so at least there is some kind of context in place (as to avoid * so at least there is some kind of context in place (as to avoid
* potential issue of GL calls with no context) * potential issue of GL calls with no context).
*/ */
current_context_stage = new_stage; current_context_stage = new_stage;
} }