Skip to content
Snippets Groups Projects
Commit ec8f6749 authored by Deucе's avatar Deucе :ok_hand_tone4:
Browse files

If ciolib_initial_scaling is less than 1.0, interpret as multiplier

For example, if it was set to 0.4, the initial scaling would be set
to take at most 40% of the screen height or width (whichever is
smaller) with a minimum of 1.0
parent 93bbda3e
No related branches found
No related tags found
1 merge request!463MRC mods by Codefenix (2024-10-20)
Pipeline #4587 failed
...@@ -355,6 +355,16 @@ static int sdl_init_mode(int mode, bool init) ...@@ -355,6 +355,16 @@ static int sdl_init_mode(int mode, bool init)
h = 0; h = 0;
} }
bitmap_drv_init_mode(mode, &bitmap_width, &bitmap_height, w, h); bitmap_drv_init_mode(mode, &bitmap_width, &bitmap_height, w, h);
if (ciolib_initial_scaling < 1.0) {
if (w != 0 && h != 0) {
w *= ciolib_initial_scaling;
h *= ciolib_initial_scaling;
ciolib_initial_scaling = bitmap_double_mult_inside(w, h);
}
else {
ciolib_initial_scaling = 1.0;
}
}
if (init) { if (init) {
internal_scaling = (ciolib_initial_scaling_type == CIOLIB_SCALING_INTERNAL); internal_scaling = (ciolib_initial_scaling_type == CIOLIB_SCALING_INTERNAL);
if (ciolib_initial_scaling) { if (ciolib_initial_scaling) {
......
...@@ -830,6 +830,16 @@ gdi_thread(void *arg) ...@@ -830,6 +830,16 @@ gdi_thread(void *arg)
goto fail; goto fail;
pthread_mutex_lock(&vstatlock); pthread_mutex_lock(&vstatlock);
if (ciolib_initial_scaling != 0) { if (ciolib_initial_scaling != 0) {
if (ciolib_internal_scaling < 1.0) {
if (get_monitor_size_pos(&vstat.winwidth, &vstat.winheight, &wx, &wy)) {
vstat.winwidth *= ciolib_internal_scaling;
vstat.winheight *= ciolib_internal_scaling;
ciolib_initial_scaling = bitmap_double_mult_inside(vstat.winwidth, vstat.winheight);
}
else {
ciolib_initial_scaling = 1.0;
}
}
bitmap_get_scaled_win_size(ciolib_initial_scaling, &vstat.winwidth, &vstat.winheight, 0, 0); bitmap_get_scaled_win_size(ciolib_initial_scaling, &vstat.winwidth, &vstat.winheight, 0, 0);
vstat.scaling = ciolib_initial_scaling; vstat.scaling = ciolib_initial_scaling;
} }
......
...@@ -1234,10 +1234,21 @@ static int init_mode(int mode) ...@@ -1234,10 +1234,21 @@ static int init_mode(int mode)
static int video_init() static int video_init()
{ {
int w, h;
pthread_mutex_lock(&vstatlock); pthread_mutex_lock(&vstatlock);
x_internal_scaling = (ciolib_initial_scaling_type == CIOLIB_SCALING_INTERNAL); x_internal_scaling = (ciolib_initial_scaling_type == CIOLIB_SCALING_INTERNAL);
if (ciolib_initial_scaling != 0.0) if (ciolib_initial_scaling != 0.0) {
if (ciolib_initial_scaling < 1.0) {
if (x11_get_maxsize(&w, &h)) {
ciolib_initial_scaling = bitmap_double_mult_inside(w, h);
}
else {
ciolib_initial_scaling = 1.0;
}
}
x_cvstat.scaling = vstat.scaling = ciolib_initial_scaling; x_cvstat.scaling = vstat.scaling = ciolib_initial_scaling;
}
if (x_cvstat.scaling < 1.0 || vstat.scaling < 1.0) if (x_cvstat.scaling < 1.0 || vstat.scaling < 1.0)
x_cvstat.scaling = vstat.scaling = 1.0; x_cvstat.scaling = vstat.scaling = 1.0;
if(load_vmode(&vstat, ciolib_initial_mode)) { if(load_vmode(&vstat, ciolib_initial_mode)) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment