mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-11-01 22:58:38 -04:00
backend/wayland: re-use wl_buffers
Instead of re-importing a buffer each time we submit a new frame, re-use the wl_buffer objects if possible.
This commit is contained in:
parent
de896caceb
commit
defcd9b025
3 changed files with 46 additions and 4 deletions
|
|
@ -25,9 +25,11 @@ struct wlr_wl_backend {
|
|||
struct wlr_renderer *renderer;
|
||||
struct wlr_drm_format *format;
|
||||
struct wlr_allocator *allocator;
|
||||
struct wl_list buffers; // wlr_wl_buffer.link
|
||||
size_t requested_outputs;
|
||||
size_t last_output_num;
|
||||
struct wl_listener local_display_destroy;
|
||||
|
||||
/* remote state */
|
||||
struct wl_display *remote_display;
|
||||
struct wl_event_source *remote_display_src;
|
||||
|
|
@ -47,6 +49,9 @@ struct wlr_wl_backend {
|
|||
struct wlr_wl_buffer {
|
||||
struct wlr_buffer *buffer;
|
||||
struct wl_buffer *wl_buffer;
|
||||
bool released;
|
||||
struct wl_list link; // wlr_wl_backend.buffers
|
||||
struct wl_listener buffer_destroy;
|
||||
};
|
||||
|
||||
struct wlr_wl_presentation_feedback {
|
||||
|
|
@ -130,6 +135,7 @@ struct wlr_wl_input_device *create_wl_input_device(
|
|||
struct wlr_wl_seat *seat, enum wlr_input_device_type type);
|
||||
bool create_wl_seat(struct wl_seat *wl_seat, struct wlr_wl_backend *wl);
|
||||
void destroy_wl_seats(struct wlr_wl_backend *wl);
|
||||
void destroy_wl_buffer(struct wlr_wl_buffer *buffer);
|
||||
|
||||
extern const struct wl_seat_listener seat_listener;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue