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: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3910>
This commit is contained in:
parent
b07c772fc8
commit
a9ec604eba
@ -73,10 +73,6 @@ struct _CoglRenderer
|
|||||||
typedef CoglFilterReturn (* CoglNativeFilterFunc) (void *native_event,
|
typedef CoglFilterReturn (* CoglNativeFilterFunc) (void *native_event,
|
||||||
void *data);
|
void *data);
|
||||||
|
|
||||||
CoglFilterReturn
|
|
||||||
_cogl_renderer_handle_native_event (CoglRenderer *renderer,
|
|
||||||
void *event);
|
|
||||||
|
|
||||||
void
|
void
|
||||||
_cogl_renderer_add_native_filter (CoglRenderer *renderer,
|
_cogl_renderer_add_native_filter (CoglRenderer *renderer,
|
||||||
CoglNativeFilterFunc func,
|
CoglNativeFilterFunc func,
|
||||||
|
@ -521,8 +521,8 @@ cogl_renderer_connect (CoglRenderer *renderer, GError **error)
|
|||||||
}
|
}
|
||||||
|
|
||||||
CoglFilterReturn
|
CoglFilterReturn
|
||||||
_cogl_renderer_handle_native_event (CoglRenderer *renderer,
|
cogl_renderer_handle_event (CoglRenderer *renderer,
|
||||||
void *event)
|
void *event)
|
||||||
{
|
{
|
||||||
GSList *l, *next;
|
GSList *l, *next;
|
||||||
|
|
||||||
|
@ -305,4 +305,21 @@ COGL_EXPORT void *
|
|||||||
cogl_renderer_get_proc_address (CoglRenderer *renderer,
|
cogl_renderer_get_proc_address (CoglRenderer *renderer,
|
||||||
const char *name);
|
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
|
G_END_DECLS
|
||||||
|
@ -465,13 +465,6 @@ cogl_xlib_renderer_get_display (CoglRenderer *renderer)
|
|||||||
return xlib_renderer->xdpy;
|
return xlib_renderer->xdpy;
|
||||||
}
|
}
|
||||||
|
|
||||||
CoglFilterReturn
|
|
||||||
cogl_xlib_renderer_handle_event (CoglRenderer *renderer,
|
|
||||||
XEvent *event)
|
|
||||||
{
|
|
||||||
return _cogl_renderer_handle_native_event (renderer, event);
|
|
||||||
}
|
|
||||||
|
|
||||||
float
|
float
|
||||||
_cogl_xlib_renderer_refresh_rate_for_rectangle (CoglRenderer *renderer,
|
_cogl_xlib_renderer_refresh_rate_for_rectangle (CoglRenderer *renderer,
|
||||||
int x,
|
int x,
|
||||||
|
@ -35,25 +35,6 @@
|
|||||||
|
|
||||||
G_BEGIN_DECLS
|
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)
|
* cogl_xlib_renderer_set_foreign_display: (skip)
|
||||||
* @renderer: a #CoglRenderer
|
* @renderer: a #CoglRenderer
|
||||||
@ -63,7 +44,7 @@ cogl_xlib_renderer_handle_event (CoglRenderer *renderer,
|
|||||||
*
|
*
|
||||||
* Note that calling this function will automatically disable Cogl's
|
* Note that calling this function will automatically disable Cogl's
|
||||||
* event retrieval. Cogl still needs to see all of the X events so the
|
* 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.
|
* uses this function.
|
||||||
*/
|
*/
|
||||||
COGL_EXPORT void
|
COGL_EXPORT void
|
||||||
|
@ -59,8 +59,8 @@ meta_backend_x11_handle_event (MetaBackend *backend,
|
|||||||
|
|
||||||
allocated_event = XGetEventData (xdisplay, &xevent->xcookie);
|
allocated_event = XGetEventData (xdisplay, &xevent->xcookie);
|
||||||
|
|
||||||
if (cogl_xlib_renderer_handle_event (clutter_backend->cogl_renderer,
|
if (cogl_renderer_handle_event (clutter_backend->cogl_renderer,
|
||||||
xevent) == COGL_FILTER_REMOVE)
|
xevent) == COGL_FILTER_REMOVE)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
stage_x11 =
|
stage_x11 =
|
||||||
|
Loading…
x
Reference in New Issue
Block a user