summaryrefslogtreecommitdiff
path: root/indra/llwindow/llwindowwin32.cpp
diff options
context:
space:
mode:
authorLogan Dethrow <log@lindenlab.com>2011-08-23 17:25:08 -0400
committerLogan Dethrow <log@lindenlab.com>2011-08-23 17:25:08 -0400
commit6484dbf28cb8b6ffa745fe9b26beae58d3c68441 (patch)
treea6fdd325dd5f8411495b263de49ba65dbc0108c7 /indra/llwindow/llwindowwin32.cpp
parent05e5ea243ea2acc9e86471c884d1a2d39c9c8e60 (diff)
parentaa1424365e3df49edfc189ef433e050f502534e9 (diff)
merge
Diffstat (limited to 'indra/llwindow/llwindowwin32.cpp')
-rw-r--r--indra/llwindow/llwindowwin32.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp
index 551d487cc8..1239e2d40b 100644
--- a/indra/llwindow/llwindowwin32.cpp
+++ b/indra/llwindow/llwindowwin32.cpp
@@ -1172,8 +1172,39 @@ BOOL LLWindowWin32::switchContext(BOOL fullscreen, const LLCoordScreen &size, BO
// First we try and get a 32 bit depth pixel format
BOOL result = wglChoosePixelFormatARB(mhDC, attrib_list, NULL, 256, pixel_formats, &num_formats);
+
+ while(!result && mFSAASamples > 0)
+ {
+ llwarns << "FSAASamples: " << mFSAASamples << " not supported." << llendl ;
+
+ mFSAASamples /= 2 ; //try to decrease sample pixel number until to disable anti-aliasing
+ if(mFSAASamples < 2)
+ {
+ mFSAASamples = 0 ;
+ }
+
+ if (mFSAASamples > 0)
+ {
+ attrib_list[end_attrib + 3] = mFSAASamples;
+ }
+ else
+ {
+ cur_attrib = end_attrib ;
+ end_attrib = 0 ;
+ attrib_list[cur_attrib++] = 0 ; //end
+ }
+ result = wglChoosePixelFormatARB(mhDC, attrib_list, NULL, 256, pixel_formats, &num_formats);
+
+ if(result)
+ {
+ llwarns << "Only support FSAASamples: " << mFSAASamples << llendl ;
+ }
+ }
+
if (!result)
{
+ llwarns << "mFSAASamples: " << mFSAASamples << llendl ;
+
close();
show_window_creation_error("Error after wglChoosePixelFormatARB 32-bit");
return FALSE;