mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2024-11-25 16:42:26 +00:00
output: add output state setters
This ensures compositors don't forget to set the committed flag or the mode_type when setting a field.
This commit is contained in:
parent
0173275f7e
commit
6688a3d9ea
@ -501,6 +501,23 @@ bool wlr_output_cursor_move(struct wlr_output_cursor *cursor,
|
||||
void wlr_output_cursor_destroy(struct wlr_output_cursor *cursor);
|
||||
|
||||
|
||||
void wlr_output_state_set_enabled(struct wlr_output_state *state,
|
||||
bool enabled);
|
||||
void wlr_output_state_set_mode(struct wlr_output_state *state,
|
||||
struct wlr_output_mode *mode);
|
||||
void wlr_output_state_set_custom_mode(struct wlr_output_state *state,
|
||||
int32_t width, int32_t height, int32_t refresh);
|
||||
void wlr_output_state_set_scale(struct wlr_output_state *state, float scale);
|
||||
void wlr_output_state_set_transform(struct wlr_output_state *state,
|
||||
enum wl_output_transform transform);
|
||||
void wlr_output_state_set_adaptive_sync_enabled(struct wlr_output_state *state,
|
||||
bool enabled);
|
||||
void wlr_output_state_set_render_format(struct wlr_output_state *state,
|
||||
uint32_t format);
|
||||
void wlr_output_state_set_subpixel(struct wlr_output_state *state,
|
||||
enum wl_output_subpixel subpixel);
|
||||
|
||||
|
||||
/**
|
||||
* Returns the transform that, when composed with `tr`, gives
|
||||
* `WL_OUTPUT_TRANSFORM_NORMAL`.
|
||||
|
@ -6,6 +6,7 @@ wlr_files += files(
|
||||
'output/cursor.c',
|
||||
'output/output.c',
|
||||
'output/render.c',
|
||||
'output/state.c',
|
||||
'output/transform.c',
|
||||
'scene/subsurface_tree.c',
|
||||
'scene/surface.c',
|
||||
|
52
types/output/state.c
Normal file
52
types/output/state.c
Normal file
@ -0,0 +1,52 @@
|
||||
#include "types/wlr_output.h"
|
||||
|
||||
void wlr_output_state_set_enabled(struct wlr_output_state *state,
|
||||
bool enabled) {
|
||||
state->committed |= WLR_OUTPUT_STATE_ENABLED;
|
||||
state->enabled = enabled;
|
||||
}
|
||||
|
||||
void wlr_output_state_set_mode(struct wlr_output_state *state,
|
||||
struct wlr_output_mode *mode) {
|
||||
state->committed |= WLR_OUTPUT_STATE_MODE;
|
||||
state->mode_type = WLR_OUTPUT_STATE_MODE_FIXED;
|
||||
state->mode = mode;
|
||||
}
|
||||
|
||||
void wlr_output_state_set_custom_mode(struct wlr_output_state *state,
|
||||
int32_t width, int32_t height, int32_t refresh) {
|
||||
state->committed |= WLR_OUTPUT_STATE_MODE;
|
||||
state->mode_type = WLR_OUTPUT_STATE_MODE_CUSTOM;
|
||||
state->custom_mode.width = width;
|
||||
state->custom_mode.height = height;
|
||||
state->custom_mode.refresh = refresh;
|
||||
}
|
||||
|
||||
void wlr_output_state_set_scale(struct wlr_output_state *state, float scale) {
|
||||
state->committed |= WLR_OUTPUT_STATE_SCALE;
|
||||
state->scale = scale;
|
||||
}
|
||||
|
||||
void wlr_output_state_set_transform(struct wlr_output_state *state,
|
||||
enum wl_output_transform transform) {
|
||||
state->committed |= WLR_OUTPUT_STATE_TRANSFORM;
|
||||
state->transform = transform;
|
||||
}
|
||||
|
||||
void wlr_output_state_set_adaptive_sync_enabled(struct wlr_output_state *state,
|
||||
bool enabled) {
|
||||
state->committed |= WLR_OUTPUT_STATE_ADAPTIVE_SYNC_ENABLED;
|
||||
state->adaptive_sync_enabled = enabled;
|
||||
}
|
||||
|
||||
void wlr_output_state_set_render_format(struct wlr_output_state *state,
|
||||
uint32_t format) {
|
||||
state->committed |= WLR_OUTPUT_STATE_RENDER_FORMAT;
|
||||
state->render_format = format;
|
||||
}
|
||||
|
||||
void wlr_output_state_set_subpixel(struct wlr_output_state *state,
|
||||
enum wl_output_subpixel subpixel) {
|
||||
state->committed |= WLR_OUTPUT_STATE_SUBPIXEL;
|
||||
state->subpixel = subpixel;
|
||||
}
|
Loading…
Reference in New Issue
Block a user