clutter/backend: Remove 'finish_init()' vfunc
The original purpose of being able to report errors is no longer relevant, since the Clutter backend is now practically a thin wrapper around the actual backend, which has already dealt with error reporting. Thus move this to the regular constructor path. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2016>
This commit is contained in:
parent
579532f644
commit
f14b5da387
@ -62,8 +62,6 @@ struct _ClutterBackendClass
|
|||||||
GObjectClass parent_class;
|
GObjectClass parent_class;
|
||||||
|
|
||||||
/* vfuncs */
|
/* vfuncs */
|
||||||
gboolean (* finish_init) (ClutterBackend *backend,
|
|
||||||
GError **error);
|
|
||||||
ClutterStageWindow * (* create_stage) (ClutterBackend *backend,
|
ClutterStageWindow * (* create_stage) (ClutterBackend *backend,
|
||||||
ClutterStage *wrapper,
|
ClutterStage *wrapper,
|
||||||
GError **error);
|
GError **error);
|
||||||
@ -92,9 +90,6 @@ ClutterStageWindow * _clutter_backend_create_stage (Clutter
|
|||||||
gboolean _clutter_backend_create_context (ClutterBackend *backend,
|
gboolean _clutter_backend_create_context (ClutterBackend *backend,
|
||||||
GError **error);
|
GError **error);
|
||||||
|
|
||||||
gboolean _clutter_backend_finish_init (ClutterBackend *backend,
|
|
||||||
GError **error);
|
|
||||||
|
|
||||||
CLUTTER_EXPORT
|
CLUTTER_EXPORT
|
||||||
ClutterStageWindow * clutter_backend_get_stage_window (ClutterBackend *backend);
|
ClutterStageWindow * clutter_backend_get_stage_window (ClutterBackend *backend);
|
||||||
|
|
||||||
|
@ -337,21 +337,6 @@ clutter_backend_init (ClutterBackend *self)
|
|||||||
self->fallback_resource_scale = 1.f;
|
self->fallback_resource_scale = 1.f;
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
|
||||||
_clutter_backend_finish_init (ClutterBackend *backend,
|
|
||||||
GError **error)
|
|
||||||
{
|
|
||||||
ClutterBackendClass *klass;
|
|
||||||
|
|
||||||
g_assert (CLUTTER_IS_BACKEND (backend));
|
|
||||||
|
|
||||||
klass = CLUTTER_BACKEND_GET_CLASS (backend);
|
|
||||||
if (klass->finish_init)
|
|
||||||
return klass->finish_init (backend, error);
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
ClutterStageWindow *
|
ClutterStageWindow *
|
||||||
_clutter_backend_create_stage (ClutterBackend *backend,
|
_clutter_backend_create_stage (ClutterBackend *backend,
|
||||||
ClutterStage *wrapper,
|
ClutterStage *wrapper,
|
||||||
|
@ -499,16 +499,6 @@ static gboolean
|
|||||||
clutter_init_real (ClutterContext *clutter_context,
|
clutter_init_real (ClutterContext *clutter_context,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
ClutterBackend *backend;
|
|
||||||
|
|
||||||
/* Note, creates backend if not already existing, though parse args will
|
|
||||||
* have likely created it
|
|
||||||
*/
|
|
||||||
backend = clutter_context->backend;
|
|
||||||
|
|
||||||
if (!_clutter_backend_finish_init (backend, error))
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
/* If we are displaying the regions that would get redrawn with clipped
|
/* If we are displaying the regions that would get redrawn with clipped
|
||||||
* redraws enabled we actually have to disable the clipped redrawing
|
* redraws enabled we actually have to disable the clipped redrawing
|
||||||
* because otherwise we end up with nasty trails of rectangles everywhere.
|
* because otherwise we end up with nasty trails of rectangles everywhere.
|
||||||
|
@ -68,37 +68,6 @@ static const gchar *atom_names[] = {
|
|||||||
/* various flags corresponding to pre init setup calls */
|
/* various flags corresponding to pre init setup calls */
|
||||||
static gboolean clutter_enable_stereo = FALSE;
|
static gboolean clutter_enable_stereo = FALSE;
|
||||||
|
|
||||||
static gboolean
|
|
||||||
meta_clutter_backend_x11_finish_init (ClutterBackend *clutter_backend,
|
|
||||||
GError **error)
|
|
||||||
{
|
|
||||||
MetaClutterBackendX11 *clutter_backend_x11 =
|
|
||||||
META_CLUTTER_BACKEND_X11 (clutter_backend);
|
|
||||||
MetaClutterBackendX11Private *priv =
|
|
||||||
meta_clutter_backend_x11_get_instance_private (clutter_backend_x11);
|
|
||||||
MetaBackendX11 *backend_x11 = META_BACKEND_X11 (priv->backend);
|
|
||||||
Atom atoms[N_ATOM_NAMES];
|
|
||||||
|
|
||||||
clutter_backend_x11->xdisplay = meta_backend_x11_get_xdisplay (backend_x11);
|
|
||||||
|
|
||||||
XInternAtoms (clutter_backend_x11->xdisplay,
|
|
||||||
(char **) atom_names, N_ATOM_NAMES,
|
|
||||||
False, atoms);
|
|
||||||
|
|
||||||
clutter_backend_x11->atom_NET_WM_PID = atoms[0];
|
|
||||||
clutter_backend_x11->atom_NET_WM_PING = atoms[1];
|
|
||||||
clutter_backend_x11->atom_NET_WM_STATE = atoms[2];
|
|
||||||
clutter_backend_x11->atom_NET_WM_USER_TIME = atoms[3];
|
|
||||||
clutter_backend_x11->atom_WM_PROTOCOLS = atoms[4];
|
|
||||||
clutter_backend_x11->atom_WM_DELETE_WINDOW = atoms[5];
|
|
||||||
clutter_backend_x11->atom_XEMBED = atoms[6];
|
|
||||||
clutter_backend_x11->atom_XEMBED_INFO = atoms[7];
|
|
||||||
clutter_backend_x11->atom_NET_WM_NAME = atoms[8];
|
|
||||||
clutter_backend_x11->atom_UTF8_STRING = atoms[9];
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
check_onscreen_template (CoglRenderer *renderer,
|
check_onscreen_template (CoglRenderer *renderer,
|
||||||
CoglOnscreenTemplate *onscreen_template,
|
CoglOnscreenTemplate *onscreen_template,
|
||||||
@ -233,8 +202,6 @@ meta_clutter_backend_x11_class_init (MetaClutterBackendX11Class *klass)
|
|||||||
{
|
{
|
||||||
ClutterBackendClass *clutter_backend_class = CLUTTER_BACKEND_CLASS (klass);
|
ClutterBackendClass *clutter_backend_class = CLUTTER_BACKEND_CLASS (klass);
|
||||||
|
|
||||||
clutter_backend_class->finish_init = meta_clutter_backend_x11_finish_init;
|
|
||||||
|
|
||||||
clutter_backend_class->get_display = meta_clutter_backend_x11_get_display;
|
clutter_backend_class->get_display = meta_clutter_backend_x11_get_display;
|
||||||
clutter_backend_class->get_renderer = meta_clutter_backend_x11_get_renderer;
|
clutter_backend_class->get_renderer = meta_clutter_backend_x11_get_renderer;
|
||||||
clutter_backend_class->create_stage = meta_clutter_backend_x11_create_stage;
|
clutter_backend_class->create_stage = meta_clutter_backend_x11_create_stage;
|
||||||
@ -245,6 +212,8 @@ meta_clutter_backend_x11_class_init (MetaClutterBackendX11Class *klass)
|
|||||||
MetaClutterBackendX11 *
|
MetaClutterBackendX11 *
|
||||||
meta_clutter_backend_x11_new (MetaBackend *backend)
|
meta_clutter_backend_x11_new (MetaBackend *backend)
|
||||||
{
|
{
|
||||||
|
MetaBackendX11 *backend_x11 = META_BACKEND_X11 (backend);
|
||||||
|
Atom atoms[N_ATOM_NAMES];
|
||||||
MetaClutterBackendX11 *clutter_backend_x11;
|
MetaClutterBackendX11 *clutter_backend_x11;
|
||||||
MetaClutterBackendX11Private *priv;
|
MetaClutterBackendX11Private *priv;
|
||||||
|
|
||||||
@ -252,6 +221,23 @@ meta_clutter_backend_x11_new (MetaBackend *backend)
|
|||||||
priv = meta_clutter_backend_x11_get_instance_private (clutter_backend_x11);
|
priv = meta_clutter_backend_x11_get_instance_private (clutter_backend_x11);
|
||||||
priv->backend = backend;
|
priv->backend = backend;
|
||||||
|
|
||||||
|
clutter_backend_x11->xdisplay = meta_backend_x11_get_xdisplay (backend_x11);
|
||||||
|
|
||||||
|
XInternAtoms (clutter_backend_x11->xdisplay,
|
||||||
|
(char **) atom_names, N_ATOM_NAMES,
|
||||||
|
False, atoms);
|
||||||
|
|
||||||
|
clutter_backend_x11->atom_NET_WM_PID = atoms[0];
|
||||||
|
clutter_backend_x11->atom_NET_WM_PING = atoms[1];
|
||||||
|
clutter_backend_x11->atom_NET_WM_STATE = atoms[2];
|
||||||
|
clutter_backend_x11->atom_NET_WM_USER_TIME = atoms[3];
|
||||||
|
clutter_backend_x11->atom_WM_PROTOCOLS = atoms[4];
|
||||||
|
clutter_backend_x11->atom_WM_DELETE_WINDOW = atoms[5];
|
||||||
|
clutter_backend_x11->atom_XEMBED = atoms[6];
|
||||||
|
clutter_backend_x11->atom_XEMBED_INFO = atoms[7];
|
||||||
|
clutter_backend_x11->atom_NET_WM_NAME = atoms[8];
|
||||||
|
clutter_backend_x11->atom_UTF8_STRING = atoms[9];
|
||||||
|
|
||||||
return clutter_backend_x11;
|
return clutter_backend_x11;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user