mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-10-31 22:25:21 -04:00
swapchain, damage_ring: Drop buffer age
This commit is contained in:
parent
eebaca8dbf
commit
bfcaa4bc44
12 changed files with 13 additions and 119 deletions
|
|
@ -10,7 +10,6 @@
|
|||
struct wlr_swapchain_slot {
|
||||
struct wlr_buffer *buffer;
|
||||
bool acquired; // waiting for release
|
||||
int age;
|
||||
|
||||
struct wl_listener release;
|
||||
};
|
||||
|
|
@ -36,21 +35,12 @@ void wlr_swapchain_destroy(struct wlr_swapchain *swapchain);
|
|||
* The returned buffer is locked. When the caller is done with it, they must
|
||||
* unlock it by calling wlr_buffer_unlock.
|
||||
*/
|
||||
struct wlr_buffer *wlr_swapchain_acquire(struct wlr_swapchain *swapchain,
|
||||
int *age);
|
||||
struct wlr_buffer *wlr_swapchain_acquire(struct wlr_swapchain *swapchain);
|
||||
/**
|
||||
* Returns true if this buffer has been created by this swapchain, and false
|
||||
* otherwise.
|
||||
*/
|
||||
bool wlr_swapchain_has_buffer(struct wlr_swapchain *swapchain,
|
||||
struct wlr_buffer *buffer);
|
||||
/**
|
||||
* Mark the buffer as submitted for presentation. This needs to be called by
|
||||
* swap chain users on frame boundaries.
|
||||
*
|
||||
* If the buffer hasn't been created via the swap chain, the call is ignored.
|
||||
*/
|
||||
void wlr_swapchain_set_buffer_submitted(struct wlr_swapchain *swapchain,
|
||||
struct wlr_buffer *buffer);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -15,9 +15,6 @@
|
|||
#include <pixman.h>
|
||||
#include <wayland-server-core.h>
|
||||
|
||||
/* For triple buffering, a history of two frames is required. */
|
||||
#define WLR_DAMAGE_RING_PREVIOUS_LEN 2
|
||||
|
||||
struct wlr_box;
|
||||
|
||||
struct wlr_damage_ring_buffer {
|
||||
|
|
@ -37,9 +34,6 @@ struct wlr_damage_ring {
|
|||
|
||||
// private state
|
||||
|
||||
pixman_region32_t previous[WLR_DAMAGE_RING_PREVIOUS_LEN];
|
||||
size_t previous_idx;
|
||||
|
||||
struct wl_list buffers; // wlr_damage_ring_buffer.link
|
||||
};
|
||||
|
||||
|
|
@ -79,20 +73,6 @@ bool wlr_damage_ring_add_box(struct wlr_damage_ring *ring,
|
|||
*/
|
||||
void wlr_damage_ring_add_whole(struct wlr_damage_ring *ring);
|
||||
|
||||
/**
|
||||
* Rotate the damage ring. This needs to be called after using the accumulated
|
||||
* damage, e.g. after rendering to an output's back buffer.
|
||||
*/
|
||||
void wlr_damage_ring_rotate(struct wlr_damage_ring *ring);
|
||||
|
||||
/**
|
||||
* Get accumulated damage, which is the difference between the current buffer
|
||||
* and the buffer with age of buffer_age; in context of rendering, this is
|
||||
* the region that needs to be redrawn.
|
||||
*/
|
||||
void wlr_damage_ring_get_buffer_damage(struct wlr_damage_ring *ring,
|
||||
int buffer_age, pixman_region32_t *damage);
|
||||
|
||||
/**
|
||||
* Get accumulated buffer damage and rotate the damage ring.
|
||||
*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue