f859135082
Bug #864 - Allow instantiating and subclassing of ClutterStage * clutter/Makefile.am: Add clutter-stage-window.[ch] * clutter/clutter-stage-manager.c: (_clutter_stage_manager_remove_stage): Do not warn if removing a stage we don't manage, as we might be invoked multiple times during a ClutterState dispose sequence. * clutter/clutter-actor.c: * clutter/clutter-backend.[ch]: * clutter/clutter-main.c: * clutter/clutter-private.h: * clutter/clutter-stage.[ch]: Make ClutterStage a proxy actor, with a private actor implementing the ClutterStageWindow interface for handling the per-backend realization, painting and unrealization, plus all the windowing system abstraction. * clutter/x11/clutter-event-x11.c: * clutter/x11/clutter-stage-x11.[ch]: Port the X11 backend to the new backend and stage API and semantics. * clutter/glx/clutter-backend-glx.c: * clutter/glx/clutter-stage-glx.c: Port the GLX backend to the new backend and stage API and semantics. * clutter/eglx/clutter-backend-egl.[ch]: * clutter/eglx/clutter-stage-egl.[ch]: Port the EGLX backend to the new backend and stage API and semantics (untested). * tests/test-multistage.c (on_button_press): Rename clutter_stage_create_new() to clutter_stage_new().
34 lines
741 B
C
34 lines
741 B
C
#ifdef HAVE_CONFIG_H
|
|
#include "config.h"
|
|
#endif
|
|
|
|
#include <glib-object.h>
|
|
|
|
#include "clutter-actor.h"
|
|
#include "clutter-stage-window.h"
|
|
#include "clutter-private.h"
|
|
|
|
GType
|
|
clutter_stage_window_get_type (void)
|
|
{
|
|
static GType stage_window_type = 0;
|
|
|
|
if (G_UNLIKELY (stage_window_type == 0))
|
|
{
|
|
const GTypeInfo stage_window_info = {
|
|
sizeof (ClutterStageWindowIface),
|
|
NULL,
|
|
NULL,
|
|
};
|
|
|
|
stage_window_type =
|
|
g_type_register_static (G_TYPE_INTERFACE, I_("ClutterStageWindow"),
|
|
&stage_window_info, 0);
|
|
|
|
g_type_interface_add_prerequisite (stage_window_type,
|
|
CLUTTER_TYPE_ACTOR);
|
|
}
|
|
|
|
return stage_window_type;
|
|
}
|