mirror of
https://github.com/fabiangreffrath/woof.git
synced 2025-09-22 11:22:18 -04:00
add aspect_ratio_mode_t, fix starting with "high" with non-native aspect ratio
This commit is contained in:
parent
8d2c454670
commit
ba70ba460c
@ -54,7 +54,7 @@ boolean uncapped, default_uncapped; // [FG] uncapped rendering frame rate
|
||||
int fpslimit; // when uncapped, limit framerate to this value
|
||||
boolean fullscreen;
|
||||
boolean exclusive_fullscreen;
|
||||
int widescreen; // widescreen mode
|
||||
aspect_ratio_mode_t widescreen, default_widescreen; // widescreen mode
|
||||
boolean vga_porch_flash; // emulate VGA "porch" behaviour
|
||||
boolean smooth_scaling;
|
||||
|
||||
@ -975,40 +975,35 @@ static void ResetResolution(int height)
|
||||
{
|
||||
int w, h;
|
||||
|
||||
if (height > native_height_adjusted)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
actualheight = use_aspect ? (int)(height * 1.2) : height;
|
||||
video.height = height;
|
||||
|
||||
if (widescreen)
|
||||
switch (widescreen)
|
||||
{
|
||||
switch(widescreen)
|
||||
{
|
||||
case RATIO_16_10:
|
||||
w = 16;
|
||||
h = 10;
|
||||
break;
|
||||
case RATIO_16_9:
|
||||
w = 16;
|
||||
h = 9;
|
||||
break;
|
||||
case RATIO_21_9:
|
||||
w = 21;
|
||||
h = 9;
|
||||
break;
|
||||
default:
|
||||
w = native_width;
|
||||
h = native_height;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
w = 4;
|
||||
h = 3;
|
||||
case RATIO_ORIG:
|
||||
w = 4;
|
||||
h = 3;
|
||||
break;
|
||||
case RATIO_MATCH_SCREEN:
|
||||
w = native_width;
|
||||
h = native_height;
|
||||
break;
|
||||
case RATIO_16_10:
|
||||
w = 16;
|
||||
h = 10;
|
||||
break;
|
||||
case RATIO_16_9:
|
||||
w = 16;
|
||||
h = 9;
|
||||
break;
|
||||
case RATIO_21_9:
|
||||
w = 21;
|
||||
h = 9;
|
||||
break;
|
||||
default:
|
||||
w = 16;
|
||||
h = 9;
|
||||
break;
|
||||
}
|
||||
|
||||
double aspect_ratio = (double)w / (double)h;
|
||||
@ -1432,16 +1427,15 @@ static void CreateSurfaces(void)
|
||||
SDL_TEXTUREACCESS_STREAMING,
|
||||
w, h);
|
||||
|
||||
int oldwidescreen = widescreen;
|
||||
widescreen = RATIO_MATCH_SCREEN;
|
||||
|
||||
ResetResolution(h);
|
||||
R_InitAnyRes();
|
||||
ST_InitRes();
|
||||
|
||||
widescreen = oldwidescreen;
|
||||
widescreen = default_widescreen;
|
||||
|
||||
if (resolution_mode != RES_DRS)
|
||||
if (resolution_mode != RES_DRS || widescreen != RATIO_MATCH_SCREEN)
|
||||
{
|
||||
ResetResolution(CurrentResolutionMode());
|
||||
}
|
||||
@ -1484,6 +1478,7 @@ static void I_ReinitGraphicsMode(void)
|
||||
void I_ResetScreen(void)
|
||||
{
|
||||
resolution_mode = default_resolution_mode;
|
||||
widescreen = default_widescreen;
|
||||
|
||||
ResetResolution(CurrentResolutionMode());
|
||||
ResetLogicalSize();
|
||||
|
@ -24,7 +24,7 @@
|
||||
|
||||
#include "doomtype.h"
|
||||
|
||||
enum
|
||||
typedef enum
|
||||
{
|
||||
RATIO_ORIG,
|
||||
RATIO_MATCH_SCREEN,
|
||||
@ -32,7 +32,7 @@ enum
|
||||
RATIO_16_9,
|
||||
RATIO_21_9,
|
||||
NUM_RATIOS
|
||||
};
|
||||
} aspect_ratio_mode_t;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
@ -76,7 +76,7 @@ extern boolean exclusive_fullscreen;
|
||||
extern int fpslimit; // when uncapped, limit framerate to this value
|
||||
extern int fps;
|
||||
extern boolean vga_porch_flash; // emulate VGA "porch" behaviour
|
||||
extern int widescreen; // widescreen mode
|
||||
extern aspect_ratio_mode_t widescreen, default_widescreen; // widescreen mode
|
||||
extern int video_display; // display index
|
||||
extern boolean screenvisible;
|
||||
extern boolean window_focused;
|
||||
|
@ -186,7 +186,7 @@ default_t defaults[] = {
|
||||
// widescreen mode
|
||||
{
|
||||
"widescreen",
|
||||
(config_t *) &widescreen, NULL,
|
||||
(config_t *) &default_widescreen, NULL,
|
||||
{RATIO_MATCH_SCREEN}, {RATIO_ORIG, NUM_RATIOS-1}, number, ss_none, wad_no,
|
||||
"widescreen mode (0 = disable, 1 = match screen, 2 = 16:10, 3 = 16:9, 4 = 21:9)"
|
||||
},
|
||||
|
Loading…
x
Reference in New Issue
Block a user