aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/gargoyle/gargoyle.cpp18
-rw-r--r--engines/gargoyle/gargoyle.h5
2 files changed, 22 insertions, 1 deletions
diff --git a/engines/gargoyle/gargoyle.cpp b/engines/gargoyle/gargoyle.cpp
index 3135fcb5fe..1a817c605d 100644
--- a/engines/gargoyle/gargoyle.cpp
+++ b/engines/gargoyle/gargoyle.cpp
@@ -68,7 +68,7 @@ void GargoyleEngine::initialize() {
DebugMan.addDebugChannel(kDebugGraphics, "graphics", "Graphics handling");
DebugMan.addDebugChannel(kDebugSound, "sound", "Sound and Music handling");
- initGraphics(640, 480, false);
+ initGraphicsMode();
_conf = new Conf();
_screen = new Screen();
@@ -80,6 +80,22 @@ void GargoyleEngine::initialize() {
_windowMask = new WindowMask();
}
+void GargoyleEngine::initGraphicsMode() {
+ uint width = ConfMan.hasKey("width") ? ConfMan.getInt("width") : 640;
+ uint height = ConfMan.hasKey("height") ? ConfMan.getInt("height") : 480;
+ Common::List<Graphics::PixelFormat> formats = g_system->getSupportedFormats();
+ Graphics::PixelFormat format = formats.front();
+
+ for (Common::List<Graphics::PixelFormat>::iterator i = formats.begin(); i != formats.end(); ++i) {
+ if ((*i).bytesPerPixel > 1) {
+ format = *i;
+ break;
+ }
+ }
+
+ initGraphics(width, height, &format);
+}
+
Common::Error GargoyleEngine::run() {
initialize();
diff --git a/engines/gargoyle/gargoyle.h b/engines/gargoyle/gargoyle.h
index 0b8bca7856..728dc0fae3 100644
--- a/engines/gargoyle/gargoyle.h
+++ b/engines/gargoyle/gargoyle.h
@@ -81,6 +81,11 @@ private:
* Handles basic initialization
*/
void initialize();
+
+ /**
+ * Setup the video mode
+ */
+ void initGraphicsMode();
protected:
const GargoyleGameDescription *_gameDescription;
Common::RandomSource _random;