summaryrefslogtreecommitdiff
path: root/indra/llwindow/llwindowsdl.cpp
diff options
context:
space:
mode:
authorJames Cook <james@lindenlab.com>2008-07-18 17:50:25 +0000
committerJames Cook <james@lindenlab.com>2008-07-18 17:50:25 +0000
commited386ae547c225e352c39e8d14921572ee534b0b (patch)
treef67ff767edfc07900c0c8c16cd4439eb38d05be0 /indra/llwindow/llwindowsdl.cpp
parent292627c09df6085c985a189edd5df06d3ca1eb47 (diff)
merge support-featurettes-snapshot-merge-2 for QAR-754, includes:
* featurettes-4 89061:89589 (which is all of featurettes-1, -2, and -3, and part of -4) * gteam-showstoppers-3 91950:91951 (which is all of gteam-showstoppers-1, -2, and -3) * featurettes-5 92149:92150 (patch for last line of chat text not visible in chat history, DEV-17771) * snapshot-3 91988:91991 (which is all of snapshot-1, -2, and -3) Merging revisions 92190-92387 of svn+ssh://svn.lindenlab.com/svn/linden/branches/support-featurettes-snapshot-merge-2 into release, respecting ancestry * QAR-590 Merge Lock Request for Support Sprint * QAR-627 Merge snapshot improvements * QAR-686 Merge Lock request for Featurettes
Diffstat (limited to 'indra/llwindow/llwindowsdl.cpp')
-rw-r--r--indra/llwindow/llwindowsdl.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/indra/llwindow/llwindowsdl.cpp b/indra/llwindow/llwindowsdl.cpp
index 23030b559d..42a9144d58 100644
--- a/indra/llwindow/llwindowsdl.cpp
+++ b/indra/llwindow/llwindowsdl.cpp
@@ -64,7 +64,10 @@ extern "C" {
extern BOOL gDebugWindowProc;
-const S32 MAX_NUM_RESOLUTIONS = 32;
+const S32 MAX_NUM_RESOLUTIONS = 200;
+
+// static variable for ATI mouse cursor crash work-around:
+static bool ATIbug = false;
//
// LLWindowSDL
@@ -1735,7 +1738,7 @@ LLWindow::LLWindowResolution* LLWindowSDL::getSupportedResolutions(S32 &num_reso
if ( (modes != NULL) && (modes != ((SDL_Rect **) -1)) )
{
int count = 0;
- while (*modes) // they're sorted biggest to smallest, so find end...
+ while (*modes && count<MAX_NUM_RESOLUTIONS) // they're sorted biggest to smallest, so find end...
{
modes++;
count++;
@@ -2275,6 +2278,12 @@ static SDL_Cursor *makeSDLCursorFromBMP(const char *filename, int hotx, int hoty
void LLWindowSDL::setCursor(ECursorType cursor)
{
+ if (ATIbug) {
+ // cursor-updating is very flaky when this bug is
+ // present; do nothing.
+ return;
+ }
+
if (mCurrentCursor != cursor)
{
if (cursor < UI_CURSOR_COUNT)
@@ -2347,6 +2356,11 @@ void LLWindowSDL::initCursors()
mSDLCursors[UI_CURSOR_TOOLPAUSE] = makeSDLCursorFromBMP("toolpause.BMP",0,0);
mSDLCursors[UI_CURSOR_TOOLMEDIAOPEN] = makeSDLCursorFromBMP("toolmediaopen.BMP",0,0);
mSDLCursors[UI_CURSOR_PIPETTE] = makeSDLCursorFromBMP("lltoolpipette.BMP",2,28);
+
+ if (getenv("LL_ATI_MOUSE_CURSOR_BUG") != NULL) {
+ llinfos << "Disabling cursor updating due to LL_ATI_MOUSE_CURSOR_BUG" << llendl;
+ ATIbug = true;
+ }
}
void LLWindowSDL::quitCursors()