Lines Matching full:event
18 * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
115 xwl_present_free_event(struct xwl_present_event *event) in xwl_present_free_event() argument
117 if (!event) in xwl_present_free_event()
120 if (event->pixmap) { in xwl_present_free_event()
121 if (!event->buffer_released) { in xwl_present_free_event()
123 xwl_glamor_pixmap_get_wl_buffer(event->pixmap, NULL); in xwl_present_free_event()
128 dixDestroyPixmap(event->pixmap, event->pixmap->drawable.id); in xwl_present_free_event()
131 xorg_list_del(&event->list); in xwl_present_free_event()
132 free(event); in xwl_present_free_event()
139 struct xwl_present_event *event, *tmp; in xwl_present_cleanup() local
152 xorg_list_for_each_entry_safe(event, tmp, &xwl_present_window->event_list, list) in xwl_present_cleanup()
153 xwl_present_free_event(event); in xwl_present_cleanup()
157 xorg_list_for_each_entry_safe(event, tmp, &xwl_present_window->release_queue, list) in xwl_present_cleanup()
158 xwl_present_free_event(event); in xwl_present_cleanup()
174 struct xwl_present_event *event = data; in xwl_present_buffer_release() local
175 if (!event) in xwl_present_buffer_release()
179 event->buffer_released = TRUE; in xwl_present_buffer_release()
181 if (event->abort) { in xwl_present_buffer_release()
182 if (!event->pending) in xwl_present_buffer_release()
183 xwl_present_free_event(event); in xwl_present_buffer_release()
187 if (!event->pending) { in xwl_present_buffer_release()
188 present_wnmd_event_notify(event->xwl_present_window->window, in xwl_present_buffer_release()
189 event->event_id, in xwl_present_buffer_release()
190 event->xwl_present_window->ust, in xwl_present_buffer_release()
191 event->xwl_present_window->msc); in xwl_present_buffer_release()
192 xwl_present_free_event(event); in xwl_present_buffer_release()
204 struct xwl_present_event *event, *tmp; in xwl_present_msc_bump() local
208 event = xwl_present_window->sync_flip; in xwl_present_msc_bump()
210 if (event) { in xwl_present_msc_bump()
211 event->pending = FALSE; in xwl_present_msc_bump()
213 present_wnmd_event_notify(xwl_present_window->window, event->event_id, in xwl_present_msc_bump()
216 if (event->buffer_released) { in xwl_present_msc_bump()
218 present_wnmd_event_notify(xwl_present_window->window, event->event_id, in xwl_present_msc_bump()
220 xwl_present_free_event(event); in xwl_present_msc_bump()
222 xorg_list_add(&event->list, &xwl_present_window->release_queue); in xwl_present_msc_bump()
226 xorg_list_for_each_entry_safe(event, tmp, in xwl_present_msc_bump()
229 if (event->target_msc <= msc) { in xwl_present_msc_bump()
231 event->event_id, in xwl_present_msc_bump()
234 xwl_present_free_event(event); in xwl_present_msc_bump()
275 struct xwl_present_event *event = data; in xwl_present_sync_callback() local
276 struct xwl_present_window *xwl_present_window = event->xwl_present_window; in xwl_present_sync_callback()
281 event->pending = FALSE; in xwl_present_sync_callback()
283 if (event->abort) { in xwl_present_sync_callback()
284 /* Event might have been aborted */ in xwl_present_sync_callback()
285 if (event->buffer_released) in xwl_present_sync_callback()
287 xwl_present_free_event(event); in xwl_present_sync_callback()
292 event->event_id, in xwl_present_sync_callback()
296 if (event->buffer_released) { in xwl_present_sync_callback()
297 /* If the buffer was already released, send the event now again */ in xwl_present_sync_callback()
299 event->event_id, in xwl_present_sync_callback()
302 xwl_present_free_event(event); in xwl_present_sync_callback()
341 * Queue an event to report back to the Present extension when the specified
352 struct xwl_present_event *event; in xwl_present_queue_vblank() local
354 event = malloc(sizeof *event); in xwl_present_queue_vblank()
355 if (!event) in xwl_present_queue_vblank()
358 event->event_id = event_id; in xwl_present_queue_vblank()
359 event->pixmap = NULL; in xwl_present_queue_vblank()
360 event->xwl_present_window = xwl_present_window; in xwl_present_queue_vblank()
361 event->target_msc = msc; in xwl_present_queue_vblank()
363 xorg_list_append(&event->list, &xwl_present_window->event_list); in xwl_present_queue_vblank()
380 * Remove a pending vblank event so that it is not reported
390 struct xwl_present_event *event, *tmp; in xwl_present_abort_vblank() local
395 xorg_list_for_each_entry_safe(event, tmp, &xwl_present_window->event_list, list) { in xwl_present_abort_vblank()
396 if (event->event_id == event_id) { in xwl_present_abort_vblank()
397 xwl_present_free_event(event); in xwl_present_abort_vblank()
402 xorg_list_for_each_entry(event, &xwl_present_window->release_queue, list) { in xwl_present_abort_vblank()
403 if (event->event_id == event_id) { in xwl_present_abort_vblank()
404 event->abort = TRUE; in xwl_present_abort_vblank()
461 struct xwl_present_event *event; in xwl_present_flip() local
468 event = malloc(sizeof *event); in xwl_present_flip()
469 if (!event) in xwl_present_flip()
475 event->event_id = event_id; in xwl_present_flip()
476 event->xwl_present_window = xwl_present_window; in xwl_present_flip()
477 event->pixmap = pixmap; in xwl_present_flip()
478 event->target_msc = target_msc; in xwl_present_flip()
479 event->pending = TRUE; in xwl_present_flip()
480 event->abort = FALSE; in xwl_present_flip()
481 event->buffer_released = FALSE; in xwl_present_flip()
484 xorg_list_init(&event->list); in xwl_present_flip()
485 xwl_present_window->sync_flip = event; in xwl_present_flip()
487 xorg_list_add(&event->list, &xwl_present_window->release_queue); in xwl_present_flip()
492 wl_buffer_set_user_data(buffer, event); in xwl_present_flip()
521 event); in xwl_present_flip()