diff --git a/engine/source/gfx/gfxDevice.cpp b/engine/source/gfx/gfxDevice.cpp index f17796ca..769d5296 100644 --- a/engine/source/gfx/gfxDevice.cpp +++ b/engine/source/gfx/gfxDevice.cpp @@ -756,7 +756,7 @@ ConsoleFunction(getResolutionList, const char*, 1, 2, "getResolutionList([minimu return returnString; } -ConsoleFunction(setVideoMode, void, 5, 5, "setVideoMode(width, height, bit depth, fullscreen)") +ConsoleFunction(setVideoMode, void, 5, 6, "setVideoMode(width, height, bit depth, fullscreen, [antialiasLevel])") { GFXVideoMode vm = GFX->getVideoMode(); vm.resolution = Point2I(dAtoi(argv[1]), dAtoi(argv[2])); @@ -766,6 +766,11 @@ ConsoleFunction(setVideoMode, void, 5, 5, "setVideoMode(width, height, bit depth vm.fullScreen = fsType == 1; vm.borderless = fsType == 2; + + if (argc > 5) + vm.antialiasLevel = dAtoi(argv[5]); + else + vm.antialiasLevel = 0; GFX->setVideoMode(vm); @@ -833,6 +838,9 @@ ConsoleFunction(updateVideoMode, void, 1, 1, "updateVideoMode()") vm.fullScreen = fsType == 1; vm.borderless = fsType == 2; + int antialiasLevel = Con::getIntVariable("$pref::Video::FSAALevel", 0); + vm.antialiasLevel = antialiasLevel; + GFX->setVideoMode(vm); } @@ -865,6 +873,9 @@ ConsoleFunction(toggleFullScreen, void, 1, 1, "toggles between windowed and full vm.resolution.y = h; vm.bitDepth = d; + int antialiasLevel = Con::getIntVariable("$pref::Video::FSAALevel", 0); + vm.antialiasLevel = antialiasLevel; + GFX->setVideoMode(vm); } diff --git a/engine/source/platformWin32/winWindow.cpp b/engine/source/platformWin32/winWindow.cpp index 3271163b..068d4206 100644 --- a/engine/source/platformWin32/winWindow.cpp +++ b/engine/source/platformWin32/winWindow.cpp @@ -1069,12 +1069,15 @@ void Platform::initWindow(const Point2I& initialSize, const char* name) d = 32; } + int antialiasLevel = Con::getIntVariable("$pref::Video::FSAALevel", 0); + vm.resolution.x = w; vm.resolution.y = h; vm.bitDepth = d; vm.fullScreen = fullscreenType == 1; vm.borderless = fullscreenType == 2; vm.refreshRate = 60; //HACK + vm.antialiasLevel = antialiasLevel; winState.videoMode = new GFXVideoMode(vm); diff --git a/game/common/local/englishStrings.inf b/game/common/local/englishStrings.inf index 43691c2d..9e2d2d71 100644 --- a/game/common/local/englishStrings.inf +++ b/game/common/local/englishStrings.inf @@ -338,6 +338,8 @@ $Text::ReflectionDetailLevel = "Reflection Detail"; $Text::ReflectionDetailLevelOptions = "Nothing\tSky\tLevel and Sky\tLevel, Sky and Items\tEverything"; $Text::Framerate = "Framerate"; $Text::FramerateOptions = "Unlimited\tVsync\t30\t60\t75\t120\t200"; +$Text::FSAALevel = "FSAA Level"; +$Text::FSAALevelOptions = "0 (None)\t2\t4\t8"; $Text::MarbleSkin = "Marble Type"; $Text::UIStyle = "UI Style"; $Text::UIStyleOptions = "Mouse/Keyboard\tXbox 360"; diff --git a/game/main.cs b/game/main.cs index 69c8bb5e..9aa45505 100644 --- a/game/main.cs +++ b/game/main.cs @@ -372,6 +372,9 @@ function initVideo() if ($pref::Video::windowedRes $= "") $pref::Video::windowedRes = "1280 720"; + + if ($pref::Video::FSAALevel $= "") + $pref::Video::FSAALevel = 0; } $canvasCreated = createCanvas("Marble Blast Ultra!"); diff --git a/game/marble/client/ui/videoOptionsGui.gui b/game/marble/client/ui/videoOptionsGui.gui index c0ecd740..db8649ac 100644 --- a/game/marble/client/ui/videoOptionsGui.gui +++ b/game/marble/client/ui/videoOptionsGui.gui @@ -39,6 +39,7 @@ function videoOptionsGui::show(%this, %backGui) $Option::initialDisplayMode = $pref::Video::fullScreen; $Option::initialVsync = $pref::Video::Vsync; $Option::initialFramerate = $pref::Video::Framerate; + //$Option::initialFSAALevel = $pref::Video::FSAALevel; $Option::resList = getResolutionList("1280 720"); @@ -106,6 +107,8 @@ function videoOptionsGui::show(%this, %backGui) videoOptionsList.addRow($Text::ReflectionDetailLevel, $Text::ReflectionDetailLevelOptions, 8); // reflection detail level + //videoOptionsList.addRow($Text::FSAALevel, $Text::FSAALevelOptions, 8); // fsaa level + videoOptionsList.addRow($Text::Framerate, $Text::FramerateOptions, 8); // framerate limit for (%i = 0; %i < getFieldCount($Option::resList); %i++) @@ -133,6 +136,7 @@ function videoOptionsGui::show(%this, %backGui) $Option::fullScreen = 1; $Option::reflection = $pref::Video::ReflectionDetailLevel; + //$Option::FSAALevel = $pref::Video::FSAALevel; if ($pref::Video::VSync) { $Option::framerate = 1; @@ -157,6 +161,7 @@ function videoOptionsGui::show(%this, %backGui) videoOptionsList.setOptionIndex(1, $Option::windowedRes); videoOptionsList.setOptionIndex(2, $Option::fullScreen); videoOptionsList.setOptionIndex(3, $Option::reflection); + //videoOptionsList.setOptionIndex(4, $Option::FSAALevel); videoOptionsList.setOptionIndex(4, $Option::framerate); RootGui.setA( $Text::OK ); @@ -196,6 +201,11 @@ function videoOptionsList::onOptionChange(%this, %increase) $pref::Video::ReflectionDetailLevel = $Option::reflection; echo("Reflection Detail Level = " @ $pref::Video::ReflectionDetailLevel); + //case 4: + // $Option::FSAALevel = %val; + // $pref::Video::FSAALevel = $Option::FSAALevel; + + // echo("FSAA Level = " @ $pref::Video::FSAALevel); case 4: if (%val == 0 || %val == 7) { $pref::Video::VSync = false; @@ -211,7 +221,7 @@ function videoOptionsList::onOptionChange(%this, %increase) } } else if (%val == 1) { $pref::Video::VSync = true; - $pref::Video::Framerate = 0; + $pref::Video::Framerate = 0; } else { $pref::Video::VSync = false; } @@ -249,6 +259,8 @@ function videoOptionsGui::onA(%this) %videoChanged = true; if ($pref::Video::VSync !$= $Option::initialVSync) %videoChanged = true; + //if ($pref::Video::FSAALevel !$= $Option::initialFSAALevel) + // %videoChanged = true; if (%videoChanged) {