20 G_DEFINE_TYPE(FlRendererGdk, fl_renderer_gdk, fl_renderer_get_type())
24 FlRendererGdk*
self = FL_RENDERER_GDK(renderer);
25 gdk_gl_context_make_current(self->main_context);
30 FlRendererGdk*
self = FL_RENDERER_GDK(renderer);
31 gdk_gl_context_make_current(self->resource_context);
36 gdk_gl_context_clear_current();
40 FlRendererGdk*
self = FL_RENDERER_GDK(
object);
42 g_clear_object(&self->main_context);
43 g_clear_object(&self->resource_context);
45 G_OBJECT_CLASS(fl_renderer_gdk_parent_class)->dispose(
object);
52 FL_RENDERER_CLASS(klass)->make_resource_current =
61 FL_RENDERER_GDK(g_object_new(fl_renderer_gdk_get_type(),
nullptr));
62 self->window = window;
67 self->main_context = gdk_window_create_gl_context(self->window,
error);
68 if (self->main_context ==
nullptr) {
71 if (!gdk_gl_context_realize(self->main_context,
error)) {
75 self->resource_context = gdk_window_create_gl_context(self->window,
error);
76 if (self->resource_context ==
nullptr) {
79 if (!gdk_gl_context_realize(self->resource_context,
error)) {
87 g_return_val_if_fail(FL_IS_RENDERER_GDK(
self),
nullptr);
88 return self->main_context;