mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-11-09 13:29:46 -05:00
Merge pull request #1157 from emersion/wlr-gamma-control
Implement wlr-gamma-control-unstable-v1
This commit is contained in:
commit
1654fc80eb
15 changed files with 695 additions and 24 deletions
|
|
@ -28,7 +28,7 @@ struct wlr_output_impl {
|
|||
void (*destroy)(struct wlr_output *output);
|
||||
bool (*make_current)(struct wlr_output *output, int *buffer_age);
|
||||
bool (*swap_buffers)(struct wlr_output *output, pixman_region32_t *damage);
|
||||
void (*set_gamma)(struct wlr_output *output,
|
||||
bool (*set_gamma)(struct wlr_output *output,
|
||||
uint32_t size, uint16_t *r, uint16_t *g, uint16_t *b);
|
||||
uint32_t (*get_gamma_size)(struct wlr_output *output);
|
||||
bool (*export_dmabuf)(struct wlr_output *output,
|
||||
|
|
|
|||
31
include/wlr/types/wlr_gamma_control_v1.h
Normal file
31
include/wlr/types/wlr_gamma_control_v1.h
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
#ifndef WLR_TYPES_WLR_GAMMA_CONTROL_V1_H
|
||||
#define WLR_TYPES_WLR_GAMMA_CONTROL_V1_H
|
||||
|
||||
#include <wayland-server.h>
|
||||
|
||||
struct wlr_gamma_control_manager_v1 {
|
||||
struct wl_global *global;
|
||||
struct wl_list resources;
|
||||
struct wl_list controls; // wlr_gamma_control_v1::link
|
||||
|
||||
struct wl_listener display_destroy;
|
||||
|
||||
void *data;
|
||||
};
|
||||
|
||||
struct wlr_gamma_control_v1 {
|
||||
struct wl_resource *resource;
|
||||
struct wlr_output *output;
|
||||
struct wl_list link;
|
||||
|
||||
struct wl_listener output_destroy_listener;
|
||||
|
||||
void *data;
|
||||
};
|
||||
|
||||
struct wlr_gamma_control_manager_v1 *wlr_gamma_control_manager_v1_create(
|
||||
struct wl_display *display);
|
||||
void wlr_gamma_control_manager_v1_destroy(
|
||||
struct wlr_gamma_control_manager_v1 *manager);
|
||||
|
||||
#endif
|
||||
|
|
@ -174,9 +174,19 @@ bool wlr_output_swap_buffers(struct wlr_output *output, struct timespec *when,
|
|||
* it is a no-op.
|
||||
*/
|
||||
void wlr_output_schedule_frame(struct wlr_output *output);
|
||||
void wlr_output_set_gamma(struct wlr_output *output,
|
||||
uint32_t size, uint16_t *r, uint16_t *g, uint16_t *b);
|
||||
/**
|
||||
* Returns the maximum length of each gamma ramp, or 0 if unsupported.
|
||||
*/
|
||||
uint32_t wlr_output_get_gamma_size(struct wlr_output *output);
|
||||
/**
|
||||
* Sets the gamma table for this output. `r`, `g` and `b` are gamma ramps for
|
||||
* red, green and blue. `size` is the length of the ramps and must not exceed
|
||||
* the value returned by `wlr_output_get_gamma_size`.
|
||||
*
|
||||
* Providing zero-sized ramps resets the gamma table.
|
||||
*/
|
||||
bool wlr_output_set_gamma(struct wlr_output *output,
|
||||
uint32_t size, uint16_t *r, uint16_t *g, uint16_t *b);
|
||||
bool wlr_output_export_dmabuf(struct wlr_output *output,
|
||||
struct wlr_dmabuf_attributes *attribs);
|
||||
void wlr_output_set_fullscreen_surface(struct wlr_output *output,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue