Lines Matching refs:xwl_present_window
42 static struct xwl_present_window *
49 static struct xwl_present_window *
52 struct xwl_present_window *xwl_present_window = xwl_present_window_priv(window); in xwl_present_window_get_priv() local
54 if (xwl_present_window == NULL) { in xwl_present_window_get_priv()
55 xwl_present_window = calloc (1, sizeof (struct xwl_present_window)); in xwl_present_window_get_priv()
56 if (!xwl_present_window) in xwl_present_window_get_priv()
59 xwl_present_window->window = window; in xwl_present_window_get_priv()
60 xwl_present_window->msc = 1; in xwl_present_window_get_priv()
61 xwl_present_window->ust = GetTimeInMicros(); in xwl_present_window_get_priv()
63 xorg_list_init(&xwl_present_window->frame_callback_list); in xwl_present_window_get_priv()
64 xorg_list_init(&xwl_present_window->event_list); in xwl_present_window_get_priv()
65 xorg_list_init(&xwl_present_window->release_queue); in xwl_present_window_get_priv()
69 xwl_present_window); in xwl_present_window_get_priv()
72 return xwl_present_window; in xwl_present_window_get_priv()
76 xwl_present_free_timer(struct xwl_present_window *xwl_present_window) in xwl_present_free_timer() argument
78 TimerFree(xwl_present_window->frame_timer); in xwl_present_free_timer()
79 xwl_present_window->frame_timer = NULL; in xwl_present_free_timer()
88 xwl_present_has_events(struct xwl_present_window *xwl_present_window) in xwl_present_has_events() argument
90 return !!xwl_present_window->sync_flip || in xwl_present_has_events()
91 !xorg_list_is_empty(&xwl_present_window->event_list); in xwl_present_has_events()
95 xwl_present_reset_timer(struct xwl_present_window *xwl_present_window) in xwl_present_reset_timer() argument
97 if (xwl_present_has_events(xwl_present_window)) { in xwl_present_reset_timer()
100 if (!xorg_list_is_empty(&xwl_present_window->frame_callback_list)) in xwl_present_reset_timer()
105 xwl_present_window->frame_timer = TimerSet(xwl_present_window->frame_timer, in xwl_present_reset_timer()
108 xwl_present_window); in xwl_present_reset_timer()
110 xwl_present_free_timer(xwl_present_window); in xwl_present_reset_timer()
138 struct xwl_present_window *xwl_present_window = xwl_present_window_priv(window); in xwl_present_cleanup() local
141 if (!xwl_present_window) in xwl_present_cleanup()
144 xorg_list_del(&xwl_present_window->frame_callback_list); in xwl_present_cleanup()
146 if (xwl_present_window->sync_callback) { in xwl_present_cleanup()
147 wl_callback_destroy(xwl_present_window->sync_callback); in xwl_present_cleanup()
148 xwl_present_window->sync_callback = NULL; in xwl_present_cleanup()
152 xorg_list_for_each_entry_safe(event, tmp, &xwl_present_window->event_list, list) in xwl_present_cleanup()
155 xwl_present_free_event(xwl_present_window->sync_flip); in xwl_present_cleanup()
157 xorg_list_for_each_entry_safe(event, tmp, &xwl_present_window->release_queue, list) in xwl_present_cleanup()
161 xwl_present_free_timer(xwl_present_window); in xwl_present_cleanup()
168 free(xwl_present_window); in xwl_present_cleanup()
188 present_wnmd_event_notify(event->xwl_present_window->window, 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()
201 xwl_present_msc_bump(struct xwl_present_window *xwl_present_window) in xwl_present_msc_bump() argument
203 uint64_t msc = ++xwl_present_window->msc; in xwl_present_msc_bump()
206 xwl_present_window->ust = GetTimeInMicros(); in xwl_present_msc_bump()
208 event = xwl_present_window->sync_flip; in xwl_present_msc_bump()
209 xwl_present_window->sync_flip = NULL; in xwl_present_msc_bump()
213 present_wnmd_event_notify(xwl_present_window->window, event->event_id, in xwl_present_msc_bump()
214 xwl_present_window->ust, msc); in xwl_present_msc_bump()
218 present_wnmd_event_notify(xwl_present_window->window, event->event_id, in xwl_present_msc_bump()
219 xwl_present_window->ust, msc); in xwl_present_msc_bump()
222 xorg_list_add(&event->list, &xwl_present_window->release_queue); in xwl_present_msc_bump()
227 &xwl_present_window->event_list, in xwl_present_msc_bump()
230 present_wnmd_event_notify(xwl_present_window->window, in xwl_present_msc_bump()
232 xwl_present_window->ust, in xwl_present_msc_bump()
244 struct xwl_present_window *xwl_present_window = arg; in xwl_present_timer_callback() local
249 xorg_list_del(&xwl_present_window->frame_callback_list); in xwl_present_timer_callback()
251 xwl_present_msc_bump(xwl_present_window); in xwl_present_timer_callback()
252 xwl_present_reset_timer(xwl_present_window); in xwl_present_timer_callback()
258 xwl_present_frame_callback(struct xwl_present_window *xwl_present_window) in xwl_present_frame_callback() argument
260 xorg_list_del(&xwl_present_window->frame_callback_list); in xwl_present_frame_callback()
262 xwl_present_msc_bump(xwl_present_window); in xwl_present_frame_callback()
267 xwl_present_reset_timer(xwl_present_window); in xwl_present_frame_callback()
276 struct xwl_present_window *xwl_present_window = event->xwl_present_window; in xwl_present_sync_callback() local
278 wl_callback_destroy(xwl_present_window->sync_callback); in xwl_present_sync_callback()
279 xwl_present_window->sync_callback = NULL; in xwl_present_sync_callback()
291 present_wnmd_event_notify(xwl_present_window->window, in xwl_present_sync_callback()
293 xwl_present_window->ust, in xwl_present_sync_callback()
294 xwl_present_window->msc); in xwl_present_sync_callback()
298 present_wnmd_event_notify(xwl_present_window->window, in xwl_present_sync_callback()
300 xwl_present_window->ust, in xwl_present_sync_callback()
301 xwl_present_window->msc); in xwl_present_sync_callback()
313 struct xwl_present_window *xwl_present_window = xwl_present_window_get_priv(present_window); in xwl_present_get_crtc() local
316 if (xwl_present_window == NULL) in xwl_present_get_crtc()
330 struct xwl_present_window *xwl_present_window = xwl_present_window_get_priv(present_window); in xwl_present_get_ust_msc() local
331 if (!xwl_present_window) in xwl_present_get_ust_msc()
334 *ust = xwl_present_window->ust; in xwl_present_get_ust_msc()
335 *msc = xwl_present_window->msc; in xwl_present_get_ust_msc()
350 struct xwl_present_window *xwl_present_window = xwl_present_window_get_priv(present_window); in xwl_present_queue_vblank() local
360 event->xwl_present_window = xwl_present_window; in xwl_present_queue_vblank()
363 xorg_list_append(&event->list, &xwl_present_window->event_list); in xwl_present_queue_vblank()
367 xorg_list_is_empty(&xwl_present_window->frame_callback_list)) { in xwl_present_queue_vblank()
368 xorg_list_add(&xwl_present_window->frame_callback_list, in xwl_present_queue_vblank()
373 !xwl_present_window->frame_timer) in xwl_present_queue_vblank()
374 xwl_present_reset_timer(xwl_present_window); in xwl_present_queue_vblank()
389 struct xwl_present_window *xwl_present_window = xwl_present_window_priv(present_window); in xwl_present_abort_vblank() local
392 if (!xwl_present_window) in xwl_present_abort_vblank()
395 xorg_list_for_each_entry_safe(event, tmp, &xwl_present_window->event_list, list) { in xwl_present_abort_vblank()
402 xorg_list_for_each_entry(event, &xwl_present_window->release_queue, list) { in xwl_present_abort_vblank()
457 struct xwl_present_window *xwl_present_window = xwl_present_window_priv(present_window); in xwl_present_flip() local
476 event->xwl_present_window = xwl_present_window; 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()
500 if (xorg_list_is_empty(&xwl_present_window->frame_callback_list)) { in xwl_present_flip()
501 xorg_list_add(&xwl_present_window->frame_callback_list, in xwl_present_flip()
506 xwl_present_reset_timer(xwl_present_window); in xwl_present_flip()
517 xwl_present_window->sync_callback = in xwl_present_flip()
519 wl_callback_add_listener(xwl_present_window->sync_callback, in xwl_present_flip()
532 struct xwl_present_window *xwl_present_window = xwl_present_window_priv(window); in xwl_present_flips_stop() local
535 xwl_present_reset_timer(xwl_present_window); in xwl_present_flips_stop()
539 xwl_present_unrealize_window(struct xwl_present_window *xwl_present_window) in xwl_present_unrealize_window() argument
544 xorg_list_del(&xwl_present_window->frame_callback_list); in xwl_present_unrealize_window()
545 xwl_present_reset_timer(xwl_present_window); in xwl_present_unrealize_window()