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)
h = 0;
}
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) {
internal_scaling = (ciolib_initial_scaling_type == CIOLIB_SCALING_INTERNAL);
if (ciolib_initial_scaling) {
......
......@@ -830,6 +830,16 @@ gdi_thread(void *arg)
goto fail;
pthread_mutex_lock(&vstatlock);
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);
vstat.scaling = ciolib_initial_scaling;
}
......
......@@ -1234,10 +1234,21 @@ static int init_mode(int mode)
static int video_init()
{
int w, h;
pthread_mutex_lock(&vstatlock);
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;
}
if (x_cvstat.scaling < 1.0 || vstat.scaling < 1.0)
x_cvstat.scaling = vstat.scaling = 1.0;
if(load_vmode(&vstat, ciolib_initial_mode)) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment