From b3da64c20e7a5fad8a6649d0ea50ba4e5ee72e07 Mon Sep 17 00:00:00 2001 From: Bilal Elmoussaoui Date: Wed, 21 Aug 2024 00:35:58 +0200 Subject: [PATCH] clutter/pick-context: Get CoglContext from actor context Part-of: --- clutter/clutter/clutter-pick-context-private.h | 1 + clutter/clutter/clutter-pick-context.c | 5 ++--- clutter/clutter/clutter-stage.c | 8 +++++++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/clutter/clutter/clutter-pick-context-private.h b/clutter/clutter/clutter-pick-context-private.h index 77d032a5c..3161373bb 100644 --- a/clutter/clutter/clutter-pick-context-private.h +++ b/clutter/clutter/clutter-pick-context-private.h @@ -22,6 +22,7 @@ ClutterPickContext * clutter_pick_context_new_for_view (ClutterStageView *view, + CoglContext *cogl_context, ClutterPickMode mode, const graphene_point3d_t *point, const graphene_ray_t *ray); diff --git a/clutter/clutter/clutter-pick-context.c b/clutter/clutter/clutter-pick-context.c index aa4f2e249..04d46d70e 100644 --- a/clutter/clutter/clutter-pick-context.c +++ b/clutter/clutter/clutter-pick-context.c @@ -37,12 +37,12 @@ G_DEFINE_BOXED_TYPE (ClutterPickContext, clutter_pick_context, ClutterPickContext * clutter_pick_context_new_for_view (ClutterStageView *view, + CoglContext *cogl_context, ClutterPickMode mode, const graphene_point3d_t *point, const graphene_ray_t *ray) { ClutterPickContext *pick_context; - CoglContext *context; pick_context = g_new0 (ClutterPickContext, 1); g_ref_count_init (&pick_context->ref_count); @@ -50,8 +50,7 @@ clutter_pick_context_new_for_view (ClutterStageView *view, graphene_ray_init_from_ray (&pick_context->ray, ray); graphene_point3d_init_from_point (&pick_context->point, point); - context = clutter_backend_get_cogl_context (clutter_get_default_backend ()); - pick_context->pick_stack = clutter_pick_stack_new (context); + pick_context->pick_stack = clutter_pick_stack_new (cogl_context); return pick_context; } diff --git a/clutter/clutter/clutter-stage.c b/clutter/clutter/clutter-stage.c index 75f470e15..cb6cb7235 100644 --- a/clutter/clutter/clutter-stage.c +++ b/clutter/clutter/clutter-stage.c @@ -1051,7 +1051,10 @@ _clutter_stage_do_pick_on_view (ClutterStage *stage, MtkRegion **clear_area) { g_autoptr (ClutterPickStack) pick_stack = NULL; + ClutterContext *context; + ClutterBackend *backend; ClutterPickContext *pick_context; + CoglContext *cogl_context; graphene_point3d_t p; graphene_ray_t ray; ClutterActor *actor; @@ -1060,7 +1063,10 @@ _clutter_stage_do_pick_on_view (ClutterStage *stage, setup_ray_for_coordinates (stage, x, y, &p, &ray); - pick_context = clutter_pick_context_new_for_view (view, mode, &p, &ray); + context = clutter_actor_get_context (CLUTTER_ACTOR (stage)); + backend = clutter_context_get_backend (context); + cogl_context = clutter_backend_get_cogl_context (backend); + pick_context = clutter_pick_context_new_for_view (view, cogl_context, mode, &p, &ray); clutter_actor_pick (CLUTTER_ACTOR (stage), pick_context); pick_stack = clutter_pick_context_steal_stack (pick_context);