# Initial window size
#screenW = 800
#screenH = 600
+#fullscreen = false
+#fullscreen_bpp = 24
+# Experimental option, might cause visible spaces between blocks
+# when set to higher number than 0
+#fsaa = 0
+#vsync = false
# Address to connect to (#blank = start local server)
#address =
# Enable random user input, for testing
settings->setDefault("viewing_range_nodes_min", "35");
settings->setDefault("screenW", "800");
settings->setDefault("screenH", "600");
+ settings->setDefault("fullscreen", "false");
+ settings->setDefault("fullscreen_bpp", "24");
+ settings->setDefault("fsaa", "0");
+ settings->setDefault("vsync", "false");
settings->setDefault("address", "");
settings->setDefault("random_input", "false");
settings->setDefault("client_unload_unused_data_timeout", "600");
// Resolution selection
- bool fullscreen = false;
+ bool fullscreen = g_settings->getBool("fullscreen");
u16 screenW = g_settings->getU16("screenW");
u16 screenH = g_settings->getU16("screenH");
+ // bpp, fsaa, vsync
+
+ bool vsync = g_settings->getBool("vsync");
+ u16 bits = g_settings->getU16("fullscreen_bpp");
+ u16 fsaa = g_settings->getU16("fsaa");
+
// Determine driver
video::E_DRIVER_TYPE driverType;
MyEventReceiver receiver;
IrrlichtDevice *device;
- device = createDevice(driverType,
- core::dimension2d<u32>(screenW, screenH),
- 16, fullscreen, false, false, &receiver);
+
+ SIrrlichtCreationParameters params = SIrrlichtCreationParameters();
+ params.DriverType = driverType;
+ params.WindowSize = core::dimension2d<u32>(screenW, screenH);
+ params.Bits = bits;
+ params.AntiAlias = fsaa;
+ params.Fullscreen = fullscreen;
+ params.Stencilbuffer = false;
+ params.Vsync = vsync;
+ params.EventReceiver = &receiver;
+
+ device = createDeviceEx(params);
if (device == 0)
return 1; // could not create selected driver.