From: Matthias Clasen Date: Thu, 7 Oct 2021 20:46:29 +0000 (-0400) Subject: gsk: provide an ngl renderer X-Git-Tag: archive/raspbian/4.6.5+ds-1+rpi1~1^2~19^2~5^2~244^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=b7eb1d33100cb403f111e1665bb334f2e2adf02c;p=gtk4.git gsk: provide an ngl renderer Provide a minimal renderer implementation that fails in realize. This avoids reusing the same type, which might give bindings trouble. --- diff --git a/gsk/gl/gskglrenderer.c b/gsk/gl/gskglrenderer.c index 7d0eebfaa7..0b1e9eddda 100644 --- a/gsk/gl/gskglrenderer.c +++ b/gsk/gl/gskglrenderer.c @@ -321,10 +321,36 @@ gsk_gl_renderer_try_compile_gl_shader (GskGLRenderer *renderer, return program != NULL; } -GType -gsk_ngl_renderer_get_type (void) +typedef struct { + GskRenderer parent_instance; +} GskNglRenderer; + +typedef struct { + GskRendererClass parent_class; +} GskNglRendererClass; + +G_DEFINE_TYPE (GskNglRenderer, gsk_ngl_renderer, GSK_TYPE_RENDERER) + +static void +gsk_ngl_renderer_init (GskNglRenderer *renderer) +{ +} + +static gboolean +gsk_ngl_renderer_realize (GskRenderer *renderer, + GdkSurface *surface, + GError **error) +{ + g_set_error_literal (error, + G_IO_ERROR, G_IO_ERROR_FAILED, + "please use the GL renderer instead"); + return FALSE; +} + +static void +gsk_ngl_renderer_class_init (GskNglRendererClass *class) { - return gsk_gl_renderer_get_type (); + GSK_RENDERER_CLASS (class)->realize = gsk_ngl_renderer_realize; } /** @@ -339,5 +365,7 @@ gsk_ngl_renderer_get_type (void) GskRenderer * gsk_ngl_renderer_new (void) { - return gsk_gl_renderer_new (); +G_GNUC_BEGIN_IGNORE_DEPRECATIONS + return g_object_new (gsk_ngl_renderer_get_type (), NULL); +G_GNUC_END_IGNORE_DEPRECATIONS }