compositor-wayland: Add a --scale option
Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
committed by
Kristian Høgsberg
parent
0cf39351bb
commit
12c6dd965b
@@ -707,7 +707,7 @@ static struct wayland_output *
|
|||||||
wayland_output_create_for_config(struct wayland_compositor *c,
|
wayland_output_create_for_config(struct wayland_compositor *c,
|
||||||
struct weston_config_section *config_section,
|
struct weston_config_section *config_section,
|
||||||
int option_width, int option_height,
|
int option_width, int option_height,
|
||||||
int32_t x, int32_t y)
|
int option_scale, int32_t x, int32_t y)
|
||||||
{
|
{
|
||||||
struct wayland_output *output;
|
struct wayland_output *output;
|
||||||
char *mode, *t, *name, *str;
|
char *mode, *t, *name, *str;
|
||||||
@@ -756,6 +756,9 @@ wayland_output_create_for_config(struct wayland_compositor *c,
|
|||||||
|
|
||||||
weston_config_section_get_int(config_section, "scale", &scale, 1);
|
weston_config_section_get_int(config_section, "scale", &scale, 1);
|
||||||
|
|
||||||
|
if (option_scale)
|
||||||
|
scale = option_scale;
|
||||||
|
|
||||||
weston_config_section_get_string(config_section,
|
weston_config_section_get_string(config_section,
|
||||||
"transform", &t, "normal");
|
"transform", &t, "normal");
|
||||||
transform = WL_OUTPUT_TRANSFORM_NORMAL;
|
transform = WL_OUTPUT_TRANSFORM_NORMAL;
|
||||||
@@ -1401,13 +1404,14 @@ backend_init(struct wl_display *display, int *argc, char *argv[],
|
|||||||
struct wayland_compositor *c;
|
struct wayland_compositor *c;
|
||||||
struct wayland_output *output;
|
struct wayland_output *output;
|
||||||
struct weston_config_section *section;
|
struct weston_config_section *section;
|
||||||
int x, count, width, height, use_pixman;
|
int x, count, width, height, scale, use_pixman;
|
||||||
const char *section_name, *display_name;
|
const char *section_name, *display_name;
|
||||||
char *name;
|
char *name;
|
||||||
|
|
||||||
const struct weston_option wayland_options[] = {
|
const struct weston_option wayland_options[] = {
|
||||||
{ WESTON_OPTION_INTEGER, "width", 0, &width },
|
{ WESTON_OPTION_INTEGER, "width", 0, &width },
|
||||||
{ WESTON_OPTION_INTEGER, "height", 0, &height },
|
{ WESTON_OPTION_INTEGER, "height", 0, &height },
|
||||||
|
{ WESTON_OPTION_INTEGER, "scale", 0, &scale },
|
||||||
{ WESTON_OPTION_STRING, "display", 0, &display_name },
|
{ WESTON_OPTION_STRING, "display", 0, &display_name },
|
||||||
{ WESTON_OPTION_BOOLEAN, "use-pixman", 0, &use_pixman },
|
{ WESTON_OPTION_BOOLEAN, "use-pixman", 0, &use_pixman },
|
||||||
{ WESTON_OPTION_INTEGER, "output-count", 0, &count },
|
{ WESTON_OPTION_INTEGER, "output-count", 0, &count },
|
||||||
@@ -1415,6 +1419,7 @@ backend_init(struct wl_display *display, int *argc, char *argv[],
|
|||||||
|
|
||||||
width = 0;
|
width = 0;
|
||||||
height = 0;
|
height = 0;
|
||||||
|
scale = 0;
|
||||||
display_name = NULL;
|
display_name = NULL;
|
||||||
use_pixman = 0;
|
use_pixman = 0;
|
||||||
count = 1;
|
count = 1;
|
||||||
@@ -1443,7 +1448,7 @@ backend_init(struct wl_display *display, int *argc, char *argv[],
|
|||||||
free(name);
|
free(name);
|
||||||
|
|
||||||
output = wayland_output_create_for_config(c, section, width,
|
output = wayland_output_create_for_config(c, section, width,
|
||||||
height, x, 0);
|
height, scale, x, 0);
|
||||||
if (!output)
|
if (!output)
|
||||||
goto err_outputs;
|
goto err_outputs;
|
||||||
|
|
||||||
@@ -1455,8 +1460,11 @@ backend_init(struct wl_display *display, int *argc, char *argv[],
|
|||||||
width = 1024;
|
width = 1024;
|
||||||
if (!height)
|
if (!height)
|
||||||
height = 640;
|
height = 640;
|
||||||
|
if (!scale)
|
||||||
|
scale = 1;
|
||||||
while (count > 0) {
|
while (count > 0) {
|
||||||
output = wayland_output_create(c, x, 0, width, height, NULL, 0, 1);
|
output = wayland_output_create(c, x, 0, width, height,
|
||||||
|
NULL, 0, scale);
|
||||||
if (!output)
|
if (!output)
|
||||||
goto err_outputs;
|
goto err_outputs;
|
||||||
|
|
||||||
|
|||||||
@@ -3699,6 +3699,7 @@ usage(int error_code)
|
|||||||
"Options for wayland-backend.so:\n\n"
|
"Options for wayland-backend.so:\n\n"
|
||||||
" --width=WIDTH\t\tWidth of Wayland surface\n"
|
" --width=WIDTH\t\tWidth of Wayland surface\n"
|
||||||
" --height=HEIGHT\tHeight of Wayland surface\n"
|
" --height=HEIGHT\tHeight of Wayland surface\n"
|
||||||
|
" --scale=SCALE\tScale factor of ouput\n"
|
||||||
" --use-pixman\t\tUse the pixman (CPU) renderer\n"
|
" --use-pixman\t\tUse the pixman (CPU) renderer\n"
|
||||||
" --output-count=COUNT\tCreate multiple outputs\n"
|
" --output-count=COUNT\tCreate multiple outputs\n"
|
||||||
" --display=DISPLAY\tWayland display to connect to\n\n");
|
" --display=DISPLAY\tWayland display to connect to\n\n");
|
||||||
|
|||||||
Reference in New Issue
Block a user