23 G_DEFINE_TYPE(FlRendererGdk, fl_renderer_gdk, fl_renderer_get_type())
27 FlRendererGdk*
self = FL_RENDERER_GDK(renderer);
28 gdk_gl_context_make_current(self->main_context);
33 FlRendererGdk*
self = FL_RENDERER_GDK(renderer);
34 gdk_gl_context_make_current(self->resource_context);
39 gdk_gl_context_clear_current();
43 FlRendererGdk*
self = FL_RENDERER_GDK(
object);
45 g_clear_object(&self->gdk_context);
46 g_clear_object(&self->main_context);
47 g_clear_object(&self->resource_context);
49 G_OBJECT_CLASS(fl_renderer_gdk_parent_class)->dispose(
object);
56 FL_RENDERER_CLASS(klass)->make_resource_current =
65 FL_RENDERER_GDK(g_object_new(fl_renderer_gdk_get_type(),
nullptr));
70 g_return_if_fail(FL_IS_RENDERER_GDK(
self));
72 g_assert(self->window ==
nullptr);
73 self->window = window;
77 g_return_val_if_fail(FL_IS_RENDERER_GDK(
self), FALSE);
79 self->gdk_context = gdk_window_create_gl_context(self->window,
error);
80 if (self->gdk_context ==
nullptr) {
83 if (!gdk_gl_context_realize(self->gdk_context,
error)) {
87 self->main_context = gdk_window_create_gl_context(self->window,
error);
88 if (self->main_context ==
nullptr) {
91 if (!gdk_gl_context_realize(self->main_context,
error)) {
95 self->resource_context = gdk_window_create_gl_context(self->window,
error);
96 if (self->resource_context ==
nullptr) {
99 if (!gdk_gl_context_realize(self->resource_context,
error)) {
107 g_return_val_if_fail(FL_IS_RENDERER_GDK(
self),
nullptr);
108 return self->gdk_context;