21 G_DEFINE_TYPE(FlOpenGLManager, fl_opengl_manager, G_TYPE_OBJECT)
24 FlOpenGLManager*
self = FL_OPENGL_MANAGER(
object);
26 g_clear_object(&self->gdk_context);
27 g_clear_object(&self->main_context);
28 g_clear_object(&self->resource_context);
30 G_OBJECT_CLASS(fl_opengl_manager_parent_class)->dispose(
object);
40 FlOpenGLManager*
self =
41 FL_OPENGL_MANAGER(g_object_new(fl_opengl_manager_get_type(),
nullptr));
48 g_return_val_if_fail(FL_IS_OPENGL_MANAGER(
self), FALSE);
50 self->gdk_context = gdk_window_create_gl_context(
window,
error);
51 if (self->gdk_context ==
nullptr) {
54 if (!gdk_gl_context_realize(self->gdk_context,
error)) {
58 self->main_context = gdk_window_create_gl_context(
window,
error);
59 if (self->main_context ==
nullptr) {
62 if (!gdk_gl_context_realize(self->main_context,
error)) {
66 self->resource_context = gdk_window_create_gl_context(
window,
error);
67 if (self->resource_context ==
nullptr) {
70 if (!gdk_gl_context_realize(self->resource_context,
error)) {
78 g_return_val_if_fail(FL_IS_OPENGL_MANAGER(
self),
nullptr);
79 return self->gdk_context;
83 gdk_gl_context_make_current(self->main_context);
87 gdk_gl_context_make_current(self->resource_context);
91 gdk_gl_context_clear_current();
G_DEFINE_TYPE(FlBasicMessageChannelResponseHandle, fl_basic_message_channel_response_handle, G_TYPE_OBJECT) static void fl_basic_message_channel_response_handle_dispose(GObject *object)
static void fl_opengl_manager_dispose(GObject *object)
void fl_opengl_manager_clear_current(FlOpenGLManager *self)
static void fl_opengl_manager_class_init(FlOpenGLManagerClass *klass)
FlOpenGLManager * fl_opengl_manager_new()
gboolean fl_opengl_manager_create_contexts(FlOpenGLManager *self, GdkWindow *window, GError **error)
void fl_opengl_manager_make_current(FlOpenGLManager *self)
GdkGLContext * fl_opengl_manager_get_context(FlOpenGLManager *self)
void fl_opengl_manager_make_resource_current(FlOpenGLManager *self)
static void fl_opengl_manager_init(FlOpenGLManager *self)
const uint8_t uint32_t uint32_t GError ** error
GdkGLContext * resource_context
GdkGLContext * main_context
GdkGLContext * gdk_context