Fix resolution configuration on SDL2
This commit is contained in:
@@ -69,6 +69,7 @@ void TFB_UninitGraphics (void);
|
|||||||
void TFB_ProcessEvents (void);
|
void TFB_ProcessEvents (void);
|
||||||
void TFB_SetGamma (float gamma);
|
void TFB_SetGamma (float gamma);
|
||||||
void TFB_UploadTransitionScreen (void);
|
void TFB_UploadTransitionScreen (void);
|
||||||
|
int TFB_SupportsHardwareScaling (void);
|
||||||
// This function should not be called directly
|
// This function should not be called directly
|
||||||
void TFB_SwapBuffers (int force_full_redraw);
|
void TFB_SwapBuffers (int force_full_redraw);
|
||||||
|
|
||||||
|
|||||||
@@ -209,4 +209,14 @@ TFB_SetColors (SDL_Surface *surface, SDL_Color *colors, int firstcolor, int ncol
|
|||||||
return SDL_SetColors (surface, colors, firstcolor, ncolors);
|
return SDL_SetColors (surface, colors, firstcolor, ncolors);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
TFB_SupportsHardwareScaling (void)
|
||||||
|
{
|
||||||
|
#ifdef HAVE_OPENGL
|
||||||
|
return 1;
|
||||||
|
#else
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -203,4 +203,9 @@ TFB_SetColors (SDL_Surface *surface, SDL_Color *colors, int firstcolor, int ncol
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
TFB_SupportsHardwareScaling (void)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -218,6 +218,9 @@ TFB_Pure_ConfigureVideo (int driver, int flags, int width, int height, int toggl
|
|||||||
graphics_backend = &sdl2_unscaled_backend;
|
graphics_backend = &sdl2_unscaled_backend;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* We succeeded, so alter the screen size to our new sizes */
|
||||||
|
ScreenWidthActual = width;
|
||||||
|
ScreenHeightActual = height;
|
||||||
/* TODO: Set bilinear vs nearest-neighbor filtering based on
|
/* TODO: Set bilinear vs nearest-neighbor filtering based on
|
||||||
* GfxFlags & TFB_GFXFLAGS_SCALE_ANY */
|
* GfxFlags & TFB_GFXFLAGS_SCALE_ANY */
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
+16
-9
@@ -66,12 +66,6 @@ static void rename_template (WIDGET_TEXTENTRY *self);
|
|||||||
static void rebind_control (WIDGET_CONTROLENTRY *widget);
|
static void rebind_control (WIDGET_CONTROLENTRY *widget);
|
||||||
static void clear_control (WIDGET_CONTROLENTRY *widget);
|
static void clear_control (WIDGET_CONTROLENTRY *widget);
|
||||||
|
|
||||||
#ifdef HAVE_OPENGL
|
|
||||||
#define RES_OPTS 4
|
|
||||||
#else
|
|
||||||
#define RES_OPTS 2
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define MENU_COUNT 8
|
#define MENU_COUNT 8
|
||||||
#define CHOICE_COUNT 22
|
#define CHOICE_COUNT 22
|
||||||
#define SLIDER_COUNT 3
|
#define SLIDER_COUNT 3
|
||||||
@@ -190,6 +184,19 @@ static WIDGET **menu_widgets[MENU_COUNT] = {
|
|||||||
main_widgets, graphics_widgets, audio_widgets, engine_widgets,
|
main_widgets, graphics_widgets, audio_widgets, engine_widgets,
|
||||||
incomplete_widgets, keyconfig_widgets, advanced_widgets, editkeys_widgets };
|
incomplete_widgets, keyconfig_widgets, advanced_widgets, editkeys_widgets };
|
||||||
|
|
||||||
|
static int
|
||||||
|
number_res_options (void)
|
||||||
|
{
|
||||||
|
if (TFB_SupportsHardwareScaling ())
|
||||||
|
{
|
||||||
|
return 4;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
quit_main_menu (WIDGET *self, int event)
|
quit_main_menu (WIDGET *self, int event)
|
||||||
{
|
{
|
||||||
@@ -359,11 +366,11 @@ SetDefaults (void)
|
|||||||
GetGlobalOptions (&opts);
|
GetGlobalOptions (&opts);
|
||||||
if (opts.res == OPTVAL_CUSTOM)
|
if (opts.res == OPTVAL_CUSTOM)
|
||||||
{
|
{
|
||||||
choices[0].numopts = RES_OPTS + 1;
|
choices[0].numopts = number_res_options () + 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
choices[0].numopts = RES_OPTS;
|
choices[0].numopts = number_res_options ();
|
||||||
}
|
}
|
||||||
choices[0].selected = opts.res;
|
choices[0].selected = opts.res;
|
||||||
choices[1].selected = opts.driver;
|
choices[1].selected = opts.driver;
|
||||||
@@ -728,7 +735,7 @@ init_widgets (void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* The first choice is resolution, and is handled specially */
|
/* The first choice is resolution, and is handled specially */
|
||||||
choices[0].numopts = RES_OPTS;
|
choices[0].numopts = number_res_options ();
|
||||||
|
|
||||||
/* Choices 18-20 are also special, being the names of the key configurations */
|
/* Choices 18-20 are also special, being the names of the key configurations */
|
||||||
for (i = 0; i < 6; i++)
|
for (i = 0; i < 6; i++)
|
||||||
|
|||||||
Reference in New Issue
Block a user