mirror of
https://gitlab.freedesktop.org/wayland/wayland.git
synced 2025-10-31 22:25:25 -04:00
client: Add an entry point for dispatching a queue without blocking
On the client side EGL, all the wl_buffer.release events need to be processed before buffer allocation, otherwise a third buffer might be allocated unnecessarily. However, the buffer allocation should not block in the case no event was received. In order to do that, a non-blocking queue dispatch function is needed.
This commit is contained in:
parent
0f5d41e3bb
commit
fb20507881
2 changed files with 21 additions and 0 deletions
|
|
@ -926,6 +926,25 @@ wl_display_dispatch_queue(struct wl_display *display,
|
|||
return dispatch_queue(display, queue, 1);
|
||||
}
|
||||
|
||||
/** Dispatch pending events in an event queue
|
||||
*
|
||||
* \param display The display context object
|
||||
* \param queue The event queue to dispatch
|
||||
* \return The number of dispatched events on success or -1 on failure
|
||||
*
|
||||
* Dispatch all incoming events for objects assigned to the given
|
||||
* event queue. On failure -1 is returned and errno set appropriately.
|
||||
* If there are no events queued, this functions return immediately.
|
||||
*
|
||||
* \memberof wl_display
|
||||
*/
|
||||
WL_EXPORT int
|
||||
wl_display_dispatch_queue_pending(struct wl_display *display,
|
||||
struct wl_event_queue *queue)
|
||||
{
|
||||
return dispatch_queue(display, queue, 0);
|
||||
}
|
||||
|
||||
/** Process incoming events
|
||||
*
|
||||
* \param display The display context object
|
||||
|
|
|
|||
|
|
@ -145,6 +145,8 @@ int wl_display_get_fd(struct wl_display *display);
|
|||
int wl_display_dispatch(struct wl_display *display);
|
||||
int wl_display_dispatch_queue(struct wl_display *display,
|
||||
struct wl_event_queue *queue);
|
||||
int wl_display_dispatch_queue_pending(struct wl_display *display,
|
||||
struct wl_event_queue *queue);
|
||||
int wl_display_dispatch_pending(struct wl_display *display);
|
||||
int wl_display_get_error(struct wl_display *display);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue