aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authoremersion <contact@emersion.fr>2018-01-26 22:39:23 +0100
committeremersion <contact@emersion.fr>2018-01-26 22:39:23 +0100
commit8d58ed502b6022e6a5e99bca98f6c45cc6deba0a (patch)
treea51f133813a57b7b2cc90b1fb0cbe15c8b3bd53b /include
parentece2c1e4e200192bde19a2590b5a31f244e09524 (diff)
output: add wlr_output_schedule_frame
Diffstat (limited to 'include')
-rw-r--r--include/rootston/output.h1
-rw-r--r--include/wlr/interfaces/wlr_output.h1
-rw-r--r--include/wlr/types/wlr_output.h6
3 files changed, 7 insertions, 1 deletions
diff --git a/include/rootston/output.h b/include/rootston/output.h
index 11f53d83..a9f9bc2b 100644
--- a/include/rootston/output.h
+++ b/include/rootston/output.h
@@ -23,7 +23,6 @@ struct roots_output {
struct timespec last_frame;
pixman_region32_t damage; // in ouput-local coordinates
- bool frame_pending;
// circular queue for previous damage
pixman_region32_t previous_damage[ROOTS_OUTPUT_PREVIOUS_DAMAGE_LEN];
diff --git a/include/wlr/interfaces/wlr_output.h b/include/wlr/interfaces/wlr_output.h
index f2b65066..652be45e 100644
--- a/include/wlr/interfaces/wlr_output.h
+++ b/include/wlr/interfaces/wlr_output.h
@@ -33,5 +33,6 @@ void wlr_output_update_custom_mode(struct wlr_output *output, int32_t width,
int32_t height, int32_t refresh);
void wlr_output_update_enabled(struct wlr_output *output, bool enabled);
void wlr_output_update_needs_swap(struct wlr_output *output);
+void wlr_output_send_frame(struct wlr_output *output);
#endif
diff --git a/include/wlr/types/wlr_output.h b/include/wlr/types/wlr_output.h
index 4eefbf55..7e9439af 100644
--- a/include/wlr/types/wlr_output.h
+++ b/include/wlr/types/wlr_output.h
@@ -63,6 +63,7 @@ struct wlr_output {
bool needs_swap;
// damage for cursors and fullscreen surface, in output-local coordinates
pixman_region32_t damage;
+ bool frame_pending;
float transform_matrix[16];
struct {
@@ -123,6 +124,11 @@ bool wlr_output_make_current(struct wlr_output *output, int *buffer_age);
*/
bool wlr_output_swap_buffers(struct wlr_output *output, struct timespec *when,
pixman_region32_t *damage);
+/**
+ * Manually schedules a `frame` event. If a `frame` event is already pending,
+ * 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);
uint32_t wlr_output_get_gamma_size(struct wlr_output *output);