From a9ec604eba6edbfc530e5f74ca0b3a6c375e5fb0 Mon Sep 17 00:00:00 2001 From: Bilal Elmoussaoui Date: Sun, 28 Jul 2024 14:58:33 +0200 Subject: [PATCH] cogl/renderer: Expose handle_event As it was originally the function to be used before making it private and providing safer wrappers around it for x11/win32. Nowadays, it is only used in x11 and only internally in mutter, exposing a 'safer' variant costs us exposing more of x11 renderer APIs without much benefits. With this change, the only internal xlib renderer we need from meta is set_foreign_display which can't be easily worked around Part-of: --- cogl/cogl/cogl-renderer-private.h | 4 ---- cogl/cogl/cogl-renderer.c | 4 ++-- cogl/cogl/cogl-renderer.h | 17 +++++++++++++++++ cogl/cogl/cogl-xlib-renderer.c | 7 ------- cogl/cogl/cogl-xlib-renderer.h | 21 +-------------------- src/backends/x11/meta-event-x11.c | 4 ++-- 6 files changed, 22 insertions(+), 35 deletions(-) diff --git a/cogl/cogl/cogl-renderer-private.h b/cogl/cogl/cogl-renderer-private.h index e64931f54..8f8aa8ec1 100644 --- a/cogl/cogl/cogl-renderer-private.h +++ b/cogl/cogl/cogl-renderer-private.h @@ -73,10 +73,6 @@ struct _CoglRenderer typedef CoglFilterReturn (* CoglNativeFilterFunc) (void *native_event, void *data); -CoglFilterReturn -_cogl_renderer_handle_native_event (CoglRenderer *renderer, - void *event); - void _cogl_renderer_add_native_filter (CoglRenderer *renderer, CoglNativeFilterFunc func, diff --git a/cogl/cogl/cogl-renderer.c b/cogl/cogl/cogl-renderer.c index af0f71223..7feab4b20 100644 --- a/cogl/cogl/cogl-renderer.c +++ b/cogl/cogl/cogl-renderer.c @@ -521,8 +521,8 @@ cogl_renderer_connect (CoglRenderer *renderer, GError **error) } CoglFilterReturn -_cogl_renderer_handle_native_event (CoglRenderer *renderer, - void *event) +cogl_renderer_handle_event (CoglRenderer *renderer, + void *event) { GSList *l, *next; diff --git a/cogl/cogl/cogl-renderer.h b/cogl/cogl/cogl-renderer.h index e09b55582..369011abc 100644 --- a/cogl/cogl/cogl-renderer.h +++ b/cogl/cogl/cogl-renderer.h @@ -305,4 +305,21 @@ COGL_EXPORT void * cogl_renderer_get_proc_address (CoglRenderer *renderer, const char *name); +/** + * cogl_renderer_handle_event: (skip) + * @renderer: a #CoglRenderer + * @event: pointer to an event structure + * + * Processes a single event. + * + * Return value: #CoglFilterReturn. %COGL_FILTER_REMOVE indicates that + * Cogl has internally handled the event and the caller should do no + * further processing. %COGL_FILTER_CONTINUE indicates that Cogl is + * either not interested in the event, or has used the event to update + * internal state without taking any exclusive action. + */ +COGL_EXPORT CoglFilterReturn +cogl_renderer_handle_event (CoglRenderer *renderer, + void *event); + G_END_DECLS diff --git a/cogl/cogl/cogl-xlib-renderer.c b/cogl/cogl/cogl-xlib-renderer.c index d35178055..ba76a79c4 100644 --- a/cogl/cogl/cogl-xlib-renderer.c +++ b/cogl/cogl/cogl-xlib-renderer.c @@ -465,13 +465,6 @@ cogl_xlib_renderer_get_display (CoglRenderer *renderer) return xlib_renderer->xdpy; } -CoglFilterReturn -cogl_xlib_renderer_handle_event (CoglRenderer *renderer, - XEvent *event) -{ - return _cogl_renderer_handle_native_event (renderer, event); -} - float _cogl_xlib_renderer_refresh_rate_for_rectangle (CoglRenderer *renderer, int x, diff --git a/cogl/cogl/cogl-xlib-renderer.h b/cogl/cogl/cogl-xlib-renderer.h index 12d18648c..7c5944c5d 100644 --- a/cogl/cogl/cogl-xlib-renderer.h +++ b/cogl/cogl/cogl-xlib-renderer.h @@ -35,25 +35,6 @@ G_BEGIN_DECLS -/** - * cogl_xlib_renderer_handle_event: (skip) - * @renderer: a #CoglRenderer - * @event: pointer to an XEvent structure - * - * This function processes a single event; it can be used to hook into - * external event retrieval (for example that done by Clutter or - * GDK). - * - * Return value: #CoglFilterReturn. %COGL_FILTER_REMOVE indicates that - * Cogl has internally handled the event and the caller should do no - * further processing. %COGL_FILTER_CONTINUE indicates that Cogl is - * either not interested in the event, or has used the event to update - * internal state without taking any exclusive action. - */ -COGL_EXPORT CoglFilterReturn -cogl_xlib_renderer_handle_event (CoglRenderer *renderer, - XEvent *event); - /** * cogl_xlib_renderer_set_foreign_display: (skip) * @renderer: a #CoglRenderer @@ -63,7 +44,7 @@ cogl_xlib_renderer_handle_event (CoglRenderer *renderer, * * Note that calling this function will automatically disable Cogl's * event retrieval. Cogl still needs to see all of the X events so the - * application should also use cogl_xlib_renderer_handle_event() if it + * application should also use cogl_renderer_handle_event() if it * uses this function. */ COGL_EXPORT void diff --git a/src/backends/x11/meta-event-x11.c b/src/backends/x11/meta-event-x11.c index 223185187..743bf6f2c 100644 --- a/src/backends/x11/meta-event-x11.c +++ b/src/backends/x11/meta-event-x11.c @@ -59,8 +59,8 @@ meta_backend_x11_handle_event (MetaBackend *backend, allocated_event = XGetEventData (xdisplay, &xevent->xcookie); - if (cogl_xlib_renderer_handle_event (clutter_backend->cogl_renderer, - xevent) == COGL_FILTER_REMOVE) + if (cogl_renderer_handle_event (clutter_backend->cogl_renderer, + xevent) == COGL_FILTER_REMOVE) goto out; stage_x11 =