From 54748b7f1f8381047220ac9274b74bba16d53549 Mon Sep 17 00:00:00 2001 From: Bilal Elmoussaoui Date: Mon, 15 Jul 2024 12:14:41 +0200 Subject: [PATCH] cogl: Call init when creating a context from Clutter Part-of: --- clutter/clutter/clutter-backend.c | 5 +++-- cogl/cogl/cogl-context.c | 2 -- cogl/cogl/cogl-display.c | 2 -- cogl/cogl/cogl-mutter.h | 3 +++ cogl/cogl/cogl-private.h | 3 --- cogl/cogl/cogl-renderer.c | 2 -- cogl/cogl/cogl.c | 3 ++- 7 files changed, 8 insertions(+), 12 deletions(-) diff --git a/clutter/clutter/clutter-backend.c b/clutter/clutter/clutter-backend.c index 32ac02e30..d97d9275d 100644 --- a/clutter/clutter/clutter-backend.c +++ b/clutter/clutter/clutter-backend.c @@ -26,7 +26,7 @@ /** * ClutterBackend: - * + * * Backend abstraction * * Clutter can be compiled against different backends. Each backend @@ -117,8 +117,9 @@ clutter_backend_do_real_create_context (ClutterBackend *backend, { ClutterBackendClass *klass; - klass = CLUTTER_BACKEND_GET_CLASS (backend); + cogl_init (); + klass = CLUTTER_BACKEND_GET_CLASS (backend); CLUTTER_NOTE (BACKEND, "Creating Cogl renderer"); backend->cogl_renderer = klass->get_renderer (backend, error); diff --git a/cogl/cogl/cogl-context.c b/cogl/cogl/cogl-context.c index da27c6d9b..99c368ca4 100644 --- a/cogl/cogl/cogl-context.c +++ b/cogl/cogl/cogl-context.c @@ -188,8 +188,6 @@ cogl_context_new (CoglDisplay *display, int i; GError *local_error = NULL; - _cogl_init (); - #ifdef COGL_ENABLE_PROFILE /* We need to be absolutely sure that uprof has been initialized * before calling _cogl_uprof_init. uprof_init (NULL, NULL) diff --git a/cogl/cogl/cogl-display.c b/cogl/cogl/cogl-display.c index 16a50d058..a5bcde08a 100644 --- a/cogl/cogl/cogl-display.c +++ b/cogl/cogl/cogl-display.c @@ -88,8 +88,6 @@ cogl_display_new (CoglRenderer *renderer, CoglDisplay *display = g_object_new (COGL_TYPE_DISPLAY, NULL); GError *error = NULL; - _cogl_init (); - display->renderer = renderer; if (renderer) g_object_ref (renderer); diff --git a/cogl/cogl/cogl-mutter.h b/cogl/cogl/cogl-mutter.h index aadbb63eb..cf02b1a49 100644 --- a/cogl/cogl/cogl-mutter.h +++ b/cogl/cogl/cogl-mutter.h @@ -55,3 +55,6 @@ void cogl_renderer_set_custom_winsys (CoglRenderer *renderer, COGL_EXPORT gboolean cogl_context_format_supports_upload (CoglContext *ctx, CoglPixelFormat format); + +COGL_EXPORT +void cogl_init (void); diff --git a/cogl/cogl/cogl-private.h b/cogl/cogl/cogl-private.h index fb18c8b9f..636af1feb 100644 --- a/cogl/cogl/cogl-private.h +++ b/cogl/cogl/cogl-private.h @@ -82,9 +82,6 @@ _cogl_transform_point (const graphene_matrix_t *matrix_mv, gboolean _cogl_check_extension (const char *name, char * const *ext); -void -_cogl_init (void); - #define _cogl_has_private_feature(ctx, feature) \ COGL_FLAGS_GET ((ctx)->private_features, (feature)) diff --git a/cogl/cogl/cogl-renderer.c b/cogl/cogl/cogl-renderer.c index b02610014..2a9e3cb53 100644 --- a/cogl/cogl/cogl-renderer.c +++ b/cogl/cogl/cogl-renderer.c @@ -194,8 +194,6 @@ cogl_renderer_new (void) { CoglRenderer *renderer = g_object_new (COGL_TYPE_RENDERER, NULL); - _cogl_init (); - renderer->connected = FALSE; renderer->event_filters = NULL; diff --git a/cogl/cogl/cogl.c b/cogl/cogl/cogl.c index e11ad9dc7..34325fa1d 100644 --- a/cogl/cogl/cogl.c +++ b/cogl/cogl/cogl.c @@ -52,6 +52,7 @@ #include "cogl/cogl-private.h" #include "cogl/cogl-offscreen.h" #include "cogl/winsys/cogl-winsys-private.h" +#include "cogl/cogl-mutter.h" gboolean _cogl_check_extension (const char *name, char * const *ext) @@ -124,7 +125,7 @@ _cogl_system_error_quark (void) } void -_cogl_init (void) +cogl_init (void) { static gboolean initialized = FALSE;