diff --git a/cogl/cogl-pango/cogl-pango-private.h b/cogl/cogl-pango/cogl-pango-private.h index e04537601..f27cc90ba 100644 --- a/cogl/cogl-pango/cogl-pango-private.h +++ b/cogl/cogl-pango/cogl-pango-private.h @@ -42,4 +42,6 @@ G_BEGIN_DECLS PangoRenderer * _cogl_pango_renderer_new (CoglContext *context); +G_DEFINE_AUTOPTR_CLEANUP_FUNC (PangoRenderer, g_object_unref) + G_END_DECLS diff --git a/cogl/cogl-pango/cogl-pango-render.c b/cogl/cogl-pango/cogl-pango-render.c index c947ea09c..3c6767df6 100644 --- a/cogl/cogl-pango/cogl-pango-render.c +++ b/cogl/cogl-pango/cogl-pango-render.c @@ -82,16 +82,18 @@ struct _CoglPangoRenderer CoglPangoDisplayList *display_list; }; -struct _CoglPangoRendererClass -{ - PangoRendererClass class_instance; -}; +G_DECLARE_FINAL_TYPE (CoglPangoRenderer, + cogl_pango_renderer, + COGL_PANGO, + RENDERER, + PangoRenderer) -typedef struct _CoglPangoLayoutQdata CoglPangoLayoutQdata; + +G_DEFINE_FINAL_TYPE (CoglPangoRenderer, cogl_pango_renderer, PANGO_TYPE_RENDERER); /* An instance of this struct gets attached to each PangoLayout to cache the VBO and to detect changes to the layout */ -struct _CoglPangoLayoutQdata +typedef struct _CoglPangoLayoutQdata { CoglPangoRenderer *renderer; /* The cache of the geometry for the layout */ @@ -103,7 +105,7 @@ struct _CoglPangoLayoutQdata need to regenerate the display list if the mipmapping value is changed because it will be using a different set of textures */ gboolean mipmapping_used; -}; +} CoglPangoLayoutQdata; typedef struct { @@ -114,7 +116,7 @@ typedef struct PangoRenderer * _cogl_pango_renderer_new (CoglContext *context) { - return PANGO_RENDERER (g_object_new (COGL_PANGO_TYPE_RENDERER, + return PANGO_RENDERER (g_object_new (cogl_pango_renderer_get_type (), "context", context, NULL)); } @@ -175,9 +177,6 @@ cogl_pango_renderer_draw_glyph (CoglPangoRenderer *priv, &data); } - -G_DEFINE_TYPE (CoglPangoRenderer, cogl_pango_renderer, PANGO_TYPE_RENDERER); - static void cogl_pango_renderer_init (CoglPangoRenderer *priv) { diff --git a/cogl/cogl-pango/cogl-pango.h b/cogl/cogl-pango/cogl-pango.h index cb0da3762..5f7d61a6d 100644 --- a/cogl/cogl-pango/cogl-pango.h +++ b/cogl/cogl-pango/cogl-pango.h @@ -151,17 +151,4 @@ cogl_pango_show_layout (CoglFramebuffer *framebuffer, gpointer pipeline_setup_userdata); -#define COGL_PANGO_TYPE_RENDERER (cogl_pango_renderer_get_type ()) -#define COGL_PANGO_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), COGL_PANGO_TYPE_RENDERER, CoglPangoRenderer)) -#define COGL_PANGO_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), COGL_PANGO_TYPE_RENDERER, CoglPangoRendererClass)) -#define COGL_PANGO_IS_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), COGL_PANGO_TYPE_RENDERER)) -#define COGL_PANGO_IS_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), COGL_PANGO_TYPE_RENDERER)) -#define COGL_PANGO_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), COGL_PANGO_TYPE_RENDERER, CoglPangoRendererClass)) - -/* opaque types */ -typedef struct _CoglPangoRenderer CoglPangoRenderer; -typedef struct _CoglPangoRendererClass CoglPangoRendererClass; - -COGL_EXPORT GType cogl_pango_renderer_get_type (void) G_GNUC_CONST; - G_END_DECLS