Factor out screen settings to ScreenSettings struct

It's a bit annoying to pass each screen setting individually, would be
nice if we could just wrap it up in a nice struct and pass that instead.
This commit is contained in:
Misa 2020-11-12 16:29:11 -08:00 committed by Ethan Lee
parent 9f5f697dda
commit af11f6936a
3 changed files with 39 additions and 24 deletions

View File

@ -17,23 +17,27 @@ extern "C"
);
}
void Screen::init(
int windowWidth,
int windowHeight,
bool fullscreen,
bool useVsync,
int stretch,
bool linearFilter,
bool badSignal
) {
ScreenSettings::ScreenSettings()
{
windowWidth = 320;
windowHeight = 240;
fullscreen = false;
useVsync = false;
stretch = 0;
linearFilter = false;
badSignal = false;
}
void Screen::init(const ScreenSettings& settings)
{
m_window = NULL;
m_renderer = NULL;
m_screenTexture = NULL;
m_screen = NULL;
isWindowed = !fullscreen;
stretchMode = stretch;
isFiltered = linearFilter;
vsync = useVsync;
isWindowed = !settings.fullscreen;
stretchMode = settings.stretch;
isFiltered = settings.linearFilter;
vsync = settings.useVsync;
filterSubrect.x = 1;
filterSubrect.y = 1;
filterSubrect.w = 318;
@ -84,9 +88,9 @@ void Screen::init(
240
);
badSignalEffect = badSignal;
badSignalEffect = settings.badSignal;
ResizeScreen(windowWidth, windowHeight);
ResizeScreen(settings.windowWidth, settings.windowHeight);
}
void Screen::LoadIcon()

View File

@ -3,18 +3,12 @@
#include <SDL.h>
#include "ScreenSettings.h"
class Screen
{
public:
void init(
int windowWidth,
int windowHeight,
bool fullscreen,
bool useVsync,
int stretch,
bool linearFilter,
bool badSignal
);
void init(const ScreenSettings& settings);
void LoadIcon();

View File

@ -0,0 +1,17 @@
#ifndef SCREENSETTINGS_H
#define SCREENSETTINGS_H
struct ScreenSettings
{
ScreenSettings();
int windowWidth;
int windowHeight;
bool fullscreen;
bool useVsync;
int stretch;
bool linearFilter;
bool badSignal;
};
#endif /* SCREENSETTINGS_H */