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:
Benjamin Otte 2019-03-09 13:36:14 +01:00
parent 0d91481587
commit 480d8aec06
4 changed files with 4 additions and 90 deletions

View File

@ -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

View File

@ -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))
{

View File

@ -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))
{

View File

@ -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,