Skip to content

Commit e816b40

Browse files
authored
Add target refresh rate to view-backend (#104)
Add accessors and notification callbacks for the target refresh rate of a view backend. This allows a client to be notified when the target refresh rate of a screen changes.
1 parent 10e0fec commit e816b40

File tree

3 files changed

+25
-3
lines changed

3 files changed

+25
-3
lines changed

include/wpe/view-backend.h

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -166,9 +166,7 @@ struct wpe_view_backend_client {
166166
void (*activity_state_changed)(void*, uint32_t);
167167
void* (*get_accessible)(void*);
168168
void (*set_device_scale_factor)(void*, float);
169-
170-
/*< private >*/
171-
void (*_wpe_reserved0)(void);
169+
void (*target_refresh_rate_changed)(void*, uint32_t);
172170
};
173171

174172
WPE_EXPORT
@@ -199,6 +197,12 @@ WPE_EXPORT
199197
void
200198
wpe_view_backend_dispatch_set_device_scale_factor(struct wpe_view_backend*, float);
201199

200+
WPE_EXPORT
201+
uint32_t wpe_view_backend_get_target_refresh_rate(struct wpe_view_backend*);
202+
203+
WPE_EXPORT
204+
void wpe_view_backend_set_target_refresh_rate(struct wpe_view_backend*, uint32_t);
205+
202206
struct wpe_view_backend_input_client {
203207
void (*handle_keyboard_event)(void*, struct wpe_input_keyboard_event*);
204208
void (*handle_pointer_event)(void*, struct wpe_input_pointer_event*);

src/view-backend-private.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ struct wpe_view_backend {
4949
void* fullscreen_handler_data;
5050

5151
uint32_t activity_state;
52+
uint32_t refresh_rate;
5253
};
5354

5455
#ifdef __cplusplus

src/view-backend.c

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ wpe_view_backend_destroy(struct wpe_view_backend* backend)
7070
backend->fullscreen_client_data = NULL;
7171

7272
backend->activity_state = 0;
73+
backend->refresh_rate = 0;
7374

7475
free(backend);
7576
}
@@ -173,6 +174,22 @@ wpe_view_backend_dispatch_set_device_scale_factor(struct wpe_view_backend* backe
173174
backend->backend_client->set_device_scale_factor(backend->backend_client_data, scale);
174175
}
175176

177+
void
178+
wpe_view_backend_set_target_refresh_rate(struct wpe_view_backend* backend, uint32_t rate)
179+
{
180+
if (backend->refresh_rate != rate) {
181+
backend->refresh_rate = rate;
182+
if (backend->backend_client && backend->backend_client->target_refresh_rate_changed)
183+
backend->backend_client->target_refresh_rate_changed(backend->backend_client_data, backend->refresh_rate);
184+
}
185+
}
186+
187+
uint32_t
188+
wpe_view_backend_get_target_refresh_rate(struct wpe_view_backend* backend)
189+
{
190+
return backend->refresh_rate;
191+
}
192+
176193
void
177194
wpe_view_backend_dispatch_keyboard_event(struct wpe_view_backend* backend, struct wpe_input_keyboard_event* event)
178195
{

0 commit comments

Comments
 (0)