Move event polling into CoglRenderer
This updates the cogl_poll_ apis to allow dispatching events before we have a CoglContext and to also enables pollfd state to be changed in a more add-hoc way by different Cogl components by replacing the winsys->get_poll_info with _cogl_poll_renderer_add/remove_fd functions and a winsys->get_dispatch_timeout vfunc. One of the intentions here is that applications should be able to run their mainloop before creating a CoglContext to potentially get events relating to CoglOutputs. Reviewed-by: Neil Roberts <neil@linux.intel.com> (cherry picked from commit 667e58c9cb2662aef5f44e580a9eda42dc8d0176)
This commit is contained in:
@@ -40,11 +40,21 @@ G_BEGIN_DECLS
|
||||
*
|
||||
* Creates a #GSource which handles Cogl's internal system event
|
||||
* processing. This can be used as a convenience instead of
|
||||
* cogl_poll_get_info() and cogl_poll_dispatch() in applications that
|
||||
* are already using the GLib main loop. After this is called the
|
||||
* #GSource should be attached to the main loop using
|
||||
* cogl_poll_renderer_get_info() and cogl_poll_renderer_dispatch() in
|
||||
* applications that are already using the GLib main loop. After this
|
||||
* is called the #GSource should be attached to the main loop using
|
||||
* g_source_attach().
|
||||
*
|
||||
* Applications that manually connect to a #CoglRenderer before they
|
||||
* create a #CoglContext should instead use
|
||||
* cogl_glib_renderer_source_new() so that events may be dispatched
|
||||
* before a context has been created. In that case you don't need to
|
||||
* use this api in addition later, it is simply enough to use
|
||||
* cogl_glib_renderer_source_new() instead.
|
||||
*
|
||||
* <note>This api is actually just a thin convenience wrapper around
|
||||
* cogl_glib_renderer_source_new()</note>
|
||||
*
|
||||
* Return value: a new #GSource
|
||||
*
|
||||
* Stability: unstable
|
||||
@@ -54,6 +64,27 @@ GSource *
|
||||
cogl_glib_source_new (CoglContext *context,
|
||||
int priority);
|
||||
|
||||
/**
|
||||
* cogl_glib_renderer_source_new:
|
||||
* @context: A #CoglContext
|
||||
* @priority: The priority of the #GSource
|
||||
*
|
||||
* Creates a #GSource which handles Cogl's internal system event
|
||||
* processing. This can be used as a convenience instead of
|
||||
* cogl_poll_renderer_get_info() and cogl_poll_renderer_dispatch() in
|
||||
* applications that are already using the GLib main loop. After this
|
||||
* is called the #GSource should be attached to the main loop using
|
||||
* g_source_attach().
|
||||
*
|
||||
* Return value: a new #GSource
|
||||
*
|
||||
* Stability: unstable
|
||||
* Since: 1.16
|
||||
*/
|
||||
GSource *
|
||||
cogl_glib_renderer_source_new (CoglRenderer *renderer,
|
||||
int priority);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __COGL_GSOURCE_H__ */
|
||||
|
Reference in New Issue
Block a user