mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-11-26 06:35:58 +01:00
compositor: add wlr_surface_set_preferred_buffer_scale()
References: https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/220
This commit is contained in:
parent
0bb574239d
commit
42edd36785
2 changed files with 29 additions and 1 deletions
|
@ -163,6 +163,8 @@ struct wlr_surface {
|
|||
} previous;
|
||||
|
||||
bool opaque;
|
||||
|
||||
int32_t preferred_buffer_scale;
|
||||
};
|
||||
|
||||
struct wlr_renderer;
|
||||
|
@ -319,6 +321,15 @@ uint32_t wlr_surface_lock_pending(struct wlr_surface *surface);
|
|||
*/
|
||||
void wlr_surface_unlock_cached(struct wlr_surface *surface, uint32_t seq);
|
||||
|
||||
/**
|
||||
* Set the preferred buffer scale for the surface.
|
||||
*
|
||||
* This sends an event to the client indicating the preferred scale to use for
|
||||
* buffers attached to this surface.
|
||||
*/
|
||||
void wlr_surface_set_preferred_buffer_scale(struct wlr_surface *surface,
|
||||
int32_t scale);
|
||||
|
||||
/**
|
||||
* Create the wl_compositor global, which can be used by clients to create
|
||||
* surfaces and regions.
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#include "types/wlr_subcompositor.h"
|
||||
#include "util/time.h"
|
||||
|
||||
#define COMPOSITOR_VERSION 5
|
||||
#define COMPOSITOR_VERSION 6
|
||||
#define CALLBACK_VERSION 1
|
||||
|
||||
static int min(int fst, int snd) {
|
||||
|
@ -1089,6 +1089,23 @@ void wlr_surface_get_buffer_source_box(struct wlr_surface *surface,
|
|||
}
|
||||
}
|
||||
|
||||
void wlr_surface_set_preferred_buffer_scale(struct wlr_surface *surface,
|
||||
int32_t scale) {
|
||||
assert(scale > 0);
|
||||
|
||||
if (wl_resource_get_version(surface->resource) <
|
||||
WL_SURFACE_PREFERRED_BUFFER_SCALE_SINCE_VERSION) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (surface->preferred_buffer_scale == scale) {
|
||||
return;
|
||||
}
|
||||
|
||||
wl_surface_send_preferred_buffer_scale(surface->resource, scale);
|
||||
surface->preferred_buffer_scale = scale;
|
||||
}
|
||||
|
||||
static const struct wl_compositor_interface compositor_impl;
|
||||
|
||||
static struct wlr_compositor *compositor_from_resource(
|
||||
|
|
Loading…
Reference in a new issue