diff options
author | thickbrick | 2011-03-24 17:06:27 +0200 |
---|---|---|
committer | thickbrick | 2011-03-24 17:06:27 +0200 |
commit | f8d46d105e5d137890b98fd18bdf26fa797e22d3 (patch) | |
tree | ac656516a6c8053a5c73108f1de212a2a5b56767 /linden/indra | |
parent | Changed version to Experimental 2011.03.20 (diff) | |
download | meta-impy-f8d46d105e5d137890b98fd18bdf26fa797e22d3.zip meta-impy-f8d46d105e5d137890b98fd18bdf26fa797e22d3.tar.gz meta-impy-f8d46d105e5d137890b98fd18bdf26fa797e22d3.tar.bz2 meta-impy-f8d46d105e5d137890b98fd18bdf26fa797e22d3.tar.xz |
Fix #824/SNOW-466: Window Creation Error related to FSAA
- Linux only: Retry window creation with lower FSAA samples if it
fails.
- All platforms: save actual FSAA level into RenderFSAASamples after
window is created.
This exapnds on the patch from SNOW-466 by Robin Cornelius.
Diffstat (limited to 'linden/indra')
-rw-r--r-- | linden/indra/llwindow/llwindowsdl.cpp | 9 | ||||
-rw-r--r-- | linden/indra/newview/llviewerwindow.cpp | 7 |
2 files changed, 16 insertions, 0 deletions
diff --git a/linden/indra/llwindow/llwindowsdl.cpp b/linden/indra/llwindow/llwindowsdl.cpp index edfe33b..2f9de6b 100644 --- a/linden/indra/llwindow/llwindowsdl.cpp +++ b/linden/indra/llwindow/llwindowsdl.cpp | |||
@@ -632,6 +632,15 @@ BOOL LLWindowSDL::createContext(int x, int y, int width, int height, int bits, B | |||
632 | mWindow = SDL_SetVideoMode(width, height, bits, sdlflags); | 632 | mWindow = SDL_SetVideoMode(width, height, bits, sdlflags); |
633 | } | 633 | } |
634 | 634 | ||
635 | while (!mWindow && mFSAASamples > 0) | ||
636 | { | ||
637 | llwarns << "Window creating failed with " << mFSAASamples << "x FSAA."<<llendl; | ||
638 | mFSAASamples = mFSAASamples>>1; | ||
639 | SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, mFSAASamples ? 1 : 0); | ||
640 | SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES, mFSAASamples); | ||
641 | mWindow = SDL_SetVideoMode(width, height, bits, sdlflags); | ||
642 | } | ||
643 | |||
635 | if (!mWindow) | 644 | if (!mWindow) |
636 | { | 645 | { |
637 | llwarns << "createContext: window creation failure. SDL: " << SDL_GetError() << llendl; | 646 | llwarns << "createContext: window creation failure. SDL: " << SDL_GetError() << llendl; |
diff --git a/linden/indra/newview/llviewerwindow.cpp b/linden/indra/newview/llviewerwindow.cpp index 57580cf..e6b207b 100644 --- a/linden/indra/newview/llviewerwindow.cpp +++ b/linden/indra/newview/llviewerwindow.cpp | |||
@@ -1278,6 +1278,13 @@ LLViewerWindow::LLViewerWindow( | |||
1278 | LLAppViewer::instance()->forceExit(1); | 1278 | LLAppViewer::instance()->forceExit(1); |
1279 | } | 1279 | } |
1280 | 1280 | ||
1281 | const U32 real_fsaa = mWindow->getFSAASamples(); | ||
1282 | if (real_fsaa != gSavedSettings.getU32("RenderFSAASamples")) | ||
1283 | { | ||
1284 | LL_WARNS("Window") << "Window created with reduced anti-aliasing samples: " << real_fsaa << "x FSAA." << LL_ENDL; | ||
1285 | gSavedSettings.setU32("RenderFSAASamples", real_fsaa); | ||
1286 | } | ||
1287 | |||
1281 | // Get the real window rect the window was created with (since there are various OS-dependent reasons why | 1288 | // Get the real window rect the window was created with (since there are various OS-dependent reasons why |
1282 | // the size of a window or fullscreen context may have been adjusted slightly...) | 1289 | // the size of a window or fullscreen context may have been adjusted slightly...) |
1283 | F32 ui_scale_factor = gSavedSettings.getF32("UIScaleFactor"); | 1290 | F32 ui_scale_factor = gSavedSettings.getF32("UIScaleFactor"); |