output->base.assign_planes = drm_assign_planes;
output->base.read_pixels = drm_output_read_pixels;
output->base.set_dpms = drm_set_dpms;
+ output->base.switch_mode = NULL;
return 0;
output->base.assign_planes = NULL;
output->base.set_backlight = NULL;
output->base.set_dpms = NULL;
+ output->base.switch_mode = NULL;
wl_list_insert(ec->base.output_list.prev, &output->base.link);
output->base.read_pixels = wayland_output_read_pixels;
output->base.set_backlight = NULL;
output->base.set_dpms = NULL;
+ output->base.switch_mode = NULL;
wl_list_insert(c->base.output_list.prev, &output->base.link);
output->base.read_pixels = x11_output_read_pixels;
output->base.set_backlight = NULL;
output->base.set_dpms = NULL;
+ output->base.switch_mode = NULL;
wl_list_insert(c->base.output_list.prev, &output->base.link);
return 1;
}
+WL_EXPORT int
+weston_output_switch_mode(struct weston_output *output, struct weston_mode *mode)
+{
+ if (!output->switch_mode)
+ return -1;
+
+ return output->switch_mode(output, mode);
+}
+
WL_EXPORT void
weston_watch_process(struct weston_process *process)
{
void (*destroy)(struct weston_output *output);
void (*assign_planes)(struct weston_output *output);
void (*read_pixels)(struct weston_output *output, void *data);
+ int (*switch_mode)(struct weston_output *output, struct weston_mode *mode);
/* backlight values are on 0-255 range, where higher is brighter */
uint32_t backlight_current;
struct weston_compositor *
backend_init(struct wl_display *display, int argc, char *argv[]);
+int
+weston_output_switch_mode(struct weston_output *output, struct weston_mode *mode);
+
#endif