mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-13 05:50:10 +00:00
renderer: Remove display property
Renderers don't need a display until they get realized. And once they get realized, they can look up the display from the surface.
This commit is contained in:
parent
0d91481587
commit
480d8aec06
@ -2,7 +2,6 @@
|
||||
<FILE>GskRenderer</FILE>
|
||||
gsk_renderer_new_for_surface
|
||||
gsk_renderer_get_surface
|
||||
gsk_renderer_get_display
|
||||
gsk_renderer_realize
|
||||
gsk_renderer_unrealize
|
||||
gsk_renderer_render
|
||||
|
@ -461,7 +461,7 @@ gsk_broadway_renderer_add_node (GskRenderer *renderer,
|
||||
float offset_x,
|
||||
float offset_y)
|
||||
{
|
||||
GdkDisplay *display = gsk_renderer_get_display (renderer);
|
||||
GdkDisplay *display = gdk_surface_get_display (gsk_renderer_get_surface (renderer));
|
||||
|
||||
switch (gsk_render_node_get_node_type (node))
|
||||
{
|
||||
|
@ -68,7 +68,6 @@ typedef struct
|
||||
GdkSurface *surface;
|
||||
GskRenderNode *prev_node;
|
||||
GskRenderNode *root_node;
|
||||
GdkDisplay *display;
|
||||
|
||||
GskProfiler *profiler;
|
||||
|
||||
@ -81,7 +80,6 @@ G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GskRenderer, gsk_renderer, G_TYPE_OBJECT)
|
||||
|
||||
enum {
|
||||
PROP_SURFACE = 1,
|
||||
PROP_DISPLAY,
|
||||
|
||||
N_PROPS
|
||||
};
|
||||
@ -134,33 +132,10 @@ gsk_renderer_dispose (GObject *gobject)
|
||||
g_assert (!priv->is_realized);
|
||||
|
||||
g_clear_object (&priv->profiler);
|
||||
g_clear_object (&priv->display);
|
||||
|
||||
G_OBJECT_CLASS (gsk_renderer_parent_class)->dispose (gobject);
|
||||
}
|
||||
|
||||
static void
|
||||
gsk_renderer_set_property (GObject *gobject,
|
||||
guint prop_id,
|
||||
const GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
GskRenderer *self = GSK_RENDERER (gobject);
|
||||
GskRendererPrivate *priv = gsk_renderer_get_instance_private (self);
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_DISPLAY:
|
||||
/* Construct-only */
|
||||
priv->display = g_value_dup_object (value);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gsk_renderer_get_property (GObject *gobject,
|
||||
guint prop_id,
|
||||
@ -176,33 +151,12 @@ gsk_renderer_get_property (GObject *gobject,
|
||||
g_value_set_object (value, priv->surface);
|
||||
break;
|
||||
|
||||
case PROP_DISPLAY:
|
||||
g_value_set_object (value, priv->display);
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gsk_renderer_constructed (GObject *gobject)
|
||||
{
|
||||
GskRenderer *self = GSK_RENDERER (gobject);
|
||||
GskRendererPrivate *priv = gsk_renderer_get_instance_private (self);
|
||||
|
||||
if (priv->display == NULL)
|
||||
{
|
||||
GdkDisplayManager *manager = gdk_display_manager_get ();
|
||||
|
||||
priv->display = gdk_display_manager_get_default_display (manager);
|
||||
g_assert (priv->display != NULL);
|
||||
}
|
||||
|
||||
G_OBJECT_CLASS (gsk_renderer_parent_class)->constructed (gobject);
|
||||
}
|
||||
|
||||
static void
|
||||
gsk_renderer_class_init (GskRendererClass *klass)
|
||||
{
|
||||
@ -213,25 +167,9 @@ gsk_renderer_class_init (GskRendererClass *klass)
|
||||
klass->render = gsk_renderer_real_render;
|
||||
klass->render_texture = gsk_renderer_real_render_texture;
|
||||
|
||||
gobject_class->constructed = gsk_renderer_constructed;
|
||||
gobject_class->set_property = gsk_renderer_set_property;
|
||||
gobject_class->get_property = gsk_renderer_get_property;
|
||||
gobject_class->dispose = gsk_renderer_dispose;
|
||||
|
||||
/**
|
||||
* GskRenderer:display:
|
||||
*
|
||||
* The #GdkDisplay used by the #GskRenderer.
|
||||
*/
|
||||
gsk_renderer_properties[PROP_DISPLAY] =
|
||||
g_param_spec_object ("display",
|
||||
"Display",
|
||||
"The GdkDisplay object used by the renderer",
|
||||
GDK_TYPE_DISPLAY,
|
||||
G_PARAM_READWRITE |
|
||||
G_PARAM_CONSTRUCT_ONLY |
|
||||
G_PARAM_STATIC_STRINGS);
|
||||
|
||||
gsk_renderer_properties[PROP_SURFACE] =
|
||||
g_param_spec_object ("surface",
|
||||
"Surface",
|
||||
@ -290,24 +228,6 @@ gsk_renderer_get_root_node (GskRenderer *renderer)
|
||||
}
|
||||
|
||||
/**
|
||||
* gsk_renderer_get_display:
|
||||
* @renderer: a #GskRenderer
|
||||
*
|
||||
* Retrieves the #GdkDisplay used when creating the #GskRenderer.
|
||||
*
|
||||
* Returns: (transfer none): a #GdkDisplay
|
||||
*/
|
||||
GdkDisplay *
|
||||
gsk_renderer_get_display (GskRenderer *renderer)
|
||||
{
|
||||
GskRendererPrivate *priv = gsk_renderer_get_instance_private (renderer);
|
||||
|
||||
g_return_val_if_fail (GSK_IS_RENDERER (renderer), NULL);
|
||||
|
||||
return priv->display;
|
||||
}
|
||||
|
||||
/*< private >
|
||||
* gsk_renderer_is_realized:
|
||||
* @renderer: a #GskRenderer
|
||||
*
|
||||
@ -674,9 +594,7 @@ gsk_renderer_new_for_surface (GdkSurface *surface)
|
||||
* information to stdout.
|
||||
*/
|
||||
verbose |= renderer_possibilities[i].verbose;
|
||||
renderer = g_object_new (renderer_type,
|
||||
"display", gdk_surface_get_display (surface),
|
||||
NULL);
|
||||
renderer = g_object_new (renderer_type, NULL);
|
||||
|
||||
if (gsk_renderer_realize (renderer, surface, &error))
|
||||
{
|
||||
|
@ -39,13 +39,10 @@ GDK_AVAILABLE_IN_ALL
|
||||
GType gsk_renderer_get_type (void) G_GNUC_CONST;
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GskRenderer * gsk_renderer_new_for_surface (GdkSurface *surface);
|
||||
GskRenderer * gsk_renderer_new_for_surface (GdkSurface *surface);
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GdkSurface * gsk_renderer_get_surface (GskRenderer *renderer);
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GdkDisplay * gsk_renderer_get_display (GskRenderer *renderer);
|
||||
GdkSurface * gsk_renderer_get_surface (GskRenderer *renderer);
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
gboolean gsk_renderer_realize (GskRenderer *renderer,
|
||||
|
Loading…
Reference in New Issue
Block a user