mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2026-04-18 06:47:31 -04:00
output: Add color format to output state
This commit is contained in:
parent
ce89f49b7a
commit
5cfcb0a490
3 changed files with 35 additions and 0 deletions
|
|
@ -26,6 +26,14 @@ enum wlr_output_mode_aspect_ratio {
|
||||||
WLR_OUTPUT_MODE_ASPECT_RATIO_256_135,
|
WLR_OUTPUT_MODE_ASPECT_RATIO_256_135,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum wlr_output_color_format {
|
||||||
|
WLR_OUTPUT_COLOR_FORMAT_UNSPEC,
|
||||||
|
WLR_OUTPUT_COLOR_FORMAT_RGB,
|
||||||
|
WLR_OUTPUT_COLOR_FORMAT_YCBCR444,
|
||||||
|
WLR_OUTPUT_COLOR_FORMAT_YCBCR422,
|
||||||
|
WLR_OUTPUT_COLOR_FORMAT_YCBCR420,
|
||||||
|
};
|
||||||
|
|
||||||
struct wlr_output_mode {
|
struct wlr_output_mode {
|
||||||
int32_t width, height;
|
int32_t width, height;
|
||||||
int32_t refresh; // mHz
|
int32_t refresh; // mHz
|
||||||
|
|
@ -108,6 +116,8 @@ struct wlr_output_state {
|
||||||
|
|
||||||
struct wlr_output_layer_state *layers;
|
struct wlr_output_layer_state *layers;
|
||||||
size_t layers_len;
|
size_t layers_len;
|
||||||
|
|
||||||
|
enum wlr_output_color_format color_format;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct wlr_output_impl;
|
struct wlr_output_impl;
|
||||||
|
|
@ -423,6 +433,14 @@ void wlr_output_set_damage(struct wlr_output *output,
|
||||||
*/
|
*/
|
||||||
void wlr_output_set_layers(struct wlr_output *output,
|
void wlr_output_set_layers(struct wlr_output *output,
|
||||||
struct wlr_output_layer_state *layers, size_t layers_len);
|
struct wlr_output_layer_state *layers, size_t layers_len);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the output color format. This is the color encoding the signal that
|
||||||
|
* goes out to the wire.
|
||||||
|
*/
|
||||||
|
void wlr_output_set_color_format(struct wlr_output *output,
|
||||||
|
enum wlr_output_color_format value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test whether the pending output state would be accepted by the backend. If
|
* Test whether the pending output state would be accepted by the backend. If
|
||||||
* this function returns true, wlr_output_commit() can only fail due to a
|
* this function returns true, wlr_output_commit() can only fail due to a
|
||||||
|
|
@ -676,6 +694,13 @@ void wlr_output_state_set_damage(struct wlr_output_state *state,
|
||||||
void wlr_output_state_set_layers(struct wlr_output_state *state,
|
void wlr_output_state_set_layers(struct wlr_output_state *state,
|
||||||
struct wlr_output_layer_state *layers, size_t layers_len);
|
struct wlr_output_layer_state *layers, size_t layers_len);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the output color format. This is the color encoding the signal that
|
||||||
|
* goes out to the wire.
|
||||||
|
*/
|
||||||
|
void wlr_output_state_set_color_format(struct wlr_output_state *state,
|
||||||
|
enum wlr_output_color_format value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Copies the output state from src to dst. It is safe to then
|
* Copies the output state from src to dst. It is safe to then
|
||||||
* wlr_output_state_finish() src and have dst still be valid.
|
* wlr_output_state_finish() src and have dst still be valid.
|
||||||
|
|
|
||||||
|
|
@ -544,6 +544,11 @@ void wlr_output_set_layers(struct wlr_output *output,
|
||||||
wlr_output_state_set_layers(&output->pending, layers, layers_len);
|
wlr_output_state_set_layers(&output->pending, layers, layers_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wlr_output_set_color_format(struct wlr_output *output,
|
||||||
|
enum wlr_output_color_format value) {
|
||||||
|
wlr_output_state_set_color_format(&output->pending, value);
|
||||||
|
}
|
||||||
|
|
||||||
static void output_state_clear_gamma_lut(struct wlr_output_state *state) {
|
static void output_state_clear_gamma_lut(struct wlr_output_state *state) {
|
||||||
free(state->gamma_lut);
|
free(state->gamma_lut);
|
||||||
state->gamma_lut = NULL;
|
state->gamma_lut = NULL;
|
||||||
|
|
|
||||||
|
|
@ -114,6 +114,11 @@ void wlr_output_state_set_layers(struct wlr_output_state *state,
|
||||||
state->layers_len = layers_len;
|
state->layers_len = layers_len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wlr_output_state_set_color_format(struct wlr_output_state *state,
|
||||||
|
enum wlr_output_color_format value) {
|
||||||
|
state->color_format = value;
|
||||||
|
}
|
||||||
|
|
||||||
bool wlr_output_state_copy(struct wlr_output_state *dst,
|
bool wlr_output_state_copy(struct wlr_output_state *dst,
|
||||||
const struct wlr_output_state *src) {
|
const struct wlr_output_state *src) {
|
||||||
struct wlr_output_state copy = *src;
|
struct wlr_output_state copy = *src;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue