From d0e3cee4c2e44b7bffd69e4138ecbfd04bf60601 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Sun, 29 Apr 2012 10:18:00 +1000
Subject: It's April, onefang ate all the Easter eggs. Burp.
---
linden/indra/newview/llgesturemgr.cpp | 241 +--------------------
.../newview/skins/default/textures/cakeisalie.png | Bin 124929 -> 0 bytes
.../newview/skins/default/textures/ceilingcat.png | Bin 139515 -> 0 bytes
.../newview/skins/default/textures/easteregg.png | Bin 395345 -> 0 bytes
.../indra/newview/skins/default/textures/hugs.png | Bin 204219 -> 0 bytes
.../newview/skins/default/textures/nomnom.png | Bin 380325 -> 0 bytes
.../newview/skins/default/textures/octopus.png | Bin 442610 -> 0 bytes
.../newview/skins/default/textures/zombiecat.png | Bin 334660 -> 0 bytes
8 files changed, 1 insertion(+), 240 deletions(-)
delete mode 100644 linden/indra/newview/skins/default/textures/cakeisalie.png
delete mode 100644 linden/indra/newview/skins/default/textures/ceilingcat.png
delete mode 100644 linden/indra/newview/skins/default/textures/easteregg.png
delete mode 100644 linden/indra/newview/skins/default/textures/hugs.png
delete mode 100644 linden/indra/newview/skins/default/textures/nomnom.png
delete mode 100644 linden/indra/newview/skins/default/textures/octopus.png
delete mode 100644 linden/indra/newview/skins/default/textures/zombiecat.png
(limited to 'linden')
diff --git a/linden/indra/newview/llgesturemgr.cpp b/linden/indra/newview/llgesturemgr.cpp
index bd05cb3..f806ccc 100644
--- a/linden/indra/newview/llgesturemgr.cpp
+++ b/linden/indra/newview/llgesturemgr.cpp
@@ -531,7 +531,6 @@ BOOL LLGestureManager::triggerAndReviseString(const std::string &utf8str, std::s
gesture = NULL;
}
-
if (matching.size() > 0)
{
// choose one at random
@@ -565,246 +564,8 @@ BOOL LLGestureManager::triggerAndReviseString(const std::string &utf8str, std::s
found_gestures = TRUE;
}
}
- else if (LLStringUtil::compareInsensitive("/icanhaseasteregg", cur_token) == 0 ||
- LLStringUtil::compareInsensitive("/icanhaseastereggs", cur_token) == 0)
- {
- LLViewerImage* kitteh = gImageList.getImageFromFile("easteregg.png", TRUE, TRUE);
- if (kitteh)
- {
- S32 left, top;
- gFloaterView->getNewFloaterPosition(&left, &top);
- LLRect rect = gSavedSettings.getRect("PreviewTextureRect");
- rect.translate(left - rect.mLeft, top - rect.mTop);
-
- LLPreviewTexture* preview;
- preview = new LLPreviewTexture(rect, "Easter Egg!", kitteh);
- preview->setSourceID(LLUUID::generateNewID());
- preview->setFocus(TRUE);
- preview->center();
- gFloaterView->adjustToFitScreen(preview, FALSE);
- }
- return TRUE;
- }
- else if (LLStringUtil::compareInsensitive("/icanhascookie", cur_token) == 0 ||
- LLStringUtil::compareInsensitive("/icanhascookies", cur_token) == 0)
- {
- LLChat chat;
- chat.mText = "I made you a cookie but I eated it :(";
- chat.mSourceType = CHAT_SOURCE_SYSTEM;
- LLFloaterChat::addChat(chat);
- if (revised_string)
- {
- revised_string->assign(LLStringUtil::null);
- }
- return TRUE;
- }
- else if (LLStringUtil::compareInsensitive("/icanhasfailbook", cur_token) == 0)
- {
- LLWeb::loadURLInternal("http://failbook.failblog.org/");
- return TRUE;
- }
- else if (LLStringUtil::compareInsensitive("/icanhaszombie", cur_token) == 0 ||
- LLStringUtil::compareInsensitive("/icanhaszombies", cur_token) == 0)
- {
- LLViewerImage* kitteh = gImageList.getImageFromFile("zombiecat.png", TRUE, TRUE);
- if (kitteh)
- {
- S32 left, top;
- gFloaterView->getNewFloaterPosition(&left, &top);
- LLRect rect = gSavedSettings.getRect("PreviewTextureRect");
- rect.translate(left - rect.mLeft, top - rect.mTop);
-
- LLPreviewTexture* preview;
- preview = new LLPreviewTexture(rect, "Zombiecat!", kitteh);
- preview->setSourceID(LLUUID::generateNewID());
- preview->setFocus(TRUE);
- preview->center();
- gFloaterView->adjustToFitScreen(preview, FALSE);
- }
- return TRUE;
- }
- else if (LLStringUtil::compareInsensitive("/icanhassupport", cur_token) == 0 ||
- LLStringUtil::compareInsensitive("/icanhashelp", cur_token) == 0 ||
- LLStringUtil::compareInsensitive("/icanhashalp", cur_token) == 0)
- {
- LLWeb::loadURLInternal("http://support.kokuaviewer.org/");
- return TRUE;
- }
- else if (LLStringUtil::compareInsensitive("/icanhasblog", cur_token) == 0)
- {
- LLWeb::loadURLInternal("http://kokuaviewer.org/");
- return TRUE;
- }
- else if (LLStringUtil::compareInsensitive("/icanhascodie", cur_token) == 0)
- {
- LLChat chat;
- chat.mText = "All work and no play makes Codie a dull girl. All work and no play...";
- chat.mSourceType = CHAT_SOURCE_SYSTEM;
- LLFloaterChat::addChat(chat);
- if (revised_string)
- {
- revised_string->assign(LLStringUtil::null);
- }
- return TRUE;
- }
- else if (LLStringUtil::compareInsensitive("/icanhasfail", cur_token) == 0)
- {
- LLWeb::loadURLInternal("http://www.failblog.org/");
- return TRUE;
- }
- else if (LLStringUtil::compareInsensitive("/icanhasdownload", cur_token) == 0 ||
- LLStringUtil::compareInsensitive("/icanhasdownloads", cur_token) == 0 ||
- LLStringUtil::compareInsensitive("/icanhasupdate", cur_token) == 0 ||
- LLStringUtil::compareInsensitive("/icanhasupdates", cur_token) == 0 )
- {
- LLWeb::loadURLInternal("http://wiki.kokuaviewer.org/wiki/Imprudence:Downloads");
- return TRUE;
- }
- else if (LLStringUtil::compareInsensitive("/icanhasfeatures", cur_token) == 0)
- {
- LLWeb::loadURLInternal("http://wiki.kokuaviewer.org/wiki/Imprudence:Features");
- return TRUE;
- }
- else if (LLStringUtil::compareInsensitive("/icanhaswiki", cur_token) == 0)
- {
- LLWeb::loadURLInternal("http://wiki.kokuaviewer.org/wiki/");
- return TRUE;
- }
- else if (LLStringUtil::compareInsensitive("/icanhasbugs", cur_token) == 0 ||
- LLStringUtil::compareInsensitive("/icanhasbug", cur_token) == 0 )
- {
- LLWeb::loadURLInternal("http://redmine.kokuaviewer.org/");
- return TRUE;
- }
- else if (LLStringUtil::compareInsensitive("/icanhasgit", cur_token) == 0)
- {
- LLWeb::loadURLInternal("http://github.com/imprudence/imprudence/");
- return TRUE;
- }
- else if (LLStringUtil::compareInsensitive("/icanhasplurk", cur_token) == 0)
- {
- LLWeb::loadURLInternal("http://plurk.com/imprudence");
- return TRUE;
- }
- else if (LLStringUtil::compareInsensitive("/icanhastwitter", cur_token) == 0)
- {
- LLWeb::loadURLInternal("http://twitter.com/ImpViewer");
- return TRUE;
- }
-
- else if (LLStringUtil::compareInsensitive("/icanhasimprudence", cur_token) == 0)
- {
- LLChat chat;
- chat.mText = "You are using it right now, silly!...";
- chat.mSourceType = CHAT_SOURCE_SYSTEM;
- LLFloaterChat::addChat(chat);
- if (revised_string)
- {
- revised_string->assign(LLStringUtil::null);
- }
- return TRUE;
- }
- else if (LLStringUtil::compareInsensitive("/icanhasnoms", cur_token) == 0 ||
- LLStringUtil::compareInsensitive("/icanhasnom", cur_token) == 0)
- {
- LLViewerImage* kitteh = gImageList.getImageFromFile("nomnom.png", TRUE, TRUE);
- if (kitteh)
- {
- S32 left, top;
- gFloaterView->getNewFloaterPosition(&left, &top);
- LLRect rect = gSavedSettings.getRect("PreviewTextureRect");
- rect.translate(left - rect.mLeft, top - rect.mTop);
-
- LLPreviewTexture* preview;
- preview = new LLPreviewTexture(rect, "Om nom nom!", kitteh);
- preview->setSourceID(LLUUID::generateNewID());
- preview->setFocus(TRUE);
- preview->center();
- gFloaterView->adjustToFitScreen(preview, FALSE);
- }
- return TRUE;
- }
- else if (LLStringUtil::compareInsensitive("/icanhasceilingcat", cur_token) == 0 ||
- LLStringUtil::compareInsensitive("/icanhascielingcat", cur_token) == 0)
- {
- LLViewerImage* kitteh = gImageList.getImageFromFile("ceilingcat.png", TRUE, TRUE);
- if (kitteh)
- {
- S32 left, top;
- gFloaterView->getNewFloaterPosition(&left, &top);
- LLRect rect = gSavedSettings.getRect("PreviewTextureRect");
- rect.translate(left - rect.mLeft, top - rect.mTop);
-
- LLPreviewTexture* preview;
- preview = new LLPreviewTexture(rect, "Ceiling Cat is watching you!", kitteh);
- preview->setSourceID(LLUUID::generateNewID());
- preview->setFocus(TRUE);
- preview->center();
- gFloaterView->adjustToFitScreen(preview, FALSE);
- }
- return TRUE;
- }
- else if (LLStringUtil::compareInsensitive("/icanhascake", cur_token) == 0 )
- {
- LLViewerImage* kitteh = gImageList.getImageFromFile("cakeisalie.png", TRUE, TRUE);
- if (kitteh)
- {
- S32 left, top;
- gFloaterView->getNewFloaterPosition(&left, &top);
- LLRect rect = gSavedSettings.getRect("PreviewTextureRect");
- rect.translate(left - rect.mLeft, top - rect.mTop);
-
- LLPreviewTexture* preview;
- preview = new LLPreviewTexture(rect, "THE CAKE IS A LIE!", kitteh);
- preview->setSourceID(LLUUID::generateNewID());
- preview->setFocus(TRUE);
- preview->center();
- gFloaterView->adjustToFitScreen(preview, FALSE);
- }
- return TRUE;
- }
- else if (LLStringUtil::compareInsensitive("/icanhastentacles", cur_token) == 0 )
- {
- LLViewerImage* kitteh = gImageList.getImageFromFile("octopus.png", TRUE, TRUE);
- if (kitteh)
- {
- S32 left, top;
- gFloaterView->getNewFloaterPosition(&left, &top);
- LLRect rect = gSavedSettings.getRect("PreviewTextureRect");
- rect.translate(left - rect.mLeft, top - rect.mTop);
-
- LLPreviewTexture* preview;
- preview = new LLPreviewTexture(rect, "All hail the mighty octopus!", kitteh);
- preview->setSourceID(LLUUID::generateNewID());
- preview->setFocus(TRUE);
- preview->center();
- gFloaterView->adjustToFitScreen(preview, FALSE);
- }
- return TRUE;
- }
- else if (LLStringUtil::compareInsensitive("/icanhashugs", cur_token) == 0 ||
- LLStringUtil::compareInsensitive("/icanhashug", cur_token) == 0)
- {
- LLViewerImage* kitteh = gImageList.getImageFromFile("hugs.png", TRUE, TRUE);
- if (kitteh)
- {
- S32 left, top;
- gFloaterView->getNewFloaterPosition(&left, &top);
- LLRect rect = gSavedSettings.getRect("PreviewTextureRect");
- rect.translate(left - rect.mLeft, top - rect.mTop);
-
- LLPreviewTexture* preview;
- preview = new LLPreviewTexture(rect, "Yes, you can has hugs!", kitteh);
- preview->setSourceID(LLUUID::generateNewID());
- preview->setFocus(TRUE);
- preview->center();
- gFloaterView->adjustToFitScreen(preview, FALSE);
- }
- return TRUE;
- }
-
}
-
+
if(!gesture)
{
// This token doesn't match a gesture. Pass it through to the output.
diff --git a/linden/indra/newview/skins/default/textures/cakeisalie.png b/linden/indra/newview/skins/default/textures/cakeisalie.png
deleted file mode 100644
index bc8af84..0000000
Binary files a/linden/indra/newview/skins/default/textures/cakeisalie.png and /dev/null differ
diff --git a/linden/indra/newview/skins/default/textures/ceilingcat.png b/linden/indra/newview/skins/default/textures/ceilingcat.png
deleted file mode 100644
index 5cf5285..0000000
Binary files a/linden/indra/newview/skins/default/textures/ceilingcat.png and /dev/null differ
diff --git a/linden/indra/newview/skins/default/textures/easteregg.png b/linden/indra/newview/skins/default/textures/easteregg.png
deleted file mode 100644
index 75eaef7..0000000
Binary files a/linden/indra/newview/skins/default/textures/easteregg.png and /dev/null differ
diff --git a/linden/indra/newview/skins/default/textures/hugs.png b/linden/indra/newview/skins/default/textures/hugs.png
deleted file mode 100644
index d612793..0000000
Binary files a/linden/indra/newview/skins/default/textures/hugs.png and /dev/null differ
diff --git a/linden/indra/newview/skins/default/textures/nomnom.png b/linden/indra/newview/skins/default/textures/nomnom.png
deleted file mode 100644
index ffc70ef..0000000
Binary files a/linden/indra/newview/skins/default/textures/nomnom.png and /dev/null differ
diff --git a/linden/indra/newview/skins/default/textures/octopus.png b/linden/indra/newview/skins/default/textures/octopus.png
deleted file mode 100644
index 91765f9..0000000
Binary files a/linden/indra/newview/skins/default/textures/octopus.png and /dev/null differ
diff --git a/linden/indra/newview/skins/default/textures/zombiecat.png b/linden/indra/newview/skins/default/textures/zombiecat.png
deleted file mode 100644
index 93392c0..0000000
Binary files a/linden/indra/newview/skins/default/textures/zombiecat.png and /dev/null differ
--
cgit v1.1
From 5845bcd9de3b9e22952bf798d32d1b7f9cf5fa21 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Sun, 29 Apr 2012 19:15:57 +1000
Subject: For Armin and his teapot.
---
linden/indra/newview/llvoavatar.cpp | 5 +++++
1 file changed, 5 insertions(+)
(limited to 'linden')
diff --git a/linden/indra/newview/llvoavatar.cpp b/linden/indra/newview/llvoavatar.cpp
index 11f4857..359ac74 100644
--- a/linden/indra/newview/llvoavatar.cpp
+++ b/linden/indra/newview/llvoavatar.cpp
@@ -3287,6 +3287,11 @@ void LLVOAvatar::resolveClient(LLColor4& avatar_name_color, std::string& client,
avatar_name_color += colour;
avatar_name_color *= 1.0/(cllsd["multiple"].asReal()+1.0f);
}
+ else if(idx == LLUUID("7eab0700-f000-0000-0000-546561706f74"))
+ {
+ avatar_name_color = LLColor4(0.69f,0.42f,0.84f,1.0f); // Armins V3 viewer.
+ client = "Teapot";
+ }
else if(idx == LLUUID("2a9a406c-f448-68f2-4e38-878f8c46c190") ||
idx == LLUUID("b6820989-bf42-ff59-ddde-fd3fd3a74fe4"))
{
--
cgit v1.1
From 0528bbd5ef37b7d60c639db2c450cca415b6590e Mon Sep 17 00:00:00 2001
From: Robin Cornelius
Date: Sat, 1 Oct 2011 22:16:53 +0100
Subject: MOAP Radar patch set
---
linden/etc/message.xml | 6 +
linden/indra/llmath/llsdutil_math.cpp | 14 +-
linden/indra/newview/CMakeLists.txt | 4 +
linden/indra/newview/app_settings/settings.xml | 128 +++++++
linden/indra/newview/llfloaterbeacons.cpp | 3 +
linden/indra/newview/llstartup.cpp | 12 +
linden/indra/newview/llviewermenu.cpp | 32 ++
linden/indra/newview/llviewerobject.h | 8 +-
linden/indra/newview/llviewerregion.cpp | 2 +
linden/indra/newview/llvovolume.cpp | 398 ++++++++++++++++++++-
linden/indra/newview/llvovolume.h | 53 +++
linden/indra/newview/pipeline.cpp | 61 ++++
linden/indra/newview/pipeline.h | 5 +
.../skins/default/xui/en-us/floater_beacons.xml | 5 +-
.../skins/default/xui/en-us/menu_viewer.xml | 4 +
15 files changed, 720 insertions(+), 15 deletions(-)
(limited to 'linden')
diff --git a/linden/etc/message.xml b/linden/etc/message.xml
index 8d34dd8..f86ca8b 100644
--- a/linden/etc/message.xml
+++ b/linden/etc/message.xml
@@ -702,6 +702,12 @@
FetchLib
true
+
+ ObjectMedia
+ false
+
+ ObjectMediaNavigate
+ false
messageBans
diff --git a/linden/indra/llmath/llsdutil_math.cpp b/linden/indra/llmath/llsdutil_math.cpp
index 073cb2e..8ec8661 100644
--- a/linden/indra/llmath/llsdutil_math.cpp
+++ b/linden/indra/llmath/llsdutil_math.cpp
@@ -6,7 +6,7 @@
*
* $LicenseInfo:firstyear=2006&license=viewergpl$
*
- * Copyright (c) 2006-2009, Linden Research, Inc.
+ * Copyright (c) 2006-2010, Linden Research, Inc.
*
* Second Life Viewer Source Code
* The source code in this file ("Source Code") is provided by Linden Lab
@@ -14,13 +14,13 @@
* ("GPL"), unless you have obtained a separate licensing agreement
* ("Other License"), formally executed by you and Linden Lab. Terms of
* the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * online at http://secondlife.com/developers/opensource/gplv2
*
* There are special exceptions to the terms and conditions of the GPL as
* it is applied to this Source Code. View the full text of the exception
* in the file doc/FLOSS-exception.txt in this software distribution, or
* online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * http://secondlife.com/developers/opensource/flossexception
*
* By copying, modifying or distributing this software, you acknowledge
* that you have read and understood your obligations described above,
@@ -30,11 +30,12 @@
* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
* COMPLETENESS OR PERFORMANCE.
* $/LicenseInfo$
+ *
*/
#include "linden_common.h"
-#include "llsdutil.h"
+#include "llsdutil_math.h"
#include "v3math.h"
#include "v4math.h"
@@ -165,9 +166,6 @@ LLSD ll_sd_from_color4(const LLColor4& c)
LLColor4 ll_color4_from_sd(const LLSD& sd)
{
LLColor4 c;
- c.mV[0] = (F32)sd[0].asReal();
- c.mV[1] = (F32)sd[1].asReal();
- c.mV[2] = (F32)sd[2].asReal();
- c.mV[3] = (F32)sd[3].asReal();
+ c.setValue(sd);
return c;
}
diff --git a/linden/indra/newview/CMakeLists.txt b/linden/indra/newview/CMakeLists.txt
index 2a976ff..b9c41fc 100644
--- a/linden/indra/newview/CMakeLists.txt
+++ b/linden/indra/newview/CMakeLists.txt
@@ -274,6 +274,7 @@ set(viewer_SOURCE_FILES
llmaniprotate.cpp
llmanipscale.cpp
llmaniptranslate.cpp
+ llmediadataclient.cpp
llmapresponders.cpp
llmediaremotectrl.cpp
llmemoryview.cpp
@@ -508,6 +509,7 @@ set(viewer_SOURCE_FILES
wlfloaterwindlightsend.cpp
wlretrievesettings.cpp
wlsettingsmanager.cpp
+ rcmoapradar.cpp
)
set(VIEWER_BINARY_NAME "imprudence-bin" CACHE STRING
@@ -737,6 +739,7 @@ set(viewer_HEADER_FILES
llmaniprotate.h
llmanipscale.h
llmaniptranslate.h
+ llmediadataclient.h
llmapresponders.h
llmediaremotectrl.h
llmemoryview.h
@@ -981,6 +984,7 @@ set(viewer_HEADER_FILES
wlfloaterwindlightsend.h
wlretrievesettings.h
wlsettingsmanager.h
+ rcmoapradar.h
)
source_group("CMake Rules" FILES ViewerInstall.cmake)
diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml
index 2ec4832..1451aef 100644
--- a/linden/indra/newview/app_settings/settings.xml
+++ b/linden/indra/newview/app_settings/settings.xml
@@ -2,6 +2,123 @@
+ moapbeacon
+
+ Comment
+ Beacon / Highlight MOAP sources
+ Persist
+ 1
+ Type
+ Boolean
+ Value
+ 0
+
particlesbeacon
Comment
diff --git a/linden/indra/newview/llfloaterbeacons.cpp b/linden/indra/newview/llfloaterbeacons.cpp
index aa89780..7c40931 100644
--- a/linden/indra/newview/llfloaterbeacons.cpp
+++ b/linden/indra/newview/llfloaterbeacons.cpp
@@ -54,6 +54,7 @@ LLFloaterBeacons::LLFloaterBeacons(const LLSD& seed)
LLPipeline::setRenderScriptedTouchBeacons(gSavedSettings.getBOOL("scripttouchbeacon"));
LLPipeline::setRenderScriptedBeacons( gSavedSettings.getBOOL("scriptsbeacon"));
LLPipeline::setRenderPhysicalBeacons( gSavedSettings.getBOOL("physicalbeacon"));
+ LLPipeline::setRenderMOAPBeacons( gSavedSettings.getBOOL("moapbeacon"));
LLPipeline::setRenderSoundBeacons( gSavedSettings.getBOOL("soundsbeacon"));
LLPipeline::setRenderParticleBeacons( gSavedSettings.getBOOL("particlesbeacon"));
LLPipeline::setRenderHighlights( gSavedSettings.getBOOL("renderhighlights"));
@@ -67,6 +68,7 @@ BOOL LLFloaterBeacons::postBuild()
childSetCommitCallback("physical", onClickUICheck, this);
childSetCommitCallback("sounds", onClickUICheck, this);
childSetCommitCallback("particles", onClickUICheck, this);
+ childSetCommitCallback("moap", onClickUICheck, this);
childSetCommitCallback("highlights", onClickUICheck, this);
childSetCommitCallback("beacons", onClickUICheck, this);
return TRUE;
@@ -132,6 +134,7 @@ void LLFloaterBeacons::onClickUICheck(LLUICtrl *ctrl, void* data)
else if(name == "physical") LLPipeline::setRenderPhysicalBeacons(check->get());
else if(name == "sounds") LLPipeline::setRenderSoundBeacons(check->get());
else if(name == "particles") LLPipeline::setRenderParticleBeacons(check->get());
+ else if(name == "moap") LLPipeline::setRenderMOAPBeacons(check->get());
else if(name == "highlights")
{
LLPipeline::toggleRenderHighlights(NULL);
diff --git a/linden/indra/newview/llstartup.cpp b/linden/indra/newview/llstartup.cpp
index 922de18..d853dc0 100644
--- a/linden/indra/newview/llstartup.cpp
+++ b/linden/indra/newview/llstartup.cpp
@@ -206,6 +206,8 @@
#include "rlvhandler.h"
// [/RLVa:KB]
+#include "rcmoapradar.h"
+
#if LL_WINDOWS
#include "llwindebug.h"
#include "lldxhardware.h"
@@ -2079,6 +2081,16 @@ bool idle_startup()
LLRect window(0, gViewerWindow->getWindowHeight(), gViewerWindow->getWindowWidth(), 0);
gViewerWindow->adjustControlRectanglesForFirstUse(window);
+ if (gSavedSettings.getBOOL("ShowRadar"))
+ {
+ LLFloaterAvatarList::showInstance();
+ }
+
+ if (gSavedSettings.getBOOL("ShowMOAPRadar"))
+ {
+ LLFloaterMOAPRadar::showInstance();
+ }
+
if(gSavedSettings.getBOOL("ShowMiniMap"))
{
LLFloaterMap::showInstance();
diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp
index a83c11b..538adc7 100644
--- a/linden/indra/newview/llviewermenu.cpp
+++ b/linden/indra/newview/llviewermenu.cpp
@@ -238,6 +238,8 @@
#include "llfloaterteleporthistory.h"
#include "slfloatermediafilter.h"
+#include "rcmoapradar.h"
+
using namespace LLVOAvatarDefines;
void init_client_menu(LLMenuGL* menu);
void init_server_menu(LLMenuGL* menu);
@@ -5216,6 +5218,34 @@ class LLViewEnableLastChatter : public view_listener_t
}
};
+class LLViewToggleRadar: public view_listener_t
+{
+ bool handleEvent(LLPointer event, const LLSD& userdata)
+ {
+ LLFloaterAvatarList::toggle(0);
+ bool vis = false;
+ if(LLFloaterAvatarList::getInstance())
+ {
+ vis = (bool)LLFloaterAvatarList::getInstance()->getVisible();
+ }
+ return true;
+ }
+};
+
+class LLViewToggleMOAPRadar: public view_listener_t
+{
+ bool handleEvent(LLPointer event, const LLSD& userdata)
+ {
+ LLFloaterMOAPRadar::toggle(0);
+ bool vis = false;
+ if(LLFloaterMOAPRadar::getInstance())
+ {
+ vis = (bool)LLFloaterMOAPRadar::getInstance()->getVisible();
+ }
+ return true;
+ }
+};
+
class LLEditEnableDeselect : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
@@ -11215,6 +11245,8 @@ void initialize_menus()
addMenu(new LLViewEnableMouselook(), "View.EnableMouselook");
addMenu(new LLViewEnableJoystickFlycam(), "View.EnableJoystickFlycam");
addMenu(new LLViewEnableLastChatter(), "View.EnableLastChatter");
+ addMenu(new LLViewToggleRadar(), "View.ToggleAvatarList");
+ addMenu(new LLViewToggleMOAPRadar(), "View.ToggleMOAPList");
addMenu(new LLViewCheckBuildMode(), "View.CheckBuildMode");
addMenu(new LLViewCheckJoystickFlycam(), "View.CheckJoystickFlycam");
diff --git a/linden/indra/newview/llviewerobject.h b/linden/indra/newview/llviewerobject.h
index 9b05470..98b7115 100644
--- a/linden/indra/newview/llviewerobject.h
+++ b/linden/indra/newview/llviewerobject.h
@@ -157,7 +157,13 @@ public:
enum { MEDIA_TYPE_NONE = 0, MEDIA_TYPE_WEB_PAGE = 1 };
// Return codes for processUpdateMessage
- enum { MEDIA_URL_REMOVED = 0x1, MEDIA_URL_ADDED = 0x2, MEDIA_URL_UPDATED = 0x4, INVALID_UPDATE = 0x80000000 };
+ enum {
+ MEDIA_URL_REMOVED = 0x1,
+ MEDIA_URL_ADDED = 0x2,
+ MEDIA_URL_UPDATED = 0x4,
+ MEDIA_FLAGS_CHANGED = 0x8,
+ INVALID_UPDATE = 0x80000000
+ };
virtual U32 processUpdateMessage(LLMessageSystem *mesgsys,
void **user_data,
diff --git a/linden/indra/newview/llviewerregion.cpp b/linden/indra/newview/llviewerregion.cpp
index 2fafe30..42eb112 100644
--- a/linden/indra/newview/llviewerregion.cpp
+++ b/linden/indra/newview/llviewerregion.cpp
@@ -1436,6 +1436,8 @@ void LLViewerRegion::setSeedCapability(const std::string& url)
capabilityNames.append("EstateChangeInfo");
capabilityNames.append("EventQueueGet");
capabilityNames.append("FetchInventory");
+ capabilityNames.append("ObjectMedia");
+ capabilityNames.append("ObjectMediaNavigate");
capabilityNames.append("FetchLib");
capabilityNames.append("FetchLibDescendents");
capabilityNames.append("GetDisplayNames");
diff --git a/linden/indra/newview/llvovolume.cpp b/linden/indra/newview/llvovolume.cpp
index d580d61..cb38c86 100644
--- a/linden/indra/newview/llvovolume.cpp
+++ b/linden/indra/newview/llvovolume.cpp
@@ -68,6 +68,9 @@
#include "rlvhandler.h"
// [/RLVa:KB]
+#include "llmediaentry.h"
+#include "llmediadataclient.h"
+
const S32 MIN_QUIET_FRAMES_COALESCE = 30;
const F32 FORCE_SIMPLE_RENDER_AREA = 512.f;
const F32 FORCE_CULL_AREA = 8.f;
@@ -79,6 +82,93 @@ F32 LLVOVolume::sLODFactor = 1.f;
F32 LLVOVolume::sLODSlopDistanceFactor = 0.5f; //Changing this to zero, effectively disables the LOD transition slop
F32 LLVOVolume::sDistanceFactor = 1.0f;
S32 LLVOVolume::sNumLODChanges = 0;
+LLPointer LLVOVolume::sObjectMediaClient = NULL;
+LLPointer LLVOVolume::sObjectMediaNavigateClient = NULL;
+
+// Implementation class of LLMediaDataClientObject. See llmediadataclient.h
+class LLMediaDataClientObjectImpl : public LLMediaDataClientObject
+{
+public:
+ LLMediaDataClientObjectImpl(LLVOVolume *obj, bool isNew) : mObject(obj), mNew(isNew) {}
+ LLMediaDataClientObjectImpl() { mObject = NULL; }
+
+ virtual U8 getMediaDataCount() const
+ { return mObject->getNumTEs(); }
+
+ virtual LLSD getMediaDataLLSD(U8 index) const
+ {
+ LLSD result;
+ LLTextureEntry *te = mObject->getTE(index);
+ if (NULL != te)
+ {
+ llassert((te->getMediaData() != NULL) == te->hasMedia());
+ if (te->getMediaData() != NULL)
+ {
+ result = te->getMediaData()->asLLSD();
+ // XXX HACK: workaround bug in asLLSD() where whitelist is not set properly
+ // See DEV-41949
+ if (!result.has(LLMediaEntry::WHITELIST_KEY))
+ {
+ result[LLMediaEntry::WHITELIST_KEY] = LLSD::emptyArray();
+ }
+ }
+ }
+ return result;
+ }
+
+ virtual LLUUID getID() const
+ { return mObject->getID(); }
+
+ virtual void mediaNavigateBounceBack(U8 index)
+ { mObject->mediaNavigateBounceBack(index); }
+
+ virtual bool hasMedia() const
+ { return mObject->hasMedia();}
+
+ virtual void updateObjectMediaData(LLSD const &data, const std::string &version_string)
+ { mObject->updateObjectMediaData(data, version_string); }
+
+ virtual F64 getMediaInterest() const
+ {
+ //F64 interest = mObject->getTotalMediaInterest();
+ //FIXME
+ F64 interest = 1024;
+ if (interest < (F64)0.0)
+ {
+ // media interest not valid yet, try pixel area
+ interest = mObject->getPixelArea();
+ // HACK: force recalculation of pixel area if interest is the "magic default" of 1024.
+ if (interest == 1024.f)
+ {
+ const_cast(static_cast(mObject))->setPixelAreaAndAngle(gAgent);
+ interest = mObject->getPixelArea();
+ }
+ }
+ return interest;
+ }
+
+ virtual bool isInterestingEnough() const
+ {
+ return true; //FUCKEDUP --> LLViewerMedia::isInterestingEnough(mObject, getMediaInterest());
+ }
+
+ virtual std::string getCapabilityUrl(const std::string &name) const
+ { return mObject->getRegion()->getCapability(name); }
+
+ virtual bool isDead() const
+ { return mObject->isDead(); }
+
+ virtual U32 getMediaVersion() const
+ { return LLTextureEntry::getVersionFromMediaVersionString(mObject->getMediaURL()); }
+
+ virtual bool isNew() const
+ { return mNew; }
+
+private:
+ LLPointer mObject;
+ bool mNew;
+};
+
LLVOVolume::LLVOVolume(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp)
: LLViewerObject(id, pcode, regionp),
@@ -123,6 +213,18 @@ void LLVOVolume::markDead()
// static
void LLVOVolume::initClass()
{
+ // gSavedSettings better be around
+ if (gSavedSettings.getBOOL("PrimMediaMasterEnabled"))
+ {
+ const F32 queue_timer_delay = gSavedSettings.getF32("PrimMediaRequestQueueDelay");
+ const F32 retry_timer_delay = gSavedSettings.getF32("PrimMediaRetryTimerDelay");
+ const U32 max_retries = gSavedSettings.getU32("PrimMediaMaxRetries");
+ const U32 max_sorted_queue_size = gSavedSettings.getU32("PrimMediaMaxSortedQueueSize");
+ const U32 max_round_robin_queue_size = gSavedSettings.getU32("PrimMediaMaxRoundRobinQueueSize");
+
+ sObjectMediaClient = new LLObjectMediaDataClient(queue_timer_delay, retry_timer_delay, max_retries,
+ max_sorted_queue_size, max_round_robin_queue_size);
+ }
}
@@ -132,6 +234,7 @@ U32 LLVOVolume::processUpdateMessage(LLMessageSystem *mesgsys,
LLDataPacker *dp)
{
LLColor4U color;
+ const S32 teDirtyBits = (TEM_CHANGE_TEXTURE|TEM_CHANGE_COLOR|TEM_CHANGE_MEDIA);
// Do base class updates...
U32 retval = LLViewerObject::processUpdateMessage(mesgsys, user_data, block_num, update_type, dp);
@@ -199,10 +302,15 @@ U32 LLVOVolume::processUpdateMessage(LLMessageSystem *mesgsys,
//
// Unpack texture entry data
//
- if (unpackTEMessage(mesgsys, _PREHASH_ObjectData, block_num) & (TEM_CHANGE_TEXTURE|TEM_CHANGE_COLOR))
+ S32 result =unpackTEMessage(mesgsys, _PREHASH_ObjectData, block_num);
+ if (result & teDirtyBits)
{
updateTEData();
}
+ if (result & TEM_CHANGE_MEDIA)
+ {
+ retval |= MEDIA_FLAGS_CHANGED;
+ }
}
else
{
@@ -235,9 +343,16 @@ U32 LLVOVolume::processUpdateMessage(LLMessageSystem *mesgsys,
// llerrs << "Bogus TE data in " << getID() << ", crashing!" << llendl;
llwarns << "Bogus TE data in " << getID() << llendl;
}
- else if (res2 & (TEM_CHANGE_TEXTURE|TEM_CHANGE_COLOR))
+ else
{
- updateTEData();
+ if (res2 & teDirtyBits)
+ {
+ updateTEData();
+ }
+ if (res2 & TEM_CHANGE_MEDIA)
+ {
+ retval |= MEDIA_FLAGS_CHANGED;
+ }
}
U32 value = dp->getPassFlags();
@@ -275,13 +390,39 @@ U32 LLVOVolume::processUpdateMessage(LLMessageSystem *mesgsys,
U8 tdpbuffer[1024];
LLDataPackerBinaryBuffer tdp(tdpbuffer, 1024);
mesgsys->getBinaryDataFast(_PREHASH_ObjectData, _PREHASH_TextureEntry, tdpbuffer, 0, block_num);
- if ( unpackTEMessage(tdp) & (TEM_CHANGE_TEXTURE|TEM_CHANGE_COLOR))
+ S32 result = unpackTEMessage(tdp);
+ if (result & teDirtyBits)
{
updateTEData();
}
+ if (result & TEM_CHANGE_MEDIA)
+ {
+ retval |= MEDIA_FLAGS_CHANGED;
+ }
}
}
}
+
+ if (retval & (MEDIA_URL_REMOVED | MEDIA_URL_ADDED | MEDIA_URL_UPDATED | MEDIA_FLAGS_CHANGED))
+ {
+ // If only the media URL changed, and it isn't a media version URL,
+ // ignore it
+ if ( ! ( retval & (MEDIA_URL_ADDED | MEDIA_URL_UPDATED) &&
+ mMedia && ! mMedia->mMediaURL.empty() &&
+ ! LLTextureEntry::isMediaVersionString(mMedia->mMediaURL) ) )
+ {
+ // If the media changed at all, request new media data
+ LL_DEBUGS("MediaOnAPrim") << "Media update: " << getID() << ": retval=" << retval << " Media URL: " <<
+ ((mMedia) ? mMedia->mMediaURL : std::string("")) << LL_ENDL;
+ requestMediaDataUpdate(retval & MEDIA_FLAGS_CHANGED);
+ }
+ else {
+ LL_INFOS("MediaOnAPrim") << "Ignoring media update for: " << getID() << " Media URL: " <<
+ ((mMedia) ? mMedia->mMediaURL : std::string("")) << LL_ENDL;
+ }
+ }
+ // ...and clean up any media impls
+ cleanUpMediaImpls();
return retval;
}
@@ -2894,4 +3035,253 @@ void LLHUDPartition::shift(const LLVector3 &offset)
//HUD objects don't shift with region crossing. That would be silly.
}
+void LLVOVolume::requestMediaDataUpdate(bool isNew)
+{
+ if (sObjectMediaClient)
+ sObjectMediaClient->fetchMedia(new LLMediaDataClientObjectImpl(this, isNew));
+}
+
+void LLVOVolume::cleanUpMediaImpls()
+{
+ // Iterate through our TEs and remove any Impls that are no longer used
+ const U8 numTEs = getNumTEs();
+ for (U8 i = 0; i < numTEs; i++)
+ {
+ const LLTextureEntry* te = getTE(i);
+ if( ! te->hasMedia())
+ {
+ // Delete the media IMPL!
+ removeMediaImpl(i) ;
+ }
+ }
+}
+
+void LLVOVolume::removeMediaImpl(S32 texture_index)
+{
+ if(mMediaImplList.size() <= (U32)texture_index || mMediaImplList[texture_index].isNull())
+ {
+ return ;
+ }
+
+ //make the face referencing to mMediaImplList[texture_index] to point back to the old texture.
+ if(mDrawable)
+ {
+ LLFace* facep = mDrawable->getFace(texture_index) ;
+ if(facep)
+ {
+ //LLViewerMediaTexture* media_tex = LLViewerTextureManager::findMediaTexture(mMediaImplList[texture_index]->getMediaTextureID()) ;
+ //if(media_tex)
+ //{
+ // media_tex->removeMediaFromFace(facep) ;
+ //}
+ }
+ }
+
+ //check if some other face(s) of this object reference(s)to this media impl.
+ S32 i ;
+ S32 end = (S32)mMediaImplList.size() ;
+ for(i = 0; i < end ; i++)
+ {
+ if( i != texture_index && mMediaImplList[i] == mMediaImplList[texture_index])
+ {
+ break ;
+ }
+ }
+
+ if(i == end) //this object does not need this media impl.
+ {
+ //mMediaImplList[texture_index]->removeObject(this) ;
+ }
+
+ mMediaImplList[texture_index] = NULL ;
+ return ;
+}
+
+void LLVOVolume::addMediaImpl(LLViewerMediaImpl* media_impl, S32 texture_index)
+{
+ if((S32)mMediaImplList.size() < texture_index + 1)
+ {
+ mMediaImplList.resize(texture_index + 1) ;
+ }
+
+ if(mMediaImplList[texture_index].notNull())
+ {
+ if(mMediaImplList[texture_index] == media_impl)
+ {
+ return ;
+ }
+
+ removeMediaImpl(texture_index) ;
+ }
+
+ mMediaImplList[texture_index] = media_impl;
+ //media_impl->addObject(this) ;
+
+ //add the face to show the media if it is in playing
+ if(mDrawable)
+ {
+ LLFace* facep = mDrawable->getFace(texture_index) ;
+ if(facep)
+ {
+ //LLViewerMediaTexture* media_tex = LLViewerTextureManager::findMediaTexture(mMediaImplList[texture_index]->getMediaTextureID()) ;
+ //if(media_tex)
+ //{
+ // media_tex->addMediaToFace(facep) ;
+ //}
+ }
+ else //the face is not available now, start media on this face later.
+ {
+ //media_impl->setUpdated(TRUE) ;
+ }
+ }
+ return ;
+}
+
+void LLVOVolume::sendMediaDataUpdate()
+{
+ if (sObjectMediaClient)
+ sObjectMediaClient->updateMedia(new LLMediaDataClientObjectImpl(this, false));
+}
+
+void LLVOVolume::updateObjectMediaData(const LLSD &media_data_array, const std::string &media_version)
+{
+ // media_data_array is an array of media entry maps
+ // media_version is the version string in the response.
+ U32 fetched_version = LLTextureEntry::getVersionFromMediaVersionString(media_version);
+
+ // Only update it if it is newer!
+ if ( (S32)fetched_version > mLastFetchedMediaVersion)
+ {
+ mLastFetchedMediaVersion = fetched_version;
+ //llinfos << "updating:" << this->getID() << " " << ll_pretty_print_sd(media_data_array) << llendl;
+
+ LLSD::array_const_iterator iter = media_data_array.beginArray();
+ LLSD::array_const_iterator end = media_data_array.endArray();
+ U8 texture_index = 0;
+ for (; iter != end; ++iter, ++texture_index)
+ {
+ syncMediaData(texture_index, *iter, false/*merge*/, false/*ignore_agent*/);
+ }
+ }
+}
+
+bool LLVOVolume::hasMedia() const
+{
+ bool result = false;
+ const U8 numTEs = getNumTEs();
+ for (U8 i = 0; i < numTEs; i++)
+ {
+ const LLTextureEntry* te = getTE(i);
+ if(te->hasMedia())
+ {
+ result = true;
+ break;
+ }
+ }
+ return result;
+}
+
+void LLVOVolume::syncMediaData(S32 texture_index, const LLSD &media_data, bool merge, bool ignore_agent)
+{
+ if(mDead)
+ {
+ // If the object has been marked dead, don't process media updates.
+ return;
+ }
+
+ LLTextureEntry *te = getTE(texture_index);
+// LL_DEBUGS("MediaOnAPrim") << "BEFORE: texture_index = " << texture_index
+// << " hasMedia = " << te->hasMedia() << " : "
+// << ((NULL == te->getMediaData()) ? "NULL MEDIA DATA" : ll_pretty_print_sd(te->getMediaData()->asLLSD())) << llendl;
+ std::string previous_url;
+ LLMediaEntry* mep = te->getMediaData();
+ if(mep)
+ {
+ // Save the "current url" from before the update so we can tell if
+ // it changes.
+ previous_url = mep->getCurrentURL();
+ }
+
+ if (merge)
+ {
+ te->mergeIntoMediaData(media_data);
+ }
+ else {
+ // XXX Question: what if the media data is undefined LLSD, but the
+ // update we got above said that we have media flags?? Here we clobber
+ // that, assuming the data from the service is more up-to-date.
+ te->updateMediaData(media_data);
+ }
+
+ mep = te->getMediaData();
+ if(mep)
+ {
+ bool update_from_self = false;
+ if (!ignore_agent)
+ {
+ LLUUID updating_agent = LLTextureEntry::getAgentIDFromMediaVersionString(getMediaURL());
+ update_from_self = (updating_agent == gAgent.getID());
+ }
+ //viewer_media_t media_impl = LLViewerMedia::updateMediaImpl(mep, previous_url, update_from_self);
+
+ //addMediaImpl(media_impl, texture_index) ;
+ }
+ else
+ {
+ //removeMediaImpl(texture_index);
+ }
+
+// LL_DEBUGS("MediaOnAPrim") << "AFTER: texture_index = " << texture_index
+// << " hasMedia = " << te->hasMedia() << " : "
+// << ((NULL == te->getMediaData()) ? "NULL MEDIA DATA" : ll_pretty_print_sd(te->getMediaData()->asLLSD())) << llendl;
+}
+
+
+void LLVOVolume::mediaNavigateBounceBack(U8 texture_index)
+{
+ /*
+ // Find the media entry for this navigate
+ const LLMediaEntry* mep = NULL;
+ viewer_media_t impl = getMediaImpl(texture_index);
+ LLTextureEntry *te = getTE(texture_index);
+ if(te)
+ {
+ mep = te->getMediaData();
+ }
+
+ if (mep && impl)
+ {
+ std::string url = mep->getCurrentURL();
+ // Look for a ":", if not there, assume "http://"
+ if (!url.empty() && std::string::npos == url.find(':'))
+ {
+ url = "http://" + url;
+ }
+ // If the url we're trying to "bounce back" to is either empty or not
+ // allowed by the whitelist, try the home url. If *that* doesn't work,
+ // set the media as failed and unload it
+ if (url.empty() || !mep->checkCandidateUrl(url))
+ {
+ url = mep->getHomeURL();
+ // Look for a ":", if not there, assume "http://"
+ if (!url.empty() && std::string::npos == url.find(':'))
+ {
+ url = "http://" + url;
+ }
+ }
+ if (url.empty() || !mep->checkCandidateUrl(url))
+ {
+ // The url to navigate back to is not good, and we have nowhere else
+ // to go.
+ LL_WARNS("MediaOnAPrim") << "FAILED to bounce back URL \"" << url << "\" -- unloading impl" << LL_ENDL;
+ impl->setMediaFailed(true);
+ }
+ else {
+ // Okay, navigate now
+ LL_INFOS("MediaOnAPrim") << "bouncing back to URL: " << url << LL_ENDL;
+ impl->navigateTo(url, "", false, true);
+ }
+ }
+ */
+}
diff --git a/linden/indra/newview/llvovolume.h b/linden/indra/newview/llvovolume.h
index d09a198..39d9227 100644
--- a/linden/indra/newview/llvovolume.h
+++ b/linden/indra/newview/llvovolume.h
@@ -36,6 +36,8 @@
#include "llviewerobject.h"
#include "llviewerimage.h"
#include "llframetimer.h"
+#include "llmediadataclient.h"
+#include "llviewermedia.h"
#include "llapr.h"
#include
@@ -43,6 +45,8 @@ class LLViewerTextureAnim;
class LLDrawPool;
class LLSelectNode;
+typedef std::vector media_list_t;
+
enum LLVolumeInterfaceType
{
INTERFACE_FLEXIBLE = 1,
@@ -217,6 +221,46 @@ public:
// tag: vaa emerald local_asset_browser
void setSculptChanged(BOOL has_changed) { mSculptChanged = has_changed; }
+
+
+ // Functions that deal with media, or media navigation
+
+ // Update this object's media data with the given media data array
+ // (typically this is only called upon a response from a server request)
+ void updateObjectMediaData(const LLSD &media_data_array, const std::string &media_version);
+
+ // Bounce back media at the given index to its current URL (or home URL, if current URL is empty)
+ void mediaNavigateBounceBack(U8 texture_index);
+
+ // Returns whether or not this object has permission to navigate or control
+ // the given media entry
+ enum MediaPermType {
+ MEDIA_PERM_INTERACT, MEDIA_PERM_CONTROL
+ };
+ bool hasMediaPermission(const LLMediaEntry* media_entry, MediaPermType perm_type);
+
+ void mediaNavigated(LLViewerMediaImpl *impl, LLPluginClassMedia* plugin, std::string new_location);
+ void mediaEvent(LLViewerMediaImpl *impl, LLPluginClassMedia* plugin, LLViewerMediaObserver::EMediaEvent event);
+
+ // Sync the given media data with the impl and the given te
+ void syncMediaData(S32 te, const LLSD &media_data, bool merge, bool ignore_agent);
+
+ // Send media data update to the simulator.
+ void sendMediaDataUpdate();
+
+ viewer_media_t getMediaImpl(U8 face_id) const;
+ S32 getFaceIndexWithMediaImpl(const LLViewerMediaImpl* media_impl, S32 start_face_id);
+ F64 getTotalMediaInterest() const;
+
+ bool hasMedia() const;
+
+ LLVector3 getApproximateFaceNormal(U8 face_id);
+
+ // Returns 'true' iff the media data for this object is in flight
+ bool isMediaDataBeingFetched() const;
+
+ // Returns the "last fetched" media version, or -1 if not fetched yet
+ S32 getLastFetchedMediaVersion() const { return mLastFetchedMediaVersion; }
protected:
S32 computeLODDetail(F32 distance, F32 radius);
@@ -224,6 +268,11 @@ protected:
LLFace* addFace(S32 face_index);
void updateTEData();
+ void requestMediaDataUpdate(bool isNew);
+ void cleanUpMediaImpls();
+ void addMediaImpl(LLViewerMediaImpl* media_impl, S32 texture_index) ;
+ void removeMediaImpl(S32 texture_index) ;
+
public:
LLViewerTextureAnim *mTextureAnimp;
U8 mTexAnimMode;
@@ -242,12 +291,16 @@ private:
LLVolumeInterface *mVolumeImpl;
LLPointer mSculptTexture;
S32 mIndexInTex; // index of this volume in the texture's volume list
+ media_list_t mMediaImplList;
+ S32 mLastFetchedMediaVersion; // as fetched from the server, starts as -1
// statics
public:
static F32 sLODSlopDistanceFactor;// Changing this to zero, effectively disables the LOD transition slop
static F32 sLODFactor; // LOD scale factor
static F32 sDistanceFactor; // LOD distance factor
+ static LLPointer sObjectMediaClient;
+ static LLPointer sObjectMediaNavigateClient;
protected:
static S32 sNumLODChanges;
diff --git a/linden/indra/newview/pipeline.cpp b/linden/indra/newview/pipeline.cpp
index cd9b3be..61ad8b7 100644
--- a/linden/indra/newview/pipeline.cpp
+++ b/linden/indra/newview/pipeline.cpp
@@ -232,6 +232,7 @@ BOOL LLPipeline::sPickAvatar = TRUE;
BOOL LLPipeline::sDynamicLOD = TRUE;
BOOL LLPipeline::sShowHUDAttachments = TRUE;
BOOL LLPipeline::sRenderPhysicalBeacons = TRUE;
+BOOL LLPipeline::sRenderMOAPBeacons = FALSE;
BOOL LLPipeline::sRenderScriptedBeacons = FALSE;
BOOL LLPipeline::sRenderScriptedTouchBeacons = TRUE;
BOOL LLPipeline::sRenderParticleBeacons = FALSE;
@@ -2149,6 +2150,43 @@ void renderPhysicalBeacons(LLDrawable* drawablep)
}
}
+void renderMOAPBeacons(LLDrawable* drawablep)
+{
+ LLViewerObject *vobj = drawablep->getVObj();
+
+ if(!vobj || vobj->isAvatar())
+ return;
+
+ BOOL beacon=FALSE;
+ U8 tecount=vobj->getNumTEs();
+ for(int x=0;xgetTE(x)->hasMedia())
+ {
+ beacon=TRUE;
+ break;
+ }
+ }
+ if(beacon==TRUE)
+ {
+ if (gPipeline.sRenderBeacons)
+ {
+ gObjectList.addDebugBeacon(vobj->getPositionAgent(), "", LLColor4(0.f, 1.f, 0.f, 0.5f), LLColor4(1.f, 1.f, 1.f, 0.5f), gSavedSettings.getS32("DebugBeaconLineWidth"));
+ }
+
+ if (gPipeline.sRenderHighlight)
+ {
+ S32 face_id;
+ S32 count = drawablep->getNumFaces();
+ for (face_id = 0; face_id < count; face_id++)
+ {
+ gPipeline.mHighlightFaces.push_back(drawablep->getFace(face_id) );
+ }
+ }
+ }
+}
+
+
void renderParticleBeacons(LLDrawable* drawablep)
{
// Look for attachments, objects, etc.
@@ -2329,6 +2367,11 @@ void LLPipeline::postSort(LLCamera& camera)
forAllVisibleDrawables(renderPhysicalBeacons);
}
+ if(sRenderMOAPBeacons)
+ {
+ forAllVisibleDrawables(renderMOAPBeacons);
+ }
+
if (sRenderParticleBeacons)
{
forAllVisibleDrawables(renderParticleBeacons);
@@ -4563,6 +4606,24 @@ BOOL LLPipeline::getRenderScriptedTouchBeacons(void*)
}
// static
+void LLPipeline::setRenderMOAPBeacons(BOOL val)
+{
+ sRenderMOAPBeacons = val;
+}
+
+// static
+void LLPipeline::toggleRenderMOAPBeacons(void*)
+{
+ sRenderMOAPBeacons = !sRenderMOAPBeacons;
+}
+
+// static
+BOOL LLPipeline::getRenderMOAPBeacons(void*)
+{
+ return sRenderMOAPBeacons;
+}
+
+// static
void LLPipeline::setRenderPhysicalBeacons(BOOL val)
{
sRenderPhysicalBeacons = val;
diff --git a/linden/indra/newview/pipeline.h b/linden/indra/newview/pipeline.h
index c5ab7ab..254b3c1 100644
--- a/linden/indra/newview/pipeline.h
+++ b/linden/indra/newview/pipeline.h
@@ -271,6 +271,10 @@ public:
static void toggleRenderPhysicalBeacons(void* data);
static BOOL getRenderPhysicalBeacons(void* data);
+ static void setRenderMOAPBeacons(BOOL val);
+ static void toggleRenderMOAPBeacons(void * data);
+ static BOOL getRenderMOAPBeacons(void * data);
+
static void setRenderScriptedBeacons(BOOL val);
static void toggleRenderScriptedBeacons(void* data);
static BOOL getRenderScriptedBeacons(void* data);
@@ -572,6 +576,7 @@ protected:
S32 mLightingDetail;
static BOOL sRenderPhysicalBeacons;
+ static BOOL sRenderMOAPBeacons;
static BOOL sRenderScriptedTouchBeacons;
static BOOL sRenderScriptedBeacons;
static BOOL sRenderParticleBeacons;
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_beacons.xml b/linden/indra/newview/skins/default/xui/en-us/floater_beacons.xml
index e698878..2f9fc4d 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_beacons.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_beacons.xml
@@ -1,15 +1,16 @@
-
+
+
+
+
+
+
--
cgit v1.1
From a0dedb8a1f050465b4e447689672ea2845f0cd5b Mon Sep 17 00:00:00 2001
From: Robin Cornelius
Date: Sat, 1 Oct 2011 22:32:42 +0100
Subject: And actually add the new files for MOAP radar
---
linden/indra/newview/llmediadataclient.cpp | 813 +++++++++++++++++++++
linden/indra/newview/llmediadataclient.h | 341 +++++++++
linden/indra/newview/rcmoapradar.cpp | 440 +++++++++++
linden/indra/newview/rcmoapradar.h | 58 ++
.../skins/default/xui/en-us/floater_moap_radar.xml | 54 ++
5 files changed, 1706 insertions(+)
create mode 100644 linden/indra/newview/llmediadataclient.cpp
create mode 100644 linden/indra/newview/llmediadataclient.h
create mode 100644 linden/indra/newview/rcmoapradar.cpp
create mode 100644 linden/indra/newview/rcmoapradar.h
create mode 100644 linden/indra/newview/skins/default/xui/en-us/floater_moap_radar.xml
(limited to 'linden')
diff --git a/linden/indra/newview/llmediadataclient.cpp b/linden/indra/newview/llmediadataclient.cpp
new file mode 100644
index 0000000..e2fa700
--- /dev/null
+++ b/linden/indra/newview/llmediadataclient.cpp
@@ -0,0 +1,813 @@
+/**
+ * @file llmediadataclient.cpp
+ * @brief class for queueing up requests for media data
+ *
+ * $LicenseInfo:firstyear=2001&license=viewergpl$
+ *
+ * Copyright (c) 2001-2010, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlife.com/developers/opensource/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlife.com/developers/opensource/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ *
+ */
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llmediadataclient.h"
+
+#if LL_MSVC
+// disable boost::lexical_cast warning
+#pragma warning (disable:4702)
+#endif
+
+#include
+
+#include "llhttpstatuscodes.h"
+#include "llsdutil.h"
+#include "llmediaentry.h"
+#include "lltextureentry.h"
+#include "llviewerregion.h"
+
+//
+// When making a request
+// - obtain the "overall interest score" of the object.
+// This would be the sum of the impls' interest scores.
+// - put the request onto a queue sorted by this score
+// (highest score at the front of the queue)
+// - On a timer, once a second, pull off the head of the queue and send
+// the request.
+// - Any request that gets a 503 still goes through the retry logic
+//
+
+//
+// Forward decls
+//
+const F32 LLMediaDataClient::QUEUE_TIMER_DELAY = 1.0; // seconds(s)
+const F32 LLMediaDataClient::UNAVAILABLE_RETRY_TIMER_DELAY = 10.0; // secs
+const U32 LLMediaDataClient::MAX_RETRIES = 10;
+const U32 LLMediaDataClient::MAX_SORTED_QUEUE_SIZE = 10000;
+const U32 LLMediaDataClient::MAX_ROUND_ROBIN_QUEUE_SIZE = 10000;
+
+// << operators
+std::ostream& operator<<(std::ostream &s, const LLMediaDataClient::request_queue_t &q);
+std::ostream& operator<<(std::ostream &s, const LLMediaDataClient::Request &q);
+
+//////////////////////////////////////////////////////////////////////////////////////
+//
+// LLMediaDataClient
+//
+//////////////////////////////////////////////////////////////////////////////////////
+
+LLMediaDataClient::LLMediaDataClient(F32 queue_timer_delay,
+ F32 retry_timer_delay,
+ U32 max_retries,
+ U32 max_sorted_queue_size,
+ U32 max_round_robin_queue_size)
+ : mQueueTimerDelay(queue_timer_delay),
+ mRetryTimerDelay(retry_timer_delay),
+ mMaxNumRetries(max_retries),
+ mMaxSortedQueueSize(max_sorted_queue_size),
+ mMaxRoundRobinQueueSize(max_round_robin_queue_size),
+ mQueueTimerIsRunning(false),
+ mCurrentQueueIsTheSortedQueue(true)
+{
+}
+
+LLMediaDataClient::~LLMediaDataClient()
+{
+ stopQueueTimer();
+
+ // This should clear the queue, and hopefully call all the destructors.
+ LL_DEBUGS("LLMediaDataClient") << "~LLMediaDataClient destructor: queue: " <<
+ (isEmpty() ? " " : " ") << LL_ENDL;
+
+ mSortedQueue.clear();
+ mRoundRobinQueue.clear();
+}
+
+bool LLMediaDataClient::isEmpty() const
+{
+ return mSortedQueue.empty() && mRoundRobinQueue.empty();
+}
+
+bool LLMediaDataClient::isInQueue(const LLMediaDataClientObject::ptr_t &object)
+{
+ return (LLMediaDataClient::findOrRemove(mSortedQueue, object, false/*remove*/, LLMediaDataClient::Request::ANY).notNull()
+ || (LLMediaDataClient::findOrRemove(mRoundRobinQueue, object, false/*remove*/, LLMediaDataClient::Request::ANY).notNull()));
+}
+
+bool LLMediaDataClient::removeFromQueue(const LLMediaDataClientObject::ptr_t &object)
+{
+ bool removedFromSortedQueue = LLMediaDataClient::findOrRemove(mSortedQueue, object, true/*remove*/, LLMediaDataClient::Request::ANY).notNull();
+ bool removedFromRoundRobinQueue = LLMediaDataClient::findOrRemove(mRoundRobinQueue, object, true/*remove*/, LLMediaDataClient::Request::ANY).notNull();
+ return removedFromSortedQueue || removedFromRoundRobinQueue;
+}
+
+//static
+LLMediaDataClient::request_ptr_t LLMediaDataClient::findOrRemove(request_queue_t &queue, const LLMediaDataClientObject::ptr_t &obj, bool remove, LLMediaDataClient::Request::Type type)
+{
+ request_ptr_t result;
+ request_queue_t::iterator iter = queue.begin();
+ request_queue_t::iterator end = queue.end();
+ while (iter != end)
+ {
+ if (obj->getID() == (*iter)->getObject()->getID() && (type == LLMediaDataClient::Request::ANY || type == (*iter)->getType()))
+ {
+ result = *iter;
+ if (remove) queue.erase(iter);
+ break;
+ }
+ iter++;
+ }
+ return result;
+}
+
+void LLMediaDataClient::request(const LLMediaDataClientObject::ptr_t &object, const LLSD &payload)
+{
+ if (object.isNull() || ! object->hasMedia()) return;
+
+ // Push the object on the queue
+ enqueue(new Request(getCapabilityName(), payload, object, this));
+}
+
+void LLMediaDataClient::enqueue(const Request *request)
+{
+ if (request->isNew())
+ {
+ // Add to sorted queue
+ if (LLMediaDataClient::findOrRemove(mSortedQueue, request->getObject(), true/*remove*/, request->getType()).notNull())
+ {
+ LL_DEBUGS("LLMediaDataClient") << "REMOVING OLD request for " << *request << " ALREADY THERE!" << LL_ENDL;
+ }
+
+ LL_DEBUGS("LLMediaDataClient") << "Queuing SORTED request for " << *request << LL_ENDL;
+
+ // Sadly, we have to const-cast because items put into the queue are not const
+ mSortedQueue.push_back(const_cast(request));
+
+ LL_DEBUGS("LLMediaDataClientQueue") << "SORTED queue:" << mSortedQueue << LL_ENDL;
+ }
+ else {
+ if (mRoundRobinQueue.size() > mMaxRoundRobinQueueSize)
+ {
+ LL_INFOS_ONCE("LLMediaDataClient") << "RR QUEUE MAXED OUT!!!" << LL_ENDL;
+ LL_DEBUGS("LLMediaDataClient") << "Not queuing " << *request << LL_ENDL;
+ return;
+ }
+
+ // ROUND ROBIN: if it is there, and it is a GET request, leave it. If not, put at front!
+ request_ptr_t existing_request;
+ if (request->getType() == Request::GET)
+ {
+ existing_request = LLMediaDataClient::findOrRemove(mRoundRobinQueue, request->getObject(), false/*remove*/, request->getType());
+ }
+ if (existing_request.isNull())
+ {
+ LL_DEBUGS("LLMediaDataClient") << "Queuing RR request for " << *request << LL_ENDL;
+ // Push the request on the pending queue
+ // Sadly, we have to const-cast because items put into the queue are not const
+ mRoundRobinQueue.push_front(const_cast(request));
+
+ LL_DEBUGS("LLMediaDataClientQueue") << "RR queue:" << mRoundRobinQueue << LL_ENDL;
+ }
+ else
+ {
+ LL_DEBUGS("LLMediaDataClient") << "ALREADY THERE: NOT Queuing request for " << *request << LL_ENDL;
+
+ existing_request->markSent(false);
+ }
+ }
+ // Start the timer if not already running
+ startQueueTimer();
+}
+
+void LLMediaDataClient::startQueueTimer()
+{
+ if (! mQueueTimerIsRunning)
+ {
+ LL_DEBUGS("LLMediaDataClient") << "starting queue timer (delay=" << mQueueTimerDelay << " seconds)" << LL_ENDL;
+ // LLEventTimer automagically takes care of the lifetime of this object
+ new QueueTimer(mQueueTimerDelay, this);
+ }
+ else {
+ LL_DEBUGS("LLMediaDataClient") << "not starting queue timer (it's already running, right???)" << LL_ENDL;
+ }
+}
+
+void LLMediaDataClient::stopQueueTimer()
+{
+ mQueueTimerIsRunning = false;
+}
+
+bool LLMediaDataClient::processQueueTimer()
+{
+ sortQueue();
+
+ if(!isEmpty())
+ {
+ LL_DEBUGS("LLMediaDataClient") << "QueueTimer::tick() started, SORTED queue size is: " << mSortedQueue.size()
+ << ", RR queue size is: " << mRoundRobinQueue.size() << LL_ENDL;
+ LL_DEBUGS("LLMediaDataClientQueue") << "QueueTimer::tick() started, SORTED queue is: " << mSortedQueue << LL_ENDL;
+ LL_DEBUGS("LLMediaDataClientQueue") << "QueueTimer::tick() started, RR queue is: " << mRoundRobinQueue << LL_ENDL;
+ }
+
+ serviceQueue();
+
+ LL_DEBUGS("LLMediaDataClient") << "QueueTimer::tick() finished, SORTED queue size is: " << mSortedQueue.size()
+ << ", RR queue size is: " << mRoundRobinQueue.size() << LL_ENDL;
+ LL_DEBUGS("LLMediaDataClientQueue") << "QueueTimer::tick() finished, SORTED queue is: " << mSortedQueue << LL_ENDL;
+ LL_DEBUGS("LLMediaDataClientQueue") << "QueueTimer::tick() finished, RR queue is: " << mRoundRobinQueue << LL_ENDL;
+
+ return isEmpty();
+}
+
+void LLMediaDataClient::sortQueue()
+{
+ if(!mSortedQueue.empty())
+ {
+ // Score all items first
+ request_queue_t::iterator iter = mSortedQueue.begin();
+ request_queue_t::iterator end = mSortedQueue.end();
+ while (iter != end)
+ {
+ (*iter)->updateScore();
+ iter++;
+ }
+
+ // Re-sort the list...
+ // NOTE: should this be a stable_sort? If so we need to change to using a vector.
+ mSortedQueue.sort(LLMediaDataClient::compareRequests);
+
+ // ...then cull items over the max
+ U32 size = mSortedQueue.size();
+ if (size > mMaxSortedQueueSize)
+ {
+ U32 num_to_cull = (size - mMaxSortedQueueSize);
+ LL_INFOS_ONCE("LLMediaDataClient") << "sorted queue MAXED OUT! Culling "
+ << num_to_cull << " items" << LL_ENDL;
+ while (num_to_cull-- > 0)
+ {
+ mSortedQueue.pop_back();
+ }
+ }
+ }
+}
+
+// static
+bool LLMediaDataClient::compareRequests(const request_ptr_t &o1, const request_ptr_t &o2)
+{
+ if (o2.isNull()) return true;
+ if (o1.isNull()) return false;
+ return ( o1->getScore() > o2->getScore() );
+}
+
+void LLMediaDataClient::serviceQueue()
+{
+ request_queue_t *queue_p = getCurrentQueue();
+
+ // quick retry loop for cases where we shouldn't wait for the next timer tick
+ while(true)
+ {
+ if (queue_p->empty())
+ {
+ LL_DEBUGS("LLMediaDataClient") << "queue empty: " << (*queue_p) << LL_ENDL;
+ break;
+ }
+
+ // Peel one off of the items from the queue, and execute request
+ request_ptr_t request = queue_p->front();
+ llassert(!request.isNull());
+ const LLMediaDataClientObject *object = (request.isNull()) ? NULL : request->getObject();
+ llassert(NULL != object);
+
+ // Check for conditions that would make us just pop and rapidly loop through
+ // the queue.
+ if(request.isNull() ||
+ request->isMarkedSent() ||
+ NULL == object ||
+ object->isDead() ||
+ !object->hasMedia())
+ {
+ if (request.isNull())
+ {
+ LL_WARNS("LLMediaDataClient") << "Skipping NULL request" << LL_ENDL;
+ }
+ else {
+ LL_INFOS("LLMediaDataClient") << "Skipping : " << *request << " "
+ << ((request->isMarkedSent()) ? " request is marked sent" :
+ ((NULL == object) ? " object is NULL " :
+ ((object->isDead()) ? "object is dead" :
+ ((!object->hasMedia()) ? "object has no media!" : "BADNESS!")))) << LL_ENDL;
+ }
+ queue_p->pop_front();
+ continue; // jump back to the start of the quick retry loop
+ }
+
+ // Next, ask if this is "interesting enough" to fetch. If not, just stop
+ // and wait for the next timer go-round. Only do this for the sorted
+ // queue.
+ if (mCurrentQueueIsTheSortedQueue && !object->isInterestingEnough())
+ {
+ LL_DEBUGS("LLMediaDataClient") << "Not fetching " << *request << ": not interesting enough" << LL_ENDL;
+ break;
+ }
+
+ // Finally, try to send the HTTP message to the cap url
+ std::string url = request->getCapability();
+ bool maybe_retry = false;
+ if (!url.empty())
+ {
+ const LLSD &sd_payload = request->getPayload();
+ LL_INFOS("LLMediaDataClient") << "Sending request for " << *request << LL_ENDL;
+
+ // Call the subclass for creating the responder
+ LLHTTPClient::post(url, sd_payload, createResponder(request));
+ }
+ else {
+ LL_INFOS("LLMediaDataClient") << "NOT Sending request for " << *request << ": empty cap url!" << LL_ENDL;
+ maybe_retry = true;
+ }
+
+ bool exceeded_retries = request->getRetryCount() > mMaxNumRetries;
+ if (maybe_retry && ! exceeded_retries) // Try N times before giving up
+ {
+ // We got an empty cap, but in that case we will retry again next
+ // timer fire.
+ request->incRetryCount();
+ }
+ else {
+ if (exceeded_retries)
+ {
+ LL_WARNS("LLMediaDataClient") << "Could not send request " << *request << " for "
+ << mMaxNumRetries << " tries...popping object id " << object->getID() << LL_ENDL;
+ // XXX Should we bring up a warning dialog??
+ }
+
+ queue_p->pop_front();
+
+ if (! mCurrentQueueIsTheSortedQueue) {
+ // Round robin
+ request->markSent(true);
+ mRoundRobinQueue.push_back(request);
+ }
+ }
+
+ // end of quick loop -- any cases where we want to loop will use 'continue' to jump back to the start.
+ break;
+ }
+
+ swapCurrentQueue();
+}
+
+void LLMediaDataClient::swapCurrentQueue()
+{
+ // Swap
+ mCurrentQueueIsTheSortedQueue = !mCurrentQueueIsTheSortedQueue;
+ // If its empty, swap back
+ if (getCurrentQueue()->empty())
+ {
+ mCurrentQueueIsTheSortedQueue = !mCurrentQueueIsTheSortedQueue;
+ }
+}
+
+LLMediaDataClient::request_queue_t *LLMediaDataClient::getCurrentQueue()
+{
+ return (mCurrentQueueIsTheSortedQueue) ? &mSortedQueue : &mRoundRobinQueue;
+}
+
+// dump the queue
+std::ostream& operator<<(std::ostream &s, const LLMediaDataClient::request_queue_t &q)
+{
+ int i = 0;
+ LLMediaDataClient::request_queue_t::const_iterator iter = q.begin();
+ LLMediaDataClient::request_queue_t::const_iterator end = q.end();
+ while (iter != end)
+ {
+ s << "\t" << i << "]: " << (*iter)->getObject()->getID().asString() << "(" << (*iter)->getObject()->getMediaInterest() << ")";
+ iter++;
+ i++;
+ }
+ return s;
+}
+
+//////////////////////////////////////////////////////////////////////////////////////
+//
+// LLMediaDataClient::QueueTimer
+// Queue of LLMediaDataClientObject smart pointers to request media for.
+//
+//////////////////////////////////////////////////////////////////////////////////////
+
+LLMediaDataClient::QueueTimer::QueueTimer(F32 time, LLMediaDataClient *mdc)
+: LLEventTimer(time), mMDC(mdc)
+{
+ mMDC->setIsRunning(true);
+}
+
+LLMediaDataClient::QueueTimer::~QueueTimer()
+{
+ LL_DEBUGS("LLMediaDataClient") << "~QueueTimer" << LL_ENDL;
+ mMDC->setIsRunning(false);
+ mMDC = NULL;
+}
+
+// virtual
+BOOL LLMediaDataClient::QueueTimer::tick()
+{
+ if (mMDC.isNull()) return TRUE;
+ return mMDC->processQueueTimer();
+}
+
+
+//////////////////////////////////////////////////////////////////////////////////////
+//
+// LLMediaDataClient::Responder::RetryTimer
+//
+//////////////////////////////////////////////////////////////////////////////////////
+
+LLMediaDataClient::Responder::RetryTimer::RetryTimer(F32 time, Responder *mdr)
+: LLEventTimer(time), mResponder(mdr)
+{
+}
+
+// virtual
+LLMediaDataClient::Responder::RetryTimer::~RetryTimer()
+{
+ LL_DEBUGS("LLMediaDataClient") << "~RetryTimer" << *(mResponder->getRequest()) << LL_ENDL;
+
+ // XXX This is weird: Instead of doing the work in tick() (which re-schedules
+ // a timer, which might be risky), do it here, in the destructor. Yes, it is very odd.
+ // Instead of retrying, we just put the request back onto the queue
+ LL_INFOS("LLMediaDataClient") << "RetryTimer fired for: " << *(mResponder->getRequest()) << " retrying" << LL_ENDL;
+ mResponder->getRequest()->reEnqueue();
+
+ // Release the ref to the responder.
+ mResponder = NULL;
+}
+
+// virtual
+BOOL LLMediaDataClient::Responder::RetryTimer::tick()
+{
+ // Don't fire again
+ return TRUE;
+}
+
+
+//////////////////////////////////////////////////////////////////////////////////////
+//
+// LLMediaDataClient::Request
+//
+//////////////////////////////////////////////////////////////////////////////////////
+/*static*/U32 LLMediaDataClient::Request::sNum = 0;
+
+LLMediaDataClient::Request::Request(const char *cap_name,
+ const LLSD& sd_payload,
+ LLMediaDataClientObject *obj,
+ LLMediaDataClient *mdc)
+: mCapName(cap_name),
+ mPayload(sd_payload),
+ mObject(obj),
+ mNum(++sNum),
+ mRetryCount(0),
+ mMDC(mdc),
+ mMarkedSent(false),
+ mScore((F64)0.0)
+{
+}
+
+LLMediaDataClient::Request::~Request()
+{
+ LL_DEBUGS("LLMediaDataClient") << "~Request" << (*this) << LL_ENDL;
+ mMDC = NULL;
+ mObject = NULL;
+}
+
+
+std::string LLMediaDataClient::Request::getCapability() const
+{
+ return getObject()->getCapabilityUrl(getCapName());
+}
+
+// Helper function to get the "type" of request, which just pokes around to
+// discover it.
+LLMediaDataClient::Request::Type LLMediaDataClient::Request::getType() const
+{
+ if (0 == strcmp(mCapName, "ObjectMediaNavigate"))
+ {
+ return NAVIGATE;
+ }
+ else if (0 == strcmp(mCapName, "ObjectMedia"))
+ {
+ const std::string &verb = mPayload["verb"];
+ if (verb == "GET")
+ {
+ return GET;
+ }
+ else if (verb == "UPDATE")
+ {
+ return UPDATE;
+ }
+ }
+ llassert(false);
+ return GET;
+}
+
+const char *LLMediaDataClient::Request::getTypeAsString() const
+{
+ Type t = getType();
+ switch (t)
+ {
+ case GET:
+ return "GET";
+ break;
+ case UPDATE:
+ return "UPDATE";
+ break;
+ case NAVIGATE:
+ return "NAVIGATE";
+ break;
+ case ANY:
+ return "ANY";
+ break;
+ }
+ return "";
+}
+
+
+void LLMediaDataClient::Request::reEnqueue() const
+{
+ // I sure hope this doesn't deref a bad pointer:
+ mMDC->enqueue(this);
+}
+
+F32 LLMediaDataClient::Request::getRetryTimerDelay() const
+{
+ return (mMDC == NULL) ? LLMediaDataClient::UNAVAILABLE_RETRY_TIMER_DELAY :
+ mMDC->mRetryTimerDelay;
+}
+
+U32 LLMediaDataClient::Request::getMaxNumRetries() const
+{
+ return (mMDC == NULL) ? LLMediaDataClient::MAX_RETRIES : mMDC->mMaxNumRetries;
+}
+
+void LLMediaDataClient::Request::markSent(bool flag)
+{
+ if (mMarkedSent != flag)
+ {
+ mMarkedSent = flag;
+ if (!mMarkedSent)
+ {
+ mNum = ++sNum;
+ }
+ }
+}
+
+void LLMediaDataClient::Request::updateScore()
+{
+ F64 tmp = mObject->getMediaInterest();
+ if (tmp != mScore)
+ {
+ LL_DEBUGS("LLMediaDataClient") << "Score for " << mObject->getID() << " changed from " << mScore << " to " << tmp << LL_ENDL;
+ mScore = tmp;
+ }
+}
+
+std::ostream& operator<<(std::ostream &s, const LLMediaDataClient::Request &r)
+{
+ s << "request: num=" << r.getNum()
+ << " type=" << r.getTypeAsString()
+ << " ID=" << r.getObject()->getID()
+ << " #retries=" << r.getRetryCount();
+ return s;
+}
+
+
+//////////////////////////////////////////////////////////////////////////////////////
+//
+// LLMediaDataClient::Responder
+//
+//////////////////////////////////////////////////////////////////////////////////////
+
+LLMediaDataClient::Responder::Responder(const request_ptr_t &request)
+: mRequest(request)
+{
+}
+
+LLMediaDataClient::Responder::~Responder()
+{
+ LL_DEBUGS("LLMediaDataClient") << "~Responder" << *(getRequest()) << LL_ENDL;
+ mRequest = NULL;
+}
+
+/*virtual*/
+void LLMediaDataClient::Responder::error(U32 status, const std::string& reason)
+{
+ if (status == HTTP_SERVICE_UNAVAILABLE)
+ {
+ F32 retry_timeout = mRequest->getRetryTimerDelay();
+
+ mRequest->incRetryCount();
+
+ if (mRequest->getRetryCount() < mRequest->getMaxNumRetries())
+ {
+ LL_INFOS("LLMediaDataClient") << *mRequest << " got SERVICE_UNAVAILABLE...retrying in " << retry_timeout << " seconds" << LL_ENDL;
+
+ // Start timer (instances are automagically tracked by
+ // InstanceTracker<> and LLEventTimer)
+ new RetryTimer(F32(retry_timeout/*secs*/), this);
+ }
+ else {
+ LL_INFOS("LLMediaDataClient") << *mRequest << " got SERVICE_UNAVAILABLE...retry count "
+ << mRequest->getRetryCount() << " exceeds " << mRequest->getMaxNumRetries() << ", not retrying" << LL_ENDL;
+ }
+ }
+ else {
+ std::string msg = boost::lexical_cast(status) + ": " + reason;
+ LL_WARNS("LLMediaDataClient") << *mRequest << " http error(" << msg << ")" << LL_ENDL;
+ }
+}
+
+/*virtual*/
+void LLMediaDataClient::Responder::result(const LLSD& content)
+{
+ LL_DEBUGS("LLMediaDataClientResponse") << *mRequest << " result : " << ll_print_sd(content) << LL_ENDL;
+}
+
+//////////////////////////////////////////////////////////////////////////////////////
+//
+// LLObjectMediaDataClient
+// Subclass of LLMediaDataClient for the ObjectMedia cap
+//
+//////////////////////////////////////////////////////////////////////////////////////
+
+LLMediaDataClient::Responder *LLObjectMediaDataClient::createResponder(const request_ptr_t &request) const
+{
+ return new LLObjectMediaDataClient::Responder(request);
+}
+
+const char *LLObjectMediaDataClient::getCapabilityName() const
+{
+ return "ObjectMedia";
+}
+
+void LLObjectMediaDataClient::fetchMedia(LLMediaDataClientObject *object)
+{
+ LLSD sd_payload;
+ sd_payload["verb"] = "GET";
+ sd_payload[LLTextureEntry::OBJECT_ID_KEY] = object->getID();
+ request(object, sd_payload);
+}
+
+void LLObjectMediaDataClient::updateMedia(LLMediaDataClientObject *object)
+{
+ LLSD sd_payload;
+ sd_payload["verb"] = "UPDATE";
+ sd_payload[LLTextureEntry::OBJECT_ID_KEY] = object->getID();
+ LLSD object_media_data;
+ int i = 0;
+ int end = object->getMediaDataCount();
+ for ( ; i < end ; ++i)
+ {
+ object_media_data.append(object->getMediaDataLLSD(i));
+ }
+ sd_payload[LLTextureEntry::OBJECT_MEDIA_DATA_KEY] = object_media_data;
+
+ LL_DEBUGS("LLMediaDataClient") << "update media data: " << object->getID() << " " << ll_print_sd(sd_payload) << LL_ENDL;
+
+ request(object, sd_payload);
+}
+
+/*virtual*/
+void LLObjectMediaDataClient::Responder::result(const LLSD& content)
+{
+ const LLMediaDataClient::Request::Type type = getRequest()->getType();
+ llassert(type == LLMediaDataClient::Request::GET || type == LLMediaDataClient::Request::UPDATE)
+ if (type == LLMediaDataClient::Request::GET)
+ {
+ LL_DEBUGS("LLMediaDataClientResponse") << *(getRequest()) << " GET returned: " << ll_print_sd(content) << LL_ENDL;
+
+ // Look for an error
+ if (content.has("error"))
+ {
+ const LLSD &error = content["error"];
+ LL_WARNS("LLMediaDataClient") << *(getRequest()) << " Error getting media data for object: code=" <<
+ error["code"].asString() << ": " << error["message"].asString() << LL_ENDL;
+
+ // XXX Warn user?
+ }
+ else {
+ // Check the data
+ const LLUUID &object_id = content[LLTextureEntry::OBJECT_ID_KEY];
+ if (object_id != getRequest()->getObject()->getID())
+ {
+ // NOT good, wrong object id!!
+ LL_WARNS("LLMediaDataClient") << *(getRequest()) << " DROPPING response with wrong object id (" << object_id << ")" << LL_ENDL;
+ return;
+ }
+
+ // Otherwise, update with object media data
+ getRequest()->getObject()->updateObjectMediaData(content[LLTextureEntry::OBJECT_MEDIA_DATA_KEY],
+ content[LLTextureEntry::MEDIA_VERSION_KEY]);
+ }
+ }
+ else if (type == LLMediaDataClient::Request::UPDATE)
+ {
+ // just do what our superclass does
+ LLMediaDataClient::Responder::result(content);
+ }
+}
+
+//////////////////////////////////////////////////////////////////////////////////////
+//
+// LLObjectMediaNavigateClient
+// Subclass of LLMediaDataClient for the ObjectMediaNavigate cap
+//
+//////////////////////////////////////////////////////////////////////////////////////
+LLMediaDataClient::Responder *LLObjectMediaNavigateClient::createResponder(const request_ptr_t &request) const
+{
+ return new LLObjectMediaNavigateClient::Responder(request);
+}
+
+const char *LLObjectMediaNavigateClient::getCapabilityName() const
+{
+ return "ObjectMediaNavigate";
+}
+
+void LLObjectMediaNavigateClient::navigate(LLMediaDataClientObject *object, U8 texture_index, const std::string &url)
+{
+ LLSD sd_payload;
+ sd_payload[LLTextureEntry::OBJECT_ID_KEY] = object->getID();
+ sd_payload[LLMediaEntry::CURRENT_URL_KEY] = url;
+ sd_payload[LLTextureEntry::TEXTURE_INDEX_KEY] = (LLSD::Integer)texture_index;
+
+ LL_INFOS("LLMediaDataClient") << "navigate() initiated: " << ll_print_sd(sd_payload) << LL_ENDL;
+
+ request(object, sd_payload);
+}
+
+/*virtual*/
+void LLObjectMediaNavigateClient::Responder::error(U32 status, const std::string& reason)
+{
+ // Bounce back (unless HTTP_SERVICE_UNAVAILABLE, in which case call base
+ // class
+ if (status == HTTP_SERVICE_UNAVAILABLE)
+ {
+ LLMediaDataClient::Responder::error(status, reason);
+ }
+ else {
+ // bounce the face back
+ LL_WARNS("LLMediaDataClient") << *(getRequest()) << " Error navigating: http code=" << status << LL_ENDL;
+ const LLSD &payload = getRequest()->getPayload();
+ // bounce the face back
+ getRequest()->getObject()->mediaNavigateBounceBack((LLSD::Integer)payload[LLTextureEntry::TEXTURE_INDEX_KEY]);
+ }
+}
+
+/*virtual*/
+void LLObjectMediaNavigateClient::Responder::result(const LLSD& content)
+{
+ LL_INFOS("LLMediaDataClient") << *(getRequest()) << " NAVIGATE returned " << ll_print_sd(content) << LL_ENDL;
+
+ if (content.has("error"))
+ {
+ const LLSD &error = content["error"];
+ int error_code = error["code"];
+
+ if (ERROR_PERMISSION_DENIED_CODE == error_code)
+ {
+ LL_WARNS("LLMediaDataClient") << *(getRequest()) << " Navigation denied: bounce back" << LL_ENDL;
+ const LLSD &payload = getRequest()->getPayload();
+ // bounce the face back
+ getRequest()->getObject()->mediaNavigateBounceBack((LLSD::Integer)payload[LLTextureEntry::TEXTURE_INDEX_KEY]);
+ }
+ else {
+ LL_WARNS("LLMediaDataClient") << *(getRequest()) << " Error navigating: code=" <<
+ error["code"].asString() << ": " << error["message"].asString() << LL_ENDL;
+ }
+ // XXX Warn user?
+ }
+ else {
+ // just do what our superclass does
+ LLMediaDataClient::Responder::result(content);
+ }
+}
diff --git a/linden/indra/newview/llmediadataclient.h b/linden/indra/newview/llmediadataclient.h
new file mode 100644
index 0000000..0ed7c57
--- /dev/null
+++ b/linden/indra/newview/llmediadataclient.h
@@ -0,0 +1,341 @@
+/**
+ * @file llmediadataclient.h
+ * @brief class for queueing up requests to the media service
+ *
+ * $LicenseInfo:firstyear=2007&license=viewergpl$
+ *
+ * Copyright (c) 2007-2010, Linden Research, Inc.
+ *
+ * Second Life Viewer Source Code
+ * The source code in this file ("Source Code") is provided by Linden Lab
+ * to you under the terms of the GNU General Public License, version 2.0
+ * ("GPL"), unless you have obtained a separate licensing agreement
+ * ("Other License"), formally executed by you and Linden Lab. Terms of
+ * the GPL can be found in doc/GPL-license.txt in this distribution, or
+ * online at http://secondlife.com/developers/opensource/gplv2
+ *
+ * There are special exceptions to the terms and conditions of the GPL as
+ * it is applied to this Source Code. View the full text of the exception
+ * in the file doc/FLOSS-exception.txt in this software distribution, or
+ * online at
+ * http://secondlife.com/developers/opensource/flossexception
+ *
+ * By copying, modifying or distributing this software, you acknowledge
+ * that you have read and understood your obligations described above,
+ * and agree to abide by those obligations.
+ *
+ * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+ * COMPLETENESS OR PERFORMANCE.
+ * $/LicenseInfo$
+ *
+ */
+
+#ifndef LL_LLMEDIADATACLIENT_H
+#define LL_LLMEDIADATACLIENT_H
+
+#include "llhttpclient.h"
+#include
+//#include "llrefcount.h"
+//#include "llpointer.h"
+//#include "lleventtimer.h"
+
+
+// Link seam for LLVOVolume
+class LLMediaDataClientObject : public LLRefCount
+{
+public:
+ // Get the number of media data items
+ virtual U8 getMediaDataCount() const = 0;
+ // Get the media data at index, as an LLSD
+ virtual LLSD getMediaDataLLSD(U8 index) const = 0;
+ // Get this object's UUID
+ virtual LLUUID getID() const = 0;
+ // Navigate back to previous URL
+ virtual void mediaNavigateBounceBack(U8 index) = 0;
+ // Does this object have media?
+ virtual bool hasMedia() const = 0;
+ // Update the object's media data to the given array
+ virtual void updateObjectMediaData(LLSD const &media_data_array, const std::string &version_string) = 0;
+ // Return the total "interest" of the media (on-screen area)
+ virtual F64 getMediaInterest() const = 0;
+ // Return the given cap url
+ virtual std::string getCapabilityUrl(const std::string &name) const = 0;
+ // Return whether the object has been marked dead
+ virtual bool isDead() const = 0;
+ // Returns a media version number for the object
+ virtual U32 getMediaVersion() const = 0;
+ // Returns whether the object is "interesting enough" to fetch
+ virtual bool isInterestingEnough() const = 0;
+ // Returns whether we've seen this object yet or not
+ virtual bool isNew() const = 0;
+
+ // smart pointer
+ typedef LLPointer ptr_t;
+};
+
+// This object creates a priority queue for requests.
+// Abstracts the Cap URL, the request, and the responder
+class LLMediaDataClient : public LLRefCount
+{
+public:
+ LOG_CLASS(LLMediaDataClient);
+
+ const static F32 QUEUE_TIMER_DELAY;// = 1.0; // seconds(s)
+ const static F32 UNAVAILABLE_RETRY_TIMER_DELAY;// = 5.0; // secs
+ const static U32 MAX_RETRIES;// = 4;
+ const static U32 MAX_SORTED_QUEUE_SIZE;// = 10000;
+ const static U32 MAX_ROUND_ROBIN_QUEUE_SIZE;// = 10000;
+
+ // Constructor
+ LLMediaDataClient(F32 queue_timer_delay = QUEUE_TIMER_DELAY,
+ F32 retry_timer_delay = UNAVAILABLE_RETRY_TIMER_DELAY,
+ U32 max_retries = MAX_RETRIES,
+ U32 max_sorted_queue_size = MAX_SORTED_QUEUE_SIZE,
+ U32 max_round_robin_queue_size = MAX_ROUND_ROBIN_QUEUE_SIZE);
+
+ // Make the request
+ void request(const LLMediaDataClientObject::ptr_t &object, const LLSD &payload);
+
+ F32 getRetryTimerDelay() const { return mRetryTimerDelay; }
+
+ // Returns true iff the queue is empty
+ bool isEmpty() const;
+
+ // Returns true iff the given object is in the queue
+ bool isInQueue(const LLMediaDataClientObject::ptr_t &object);
+
+ // Remove the given object from the queue. Returns true iff the given object is removed.
+ bool removeFromQueue(const LLMediaDataClientObject::ptr_t &object);
+
+ // Called only by the Queue timer and tests (potentially)
+ bool processQueueTimer();
+
+protected:
+ // Destructor
+ virtual ~LLMediaDataClient(); // use unref
+
+ // Request
+ class Request : public LLRefCount
+ {
+ public:
+ enum Type {
+ GET,
+ UPDATE,
+ NAVIGATE,
+ ANY
+ };
+
+ Request(const char *cap_name, const LLSD& sd_payload, LLMediaDataClientObject *obj, LLMediaDataClient *mdc);
+ const char *getCapName() const { return mCapName; }
+ const LLSD &getPayload() const { return mPayload; }
+ LLMediaDataClientObject *getObject() const { return mObject; }
+
+ U32 getNum() const { return mNum; }
+
+ U32 getRetryCount() const { return mRetryCount; }
+ void incRetryCount() { mRetryCount++; }
+
+ // Note: may return empty string!
+ std::string getCapability() const;
+
+ Type getType() const;
+ const char *getTypeAsString() const;
+
+ // Re-enqueue thyself
+ void reEnqueue() const;
+
+ F32 getRetryTimerDelay() const;
+ U32 getMaxNumRetries() const;
+
+ bool isNew() const { return mObject.notNull() ? mObject->isNew() : false; }
+ void markSent(bool flag);
+ bool isMarkedSent() const { return mMarkedSent; }
+ void updateScore();
+ F64 getScore() const { return mScore; }
+
+ public:
+ friend std::ostream& operator<<(std::ostream &s, const Request &q);
+
+ protected:
+ virtual ~Request(); // use unref();
+
+ private:
+ const char *mCapName;
+ LLSD mPayload;
+ LLMediaDataClientObject::ptr_t mObject;
+ // Simple tracking
+ U32 mNum;
+ static U32 sNum;
+ U32 mRetryCount;
+ F64 mScore;
+ bool mMarkedSent;
+
+ // Back pointer to the MDC...not a ref!
+ LLMediaDataClient *mMDC;
+ };
+ typedef LLPointer request_ptr_t;
+
+ // Responder
+ class Responder : public LLHTTPClient::Responder
+ {
+ public:
+ Responder(const request_ptr_t &request);
+ //If we get back an error (not found, etc...), handle it here
+ virtual void error(U32 status, const std::string& reason);
+ //If we get back a normal response, handle it here. Default just logs it.
+ virtual void result(const LLSD& content);
+
+ const request_ptr_t &getRequest() const { return mRequest; }
+
+ protected:
+ virtual ~Responder();
+
+ private:
+
+ class RetryTimer : public LLEventTimer
+ {
+ public:
+ RetryTimer(F32 time, Responder *);
+ virtual ~RetryTimer();
+ virtual BOOL tick();
+ private:
+ // back-pointer
+ boost::intrusive_ptr mResponder;
+ };
+
+ request_ptr_t mRequest;
+ };
+
+protected:
+
+ // Subclasses must override this factory method to return a new responder
+ virtual Responder *createResponder(const request_ptr_t &request) const = 0;
+
+ // Subclasses must override to return a cap name
+ virtual const char *getCapabilityName() const = 0;
+
+ virtual void sortQueue();
+ virtual void serviceQueue();
+
+private:
+ typedef std::list request_queue_t;
+
+ void enqueue(const Request*);
+
+ // Return whether the given object is/was in the queue
+ static LLMediaDataClient::request_ptr_t findOrRemove(request_queue_t &queue, const LLMediaDataClientObject::ptr_t &obj, bool remove, Request::Type type);
+
+ // Comparator for sorting
+ static bool compareRequests(const request_ptr_t &o1, const request_ptr_t &o2);
+ static F64 getObjectScore(const LLMediaDataClientObject::ptr_t &obj);
+
+ friend std::ostream& operator<<(std::ostream &s, const Request &q);
+ friend std::ostream& operator<<(std::ostream &s, const request_queue_t &q);
+
+ class QueueTimer : public LLEventTimer
+ {
+ public:
+ QueueTimer(F32 time, LLMediaDataClient *mdc);
+ virtual BOOL tick();
+ protected:
+ virtual ~QueueTimer();
+ private:
+ // back-pointer
+ LLPointer mMDC;
+ };
+
+ void startQueueTimer();
+ void stopQueueTimer();
+ void setIsRunning(bool val) { mQueueTimerIsRunning = val; }
+
+ void swapCurrentQueue();
+ request_queue_t *getCurrentQueue();
+
+ const F32 mQueueTimerDelay;
+ const F32 mRetryTimerDelay;
+ const U32 mMaxNumRetries;
+ const U32 mMaxSortedQueueSize;
+ const U32 mMaxRoundRobinQueueSize;
+
+ bool mQueueTimerIsRunning;
+
+ request_queue_t mSortedQueue;
+ request_queue_t mRoundRobinQueue;
+ bool mCurrentQueueIsTheSortedQueue;
+};
+
+
+// MediaDataClient specific for the ObjectMedia cap
+class LLObjectMediaDataClient : public LLMediaDataClient
+{
+public:
+ LLObjectMediaDataClient(F32 queue_timer_delay = QUEUE_TIMER_DELAY,
+ F32 retry_timer_delay = UNAVAILABLE_RETRY_TIMER_DELAY,
+ U32 max_retries = MAX_RETRIES,
+ U32 max_sorted_queue_size = MAX_SORTED_QUEUE_SIZE,
+ U32 max_round_robin_queue_size = MAX_ROUND_ROBIN_QUEUE_SIZE)
+ : LLMediaDataClient(queue_timer_delay, retry_timer_delay, max_retries)
+ {}
+ virtual ~LLObjectMediaDataClient() {}
+
+ void fetchMedia(LLMediaDataClientObject *object);
+ void updateMedia(LLMediaDataClientObject *object);
+
+protected:
+ // Subclasses must override this factory method to return a new responder
+ virtual Responder *createResponder(const request_ptr_t &request) const;
+
+ // Subclasses must override to return a cap name
+ virtual const char *getCapabilityName() const;
+
+ class Responder : public LLMediaDataClient::Responder
+ {
+ public:
+ Responder(const request_ptr_t &request)
+ : LLMediaDataClient::Responder(request) {}
+ virtual void result(const LLSD &content);
+ };
+};
+
+
+// MediaDataClient specific for the ObjectMediaNavigate cap
+class LLObjectMediaNavigateClient : public LLMediaDataClient
+{
+public:
+ // NOTE: from llmediaservice.h
+ static const int ERROR_PERMISSION_DENIED_CODE = 8002;
+
+ LLObjectMediaNavigateClient(F32 queue_timer_delay = QUEUE_TIMER_DELAY,
+ F32 retry_timer_delay = UNAVAILABLE_RETRY_TIMER_DELAY,
+ U32 max_retries = MAX_RETRIES,
+ U32 max_sorted_queue_size = MAX_SORTED_QUEUE_SIZE,
+ U32 max_round_robin_queue_size = MAX_ROUND_ROBIN_QUEUE_SIZE)
+ : LLMediaDataClient(queue_timer_delay, retry_timer_delay, max_retries)
+ {}
+ virtual ~LLObjectMediaNavigateClient() {}
+
+ void navigate(LLMediaDataClientObject *object, U8 texture_index, const std::string &url);
+
+protected:
+ // Subclasses must override this factory method to return a new responder
+ virtual Responder *createResponder(const request_ptr_t &request) const;
+
+ // Subclasses must override to return a cap name
+ virtual const char *getCapabilityName() const;
+
+ class Responder : public LLMediaDataClient::Responder
+ {
+ public:
+ Responder(const request_ptr_t &request)
+ : LLMediaDataClient::Responder(request) {}
+ virtual void error(U32 status, const std::string& reason);
+ virtual void result(const LLSD &content);
+ private:
+ void mediaNavigateBounceBack();
+ };
+
+};
+
+
+#endif // LL_LLMEDIADATACLIENT_H
diff --git a/linden/indra/newview/rcmoapradar.cpp b/linden/indra/newview/rcmoapradar.cpp
new file mode 100644
index 0000000..f0593ef
--- /dev/null
+++ b/linden/indra/newview/rcmoapradar.cpp
@@ -0,0 +1,440 @@
+// MOAP Radar
+// Robin Cornelius
+
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llavatarconstants.h"
+#include "llfloateravatarlist.h"
+
+#include "lluictrlfactory.h"
+#include "llviewerwindow.h"
+#include "llscrolllistctrl.h"
+#include "llradiogroup.h"
+#include "llviewercontrol.h"
+#include "llbutton.h"
+
+#include "llvoavatar.h"
+#include "llimview.h"
+#include "rcmoapradar.h"
+#include "llregionflags.h"
+#include "llfloaterreporter.h"
+#include "llagent.h"
+#include "llviewerregion.h"
+#include "lltracker.h"
+#include "llviewerstats.h"
+#include "llerror.h"
+#include "llchat.h"
+#include "llfloaterchat.h"
+#include "llviewermessage.h"
+#include "llweb.h"
+#include "llviewerobjectlist.h"
+#include "llmutelist.h"
+#include "llcallbacklist.h"
+#include "llmediaentry.h"
+
+#include
+#include
+
+#include
+
+#include "llworld.h"
+
+#include "llsdutil.h"
+
+LLFloaterMOAPRadar* LLFloaterMOAPRadar::sInstance = NULL;
+
+LLFloaterMOAPRadar::LLFloaterMOAPRadar() : LLFloater(std::string("MOAPradar"))
+{
+ llassert_always(sInstance == NULL);
+ sInstance = this;
+ mUpdateRate = gSavedSettings.getU32("MOAPRadarUpdateRate") * 3 + 3;
+ mTrackingRunning=false;
+}
+
+LLFloaterMOAPRadar::~LLFloaterMOAPRadar()
+{
+ gIdleCallbacks.deleteFunction(LLFloaterMOAPRadar::callbackIdle);
+ sInstance = NULL;
+}
+
+//static
+void LLFloaterMOAPRadar::toggle(void*)
+{
+ if (sInstance)
+ {
+ if (sInstance->getVisible())
+ {
+ sInstance->close(false);
+ }
+ else
+ {
+ sInstance->open();
+ }
+ }
+ else
+ {
+ showInstance();
+ }
+}
+
+//static
+void LLFloaterMOAPRadar::showInstance()
+{
+ if (sInstance)
+ {
+ if (!sInstance->getVisible())
+ {
+ sInstance->open();
+ }
+ }
+ else
+ {
+ sInstance = new LLFloaterMOAPRadar();
+ LLUICtrlFactory::getInstance()->buildFloater(sInstance, "floater_moap_radar.xml");
+ }
+}
+
+void LLFloaterMOAPRadar::draw()
+{
+ LLFloater::draw();
+}
+
+void LLFloaterMOAPRadar::onOpen()
+{
+ gSavedSettings.setBOOL("ShowMOAPRadar", TRUE);
+ sInstance->setVisible(TRUE);
+}
+
+void LLFloaterMOAPRadar::onClose(bool app_quitting)
+{
+ sInstance->setVisible(FALSE);
+ if (!app_quitting)
+ {
+ gSavedSettings.setBOOL("ShowMOAPRadar", FALSE);
+ }
+ if (!gSavedSettings.getBOOL("MOAPRadarKeepOpen") || app_quitting)
+ {
+ destroy();
+ }
+}
+
+
+BOOL LLFloaterMOAPRadar::postBuild()
+{
+
+ mMOAPList = getChild("moap_list");
+ mMOAPList->sortByColumn("distance", TRUE);
+
+ mTrackBtn = getChild("track_btn");
+ mTrackBtn->setLabel(LLStringExplicit("Track"));
+
+ childSetAction("open_btn", onClickOpen, this);
+ childSetAction("track_btn", onClickTrack, this);
+ childSetAction("copy_btn", onClickCopy, this);
+
+ mMOAPList->setCommitOnSelectionChange(TRUE);
+ childSetCommitCallback("moap_list", onSelectMOAP, this);
+
+ gIdleCallbacks.addFunction(LLFloaterMOAPRadar::callbackIdle);
+
+ return TRUE;
+}
+
+//static
+void LLFloaterMOAPRadar::callbackIdle(void *userdata) {
+ if (LLFloaterMOAPRadar::sInstance != NULL)
+ {
+ // Do not update at every frame: this would be insane !
+ if (gFrameCount % LLFloaterMOAPRadar::sInstance->mUpdateRate == 0)
+ {
+ LLFloaterMOAPRadar::sInstance->updateMOAPList();
+ }
+ }
+}
+
+
+void LLFloaterMOAPRadar::updateMOAPList()
+{
+ if (sInstance != this) return;
+
+ mMOAPList->deleteAllItems();
+
+ S32 obj_count=gObjectList.getNumObjects();
+
+ int count=0;
+
+ for(int objnum=0;objnum obj = gObjectList.getObject(objnum);
+
+ if(obj.isNull())
+ continue;
+
+ if(obj->isDead() || obj->isOrphaned())
+ continue;
+
+ if(obj->getMediaType() == LLViewerObject::MEDIA_TYPE_NONE)
+ continue;
+
+ LLSD element;
+
+ element["id"] = obj->getID();
+
+ for(int face=0;facegetNumTEs();face++)
+ {
+ const LLTextureEntry * te=obj->getTE(face);
+ if(te==NULL)
+ continue;
+
+ if(te->hasMedia())
+ {
+ LLMediaEntry* media=te->getMediaData();
+
+ if(media==NULL)
+ continue;
+
+ LLSD media_details;
+ media->asLLSD(media_details);
+
+ element["columns"][LIST_URL]["column"] = "URL";
+ element["columns"][LIST_URL]["type"] = "text";
+ std::string URL=media->getCurrentURL();
+ if(URL=="")
+ URL="(Waiting....)";
+
+ element["columns"][LIST_URL]["value"] = URL;
+
+ if(mTrackingRunning && mTrackedID==obj->getID() && mTrackedFace==face)
+ {
+ element["columns"][LIST_URL]["font-style"] = "BOLD";
+ }
+ else
+ {
+ element["columns"][LIST_URL]["font-style"] = "NORMAL";
+ }
+
+ element["columns"][LIST_FACE]["column"] = "face";
+ element["columns"][LIST_FACE]["type"] = "text";
+ std::stringstream face_buf;
+ face_buf << face;
+ element["columns"][LIST_FACE]["value"] = face_buf.str();
+
+ LLVector3d offset = gAgent.getPositionGlobal()-obj->getPositionGlobal();
+ S32 dist= offset.length();
+
+ element["columns"][LIST_DISTANCE]["column"] = "distance";
+ element["columns"][LIST_DISTANCE]["type"] = "text";
+ std::stringstream dist_buf;
+ dist_buf << std::fixed << std::setprecision(2) << dist<<"m";
+ element["columns"][LIST_DISTANCE]["value"] = dist_buf.str();
+
+ if(dist<25)
+ element["columns"][LIST_DISTANCE]["color"] = LLColor4::green.getValue();
+ else if(dist<50)
+ element["columns"][LIST_DISTANCE]["color"] = LLColor4::blue1.getValue();
+ else if(dist<100)
+ element["columns"][LIST_DISTANCE]["color"] = LLColor4::black.getValue();
+ else if(dist<256)
+ element["columns"][LIST_DISTANCE]["color"] = LLColor4::yellow.getValue();
+ else
+ element["columns"][LIST_DISTANCE]["color"] = LLColor4::red.getValue();
+
+
+ element["columns"][LIST_POSITION]["column"] = "position";
+ element["columns"][LIST_POSITION]["type"] = "text";
+ element["columns"][LIST_POSITION]["value"] = "";
+
+ element["columns"][LIST_ALTITUDE]["column"] = "altitude";
+ element["columns"][LIST_ALTITUDE]["type"] = "text";
+ std::stringstream alt_buf;
+ alt_buf << std::fixed << std::setprecision(2) << obj->getPositionGlobal().mdV[2]<<"m";
+ element["columns"][LIST_ALTITUDE]["value"] = alt_buf.str();
+
+ element["columns"][LIST_POSITION]["column"]="position";
+ element["columns"][LIST_POSITION]["type"] = "text";
+ std::stringstream pos_buf;
+
+ S32 moap_x = (S32)offset.mdV[VX];
+ S32 moap_y = (S32)offset.mdV[VY];
+ if (moap_x >= -256 && moap_x <= 256 && moap_y >= -256 && moap_y <= 256)
+ {
+ pos_buf<< std::fixed << std::setprecision(2)<getPositionRegion().mV[VX]<<","<getPositionRegion().mV[VY];
+ }
+ else
+ {
+ if (moap_y < 0)
+ pos_buf<<"S";
+ else if (moap_y > 256)
+ pos_buf<<"N";
+
+ if (moap_x < 0)
+ pos_buf<<"W";
+ else if (moap_x > 256)
+ pos_buf<<"E";
+ }
+
+
+ element["columns"][LIST_POSITION]["value"] = pos_buf.str();
+
+ mMOAPList->addElement(element, ADD_BOTTOM);
+
+ if(mSelectedObjID==obj->getID() && mSelectedFace==face)
+ {
+ mMOAPList->selectNthItem(count);
+ }
+
+ count++;
+ }
+ }
+ }
+
+ updatetrackbtn();
+}
+
+// static
+void LLFloaterMOAPRadar::onClickOpen(void* userdata)
+{
+ LLFloaterMOAPRadar *self = (LLFloaterMOAPRadar*)userdata;
+
+ LLDynamicArray ids = self->mMOAPList->getSelectedIDs();
+
+ if(ids.empty())
+ {
+ return;
+ }
+
+ LLUUID id=ids.front();
+
+ LLPointer obj = gObjectList.findObject(id);
+ if(obj.notNull())
+ {
+
+ const LLTextureEntry * te=obj->getTE(self->mSelectedFace);
+ if(te==NULL)
+ return;
+
+ if(te->hasMedia())
+ {
+ LLMediaEntry* media=te->getMediaData();
+ if(media)
+ {
+ //gViewerWindow->mWindow->copyTextToClipboard(utf8str_to_wstring(media->getCurrentURL()));
+ LLWeb::loadURL(media->getCurrentURL());
+ }
+ }
+ }
+
+}
+
+// static
+void LLFloaterMOAPRadar::onClickTrack(void* userdata)
+{
+ LLFloaterMOAPRadar *self = (LLFloaterMOAPRadar*)userdata;
+
+ LLDynamicArray ids = self->mMOAPList->getSelectedIDs();
+
+ if(self->mTrackingRunning)
+ {
+ LLTracker::stopTracking(NULL);
+ self->mTrackingRunning=false;
+ }
+
+ if(ids.empty())
+ {
+ self->mTrackedID=LLUUID::null;
+ self->mTrackingRunning=false;
+ return;
+ }
+
+ LLUUID id=ids.front();
+
+ if(id==self->mTrackedID && self->mSelectedFace==self->mTrackedFace)
+ {
+ self->mTrackedID=LLUUID::null;
+ self->mTrackingRunning=false;
+ return;
+ }
+
+ self->mTrackedID=LLUUID::null;
+
+ LLPointer obj = gObjectList.findObject(id);
+ if(obj.notNull())
+ {
+ LLTracker::trackLocation(obj->getPositionGlobal(),"MOAP Tracking","",LLTracker::LOCATION_ITEM);
+ self->mTrackingRunning=true;
+ self->mTrackedID=id;
+ self->mTrackedFace=self->mSelectedFace;
+ }
+}
+
+// static
+void LLFloaterMOAPRadar::onClickCopy(void* userdata)
+{
+ LLFloaterMOAPRadar *self = (LLFloaterMOAPRadar*)userdata;
+
+ LLDynamicArray ids = self->mMOAPList->getSelectedIDs();
+
+ if(ids.empty())
+ {
+ LLTracker::stopTracking(NULL);
+ return;
+ }
+
+ LLUUID id=ids.front();
+
+ LLPointer obj = gObjectList.findObject(id);
+
+ if(obj.notNull())
+ {
+
+ const LLTextureEntry * te=obj->getTE(self->mSelectedFace);
+ if(te==NULL)
+ return;
+
+ if(te->hasMedia())
+ {
+ LLMediaEntry* media=te->getMediaData();
+ if(media)
+ {
+ gViewerWindow->mWindow->copyTextToClipboard(utf8str_to_wstring(media->getCurrentURL()));
+ }
+ }
+ }
+
+}
+
+//static
+void LLFloaterMOAPRadar::onSelectMOAP(LLUICtrl*, void* userdata)
+{
+ LLFloaterMOAPRadar *self = (LLFloaterMOAPRadar*)userdata;
+
+ LLScrollListItem *item = self->mMOAPList->getFirstSelected();
+ if (item)
+ {
+ self->mSelectedObjID = item->getUUID();
+ self->mSelectedFace = item->getColumn(LIST_FACE)->getValue().asInteger();
+ }
+
+ self->updatetrackbtn();
+}
+
+void LLFloaterMOAPRadar::updatetrackbtn()
+{
+ if( mTrackingRunning)
+ {
+ if( mTrackedID==mSelectedObjID && mTrackedFace==mSelectedFace)
+ {
+ mTrackBtn->setLabel(LLStringExplicit("Untrack"));
+ }
+ else
+ {
+ mTrackBtn->setLabel(LLStringExplicit("New Track"));
+ }
+ }
+ else
+ {
+ mTrackBtn->setLabel(LLStringExplicit("Track"));
+ }
+
+}
\ No newline at end of file
diff --git a/linden/indra/newview/rcmoapradar.h b/linden/indra/newview/rcmoapradar.h
new file mode 100644
index 0000000..1d01546
--- /dev/null
+++ b/linden/indra/newview/rcmoapradar.h
@@ -0,0 +1,58 @@
+
+
+class LLFloaterMOAPRadar : public LLFloater
+{
+
+private:
+ LLFloaterMOAPRadar();
+public:
+ ~LLFloaterMOAPRadar();
+
+ enum AVATARS_COLUMN_ORDER
+ {
+ LIST_URL,
+ LIST_FACE,
+ LIST_DISTANCE,
+ LIST_POSITION,
+ LIST_ALTITUDE
+ };
+
+ /*virtual*/ void onClose(bool app_quitting);
+ /*virtual*/ void onOpen();
+ /*virtual*/ BOOL postBuild();
+ /*virtual*/ void draw();
+
+ static void toggle(void*);
+
+ static void showInstance();
+
+ static void callbackIdle(void *userdata);
+
+ void updateMOAPList();
+
+ static void onClickOpen(void* userdata);
+ static void onClickCopy(void* userdata);
+ static void onClickTrack(void* userdata);
+ static void onSelectMOAP(LLUICtrl*, void* userdata);
+
+
+private:
+ static LLFloaterMOAPRadar* sInstance;
+ LLScrollListCtrl* mMOAPList;
+ LLButton * mTrackBtn;
+
+ U32 mUpdateRate;
+
+ LLUUID mSelectedObjID;
+ U8 mSelectedFace;
+ bool mTrackingRunning;
+
+ LLUUID mTrackedID;
+ U8 mTrackedFace;
+
+ void updatetrackbtn();
+
+public:
+ static LLFloaterMOAPRadar* getInstance() { return sInstance; }
+
+};
\ No newline at end of file
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_moap_radar.xml b/linden/indra/newview/skins/default/xui/en-us/floater_moap_radar.xml
new file mode 100644
index 0000000..b9e3f99
--- /dev/null
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_moap_radar.xml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--
cgit v1.1
From ba982c0575515a8524d5044f928cd336303f807c Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Sat, 6 Apr 2013 21:47:13 +1000
Subject: Clean up some compiler warnings. More to come.
---
linden/indra/llcommon/llsdserialize.cpp | 5 ++++-
linden/indra/llmath/llvolume.cpp | 5 -----
linden/indra/llmessage/llhttpassetstorage.cpp | 3 ++-
linden/indra/llrender/llfont.cpp | 2 ++
linden/indra/llrender/llgl.cpp | 13 ++++++-------
linden/indra/llrender/llimagegl.cpp | 4 +++-
linden/indra/llui/llfunctorregistry.h | 2 --
linden/indra/llwindow/GL/glh_extensions.h | 4 +++-
linden/indra/lscript/lscript_execute/lscript_execute.cpp | 11 +----------
linden/indra/lscript/lscript_execute/lscript_readlso.cpp | 6 ++++--
10 files changed, 25 insertions(+), 30 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/llcommon/llsdserialize.cpp b/linden/indra/llcommon/llsdserialize.cpp
index e2be922..f648c5c 100644
--- a/linden/indra/llcommon/llsdserialize.cpp
+++ b/linden/indra/llcommon/llsdserialize.cpp
@@ -1447,9 +1447,12 @@ S32 LLSDBinaryFormatter::format(const LLSD& data, std::ostream& ostr, U32 option
}
case LLSD::TypeUUID:
+ {
ostr.put('u');
- ostr.write((const char*)(&(data.asUUID().mData)), UUID_BYTES);
+ U8 *value = data.asUUID().mData;
+ ostr.write((const char*)(&value), UUID_BYTES);
break;
+ }
case LLSD::TypeString:
ostr.put('s');
diff --git a/linden/indra/llmath/llvolume.cpp b/linden/indra/llmath/llvolume.cpp
index 618048c..63869ea 100644
--- a/linden/indra/llmath/llvolume.cpp
+++ b/linden/indra/llmath/llvolume.cpp
@@ -4438,14 +4438,9 @@ BOOL LLVolumeFace::createUnCutCubeCap(LLVolume* volume, BOOL partial_build)
S32 max_s = volume->getProfile().getTotal();
S32 max_t = volume->getPath().mPath.size();
- // S32 i;
- S32 num_vertices = 0, num_indices = 0;
S32 grid_size = (profile.size()-1)/4;
S32 quad_count = (grid_size * grid_size);
- num_vertices = (grid_size+1)*(grid_size+1);
- num_indices = quad_count * 4;
-
LLVector3& min = mExtents[0];
LLVector3& max = mExtents[1];
diff --git a/linden/indra/llmessage/llhttpassetstorage.cpp b/linden/indra/llmessage/llhttpassetstorage.cpp
index 49dbdbd..fcdb354 100644
--- a/linden/indra/llmessage/llhttpassetstorage.cpp
+++ b/linden/indra/llmessage/llhttpassetstorage.cpp
@@ -743,7 +743,8 @@ LLAssetRequest* LLHTTPAssetStorage::findNextRequest(LLAssetStorage::request_list
request_list_t::iterator running_end = running.end();
request_list_t::iterator pending_iter = pending.begin();
- request_list_t::iterator pending_end = pending.end();
+ // FIXME onefang - I assume this was being used to speed up the for(), but this is just a quick pass to get rid of warnings. Try to understand it later.
+ //request_list_t::iterator pending_end = pending.end();
// Loop over all pending requests until we miss finding it in the running list.
for (; pending_iter != pending.end(); ++pending_iter)
{
diff --git a/linden/indra/llrender/llfont.cpp b/linden/indra/llrender/llfont.cpp
index 5ee3929..1cad593 100644
--- a/linden/indra/llrender/llfont.cpp
+++ b/linden/indra/llrender/llfont.cpp
@@ -535,6 +535,8 @@ void LLFont::renderGlyph(const U32 glyph_index) const
int error = FT_Load_Glyph(mFTFace, glyph_index, FT_LOAD_DEFAULT );
llassert(!error);
+ // Work around the compiler warning about error not being used when llassert() is compiled out.
+ error = error + 0;
error = FT_Render_Glyph(mFTFace->glyph, gFontRenderMode);
mRenderGlyphCount++;
diff --git a/linden/indra/llrender/llgl.cpp b/linden/indra/llrender/llgl.cpp
index 4a4ff1b..b57a562 100644
--- a/linden/indra/llrender/llgl.cpp
+++ b/linden/indra/llrender/llgl.cpp
@@ -383,11 +383,10 @@ bool LLGLManager::initGL()
if (mGLVendor.substr(0,4) == "ATI ")
{
mGLVendorShort = "ATI";
- BOOL mobile = FALSE;
- if (mGLRenderer.find("MOBILITY") != std::string::npos)
- {
- mobile = TRUE;
- }
+ // This is not used anywhere.
+ //BOOL mobile = FALSE;
+ //if (mGLRenderer.find("MOBILITY") != std::string::npos)
+ // mobile = TRUE;
mIsATI = TRUE;
#if LL_WINDOWS && !LL_MESA_HEADLESS
@@ -1014,8 +1013,8 @@ void assert_glerror()
void clear_glerror()
{
// Create or update texture to be used with this data
- GLenum error;
- error = glGetError();
+ //GLenum error;
+ /*error =*/ glGetError();
}
///////////////////////////////////////////////////////////////
diff --git a/linden/indra/llrender/llimagegl.cpp b/linden/indra/llrender/llimagegl.cpp
index c63d7ad..f99d4a9 100644
--- a/linden/indra/llrender/llimagegl.cpp
+++ b/linden/indra/llrender/llimagegl.cpp
@@ -711,7 +711,9 @@ void LLImageGL::setImage(const U8* data_in, BOOL data_hasmips)
{
S32 bytes = w * h * mComponents;
llassert(prev_mip_data);
- llassert(prev_mip_size == bytes*4);
+ llassert(prev_mip_size == (bytes*4));
+ // Work around llassert() being compiled out and prev_mip_size not otherwise being used.
+ prev_mip_size = prev_mip_size + 0;
U8* new_data = new U8[bytes];
llassert_always(new_data);
LLImageBase::generateMip(prev_mip_data, new_data, w, h, mComponents);
diff --git a/linden/indra/llui/llfunctorregistry.h b/linden/indra/llui/llfunctorregistry.h
index 8864f7a..7c03f2f 100644
--- a/linden/indra/llui/llfunctorregistry.h
+++ b/linden/indra/llui/llfunctorregistry.h
@@ -75,7 +75,6 @@ public:
bool registerFunctor(const std::string& name, ResponseFunctor f)
{
bool retval = true;
- typename FunctorMap::iterator it = mMap.find(name);
if (mMap.count(name) == 0)
{
mMap[name] = f;
@@ -102,7 +101,6 @@ public:
FUNCTOR_TYPE getFunctor(const std::string& name)
{
- typename FunctorMap::iterator it = mMap.find(name);
if (mMap.count(name) != 0)
{
return mMap[name];
diff --git a/linden/indra/llwindow/GL/glh_extensions.h b/linden/indra/llwindow/GL/glh_extensions.h
index 5b149c9..ce2865b 100644
--- a/linden/indra/llwindow/GL/glh_extensions.h
+++ b/linden/indra/llwindow/GL/glh_extensions.h
@@ -111,7 +111,9 @@ static const char* EatNonWhiteSpace(const char *str)
int glh_init_extensions(const char *origReqExts)
{
// Length of requested extensions string
+ /*
unsigned reqExtsLen;
+ */
char *reqExts;
// Ptr for individual extensions within reqExts
char *reqExt;
@@ -153,8 +155,8 @@ int glh_init_extensions(const char *origReqExts)
return TRUE;
}
reqExts = strdup(origReqExts);
- reqExtsLen = (S32)strlen(reqExts);
/*
+ reqExtsLen = (S32)strlen(reqExts);
if (NULL == gGLHExts.mUnsupportedExts)
{
gGLHExts.mUnsupportedExts = (char*)malloc(reqExtsLen + 1);
diff --git a/linden/indra/lscript/lscript_execute/lscript_execute.cpp b/linden/indra/lscript/lscript_execute/lscript_execute.cpp
index b2b54cd..7af407f 100644
--- a/linden/indra/lscript/lscript_execute/lscript_execute.cpp
+++ b/linden/indra/lscript/lscript_execute/lscript_execute.cpp
@@ -809,16 +809,7 @@ void LLScriptExecute::runInstructions(BOOL b_print, const LLUUID &id,
// is there a fault?
// if yes, print out message and exit
S32 value = getVersion();
- S32 major_version = 0;
- if (value == LSL2_VERSION1_END_NUMBER)
- {
- major_version = 1;
- }
- else if (value == LSL2_VERSION_NUMBER)
- {
- major_version = 2;
- }
- else
+ if ((value != LSL2_VERSION1_END_NUMBER) && (value != LSL2_VERSION_NUMBER))
{
setFault(LSRF_VERSION_MISMATCH);
}
diff --git a/linden/indra/lscript/lscript_execute/lscript_readlso.cpp b/linden/indra/lscript/lscript_execute/lscript_readlso.cpp
index 3b10cc6..05eb826 100644
--- a/linden/indra/lscript/lscript_execute/lscript_readlso.cpp
+++ b/linden/indra/lscript/lscript_execute/lscript_readlso.cpp
@@ -150,7 +150,9 @@ void LLScriptLSOParse::printGlobals(LLFILE *fp)
// get offset to skip past name
varoffset = global_v_offset;
+ // FIXME: Not actually used, perhaps there's a skip function? Or perhaps we really do need to skip past a name as the above comment suggests?
offset = bytestream2integer(mRawData, global_v_offset);
+ offset = offset + 0;
// get typeexport
type = *(mRawData + global_v_offset++);
@@ -268,8 +270,6 @@ void LLScriptLSOParse::printGlobalFunctions(LLFILE *fp)
fprintf(fp, "[Function #%d] [0x%X] %s\n", function_number, orig_function_offset, name);
fprintf(fp, "\tReturn Type: %s\n", LSCRIPTTypeNames[type]);
type = *(mRawData + function_offset++);
- S32 params;
- params = 0;
S32 pcount = 0;
while (type)
{
@@ -362,7 +362,9 @@ void LLScriptLSOParse::printStates(LLFILE *fp)
if (event_handlers & LSCRIPTStateBitField[k])
{
temp_end = bytestream2integer(mRawData, read_ahead);
+ // FIXME onefang: Dummy is not actually used, but perhaps this is here to stop a warning? We need to stop another warning now. Some sort of skip might be better.
dummy = bytestream2integer(mRawData, read_ahead);
+ dummy = dummy + 0;
if ( (temp_end < opcode_end)
&&(temp_end > event_offset))
{
--
cgit v1.1
From 7d2499f10a100d16a1043a59ba914b17e3bfbaf3 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Sun, 7 Apr 2013 02:38:10 +1000
Subject: One more variable clean out, so Windows can compile.
---
linden/indra/llmath/llvolume.cpp | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/llmath/llvolume.cpp b/linden/indra/llmath/llvolume.cpp
index 63869ea..9dc3746 100644
--- a/linden/indra/llmath/llvolume.cpp
+++ b/linden/indra/llmath/llvolume.cpp
@@ -4437,9 +4437,7 @@ BOOL LLVolumeFace::createUnCutCubeCap(LLVolume* volume, BOOL partial_build)
const std::vector& profile = volume->getProfile().mProfile;
S32 max_s = volume->getProfile().getTotal();
S32 max_t = volume->getPath().mPath.size();
-
- S32 grid_size = (profile.size()-1)/4;
- S32 quad_count = (grid_size * grid_size);
+ S32 grid_size = (profile.size() - 1) / 4;
LLVector3& min = mExtents[0];
LLVector3& max = mExtents[1];
--
cgit v1.1
From 4e2336b007e123395bbaa9028432e5175c371d19 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Mon, 8 Apr 2013 04:22:24 +1000
Subject: Update grid list to match Kokua, and sort them.
---
.../indra/newview/app_settings/default_grids.xml | 398 +++++++++++++--------
1 file changed, 242 insertions(+), 156 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/newview/app_settings/default_grids.xml b/linden/indra/newview/app_settings/default_grids.xml
index c5ef948..180a76f 100644
--- a/linden/indra/newview/app_settings/default_grids.xml
+++ b/linden/indra/newview/app_settings/default_grids.xml
@@ -1,199 +1,285 @@
- default_grids_version38
+ default_grids_version39
-
+
- gridnicksecondlife
- gridnameSecond Life
- platformSecondLife
- loginurihttps://login.agni.lindenlab.com/cgi-bin/login.cgi
- loginpagehttp://imprudenceviewer.org/app/splash/
- helperurihttps://secondlife.com/helpers/
- websitehttp://secondlife.com/
- supporthttp://secondlife.com/support/
- registerhttp://secondlife.com/registration/
- passwordhttp://secondlife.com/account/request.php
- version2
+ gridname3rd Rock Grid
+ gridnick3rdRock
+ platformOpenSim
+ abouthttp://3rdrockgrid.com/
+ helphttp://3rdrockgrid.com/
+ helperurihttp://grid.3rdrockgrid.com/3rg_money/
+ loginurihttp://grid.3rdrockgrid.com:8002/
+ loginpagehttp://3rdrockgrid.com/startpage.php
+ websitehttp://3rdrockgrid.com/
+ registerhttp://3rdrockgrid.com/
+ passwordhttp://3rdrockgrid.com/
+ supporthttp://3rdrockgrid.com/
+ version1
-
+
- gridnicksecondlifebeta
- gridnameSecond Life Beta Grid
- platformSecondLife
- loginurihttps://login.aditi.lindenlab.com/cgi-bin/login.cgi
- loginpagehttp://imprudenceviewer.org/app/splash/
- helperurihttp://aditi-secondlife.webdev.lindenlab.com/helpers/
- websitehttp://secondlife.com/
- supporthttp://secondlife.com/support/
- registerhttp://secondlife.com/registration/
- passwordhttp://secondlife.com/account/request.php
- version3
+ gridnameAvination
+ gridnickAvination
+ platformOpenSim
+ abouthttp://login.avination.net
+ helperurihttps://secure.3dhosting.de/
+ loginpagehttps://www.avination.com/welcome.php
+ loginurihttps://login.avination.com
+ namelogin.avination.net
+ passwordhttps://www.avination.com/pwrecover.php
+ registerhttps://www.avination.com/join.php
-
+
- gridnicklocalhost
- gridnameLocal Host
- platformOpenSim
- loginurihttp://127.0.0.1:9000/
- loginpage
- helperurihttp://127.0.0.1:9000/
- version1
+ gridnameCraft - The Friendly World
+ gridnickCraft
+ platformOpenSim
+ abouthttp://www.craft-world.org/
+ loginurihttp://craft-world.org:8002/
+ loginpagehttp://www.craft-world.org/loginscreen.php
+ helperurihttp://webapp.craft-world.org/economy/
+ websitehttp://www.craft-world.org/
+ registerhttp://craft-world.org:8002/wifi/user/account/
+ passwordhttp://craft-world.org:8002/wifi/forgotpassword
+ version0
-
+
- gridnickosgrid
- gridnameOSGrid
- platformOpenSim
- loginurihttp://login.osgrid.org/
- loginpagehttp://www.osgrid.org/splash/
- helperurihttp://helper.osgrid.org/
- websitehttp://www.osgrid.org/
- supporthttp://www.osgrid.org/
- register
- http://www.osgrid.org/index.php/auth/register
- password
- http://www.osgrid.org/index.php/auth/forgot_password
- version3
+ gridnameMetavers Francophone FrancoGrid
+ gridnickfrancogrid
+ platformOpenSim
+ abouthttp://francogrid.org/
+ helphttp://francogrid.org/aide
+ helperurihttp://helper.main.francogrid.org/
+ loginpagehttp://viewer.francogrid.org/
+ loginurihttp://login.francogrid.org/
+ namelogin.francogrid.org
+ passwordhttp://francogrid.org/user/password
+ registerhttp://francogrid.org/user/register
-
+
- gridnickyouralternativelife
- gridnameYour Alternative Life
- platformOpenSim
- loginurihttp://grid01.from-ne.com:8002/
- loginpagehttp://grid01.from-ne.com/tios/loginscreen3.php
- helperurihttp://grid01.from-ne.com/tios/services/
- websitehttp://www.youralternativelife.com
- supporthttp://www.youralternativelife.com
- registerhttp://www.youralternativelife.com
- passwordhttp://www.youralternativelife.com
- version0
+ gridnameGiantGrid
+ gridnickGiantGrid
+ platformOpenSim
+ loginurihttp://giantgrid.no-ip.biz:8002/
+ loginpagehttp://www.giantgrid.nl
+ helperurihttp://giantgrid.no-ip.biz/XoopCube/html/modules/xoopensim/helper/
+ websitehttp://www.giantgrid.nl
+ registerhttp://giantgrid.no-ip.biz:8002/wifi/user/account/
+ passwordhttp://giantgrid.no-ip.biz:8002/wifi/forgotpassword
+ supporthttp://gianttest.no-ip.biz/ticket/
+ version1
+
+
+
+ gridnameInWorldz
+ gridnickInWorldz
+ platformOpenSim
+ abouthttp://inworldz.com/
+ helphttp://inworldz.com/faq.php
+ loginurihttp://inworldz.com:8002/
+ loginpagehttp://inworldz.com/loginscreen.php
+ helperurihttp://inworldz.com/
+ passwordhttp://inworldz.com/
+ registerhttp://inworldz.com/register.php
+ supporthttp://inworldz.com/support.php
+ websitehttp://inworldz.com/
+ version2
-
+
- gridnickthenewworldgrid
- gridnameThe New World Grid
- platformOpenSim
- loginurihttp://grid.newworldgrid.com:8002/
- loginpagehttp://account.newworldgrid.com/loginscreen.php
- helperurihttp://account.newworldgrid.com/
- websitehttp://www.newworldgrid.com/
- supporthttp://www.newworldgrid.com/
- registerhttp://www.newworldgrid.com/register
- passwordhttp://account.newworldgrid.com/
- version0
+ gridnameIsland Oasis
+ gridnickIslandOasis
+ platformOpenSim
+ abouthttp://www.islandoasis.biz/GridStats.aspx
+ helphttp://www.islandoasis.biz/Support.aspx
+ helperurihttp://islandoasisgrid.biz:8020/OsCurrency/
+ loginpagehttp://www.islandoasis.biz/welcome.aspx
+ loginurihttp://islandoasisgrid.biz:8002/
+ nameislandoasisgrid.biz:8002
+ passwordhttp://www.islandoasis.biz/Login.aspx
+ registerhttp://www.islandoasis.biz/verification.aspx
-
+
- gridnickreactiongrid
- gridnameReactionGrid
- platformOpenSim
- loginurihttp://reactiongrid.com:8008/
- loginpagehttp://gsquared.info/portal
- websitehttp://reactiongrid.com/Default.aspx
- supporthttp://reactiongrid.com/Support.aspx
- registerhttp://reactiongrid.com/Register.aspx
- passwordhttp://reactiongrid.com/Support/ResetPassword.aspx
- version0
+ gridnameLocalhost
+ gridnickLocalHost
+ platformOpenSim
+ loginurihttp://127.0.0.1:9000/
+ loginpage
+ helperurihttp://127.0.0.1:9000/
+ version1
-
+
- gridnickcraft
- gridnameCraft
- platformOpenSim
- loginurihttp://craft-world.org:8002/
- loginpagehttp://www.craft-world.org/loginscreen.php
- helperurihttp://webapp.craft-world.org/
- websitehttp://www.craft-world.org/
- registerhttp://craft-world.org:8002/wifi/user/account/
- passwordhttp://craft-world.org:8002/wifi/forgotpassword
- version0
-
-
-
-
- gridnickroleplayworlds
- gridnameRole Play Worlds
- platformOpenSim
- loginurihttp://grid.roleplayworlds.net:8002/
- loginpagehttp://roleplayworlds.net/loginscreen
- helperurihttp://grid.roleplayworlds.net/
- websitehttp://roleplayworlds.net/
- supporthttp://roleplayworlds.net/help
- registerhttp://roleplayworlds.net/register
- passwordhttp://roleplayworlds.net/password
- version1
+ gridnameSim-on-a-Stick
+ gridnickSimOnAStick
+ loginpagehttp://127.0.0.1:9100/wifi/welcome.html
+ loginurihttp://localhost:9100
-
+
- gridnickgiantgrid
- gridnameGiantGrid
- platformOpenSim
- loginurihttp://giantgrid.no-ip.biz:8002/
- loginpagehttp://www.giantgrid.nl
- helperurihttp://giantgrid.no-ip.biz/XoopCube/html/modules/xoopensim/helper/
- websitehttp://www.giantgrid.nl
- registerhttp://giantgrid.no-ip.biz:8002/wifi/user/account/
- passwordhttp://giantgrid.no-ip.biz:8002/wifi/forgotpassword
- supporthttp://gianttest.no-ip.biz/ticket/
- version1
+ gridnameMetropolis Metaversum
+ gridnickMetropolis
+ platformOpenSim
+ abouthttp://www.hypergrid.org/metropolis/wiki
+ helphttp://metropolis.hypergrid.org
+ helperurihttp://metropolis.hypergrid.org/currency/helper/
+ loginpagehttp://metropolis.hypergrid.org
+ loginurihttp://hypergrid.org:8002/
+ namehypergrid.org:8002
+ passwordhttp://metropolis.hypergrid.org/oswi.php
+ registerhttp://www.hypergrid.org/metropolis/metro_rg.php
-
+
- gridnick3rdrock
- gridname3rd Rock Grid
- platformOpenSim
- loginurihttp://grid.3rdrockgrid.com:8002/
- loginpagehttp://3rdrockgrid.com/startpage.php
- helperurihttp://grid.3rdrockgrid.com/money/
- websitehttp://3rdrockgrid.com/
- registerhttp://3rdrockgrid.com/
- passwordhttp://3rdrockgrid.com/
- supporthttp://3rdrockgrid.com/
- version1
+ gridnameOSGrid
+ gridnickOSGrid
+ platformOpenSim
+ abouthttp://www.osgrid.org/
+ helphttp://www.osgrid.org/
+ loginurihttp://login.osgrid.org/
+ loginpagehttp://www.osgrid.org/splash/
+ helperurihttp://helper.osgrid.org/
+ websitehttp://www.osgrid.org/
+ supporthttp://www.osgrid.org/
+ registerhttp://www.osgrid.org/
+ passwordhttp://www.osgrid.org/
+ version3
-
+
- gridname InWorldz
- gridnick inworldz
- platform OpenSim
- loginuri http://inworldz.com:8002/
- loginpage http://inworldz.com/loginscreen.php
- helperuri http://inworldz.com/
- password http://inworldz.com/loginerror.php?error=2
- register http://inworldz.com/register.php
- support http://inworldz.com/support.php
- website http://inworldz.com/
- version 2
-
+ gridnameReactionGrid
+ gridnickReactionGrid
+ platformOpenSim
+ abouthttp://reactiongrid.com/Default.aspx
+ helphttp://reactiongrid.com/Support.aspx
+ loginurihttp://reactiongrid.com:8008/
+ loginpagehttp://gsquared.info/portal
+ helperurihttp://reactiongrid.com:9000/
+ websitehttp://reactiongrid.com/Default.aspx
+ supporthttp://reactiongrid.com/Support.aspx
+ registerhttp://reactiongrid.com/Register.aspx
+ passwordhttp://www.reactiongrid.com/Support/PasswordReset.aspx
+ version0
+
- gridname IEEE/ACM ScienceSim Virtual World
- gridnick sciencesim
- platform OpenSim
- loginuri http://grid.sciencesim.com/
- loginpage http://island.sciencesim.com/scisim/loginscreen.php
- helperuri
- password http://island.sciencesim.com/scisim
- register http://island.sciencesim.com/scisim
- support http://island.sciencesim.com/wiki
- website http://island.sciencesim.com/about/
- version 0
+ gridnameIEEE/ACM ScienceSim Virtual World
+ gridnickScienceSim
+ platformOpenSim
+ loginurihttp://grid.sciencesim.com/
+ loginpagehttp://island.sciencesim.com/scisim/loginscreen.php
+ helperuri
+ passwordhttp://island.sciencesim.com/scisim
+ registerhttp://island.sciencesim.com/scisim
+ supporthttp://island.sciencesim.com/wiki
+ websitehttp://island.sciencesim.com/about/
+ version0
+
+
+
+
+ gridnameSecond Life
+ gridnickSL
+ platformSecondLife
+ loginurihttps://login.agni.lindenlab.com/cgi-bin/login.cgi
+ loginpagehttp://viewer-login.agni.lindenlab.com/
+ helperurihttps://secondlife.com/helpers/
+ websitehttp://secondlife.com/
+ supporthttp://secondlife.com/support/
+ registerhttp://secondlife.com/registration/
+ passwordhttp://secondlife.com/account/request.php
+ version2
+
+
+
+
+ gridnameSecond Life Beta Grid
+ gridnickSLBeta
+ platformSecondLife
+ loginurihttps://login.aditi.lindenlab.com/cgi-bin/login.cgi
+ loginpagehttp://viewer-login.agni.lindenlab.com
+ helperurihttp://aditi-secondlife.webdev.lindenlab.com/helpers/
+ websitehttp://secondlife.com/
+ supporthttp://secondlife.com/support/
+ registerhttp://secondlife.com/registration/
+ passwordhttp://secondlife.com/account/request.php
+ version3
+
+
+
+
+ gridnameThe New World Grid
+ gridnickthenewworldgrid
+ platformOpenSim
+ loginurihttp://grid.newworldgrid.com:8002/
+ loginpagehttp://account.newworldgrid.com/loginscreen.php
+ helperurihttp://account.newworldgrid.com/
+ websitehttp://www.newworldgrid.com/
+ supporthttp://www.newworldgrid.com/
+ registerhttp://www.newworldgrid.com/register
+ passwordhttp://account.newworldgrid.com/
+ version0
+
+
+
+
+ gridnameVirtual Highway
+ gridnickVirtualHighway
+ platformOpenSim
+ abouthttp://www.virtualhighway.us/about.php
+ helperurihttp://www.virtualhighway.us/griddal/
+ loginpagehttp://www.virtualhighway.us/welcome.php
+ loginurihttp://login.virtualhighway.us:8002/
+ namelogin.virtualhighway.us:8002
+ passwordhttp://www.virtualhighway.us/users/lostPassword
+ registerhttp://www.virtualhighway.us/users/register
+
+
+
+
+ gridnamevirtyou MainGrid
+ gridnickvirtyou
+ platformOpenSim
+ helphttp://virtyou.com/q/howto/
+ loginpagehttp://virtyou.com/welcome/
+ loginurihttp://go.virtyou.com
+ passwordhttp://virtyou.com/user/forgotten.html
+ registerhttp://virtyou.com/user/
+
+
+
+
+ gridnameYour Alternative Life
+ gridnickYourAlternativeLife
+ platformOpenSim
+ abouthttp://www.youralternativelife.com
+ loginurihttp://grid01.from-ne.com:8002/
+ loginpagehttp://grid01.from-ne.com/tios/loginscreen3.php
+ helperurihttp://grid01.from-ne.com/tios/services/
+ websitehttp://www.youralternativelife.com
+ supporthttp://www.youralternativelife.com
+ registerhttp://www.youralternativelife.com
+ passwordhttp://www.youralternativelife.com
+ version0
--
cgit v1.1
From f2869c821a0bfef53000ba1116f64198ead4297e Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Mon, 8 Apr 2013 04:23:24 +1000
Subject: Material UUIDs are defined in two places, deleted one.
---
linden/indra/llprimitive/llmaterialtable.cpp | 10 ----------
1 file changed, 10 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/llprimitive/llmaterialtable.cpp b/linden/indra/llprimitive/llmaterialtable.cpp
index 7dd764e..f06bfe8 100755
--- a/linden/indra/llprimitive/llmaterialtable.cpp
+++ b/linden/indra/llprimitive/llmaterialtable.cpp
@@ -40,16 +40,6 @@
LLMaterialTable LLMaterialTable::basic(1);
-// Material UUIDs.
-LLUUID const LL_DEFAULT_STONE_UUID("87c5765b-aa26-43eb-b8c6-c09a1ca6208e");
-LLUUID const LL_DEFAULT_METAL_UUID("6f3c53e9-ba60-4010-8f3e-30f51a762476");
-LLUUID const LL_DEFAULT_GLASS_UUID("b4ba225c-373f-446d-9f7e-6cb7b5cf9b3d");
-LLUUID const LL_DEFAULT_WOOD_UUID("89556747-24cb-43ed-920b-47caed15465f");
-LLUUID const LL_DEFAULT_FLESH_UUID("80736669-e4b9-450e-8890-d5169f988a50");
-LLUUID const LL_DEFAULT_PLASTIC_UUID("304fcb4e-7d33-4339-ba80-76d3d22dc11a");
-LLUUID const LL_DEFAULT_RUBBER_UUID("9fae0bc5-666d-477e-9f70-84e8556ec867");
-LLUUID const LL_DEFAULT_LIGHT_UUID("00000000-0000-0000-0000-000000000000");
-
/*
Old Havok 1 constants
--
cgit v1.1
From 81eb6f3925577cd46f1e9b16e5691dea62618703 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Mon, 8 Apr 2013 04:27:27 +1000
Subject: A little more 64 bit clean now.
---
linden/indra/newview/llviewermenu.cpp | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp
index 538adc7..f10910c 100644
--- a/linden/indra/newview/llviewermenu.cpp
+++ b/linden/indra/newview/llviewermenu.cpp
@@ -9088,7 +9088,7 @@ class LLAdvancedToggleRenderType : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- U32 render_type = render_type_from_string( userdata.asString() );
+ intptr_t render_type = render_type_from_string( userdata.asString() );
if ( render_type != 0 )
{
LLPipeline::toggleRenderTypeControl( (void*)render_type );
@@ -9102,7 +9102,7 @@ class LLAdvancedCheckRenderType : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- U32 render_type = render_type_from_string( userdata["data"].asString() );
+ intptr_t render_type = render_type_from_string( userdata["data"].asString() );
bool new_value = false;
if ( render_type != 0 )
@@ -9168,7 +9168,7 @@ class LLAdvancedToggleFeature : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- U32 feature = feature_from_string( userdata.asString() );
+ intptr_t feature = feature_from_string( userdata.asString() );
if ( feature != 0 )
{
@@ -9184,7 +9184,7 @@ class LLAdvancedCheckFeature : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- U32 feature = feature_from_string( userdata["data"].asString() );
+ intptr_t feature = feature_from_string( userdata["data"].asString() );
bool new_value = false;
if ( feature != 0 )
@@ -9290,7 +9290,7 @@ class LLAdvancedToggleInfoDisplay : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- U32 info_display = info_display_from_string( userdata.asString() );
+ intptr_t info_display = info_display_from_string( userdata.asString() );
if ( info_display != 0 )
{
@@ -9306,7 +9306,7 @@ class LLAdvancedCheckInfoDisplay : public view_listener_t
{
bool handleEvent(LLPointer event, const LLSD& userdata)
{
- U32 info_display = info_display_from_string( userdata["data"].asString() );
+ intptr_t info_display = info_display_from_string( userdata["data"].asString() );
bool new_value = false;
if ( info_display != 0 )
--
cgit v1.1
From 0f7ca330c308a5edb51ee325faf26e5498b38af9 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Mon, 8 Apr 2013 04:47:32 +1000
Subject: Delete a big bunch of unused variables.
---
linden/indra/llui/llfloater.cpp | 16 ----------------
linden/indra/llui/llkeywords.cpp | 2 --
linden/indra/llui/llmenugl.cpp | 2 --
linden/indra/llui/llslider.cpp | 1 -
linden/indra/llui/lltexteditor.cpp | 4 ----
linden/indra/newview/llagent.cpp | 17 -----------------
linden/indra/newview/lldrawable.cpp | 2 --
linden/indra/newview/llflexibleobject.cpp | 3 ---
linden/indra/newview/llfloateractivespeakers.cpp | 2 +-
linden/indra/newview/llfloaterjoystick.cpp | 1 -
linden/indra/newview/llfloaterwater.cpp | 2 --
linden/indra/newview/llfloaterwindlight.cpp | 2 --
linden/indra/newview/llhoverview.cpp | 9 +++++----
linden/indra/newview/llinventorybridge.cpp | 1 -
linden/indra/newview/llinventorymodel.cpp | 10 ----------
linden/indra/newview/llmanipscale.cpp | 5 -----
linden/indra/newview/llmaniptranslate.cpp | 21 +++------------------
linden/indra/newview/llpanelavatar.cpp | 10 +++++-----
linden/indra/newview/llpanelcontents.cpp | 2 --
linden/indra/newview/llpanelface.cpp | 1 -
linden/indra/newview/llpanelgrouplandmoney.cpp | 5 -----
linden/indra/newview/llpanellogin.cpp | 5 ++---
linden/indra/newview/llpanelmediahud.cpp | 1 -
linden/indra/newview/llspatialpartition.cpp | 3 ---
linden/indra/newview/llstartup.cpp | 24 ++++++------------------
linden/indra/newview/lltoolcomp.cpp | 4 +---
linden/indra/newview/lltoolfocus.cpp | 10 ----------
linden/indra/newview/llurlhistory.cpp | 2 --
linden/indra/newview/llviewercamera.cpp | 3 +--
linden/indra/newview/llviewermessage.cpp | 3 ---
linden/indra/newview/llviewerobject.cpp | 3 ---
linden/indra/newview/llvlcomposition.cpp | 8 --------
linden/indra/newview/llvoavatar.cpp | 7 -------
linden/indra/newview/llvoiceclient.cpp | 10 +---------
linden/indra/newview/llvosurfacepatch.cpp | 10 ++--------
linden/indra/newview/llvovolume.cpp | 4 ++--
linden/indra/newview/llwaterparamset.cpp | 2 --
linden/indra/newview/llworldmapview.cpp | 3 ---
linden/indra/newview/panelradar.cpp | 3 ---
linden/indra/newview/pipeline.cpp | 8 --------
40 files changed, 29 insertions(+), 202 deletions(-)
mode change 100755 => 100644 linden/indra/newview/llviewermessage.cpp
(limited to 'linden')
diff --git a/linden/indra/llui/llfloater.cpp b/linden/indra/llui/llfloater.cpp
index 58c717a..4c4aeaf 100644
--- a/linden/indra/llui/llfloater.cpp
+++ b/linden/indra/llui/llfloater.cpp
@@ -277,30 +277,14 @@ void LLFloater::initFloater(const std::string& title,
mMinimized = FALSE;
mExpandedRect.set(0,0,0,0);
- S32 close_pad; // space to the right of close box
S32 close_box_size; // For layout purposes, how big is the close box?
if (close_btn)
{
close_box_size = LLFLOATER_CLOSE_BOX_SIZE;
- close_pad = 0;
}
else
{
close_box_size = 0;
- close_pad = 0;
- }
-
- S32 minimize_box_size;
- S32 minimize_pad;
- if (minimizable && !drag_on_left)
- {
- minimize_box_size = LLFLOATER_CLOSE_BOX_SIZE;
- minimize_pad = 0;
- }
- else
- {
- minimize_box_size = 0;
- minimize_pad = 0;
}
// Drag Handle
diff --git a/linden/indra/llui/llkeywords.cpp b/linden/indra/llui/llkeywords.cpp
index 93da44c..a50dbff 100644
--- a/linden/indra/llui/llkeywords.cpp
+++ b/linden/indra/llui/llkeywords.cpp
@@ -288,7 +288,6 @@ void LLKeywords::findSegments(std::vector* seg_list, const LLWS
const llwchar* base = wtext.c_str();
const llwchar* cur = base;
- const llwchar* line = NULL;
while( *cur )
{
@@ -304,7 +303,6 @@ void LLKeywords::findSegments(std::vector* seg_list, const LLWS
}
// Start of a new line
- line = cur;
// Skip white space
while( *cur && isspace(*cur) && (*cur != '\n') )
diff --git a/linden/indra/llui/llmenugl.cpp b/linden/indra/llui/llmenugl.cpp
index 2d4a2f1..6850891 100644
--- a/linden/indra/llui/llmenugl.cpp
+++ b/linden/indra/llui/llmenugl.cpp
@@ -3095,8 +3095,6 @@ void LLMenuGL::draw( void )
LLUI::sConfigGroup->getS32("DropShadowFloater") );
}
- LLColor4 bg_color = mBackgroundColor;
-
if( mBgVisible )
{
gl_rect_2d( 0, getRect().getHeight(), getRect().getWidth(), 0, mBackgroundColor );
diff --git a/linden/indra/llui/llslider.cpp b/linden/indra/llui/llslider.cpp
index 5c17baa..c8f5935 100644
--- a/linden/indra/llui/llslider.cpp
+++ b/linden/indra/llui/llslider.cpp
@@ -283,7 +283,6 @@ void LLSlider::draw()
F32 opacity = getEnabled() ? 1.f : 0.3f;
LLColor4 center_color = (mThumbCenterColor % opacity);
- LLColor4 track_color = (mTrackColor % opacity);
// Track
LLRect track_rect(mThumbImage->getWidth() / 2,
diff --git a/linden/indra/llui/lltexteditor.cpp b/linden/indra/llui/lltexteditor.cpp
index c8ca5bf..1c12ff3 100644
--- a/linden/indra/llui/lltexteditor.cpp
+++ b/linden/indra/llui/lltexteditor.cpp
@@ -3077,7 +3077,6 @@ void LLTextEditor::drawSelectionBackground()
S32 selection_right_x = mTextRect.mRight;
S32 selection_right_y = mTextRect.mBottom;
- BOOL selection_left_visible = FALSE;
BOOL selection_right_visible = FALSE;
// Skip through the lines we aren't drawing.
@@ -3085,7 +3084,6 @@ void LLTextEditor::drawSelectionBackground()
S32 left_line_num = cur_line;
S32 num_lines = getLineCount();
- S32 right_line_num = num_lines - 1;
S32 line_start = -1;
if (cur_line >= num_lines)
@@ -3119,13 +3117,11 @@ void LLTextEditor::drawSelectionBackground()
if( line_start <= selection_left && selection_left <= line_end )
{
left_line_num = cur_line;
- selection_left_visible = TRUE;
selection_left_x = mTextRect.mLeft + mGLFont->getWidth(line, 0, selection_left - line_start, mAllowEmbeddedItems);
selection_left_y = text_y;
}
if( line_start <= selection_right && selection_right <= line_end )
{
- right_line_num = cur_line;
selection_right_visible = TRUE;
selection_right_x = mTextRect.mLeft + mGLFont->getWidth(line, 0, selection_right - line_start, mAllowEmbeddedItems);
if (selection_right == line_end)
diff --git a/linden/indra/newview/llagent.cpp b/linden/indra/newview/llagent.cpp
index 09d65d1..c61f7a6 100644
--- a/linden/indra/newview/llagent.cpp
+++ b/linden/indra/newview/llagent.cpp
@@ -1613,8 +1613,6 @@ BOOL LLAgent::calcCameraMinDistance(F32 &obj_min_distance)
abs_target_offset.abs();
LLVector3 target_offset_dir = target_offset_origin;
- F32 object_radius = mFocusObject->getVObjRadius();
-
BOOL target_outside_object_extents = FALSE;
for (U32 i = VX; i <= VZ; i++)
@@ -1708,18 +1706,6 @@ BOOL LLAgent::calcCameraMinDistance(F32 &obj_min_distance)
LLVector3 camera_offset_object(getCameraPositionAgent() - mFocusObject->getPositionAgent());
- // length projected orthogonal to target offset
- F32 camera_offset_dist = (camera_offset_object - target_offset_dir * (camera_offset_object * target_offset_dir)).magVec();
-
- // calculate whether the target point would be "visible" if it were outside the bounding box
- // on the opposite of the splitting plane defined by object_split_axis;
- BOOL exterior_target_visible = FALSE;
- if (camera_offset_dist > object_radius)
- {
- // target is visible from camera, so turn off fov zoom
- exterior_target_visible = TRUE;
- }
-
F32 camera_offset_clip = camera_offset_object * object_split_axis;
F32 target_offset_clip = target_offset_dir * object_split_axis;
@@ -2538,12 +2524,10 @@ void LLAgent::autoPilot(F32 *delta_yaw)
*delta_yaw = yaw;
// Compute when to start slowing down and when to stop
- F32 stop_distance = mAutoPilotStopDistance;
F32 slow_distance;
if (getFlying())
{
slow_distance = llmax(6.f, mAutoPilotStopDistance + 5.f);
- stop_distance = llmax(2.f, mAutoPilotStopDistance);
}
else
{
@@ -3719,7 +3703,6 @@ F32 LLAgent::calcCameraFOVZoomFactor()
else if (mFocusObject.notNull() && !mFocusObject->isAvatar())
{
// don't FOV zoom on mostly transparent objects
- LLVector3 focus_offset = mFocusObjectOffset;
F32 obj_min_dist = 0.f;
if (!gSavedSettings.getBOOL("DisableMinZoomDist"))
calcCameraMinDistance(obj_min_dist);
diff --git a/linden/indra/newview/lldrawable.cpp b/linden/indra/newview/lldrawable.cpp
index 5a383bc..f808f89 100644
--- a/linden/indra/newview/lldrawable.cpp
+++ b/linden/indra/newview/lldrawable.cpp
@@ -494,7 +494,6 @@ F32 LLDrawable::updateXform(BOOL undamped)
//scaling
LLVector3 target_scale = mVObjp->getScale();
LLVector3 old_scale = mCurrentScale;
- LLVector3 dest_scale = target_scale;
// Damping
F32 dist_squared = 0.f;
@@ -834,7 +833,6 @@ const LLVector3* LLDrawable::getSpatialExtents() const
void LLDrawable::setSpatialExtents(LLVector3 min, LLVector3 max)
{
- LLVector3 size = max - min;
mExtents[0] = min;
mExtents[1] = max;
}
diff --git a/linden/indra/newview/llflexibleobject.cpp b/linden/indra/newview/llflexibleobject.cpp
index 8f2c6d5..ad4341c 100644
--- a/linden/indra/newview/llflexibleobject.cpp
+++ b/linden/indra/newview/llflexibleobject.cpp
@@ -233,9 +233,6 @@ void LLVolumeImplFlexible::setAttributesOfAllSections(LLVector3* inScale)
mSection[0].mVelocity.setVec(0,0,0);
mSection[0].mAxisRotation.setQuat(begin_rot,0,0,1);
- LLVector3 parentSectionPosition = mSection[0].mPosition;
- LLVector3 last_direction = mSection[0].mDirection;
-
remapSections(mSection, mInitializedRes, mSection, mSimulateRes);
mInitializedRes = mSimulateRes;
diff --git a/linden/indra/newview/llfloateractivespeakers.cpp b/linden/indra/newview/llfloateractivespeakers.cpp
index 75cf176..c1ba5da 100644
--- a/linden/indra/newview/llfloateractivespeakers.cpp
+++ b/linden/indra/newview/llfloateractivespeakers.cpp
@@ -1010,7 +1010,7 @@ void LLSpeakerMgr::update(BOOL resort_ok)
LLUUID speaker_id = speaker_it->first;
LLSpeaker* speakerp = speaker_it->second;
- speaker_map_t::iterator cur_speaker_it = speaker_it++;
+ speaker_it++;
if (voice_channel_active && gVoiceClient->getVoiceEnabled(speaker_id))
{
diff --git a/linden/indra/newview/llfloaterjoystick.cpp b/linden/indra/newview/llfloaterjoystick.cpp
index 960eebb..4584abc 100644
--- a/linden/indra/newview/llfloaterjoystick.cpp
+++ b/linden/indra/newview/llfloaterjoystick.cpp
@@ -100,7 +100,6 @@ BOOL LLFloaterJoystick::postBuild()
if (child)
{
LLRect r = child->getRect();
- LLRect f = getRect();
rect = LLRect(350, r.mTop, r.mRight + 200, 0);
}
diff --git a/linden/indra/newview/llfloaterwater.cpp b/linden/indra/newview/llfloaterwater.cpp
index 782c56e..3530f54 100644
--- a/linden/indra/newview/llfloaterwater.cpp
+++ b/linden/indra/newview/llfloaterwater.cpp
@@ -760,13 +760,11 @@ bool LLFloaterWater::deleteAlertCallback(const LLSD& notification, const LLSD& r
LLComboBox* combo_box = sWaterMenu->getChild("WaterPresetsCombo");
LLFloaterDayCycle* day_cycle = NULL;
LLComboBox* key_combo = NULL;
- LLMultiSliderCtrl* mult_sldr = NULL;
if(LLFloaterDayCycle::isOpen())
{
day_cycle = LLFloaterDayCycle::instance();
key_combo = day_cycle->getChild("WaterKeyPresets");
- mult_sldr = day_cycle->getChild("WaterDayCycleKeys");
}
std::string name = combo_box->getSelectedValue().asString();
diff --git a/linden/indra/newview/llfloaterwindlight.cpp b/linden/indra/newview/llfloaterwindlight.cpp
index 4937232..8f2eafb 100644
--- a/linden/indra/newview/llfloaterwindlight.cpp
+++ b/linden/indra/newview/llfloaterwindlight.cpp
@@ -973,14 +973,12 @@ bool LLFloaterWindLight::deleteAlertCallback(const LLSD& notification, const LLS
"WLPresetsCombo");
LLFloaterDayCycle* day_cycle = NULL;
LLComboBox* key_combo = NULL;
- LLMultiSliderCtrl* mult_sldr = NULL;
if(LLFloaterDayCycle::isOpen())
{
day_cycle = LLFloaterDayCycle::instance();
key_combo = day_cycle->getChild(
"WLKeyPresets");
- mult_sldr = day_cycle->getChild("WLDayCycleKeys");
}
std::string name(combo_box->getSelectedValue().asString());
diff --git a/linden/indra/newview/llhoverview.cpp b/linden/indra/newview/llhoverview.cpp
index 4f248e4..91cb8a5 100644
--- a/linden/indra/newview/llhoverview.cpp
+++ b/linden/indra/newview/llhoverview.cpp
@@ -546,14 +546,15 @@ void LLHoverView::updateText()
LLParcel* hover_parcel = LLViewerParcelMgr::getInstance()->getHoverParcel();
LLUUID owner;
- S32 width = 0;
- S32 height = 0;
+ // Their use is commented out below. No doubt both will get deleted on a later clean up pass.
+ //S32 width = 0;
+ //S32 height = 0;
if ( hover_parcel )
{
owner = hover_parcel->getOwnerID();
- width = S32(LLViewerParcelMgr::getInstance()->getHoverParcelWidth());
- height = S32(LLViewerParcelMgr::getInstance()->getHoverParcelHeight());
+ // width = S32(LLViewerParcelMgr::getInstance()->getHoverParcelWidth());
+ // height = S32(LLViewerParcelMgr::getInstance()->getHoverParcelHeight());
}
// Line: "Land"
diff --git a/linden/indra/newview/llinventorybridge.cpp b/linden/indra/newview/llinventorybridge.cpp
index eb2170a..df32eab 100644
--- a/linden/indra/newview/llinventorybridge.cpp
+++ b/linden/indra/newview/llinventorybridge.cpp
@@ -1439,7 +1439,6 @@ BOOL move_inv_category_world_to_agent(const LLUUID& object_id,
if(drop && accept)
{
it = inventory_objects.begin();
- InventoryObjectList::iterator first_it = inventory_objects.begin();
LLMoveInv* move_inv = new LLMoveInv;
move_inv->mObjectID = object_id;
move_inv->mCategoryID = category_id;
diff --git a/linden/indra/newview/llinventorymodel.cpp b/linden/indra/newview/llinventorymodel.cpp
index 3f74965..40cbc43 100644
--- a/linden/indra/newview/llinventorymodel.cpp
+++ b/linden/indra/newview/llinventorymodel.cpp
@@ -1211,7 +1211,6 @@ void LLInventoryModel::fetchInventoryResponder::result(const LLSD& content)
item_array_t items;
update_map_t update;
S32 count = content["items"].size();
- bool all_one_folder = true;
LLUUID folder_id;
// Does this loop ever execute more than once?
for(S32 i = 0; i < count; ++i)
@@ -1244,10 +1243,6 @@ void LLInventoryModel::fetchInventoryResponder::result(const LLSD& content)
{
folder_id = titem->getParentUUID();
}
- else
- {
- all_one_folder = false;
- }
}
U32 changes = 0x0;
@@ -2960,7 +2955,6 @@ bool LLInventoryModel::messageUpdateCore(LLMessageSystem* msg, bool account)
item_array_t items;
update_map_t update;
S32 count = msg->getNumberOfBlocksFast(_PREHASH_InventoryData);
- bool all_one_folder = true;
LLUUID folder_id;
// Does this loop ever execute more than once?
for(S32 i = 0; i < count; ++i)
@@ -2992,10 +2986,6 @@ bool LLInventoryModel::messageUpdateCore(LLMessageSystem* msg, bool account)
{
folder_id = titem->getParentUUID();
}
- else
- {
- all_one_folder = false;
- }
}
if(account)
{
diff --git a/linden/indra/newview/llmanipscale.cpp b/linden/indra/newview/llmanipscale.cpp
index 33ee1b9..593f765 100644
--- a/linden/indra/newview/llmanipscale.cpp
+++ b/linden/indra/newview/llmanipscale.cpp
@@ -1172,9 +1172,6 @@ void LLManipScale::dragFace( S32 x, S32 y )
mInSnapRegime = FALSE;
}
- BOOL send_scale_update = FALSE;
- BOOL send_position_update = FALSE;
-
LLVector3 dir_agent;
if( part_dir_local.mV[VX] )
{
@@ -1191,8 +1188,6 @@ void LLManipScale::dragFace( S32 x, S32 y )
stretchFace(
projected_vec(drag_start_dir_f, dir_agent) + drag_start_center_agent,
projected_vec(drag_delta, dir_agent));
- send_position_update = TRUE;
- send_scale_update = TRUE;
mDragPointGlobal = drag_point_global;
}
diff --git a/linden/indra/newview/llmaniptranslate.cpp b/linden/indra/newview/llmaniptranslate.cpp
index 53578ca..4816eac 100644
--- a/linden/indra/newview/llmaniptranslate.cpp
+++ b/linden/indra/newview/llmaniptranslate.cpp
@@ -487,9 +487,6 @@ BOOL LLManipTranslate::handleHover(S32 x, S32 y, MASK mask)
}
}
- // Throttle updates to 10 per second.
- BOOL send_update = FALSE;
-
LLVector3 axis_f;
LLVector3d axis_d;
@@ -701,10 +698,7 @@ BOOL LLManipTranslate::handleHover(S32 x, S32 y, MASK mask)
LLVector3 new_position_local = selectNode->mSavedPositionLocal + (clamped_relative_move_f * objWorldRotation);
// move and clamp root object first, before adjusting children
- if (new_position_local != old_position_local)
- {
- send_update = TRUE;
- }
+
//RN: I forget, but we need to do this because of snapping which doesn't often result
// in position changes even when the mouse moves
object->setPosition(new_position_local);
@@ -714,8 +708,6 @@ BOOL LLManipTranslate::handleHover(S32 x, S32 y, MASK mask)
if (selectNode->mIndividualSelection)
{
- send_update = FALSE;
-
// counter-translate child objects if we are moving the root as an individual
object->resetChildrenPosition(old_position_local - new_position_local, TRUE) ;
}
@@ -752,7 +744,6 @@ BOOL LLManipTranslate::handleHover(S32 x, S32 y, MASK mask)
}
// PR: Only update if changed
- LLVector3d old_position_global = object->getPositionGlobal();
LLVector3 old_position_agent = object->getPositionAgent();
LLVector3 new_position_agent = gAgent.getPosAgentFromGlobal(new_position_global);
if (object->isRootEdit())
@@ -774,11 +765,6 @@ BOOL LLManipTranslate::handleHover(S32 x, S32 y, MASK mask)
{
// counter-translate child objects if we are moving the root as an individual
object->resetChildrenPosition(old_position_agent - new_position_agent, TRUE) ;
- send_update = FALSE;
- }
- else if (old_position_global != new_position_global)
- {
- send_update = TRUE;
}
}
selectNode->mLastPositionLocal = object->getPosition();
@@ -1302,7 +1288,7 @@ void LLManipTranslate::renderSnapGuides()
// add in off-axis offset
tick_start += (mSnapOffsetAxis * mSnapOffsetMeters);
- BOOL is_sub_tick = FALSE;
+// BOOL is_sub_tick = FALSE;
F32 tick_scale = 1.f;
for (F32 division_level = max_subdivisions; division_level >= sGridMinSubdivisionLevel; division_level /= 2.f)
{
@@ -1311,7 +1297,7 @@ void LLManipTranslate::renderSnapGuides()
break;
}
tick_scale *= 0.7f;
- is_sub_tick = TRUE;
+// is_sub_tick = TRUE;
}
// S32 num_ticks_to_fade = is_sub_tick ? num_ticks_per_side / 2 : num_ticks_per_side;
@@ -1533,7 +1519,6 @@ void LLManipTranslate::renderSnapGuides()
float a = line_alpha;
- LLColor4 col = gColors.getColor("SilhouetteChildColor");
{
//draw grid behind objects
LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE);
diff --git a/linden/indra/newview/llpanelavatar.cpp b/linden/indra/newview/llpanelavatar.cpp
index dc0db8b..f249d2a 100644
--- a/linden/indra/newview/llpanelavatar.cpp
+++ b/linden/indra/newview/llpanelavatar.cpp
@@ -1321,11 +1321,11 @@ void LLPanelAvatar::setAvatarID(const LLUUID &avatar_id, const std::string &name
{
if (avatar_id.isNull()) return;
- BOOL avatar_changed = FALSE;
- if (avatar_id != mAvatarID)
- {
- avatar_changed = TRUE;
- }
+// BOOL avatar_changed = FALSE;
+// if (avatar_id != mAvatarID)
+// {
+// avatar_changed = TRUE;
+// }
mAvatarID = avatar_id;
// Determine if we have their calling card.
diff --git a/linden/indra/newview/llpanelcontents.cpp b/linden/indra/newview/llpanelcontents.cpp
index 02befea..c5df81c 100644
--- a/linden/indra/newview/llpanelcontents.cpp
+++ b/linden/indra/newview/llpanelcontents.cpp
@@ -83,8 +83,6 @@
BOOL LLPanelContents::postBuild()
{
- LLRect rect = this->getRect();
-
setMouseOpaque(FALSE);
childSetAction("button new script",&LLPanelContents::onClickNewScript, this);
diff --git a/linden/indra/newview/llpanelface.cpp b/linden/indra/newview/llpanelface.cpp
index b9a40da..d8401de 100644
--- a/linden/indra/newview/llpanelface.cpp
+++ b/linden/indra/newview/llpanelface.cpp
@@ -74,7 +74,6 @@
BOOL LLPanelFace::postBuild()
{
- LLRect rect = this->getRect();
LLTextureCtrl* mTextureCtrl;
LLColorSwatchCtrl* mColorSwatch;
diff --git a/linden/indra/newview/llpanelgrouplandmoney.cpp b/linden/indra/newview/llpanelgrouplandmoney.cpp
index 3f128fe..e15f585 100644
--- a/linden/indra/newview/llpanelgrouplandmoney.cpp
+++ b/linden/indra/newview/llpanelgrouplandmoney.cpp
@@ -1390,13 +1390,11 @@ void LLGroupMoneyPlanningTabEventHandler::processReply(LLMessageSystem* msg,
S32 cur_land_tax;
S32 cur_group_tax;
S32 cur_parcel_dir_fee;
- S32 cur_total_tax;
S32 proj_object_tax;
S32 proj_light_tax;
S32 proj_land_tax;
S32 proj_group_tax;
S32 proj_parcel_dir_fee;
- S32 proj_total_tax;
S32 non_exempt_members;
msg->getS32Fast(_PREHASH_MoneyData, _PREHASH_IntervalDays, interval_days );
@@ -1420,9 +1418,6 @@ void LLGroupMoneyPlanningTabEventHandler::processReply(LLMessageSystem* msg,
msg->getStringFast(_PREHASH_MoneyData, _PREHASH_LastTaxDate, last_stipend_date);
msg->getStringFast(_PREHASH_MoneyData, _PREHASH_TaxDate, next_stipend_date);
- cur_total_tax = cur_object_tax + cur_light_tax + cur_land_tax + cur_group_tax + cur_parcel_dir_fee;
- proj_total_tax = proj_object_tax + proj_light_tax + proj_land_tax + proj_group_tax + proj_parcel_dir_fee;
-
if (interval_days != mImplementationp->mIntervalLength ||
current_interval != mImplementationp->mCurrentInterval)
{
diff --git a/linden/indra/newview/llpanellogin.cpp b/linden/indra/newview/llpanellogin.cpp
index 824c5b0..524ecf6 100644
--- a/linden/indra/newview/llpanellogin.cpp
+++ b/linden/indra/newview/llpanellogin.cpp
@@ -602,18 +602,17 @@ void LLPanelLogin::addServer(const std::string& server)
const std::string &defaultGrid = gHippoGridManager->getDefaultGridNick();
LLComboBox *grids = sInstance->getChild("server_combo");
- S32 selectIndex = -1, i = 0;
+ S32 i = 0;
grids->removeall();
if (defaultGrid != "") {
grids->add(defaultGrid);
- selectIndex = i++;
+ i++;
}
HippoGridManager::GridIterator it, end = gHippoGridManager->endGrid();
for (it = gHippoGridManager->beginGrid(); it != end; ++it) {
const std::string &grid = it->second->getGridNick();
if (grid != defaultGrid) {
grids->add(grid);
- //if (grid == mCurGrid) selectIndex = i;
i++;
}
}
diff --git a/linden/indra/newview/llpanelmediahud.cpp b/linden/indra/newview/llpanelmediahud.cpp
index 39c4b63..c4afe27 100644
--- a/linden/indra/newview/llpanelmediahud.cpp
+++ b/linden/indra/newview/llpanelmediahud.cpp
@@ -356,7 +356,6 @@ void LLPanelMediaHUD::updateShape()
media_hud_rect.mRight += getRect().getWidth() - media_region->getRect().mRight;
- LLRect old_hud_rect = media_hud_rect;
// keep all parts of HUD on-screen
media_hud_rect.intersectWith(getParent()->getLocalRect());
diff --git a/linden/indra/newview/llspatialpartition.cpp b/linden/indra/newview/llspatialpartition.cpp
index d9fa5b5..30f7c0b 100644
--- a/linden/indra/newview/llspatialpartition.cpp
+++ b/linden/indra/newview/llspatialpartition.cpp
@@ -2860,9 +2860,6 @@ public:
virtual bool check(LLDrawable* drawable)
{
- LLVector3 local_start = mStart;
- LLVector3 local_end = mEnd;
-
if (!gPipeline.hasRenderType(drawable->getRenderType()) || !drawable->isVisible())
{
return false;
diff --git a/linden/indra/newview/llstartup.cpp b/linden/indra/newview/llstartup.cpp
index d853dc0..2fd96df 100644
--- a/linden/indra/newview/llstartup.cpp
+++ b/linden/indra/newview/llstartup.cpp
@@ -348,7 +348,6 @@ bool idle_startup()
const F32 TIMEOUT_SECONDS = 10.f; // changed from 5 to 10 seconds for OpenSim lag -- MC
const S32 MAX_TIMEOUT_COUNT = 3;
static LLTimer timeout;
- static S32 timeout_count = 0;
static LLTimer login_time;
static LLTimer connecting_region_timer;
@@ -380,11 +379,10 @@ bool idle_startup()
// last location by default
static S32 agent_location_id = START_LOCATION_ID_LAST;
- static S32 location_which = START_LOCATION_ID_LAST;
static bool show_connect_box = true;
- static bool stipend_since_login = false;
+ //static bool stipend_since_login = false;
static bool samename = false;
@@ -799,8 +797,6 @@ bool idle_startup()
gViewerWindow->getWindow()->setCursor(UI_CURSOR_ARROW);
- timeout_count = 0;
-
if (LLStartUp::shouldAutoLogin())
{
show_connect_box = false;
@@ -1113,7 +1109,6 @@ bool idle_startup()
{
// Force login at the last location
agent_location_id = START_LOCATION_ID_LAST;
- location_which = START_LOCATION_ID_LAST;
gSavedSettings.setBOOL("LoginLastLocation", FALSE);
// Clear some things that would cause us to divert to a user-specified location
@@ -1125,21 +1120,14 @@ bool idle_startup()
{
// a startup URL was specified
agent_location_id = START_LOCATION_ID_URL;
-
- // doesn't really matter what location_which is, since
- // agent_start_look_at will be overwritten when the
- // UserLoginLocationReply arrives
- location_which = START_LOCATION_ID_LAST;
}
else if (gSavedSettings.getBOOL("LoginLastLocation"))
{
agent_location_id = START_LOCATION_ID_LAST; // last location
- location_which = START_LOCATION_ID_LAST;
}
else
{
agent_location_id = START_LOCATION_ID_HOME; // home
- location_which = START_LOCATION_ID_HOME;
}
gViewerWindow->getWindow()->setCursor(UI_CURSOR_WAIT);
@@ -1785,11 +1773,11 @@ bool idle_startup()
if((*it).second == "N") gAgent.setFirstLogin(TRUE);
else gAgent.setFirstLogin(FALSE);
}
- it = options[0].find("stipend_since_login");
- if(it != no_flag)
- {
- if((*it).second == "Y") stipend_since_login = true;
- }
+ //it = options[0].find("stipend_since_login");
+ //if(it != no_flag)
+ //{
+ // if((*it).second == "Y") stipend_since_login = true;
+ //}
it = options[0].find("gendered");
if(it != no_flag)
{
diff --git a/linden/indra/newview/lltoolcomp.cpp b/linden/indra/newview/lltoolcomp.cpp
index 7bf99f0..172f71d 100644
--- a/linden/indra/newview/lltoolcomp.cpp
+++ b/linden/indra/newview/lltoolcomp.cpp
@@ -471,18 +471,16 @@ LLToolCompCreate::~LLToolCompCreate()
BOOL LLToolCompCreate::handleMouseDown(S32 x, S32 y, MASK mask)
{
- BOOL handled = FALSE;
mMouseDown = TRUE;
if ( (mask == MASK_SHIFT) || (mask == MASK_CONTROL) )
{
gViewerWindow->pickAsync(x, y, mask, pickCallback);
- handled = TRUE;
}
else
{
setCurrentTool( mPlacer );
- handled = mPlacer->placeObject( x, y, mask );
+ mPlacer->placeObject( x, y, mask );
}
mObjectPlacedOnMouseDown = TRUE;
diff --git a/linden/indra/newview/lltoolfocus.cpp b/linden/indra/newview/lltoolfocus.cpp
index ae0cd1e..c0dedb6 100644
--- a/linden/indra/newview/lltoolfocus.cpp
+++ b/linden/indra/newview/lltoolfocus.cpp
@@ -318,8 +318,6 @@ BOOL LLToolCamera::handleHover(S32 x, S32 y, MASK mask)
S32 dx = gViewerWindow->getCurrentMouseDX();
S32 dy = gViewerWindow->getCurrentMouseDY();
- BOOL moved_outside_slop = FALSE;
-
if (hasMouseCapture() && mValidClickPoint)
{
mAccumX += llabs(dx);
@@ -327,19 +325,11 @@ BOOL LLToolCamera::handleHover(S32 x, S32 y, MASK mask)
if (mAccumX >= SLOP_RANGE)
{
- if (!mOutsideSlopX)
- {
- moved_outside_slop = TRUE;
- }
mOutsideSlopX = TRUE;
}
if (mAccumY >= SLOP_RANGE)
{
- if (!mOutsideSlopY)
- {
- moved_outside_slop = TRUE;
- }
mOutsideSlopY = TRUE;
}
}
diff --git a/linden/indra/newview/llurlhistory.cpp b/linden/indra/newview/llurlhistory.cpp
index b187f3b..1d6c87f 100644
--- a/linden/indra/newview/llurlhistory.cpp
+++ b/linden/indra/newview/llurlhistory.cpp
@@ -119,8 +119,6 @@ void LLURLHistory::addURL(const std::string& collection, const std::string& url)
// static
void LLURLHistory::removeURL(const std::string& collection, const std::string& url)
{
- LLSD::array_iterator iter = sHistorySD[collection].beginArray();
- LLSD::array_iterator end = sHistorySD[collection].endArray();
for(int index = 0; index < sHistorySD[collection].size(); index++)
{
if(sHistorySD[collection].get(index).asString() == url)
diff --git a/linden/indra/newview/llviewercamera.cpp b/linden/indra/newview/llviewercamera.cpp
index fecab65..5a09433 100644
--- a/linden/indra/newview/llviewercamera.cpp
+++ b/linden/indra/newview/llviewercamera.cpp
@@ -306,7 +306,7 @@ void LLViewerCamera::setPerspective(BOOL for_selection,
{
F32 fov_y, aspect;
fov_y = RAD_TO_DEG * getView();
- BOOL z_default_near, z_default_far = FALSE;
+ BOOL z_default_far = FALSE;
if (z_far <= 0)
{
z_default_far = TRUE;
@@ -314,7 +314,6 @@ void LLViewerCamera::setPerspective(BOOL for_selection,
}
if (z_near <= 0)
{
- z_default_near = TRUE;
z_near = getNear();
}
aspect = getAspect();
diff --git a/linden/indra/newview/llviewermessage.cpp b/linden/indra/newview/llviewermessage.cpp
old mode 100755
new mode 100644
index f0c7c0c..9dd02eb
--- a/linden/indra/newview/llviewermessage.cpp
+++ b/linden/indra/newview/llviewermessage.cpp
@@ -653,7 +653,6 @@ void send_sound_trigger(const LLUUID& sound_id, F32 gain)
bool join_group_response(const LLSD& notification, const LLSD& response)
{
S32 option = LLNotification::getSelectedOption(notification, response);
- BOOL delete_context_data = TRUE;
bool accept_invite = false;
LLUUID group_id = notification["payload"]["group_id"].asUUID();
@@ -682,7 +681,6 @@ bool join_group_response(const LLSD& notification, const LLSD& response)
}
else
{
- delete_context_data = FALSE;
LLSD args;
args["NAME"] = name;
args["INVITE"] = message;
@@ -696,7 +694,6 @@ bool join_group_response(const LLSD& notification, const LLSD& response)
// sure the user is sure they want to join.
if (fee > 0)
{
- delete_context_data = FALSE;
LLSD args;
args["COST"] = llformat("%d", fee);
args["CURRENCY"] = gHippoGridManager->getConnectedGrid()->getCurrencySymbol();
diff --git a/linden/indra/newview/llviewerobject.cpp b/linden/indra/newview/llviewerobject.cpp
index 576f312..880e1bb 100644
--- a/linden/indra/newview/llviewerobject.cpp
+++ b/linden/indra/newview/llviewerobject.cpp
@@ -2046,9 +2046,6 @@ BOOL LLViewerObject::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
if (HJT_HINGE == mJointInfo->mJointType)
{
// hinge = uniform circular motion
- LLVector3 parent_pivot = getVelocity();
- LLVector3 parent_axis = getAcceleration();
-
angle = dt * (ang_vel * mJointInfo->mAxisOrAnchor); // AxisOrAnchor = axis
dQ.setQuat(angle, mJointInfo->mAxisOrAnchor); // AxisOrAnchor = axis
LLVector3 pivot_offset = pos - mJointInfo->mPivot; // pos in pivot-frame
diff --git a/linden/indra/newview/llvlcomposition.cpp b/linden/indra/newview/llvlcomposition.cpp
index afd9b95..beec1f1 100644
--- a/linden/indra/newview/llvlcomposition.cpp
+++ b/linden/indra/newview/llvlcomposition.cpp
@@ -384,9 +384,6 @@ BOOL LLVLComposition::generateTexture(const F32 x, const F32 y,
LLPointer raw = new LLImageRaw(tex_width, tex_height, tex_comps);
U8 *rawp = raw->getData();
- F32 tex_width_inv = 1.f/tex_width;
- F32 tex_height_inv = 1.f/tex_height;
-
F32 st_x_stride, st_y_stride;
st_x_stride = ((F32)st_width / (F32)mTexScaleX)*((F32)mWidth / (F32)tex_width);
st_y_stride = ((F32)st_height / (F32)mTexScaleY)*((F32)mWidth / (F32)tex_height);
@@ -421,11 +418,6 @@ BOOL LLVLComposition::generateTexture(const F32 x, const F32 y,
tex1 = tex0 + 1;
tex1 = llclamp(tex1, 0, 3);
- F32 xy_int_i, xy_int_j;
-
- xy_int_i = i * tex_width_inv;
- xy_int_j = j * tex_height_inv;
-
st_offset = (lltrunc(sti) + lltrunc(stj)*st_width) * st_comps;
for (U32 k = 0; k < tex_comps; k++)
{
diff --git a/linden/indra/newview/llvoavatar.cpp b/linden/indra/newview/llvoavatar.cpp
index 359ac74..aac4e41 100644
--- a/linden/indra/newview/llvoavatar.cpp
+++ b/linden/indra/newview/llvoavatar.cpp
@@ -2500,7 +2500,6 @@ void LLVOAvatar::computeBodySize()
// some of the joints have not been cached
LLVector3 skull = mSkullp->getPosition();
- LLVector3 skull_scale = mSkullp->getScale();
LLVector3 neck = mNeckp->getPosition();
LLVector3 neck_scale = mNeckp->getScale();
@@ -2580,7 +2579,6 @@ U32 LLVOAvatar::processUpdateMessage(LLMessageSystem *mesgsys,
{
LLMemType mt(LLMemType::MTYPE_AVATAR);
- LLVector3 old_vel = getVelocity();
// Do base class updates...
U32 retval = LLViewerObject::processUpdateMessage(mesgsys, user_data, block_num, update_type, dp);
@@ -3823,8 +3821,6 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
mNameText->setLabel(mNameString);
}
- char line[MAX_STRING]; /* Flawfinder: ignore */
- line[0] = '\0';
std::deque::iterator chat_iter = mChats.begin();
mNameText->clearString();
@@ -4287,8 +4283,6 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
xyVel.mV[VZ] = 0.0f;
speed = xyVel.length();
- BOOL throttle = TRUE;
-
if (!(mIsSitting && getParent()))
{
//--------------------------------------------------------------------
@@ -4299,7 +4293,6 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
if (mTimeLast == 0.0f)
{
mTimeLast = animation_time;
- throttle = FALSE;
// put the pelvis at slaved position/mRotation
mRoot.setWorldPosition( getPositionAgent() ); // first frame
diff --git a/linden/indra/newview/llvoiceclient.cpp b/linden/indra/newview/llvoiceclient.cpp
index 2035b62..703bcc2 100644
--- a/linden/indra/newview/llvoiceclient.cpp
+++ b/linden/indra/newview/llvoiceclient.cpp
@@ -3160,7 +3160,7 @@ void LLVoiceClient::giveUp()
static void oldSDKTransform (LLVector3 &left, LLVector3 &up, LLVector3 &at, LLVector3d &pos, LLVector3 &vel)
{
- F32 nat[3], nup[3], nl[3], nvel[3]; // the new at, up, left vectors and the new position and velocity
+ F32 nat[3], nup[3], nl[3]; // the new at, up, left vectors and the new position and velocity (velocity was not used, so I deleted it)
F64 npos[3];
// The original XML command was sent like this:
@@ -3210,10 +3210,6 @@ static void oldSDKTransform (LLVector3 &left, LLVector3 &up, LLVector3 &at, LLVe
npos[1] = pos.mdV[VZ];
npos[2] = pos.mdV[VY];
- nvel[0] = vel.mV[VX];
- nvel[1] = vel.mV[VZ];
- nvel[2] = vel.mV[VY];
-
for(int i=0;i<3;++i) {
at.mV[i] = nat[i];
up.mV[i] = nup[i];
@@ -3264,10 +3260,6 @@ static void oldSDKTransform (LLVector3 &left, LLVector3 &up, LLVector3 &at, LLVe
npos[1] = pos.mdV[VZ];
npos[2] = pos.mdV[VY] * -1.0;
- nvel[0] = vel.mV[VX];
- nvel[1] = vel.mV[VZ];
- nvel[2] = vel.mV[VY];
-
for(int i=0;i<3;++i) {
at.mV[i] = nat[i];
up.mV[i] = nup[i];
diff --git a/linden/indra/newview/llvosurfacepatch.cpp b/linden/indra/newview/llvosurfacepatch.cpp
index 1671880..380eff5 100644
--- a/linden/indra/newview/llvosurfacepatch.cpp
+++ b/linden/indra/newview/llvosurfacepatch.cpp
@@ -423,7 +423,7 @@ void LLVOSurfacePatch::updateNorthGeometry(LLFace *facep,
S32 vertex_count = 0;
S32 i, x, y;
- S32 num_vertices, num_indices;
+ S32 num_vertices;
U32 render_stride = mLastStride;
S32 patch_size = mPatchp->getSurface()->getGridsPerPatchEdge();
@@ -441,7 +441,6 @@ void LLVOSurfacePatch::updateNorthGeometry(LLFace *facep,
if (north_stride == render_stride)
{
num_vertices = 2 * length + 1;
- num_indices = length * 6 - 3;
facep->mCenterAgent = (mPatchp->getPointAgent(8, 15) + mPatchp->getPointAgent(8, 16))*0.5f;
@@ -494,7 +493,6 @@ void LLVOSurfacePatch::updateNorthGeometry(LLFace *facep,
{
// North stride is longer (has less vertices)
num_vertices = length + length/2 + 1;
- num_indices = half_length*9 - 3;
facep->mCenterAgent = (mPatchp->getPointAgent(7, 15) + mPatchp->getPointAgent(8, 16))*0.5f;
@@ -555,7 +553,6 @@ void LLVOSurfacePatch::updateNorthGeometry(LLFace *facep,
length = patch_size / north_stride;
half_length = length / 2;
num_vertices = length + half_length + 1;
- num_indices = 9*half_length - 3;
facep->mCenterAgent = (mPatchp->getPointAgent(15, 7) + mPatchp->getPointAgent(16, 8))*0.5f;
@@ -629,7 +626,7 @@ void LLVOSurfacePatch::updateEastGeometry(LLFace *facep,
{
S32 i, x, y;
- S32 num_vertices, num_indices;
+ S32 num_vertices;
U32 render_stride = mLastStride;
S32 patch_size = mPatchp->getSurface()->getGridsPerPatchEdge();
@@ -642,7 +639,6 @@ void LLVOSurfacePatch::updateEastGeometry(LLFace *facep,
if (east_stride == render_stride)
{
num_vertices = 2 * length + 1;
- num_indices = length * 6 - 3;
facep->mCenterAgent = (mPatchp->getPointAgent(8, 15) + mPatchp->getPointAgent(8, 16))*0.5f;
@@ -693,7 +689,6 @@ void LLVOSurfacePatch::updateEastGeometry(LLFace *facep,
{
// East stride is longer (has less vertices)
num_vertices = length + half_length + 1;
- num_indices = half_length*9 - 3;
facep->mCenterAgent = (mPatchp->getPointAgent(7, 15) + mPatchp->getPointAgent(8, 16))*0.5f;
@@ -750,7 +745,6 @@ void LLVOSurfacePatch::updateEastGeometry(LLFace *facep,
length = patch_size / east_stride;
half_length = length / 2;
num_vertices = length + length/2 + 1;
- num_indices = 9*(length/2) - 3;
facep->mCenterAgent = (mPatchp->getPointAgent(15, 7) + mPatchp->getPointAgent(16, 8))*0.5f;
diff --git a/linden/indra/newview/llvovolume.cpp b/linden/indra/newview/llvovolume.cpp
index cb38c86..2b9f94c 100644
--- a/linden/indra/newview/llvovolume.cpp
+++ b/linden/indra/newview/llvovolume.cpp
@@ -3217,11 +3217,11 @@ void LLVOVolume::syncMediaData(S32 texture_index, const LLSD &media_data, bool m
mep = te->getMediaData();
if(mep)
{
- bool update_from_self = false;
+ //bool update_from_self = false;
if (!ignore_agent)
{
LLUUID updating_agent = LLTextureEntry::getAgentIDFromMediaVersionString(getMediaURL());
- update_from_self = (updating_agent == gAgent.getID());
+ //update_from_self = (updating_agent == gAgent.getID());
}
//viewer_media_t media_impl = LLViewerMedia::updateMediaImpl(mep, previous_url, update_from_self);
diff --git a/linden/indra/newview/llwaterparamset.cpp b/linden/indra/newview/llwaterparamset.cpp
index 4b2e426..5825a23 100644
--- a/linden/indra/newview/llwaterparamset.cpp
+++ b/linden/indra/newview/llwaterparamset.cpp
@@ -192,8 +192,6 @@ LLVector3 LLWaterParamSet::getVector3(const std::string& paramName, bool& error)
LLVector2 LLWaterParamSet::getVector2(const std::string& paramName, bool& error)
{
// test to see if right type
- int ttest;
- ttest = mParamValues.size();
LLSD cur_val = mParamValues.get(paramName);
if (!cur_val.isArray() || cur_val.size() != 2)
{
diff --git a/linden/indra/newview/llworldmapview.cpp b/linden/indra/newview/llworldmapview.cpp
index d7a6838..b2cab52 100644
--- a/linden/indra/newview/llworldmapview.cpp
+++ b/linden/indra/newview/llworldmapview.cpp
@@ -1192,8 +1192,6 @@ void LLWorldMapView::drawTracking(const LLVector3d& pos_global, const LLColor4&
S32 text_x = x;
S32 text_y = (S32)(y - sTrackCircleImage->getHeight()/2 - font->getLineHeight());
- BOOL is_in_window = true;
-
if( x < 0
|| y < 0
|| x >= getRect().getWidth()
@@ -1206,7 +1204,6 @@ void LLWorldMapView::drawTracking(const LLVector3d& pos_global, const LLColor4&
text_x = sTrackingArrowX;
text_y = sTrackingArrowY;
}
- is_in_window = false;
}
else if (LLTracker::getTrackingStatus() == LLTracker::TRACKING_LOCATION &&
LLTracker::getTrackedLocationType() != LLTracker::LOCATION_NOTHING)
diff --git a/linden/indra/newview/panelradar.cpp b/linden/indra/newview/panelradar.cpp
index c94c0d1..ad6efc2 100644
--- a/linden/indra/newview/panelradar.cpp
+++ b/linden/indra/newview/panelradar.cpp
@@ -408,7 +408,6 @@ void PanelRadar::updateButtonStates()
static bool enable_unmute = false;
static bool enable_track = false;
static bool enable_estate = false;
- static bool enable_friend = false;
static bool enable_cam = false;
if (mRadarTabs->getCurrentPanelIndex() == 0) // Avatar tab
@@ -426,7 +425,6 @@ void PanelRadar::updateButtonStates()
enable_estate = isKickable(mSelectedAvatar);
enable_unmute = LLMuteList::getInstance()->isMuted(mSelectedAvatar);
enable_track = gAgent.isGodlike() || is_agent_mappable(mSelectedAvatar);
- enable_friend = !is_agent_friend(mSelectedAvatar);
enable_cam = mSelectedDistance >= 0 && mSelectedDistance <= gSavedSettings.getF32("NearMeRange");
}
else
@@ -436,7 +434,6 @@ void PanelRadar::updateButtonStates()
enable_estate = false;
enable_unmute = false;
enable_track = false;
- enable_friend = false;
enable_cam = false;
}
diff --git a/linden/indra/newview/pipeline.cpp b/linden/indra/newview/pipeline.cpp
index 61ad8b7..ae7461c 100644
--- a/linden/indra/newview/pipeline.cpp
+++ b/linden/indra/newview/pipeline.cpp
@@ -2269,18 +2269,12 @@ void LLPipeline::postSort(LLCamera& camera)
const S32 bin_count = 1024*8;
static LLCullResult::drawinfo_list_t alpha_bins[bin_count];
- static U32 bin_size[bin_count];
//clear one bin per frame to avoid memory bloat
static S32 clear_idx = 0;
clear_idx = (1+clear_idx)%bin_count;
alpha_bins[clear_idx].clear();
- for (U32 j = 0; j < bin_count; j++)
- {
- bin_size[j] = 0;
- }
-
//build render map
for (LLCullResult::sg_list_t::iterator i = sCull->beginVisibleGroups(); i != sCull->endVisibleGroups(); ++i)
{
@@ -5956,8 +5950,6 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
stop_glerror();
- LLVector3 origin = camera.getOrigin();
-
glPushMatrix();
mat.set_scale(glh::vec3f(1,1,-1));
--
cgit v1.1
From e6734283dee37ee41ea82d190aa64d84f04215e9 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Mon, 8 Apr 2013 04:53:41 +1000
Subject: More unused variable deletion.
---
linden/indra/llui/llpanel.cpp | 1 -
linden/indra/llui/llprogressbar.cpp | 3 ---
linden/indra/newview/chatbar_as_cmdline.cpp | 1 -
linden/indra/newview/llmaniprotate.cpp | 1 -
linden/indra/newview/llpanelpermissions.cpp | 5 +++--
linden/indra/newview/llselectmgr.cpp | 2 --
linden/indra/newview/llspatialpartition.cpp | 3 ---
linden/indra/newview/llsurface.cpp | 2 --
linden/indra/newview/llviewercamera.cpp | 3 ---
linden/indra/newview/llviewerdisplay.cpp | 1 -
linden/indra/newview/llviewerparcelmedia.cpp | 6 ++----
11 files changed, 5 insertions(+), 23 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/llui/llpanel.cpp b/linden/indra/llui/llpanel.cpp
index 07e78ed..361e4f3 100644
--- a/linden/indra/llui/llpanel.cpp
+++ b/linden/indra/llui/llpanel.cpp
@@ -1078,7 +1078,6 @@ struct LLLayoutStack::LLEmbeddedPanel
mVisibleAmt(1.f) // default to fully visible
{
LLResizeBar::Side side = (orientation == HORIZONTAL) ? LLResizeBar::RIGHT : LLResizeBar::BOTTOM;
- LLRect resize_bar_rect = panelp->getRect();
S32 min_dim;
if (orientation == HORIZONTAL)
diff --git a/linden/indra/llui/llprogressbar.cpp b/linden/indra/llui/llprogressbar.cpp
index d148733..0000d77 100644
--- a/linden/indra/llui/llprogressbar.cpp
+++ b/linden/indra/llui/llprogressbar.cpp
@@ -83,9 +83,6 @@ void LLProgressBar::draw()
bar_bg_imagep->draw(getLocalRect(),
background_color);
- F32 alpha = 0.5f + 0.5f*0.5f*(1.f + (F32)sin(3.f*timer.getElapsedTimeF32()));
- LLColor4 bar_color = LLUI::sColorsGroup->getColor("LoginProgressBarFgColor");
- bar_color.mV[3] = alpha;
LLRect progress_rect = getLocalRect();
progress_rect.mRight = llround(getRect().getWidth() * (mPercentDone / 100.f));
bar_fg_imagep->draw(progress_rect);
diff --git a/linden/indra/newview/chatbar_as_cmdline.cpp b/linden/indra/newview/chatbar_as_cmdline.cpp
index 9777114..e1314f7 100644
--- a/linden/indra/newview/chatbar_as_cmdline.cpp
+++ b/linden/indra/newview/chatbar_as_cmdline.cpp
@@ -302,7 +302,6 @@ bool cmd_line_chat(std::string revised_text, EChatType type)
{
if (i >> z)
{
- LLVector3 agentPos = gAgent.getPositionAgent();
LLViewerRegion* agentRegionp = gAgent.getRegion();
if(agentRegionp)
{
diff --git a/linden/indra/newview/llmaniprotate.cpp b/linden/indra/newview/llmaniprotate.cpp
index 77c8bd5..fa5ab56 100644
--- a/linden/indra/newview/llmaniprotate.cpp
+++ b/linden/indra/newview/llmaniprotate.cpp
@@ -1652,7 +1652,6 @@ void LLManipRotate::highlightManipulators( S32 x, S32 y )
return;
}
- LLQuaternion object_rot = first_object->getRenderRotation();
LLVector3 rotation_center = gAgent.getPosAgentFromGlobal(mRotationCenter);
LLVector3 mouse_dir_x;
LLVector3 mouse_dir_y;
diff --git a/linden/indra/newview/llpanelpermissions.cpp b/linden/indra/newview/llpanelpermissions.cpp
index 6b7bc1b..9799de7 100644
--- a/linden/indra/newview/llpanelpermissions.cpp
+++ b/linden/indra/newview/llpanelpermissions.cpp
@@ -541,7 +541,7 @@ void LLPanelPermissions::refresh()
// TODO: Creator permissions
BOOL valid_base_perms = FALSE;
- BOOL valid_owner_perms = FALSE;
+ //BOOL valid_owner_perms = FALSE;
BOOL valid_group_perms = FALSE;
BOOL valid_everyone_perms = FALSE;
BOOL valid_next_perms = FALSE;
@@ -561,7 +561,8 @@ void LLPanelPermissions::refresh()
&base_mask_on,
&base_mask_off);
- valid_owner_perms = LLSelectMgr::getInstance()->selectGetPerm(PERM_OWNER,
+ // TODO - seems odd, but this is not actually used, except to set owner_mask_*.
+ /*valid_owner_perms =*/ LLSelectMgr::getInstance()->selectGetPerm(PERM_OWNER,
&owner_mask_on,
&owner_mask_off);
diff --git a/linden/indra/newview/llselectmgr.cpp b/linden/indra/newview/llselectmgr.cpp
index 4a6c8ed..bfe0e9c 100644
--- a/linden/indra/newview/llselectmgr.cpp
+++ b/linden/indra/newview/llselectmgr.cpp
@@ -1072,7 +1072,6 @@ void LLSelectMgr::getGrid(LLVector3& origin, LLQuaternion &rotation, LLVector3 &
if (mGridMode == GRID_MODE_LOCAL && mSelectedObjects->getObjectCount())
{
//LLViewerObject* root = getSelectedParentObject(mSelectedObjects->getFirstObject());
- LLBBox bbox = mSavedSelectionBBox;
mGridOrigin = mSavedSelectionBBox.getCenterAgent();
mGridScale = mSavedSelectionBBox.getExtentLocal() * 0.5f;
@@ -1090,7 +1089,6 @@ void LLSelectMgr::getGrid(LLVector3& origin, LLQuaternion &rotation, LLVector3 &
else if (mGridMode == GRID_MODE_REF_OBJECT && first_grid_object && first_grid_object->mDrawable.notNull())
{
mGridRotation = first_grid_object->getRenderRotation();
- LLVector3 first_grid_obj_pos = first_grid_object->getRenderPosition();
LLVector3 min_extents(F32_MAX, F32_MAX, F32_MAX);
LLVector3 max_extents(-F32_MAX, -F32_MAX, -F32_MAX);
diff --git a/linden/indra/newview/llspatialpartition.cpp b/linden/indra/newview/llspatialpartition.cpp
index 30f7c0b..a9255b3 100644
--- a/linden/indra/newview/llspatialpartition.cpp
+++ b/linden/indra/newview/llspatialpartition.cpp
@@ -2617,9 +2617,6 @@ public:
return;
}
- LLVector3 nodeCenter = group->mBounds[0];
- LLVector3 octCenter = LLVector3(group->mOctreeNode->getCenter());
-
for (LLSpatialGroup::OctreeNode::const_element_iter i = branch->getData().begin(); i != branch->getData().end(); ++i)
{
LLDrawable* drawable = *i;
diff --git a/linden/indra/newview/llsurface.cpp b/linden/indra/newview/llsurface.cpp
index 5a99e66..8692c80 100644
--- a/linden/indra/newview/llsurface.cpp
+++ b/linden/indra/newview/llsurface.cpp
@@ -1262,8 +1262,6 @@ BOOL LLSurface::generateWaterTexture(const F32 x, const F32 y,
y_end = tex_width;
}
- LLVector3d origin_global = from_region_handle(getRegion()->getHandle());
-
// OK, for now, just have the composition value equal the height at the point.
LLVector3 location;
LLColor4U coloru;
diff --git a/linden/indra/newview/llviewercamera.cpp b/linden/indra/newview/llviewercamera.cpp
index 5a09433..69a5621 100644
--- a/linden/indra/newview/llviewercamera.cpp
+++ b/linden/indra/newview/llviewercamera.cpp
@@ -131,9 +131,6 @@ void LLViewerCamera::updateCameraLocation(const LLVector3 ¢er,
mLastPointOfInterest = point_of_interest;
- // constrain to max distance from avatar
- LLVector3 camera_offset = center - gAgent.getPositionAgent();
-
LLViewerRegion * regp = gAgent.getRegion();
F32 water_height = (NULL != regp) ? regp->getWaterHeight() : 0.f;
diff --git a/linden/indra/newview/llviewerdisplay.cpp b/linden/indra/newview/llviewerdisplay.cpp
index 59a87d5..22c17d9 100644
--- a/linden/indra/newview/llviewerdisplay.cpp
+++ b/linden/indra/newview/llviewerdisplay.cpp
@@ -977,7 +977,6 @@ void render_hud_attachments()
if (LLPipeline::sShowHUDAttachments && !gDisconnected && setup_hud_matrices())
{
LLCamera hud_cam = *LLViewerCamera::getInstance();
- LLVector3 origin = hud_cam.getOrigin();
hud_cam.setOrigin(-1.f,0,0);
hud_cam.setAxes(LLVector3(1,0,0), LLVector3(0,1,0), LLVector3(0,0,1));
LLViewerCamera::updateFrustumPlanes(hud_cam, TRUE);
diff --git a/linden/indra/newview/llviewerparcelmedia.cpp b/linden/indra/newview/llviewerparcelmedia.cpp
index 386a86e..a9ea1e6 100644
--- a/linden/indra/newview/llviewerparcelmedia.cpp
+++ b/linden/indra/newview/llviewerparcelmedia.cpp
@@ -101,12 +101,11 @@ void LLViewerParcelMedia::update(LLParcel* parcel)
sMediaRegionID = LLUUID() ;
stop() ;
LL_DEBUGS("Media") << "no agent region, bailing out." << LL_ENDL;
- return ;
+ return ;
}
// we're in a parcel
- bool new_parcel = false;
- S32 parcelid = parcel->getLocalID();
+ S32 parcelid = parcel->getLocalID();
LLUUID regionid = gAgent.getRegion()->getRegionID();
if (parcelid != sMediaParcelLocalID || regionid != sMediaRegionID)
@@ -114,7 +113,6 @@ void LLViewerParcelMedia::update(LLParcel* parcel)
LL_DEBUGS("Media") << "New parcel, parcel id = " << parcelid << ", region id = " << regionid << LL_ENDL;
sMediaParcelLocalID = parcelid;
sMediaRegionID = regionid;
- new_parcel = true;
}
std::string mediaUrl = std::string ( parcel->getMediaURL () );
--
cgit v1.1
From e5cc2e99e6295aabe401f9c229a39574e0d9bf38 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Mon, 8 Apr 2013 04:55:18 +1000
Subject: Clean out a couple of compiler warnings.
---
linden/indra/llui/llui.h | 2 ++
.../media_plugins/gstreamer010/llmediaimplgstreamervidplug.cpp | 7 ++-----
2 files changed, 4 insertions(+), 5 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/llui/llui.h b/linden/indra/llui/llui.h
index ebcc730..466d2c7 100644
--- a/linden/indra/llui/llui.h
+++ b/linden/indra/llui/llui.h
@@ -706,10 +706,12 @@ public:
// this avoids a MSVC bug where non-referenced static members are "optimized" away
// even if their constructors have side effects
+ // Then we avoid a compiler warning that dummy is never used. lol
void reference()
{
S32 dummy;
dummy = 0;
+ dummy = dummy + 0;
}
};
diff --git a/linden/indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.cpp b/linden/indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.cpp
index e194bf7..49bf6f9 100755
--- a/linden/indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.cpp
+++ b/linden/indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.cpp
@@ -312,12 +312,9 @@ gst_slvideo_set_caps (GstBaseSink * bsink, GstCaps * caps)
static gboolean
gst_slvideo_start (GstBaseSink * bsink)
{
- GstSLVideo *slvideo;
- gboolean ret = TRUE;
-
- slvideo = GST_SLVIDEO(bsink);
+ GST_SLVIDEO(bsink);
- return ret;
+ return TRUE;
}
static gboolean
--
cgit v1.1
From 80891912b540ca43601c2cc16942a01c2e0bd68b Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Mon, 8 Apr 2013 05:28:20 +1000
Subject: Even more useless variable deletions.
---
linden/indra/newview/llagent.cpp | 6 ++---
linden/indra/newview/lldrawable.cpp | 1 -
linden/indra/newview/llfolderview.cpp | 6 -----
linden/indra/newview/llviewermenu.cpp | 16 -------------
linden/indra/newview/llviewerobjectlist.cpp | 37 ++++++++++++++---------------
5 files changed, 20 insertions(+), 46 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/newview/llagent.cpp b/linden/indra/newview/llagent.cpp
index c61f7a6..54b71eb 100644
--- a/linden/indra/newview/llagent.cpp
+++ b/linden/indra/newview/llagent.cpp
@@ -3729,9 +3729,8 @@ LLVector3d LLAgent::calcCameraPositionTargetGlobal(BOOL *hit_limit)
// Compute base camera position and look-at points.
F32 camera_land_height;
LLVector3d frame_center_global = mAvatarObject.isNull() ? getPositionGlobal()
- : getPosGlobalFromAgent(mAvatarObject->mRoot.getWorldPosition());
-
- LLVector3 upAxis = getUpAxis();
+ : getPosGlobalFromAgent(mAvatarObject->mRoot.getWorldPosition());
+
BOOL isConstrained = FALSE;
LLVector3d head_offset;
head_offset.setVec(mThirdPersonHeadOffset);
@@ -3866,7 +3865,6 @@ LLVector3d LLAgent::calcCameraPositionTargetGlobal(BOOL *hit_limit)
// set the global camera position
LLVector3d camera_offset;
- LLVector3 av_pos = mAvatarObject.isNull() ? LLVector3::zero : mAvatarObject->getRenderPosition();
camera_offset.setVec( local_camera_offset );
camera_position_global = frame_center_global + head_offset + camera_offset;
diff --git a/linden/indra/newview/lldrawable.cpp b/linden/indra/newview/lldrawable.cpp
index f808f89..ee49752 100644
--- a/linden/indra/newview/lldrawable.cpp
+++ b/linden/indra/newview/lldrawable.cpp
@@ -1096,7 +1096,6 @@ LLCamera LLSpatialBridge::transformCamera(LLCamera& camera)
LLCamera ret = camera;
LLXformMatrix* mat = mDrawable->getXform();
LLVector3 center = LLVector3(0,0,0) * mat->getWorldMatrix();
- LLQuaternion rotation = LLQuaternion(mat->getWorldMatrix());
LLVector3 delta = ret.getOrigin() - center;
LLQuaternion rot = ~mat->getRotation();
diff --git a/linden/indra/newview/llfolderview.cpp b/linden/indra/newview/llfolderview.cpp
index ce2b2b4..489a5d5 100644
--- a/linden/indra/newview/llfolderview.cpp
+++ b/linden/indra/newview/llfolderview.cpp
@@ -3767,12 +3767,6 @@ BOOL LLFolderView::handleKeyHere( KEY key, MASK mask )
LLMenuGL::sMenuContainer->hideMenus();
}
- LLView *item = NULL;
- if (getChildCount() > 0)
- {
- item = *(getChildList()->begin());
- }
-
switch( key )
{
case KEY_F2:
diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp
index f10910c..7fd58db 100644
--- a/linden/indra/newview/llviewermenu.cpp
+++ b/linden/indra/newview/llviewermenu.cpp
@@ -5223,11 +5223,6 @@ class LLViewToggleRadar: public view_listener_t
bool handleEvent(LLPointer event, const LLSD& userdata)
{
LLFloaterAvatarList::toggle(0);
- bool vis = false;
- if(LLFloaterAvatarList::getInstance())
- {
- vis = (bool)LLFloaterAvatarList::getInstance()->getVisible();
- }
return true;
}
};
@@ -5237,11 +5232,6 @@ class LLViewToggleMOAPRadar: public view_listener_t
bool handleEvent(LLPointer event, const LLSD& userdata)
{
LLFloaterMOAPRadar::toggle(0);
- bool vis = false;
- if(LLFloaterMOAPRadar::getInstance())
- {
- vis = (bool)LLFloaterMOAPRadar::getInstance()->getVisible();
- }
return true;
}
};
@@ -8976,12 +8966,6 @@ class LLAdvancedToggleAssetBrowser: public view_listener_t
{
//open the floater
LLFloaterAssetBrowser::show(0);
-
- bool vis = false;
- if(LLFloaterAssetBrowser::getInstance())
- {
- vis = (bool)LLFloaterAssetBrowser::getInstance()->getVisible();
- }
return true;
}
};
diff --git a/linden/indra/newview/llviewerobjectlist.cpp b/linden/indra/newview/llviewerobjectlist.cpp
index d0aa4b1..c82b1ae 100644
--- a/linden/indra/newview/llviewerobjectlist.cpp
+++ b/linden/indra/newview/llviewerobjectlist.cpp
@@ -288,7 +288,6 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys,
{
LLFastTimer t(LLFastTimer::FTM_PROCESS_OBJECTS);
- LLVector3d camera_global = gAgent.getCameraPositionGlobal();
LLViewerObject *objectp;
S32 num_objects;
U32 local_id;
@@ -305,28 +304,28 @@ void LLViewerObjectList::processObjectUpdate(LLMessageSystem *mesgsys,
if (!cached && !compressed && update_type != OUT_FULL)
{
gTerseObjectUpdates += num_objects;
- S32 size;
- if (mesgsys->getReceiveCompressedSize())
- {
- size = mesgsys->getReceiveCompressedSize();
- }
- else
- {
- size = mesgsys->getReceiveSize();
- }
+// S32 size;
+// if (mesgsys->getReceiveCompressedSize())
+// {
+// size = mesgsys->getReceiveCompressedSize();
+// }
+// else
+// {
+// size = mesgsys->getReceiveSize();
+// }
// llinfos << "Received terse " << num_objects << " in " << size << " byte (" << size/num_objects << ")" << llendl;
}
else
{
- S32 size;
- if (mesgsys->getReceiveCompressedSize())
- {
- size = mesgsys->getReceiveCompressedSize();
- }
- else
- {
- size = mesgsys->getReceiveSize();
- }
+// S32 size;
+// if (mesgsys->getReceiveCompressedSize())
+// {
+// size = mesgsys->getReceiveCompressedSize();
+// }
+// else
+// {
+// size = mesgsys->getReceiveSize();
+// }
// llinfos << "Received " << num_objects << " in " << size << " byte (" << size/num_objects << ")" << llendl;
gFullObjectUpdates += num_objects;
--
cgit v1.1
From 57ab98a6448db9824f8634e4450ee16a8645065c Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Mon, 8 Apr 2013 05:29:05 +1000
Subject: Comment out extra star rendering stuff, to get rid of unused variable
warnings, but leave the code around in case it turns out to be a good idea.
---
linden/indra/newview/llvowlsky.cpp | 25 +++++++++++++------------
1 file changed, 13 insertions(+), 12 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/newview/llvowlsky.cpp b/linden/indra/newview/llvowlsky.cpp
index 96bd62e..2f77c7f 100644
--- a/linden/indra/newview/llvowlsky.cpp
+++ b/linden/indra/newview/llvowlsky.cpp
@@ -719,12 +719,13 @@ void LLVOWLSky::updateStarColors()
{
std::vector::iterator v_c = mStarColors.begin();
std::vector::iterator v_i = mStarIntensities.begin();
- std::vector::iterator v_p = mStarVertices.begin();
+ // A bunch of stuff here is not used, but looks like it might be useful later, so I'll leave it, but commented out.
+ //std::vector::iterator v_p = mStarVertices.begin();
const F32 var = 0.15f;
const F32 min = 0.5f; //0.75f;
- const F32 sunclose_max = 0.6f;
- const F32 sunclose_range = 1 - sunclose_max;
+ //const F32 sunclose_max = 0.6f;
+ //const F32 sunclose_range = 1 - sunclose_max;
//F32 below_horizon = - llmin(0.0f, gSky.mVOSkyp->getToSunLast().mV[2]);
//F32 brightness_factor = llmin(1.0f, below_horizon * 20);
@@ -738,14 +739,14 @@ void LLVOWLSky::updateStarColors()
U32 x;
for (x = 0; x < getStarsNumVerts(); ++x)
{
- F32 sundir_factor = 1;
- LLVector3 tostar = *v_p;
- tostar.normVec();
- const F32 how_close_to_sun = tostar * gSky.mVOSkyp->getToSunLast();
- if (how_close_to_sun > sunclose_max)
- {
- sundir_factor = (1 - how_close_to_sun) / sunclose_range;
- }
+ //F32 sundir_factor = 1;
+ //LLVector3 tostar = *v_p;
+ //tostar.normVec();
+ //const F32 how_close_to_sun = tostar * gSky.mVOSkyp->getToSunLast();
+ //if (how_close_to_sun > sunclose_max)
+ //{
+ // sundir_factor = (1 - how_close_to_sun) / sunclose_range;
+ //}
intensity = *(v_i);
F32 alpha = v_c->mV[VALPHA] + (ll_frand() - 0.5f) * var * intensity;
if (alpha < min * intensity)
@@ -762,7 +763,7 @@ void LLVOWLSky::updateStarColors()
v_c->mV[VALPHA] = alpha;
v_c++;
v_i++;
- v_p++;
+ //v_p++;
}
}
}
--
cgit v1.1
From 11225add0521a6f0f5ffbb3cfbd7571c6dd98167 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Mon, 8 Apr 2013 05:29:27 +1000
Subject: Actually mute the colour of muted text.
---
linden/indra/newview/llfloaterchat.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'linden')
diff --git a/linden/indra/newview/llfloaterchat.cpp b/linden/indra/newview/llfloaterchat.cpp
index 2cca8ce..2efdf18 100644
--- a/linden/indra/newview/llfloaterchat.cpp
+++ b/linden/indra/newview/llfloaterchat.cpp
@@ -364,7 +364,7 @@ void LLFloaterChat::addChatHistory(const LLChat& chat, bool log_to_file)
{
// desaturate muted chat
LLColor4 muted_color = lerp(color, LLColor4::grey, 0.5f);
- add_timestamped_line(history_editor_with_mute, chat, color);
+ add_timestamped_line(history_editor_with_mute, chat, muted_color);
}
// add objects as transient speakers that can be muted
--
cgit v1.1
From 20988fe1a26a44fb619ce690e7b9e20b3242e815 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Tue, 9 Apr 2013 12:53:51 +1000
Subject: Delete unused structure.
---
linden/indra/newview/lltooldraganddrop.cpp | 14 --------------
1 file changed, 14 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/newview/lltooldraganddrop.cpp b/linden/indra/newview/lltooldraganddrop.cpp
index 18c4917..2adcf14 100644
--- a/linden/indra/newview/lltooldraganddrop.cpp
+++ b/linden/indra/newview/lltooldraganddrop.cpp
@@ -1521,18 +1521,6 @@ void LLToolDragAndDrop::dropInventory(LLViewerObject* hit_obj,
gFloaterTools->dirty();
}
-struct LLGiveInventoryInfo
-{
- LLUUID mToAgentID;
- LLUUID mInventoryObjectID;
- LLUUID mIMSessionID;
- LLGiveInventoryInfo(const LLUUID& to_agent, const LLUUID& obj_id, const LLUUID &im_session_id = LLUUID::null) :
- mToAgentID(to_agent),
- mInventoryObjectID(obj_id),
- mIMSessionID(im_session_id)
- {}
-};
-
void LLToolDragAndDrop::giveInventory(const LLUUID& to_agent,
LLInventoryItem* item,
const LLUUID& im_session_id)
@@ -1701,8 +1689,6 @@ void LLToolDragAndDrop::giveInventoryCategory(const LLUUID& to_agent,
}
else
{
- LLGiveInventoryInfo* info = NULL;
- info = new LLGiveInventoryInfo(to_agent, cat->getUUID(), im_session_id);
LLSD args;
args["COUNT"] = llformat("%d",giveable.countNoCopy());
LLSD payload;
--
cgit v1.1
From 8ff6be96703388d4391ad1b62e45d21cf391cf38 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Tue, 9 Apr 2013 12:54:23 +1000
Subject: Last of the unused variables goes bye.
---
linden/indra/newview/llpanelobject.cpp | 4 ++--
linden/indra/newview/llpanelvolume.cpp | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/newview/llpanelobject.cpp b/linden/indra/newview/llpanelobject.cpp
index cc89e24..bff365d 100644
--- a/linden/indra/newview/llpanelobject.cpp
+++ b/linden/indra/newview/llpanelobject.cpp
@@ -520,10 +520,10 @@ void LLPanelObject::getState( )
mBtnPasteRot->setEnabled( enable_rotate );
mBtnPasteRotClip->setEnabled( enable_rotate );
- BOOL owners_identical;
LLUUID owner_id;
std::string owner_name;
- owners_identical = LLSelectMgr::getInstance()->selectGetOwner(owner_id, owner_name);
+ // This is still needed for the side effects, though the result is not.
+ LLSelectMgr::getInstance()->selectGetOwner(owner_id, owner_name);
// BUG? Check for all objects being editable?
S32 roots_selected = LLSelectMgr::getInstance()->getSelection()->getRootObjectCount();
diff --git a/linden/indra/newview/llpanelvolume.cpp b/linden/indra/newview/llpanelvolume.cpp
index 6d014a2..e4e30c0 100644
--- a/linden/indra/newview/llpanelvolume.cpp
+++ b/linden/indra/newview/llpanelvolume.cpp
@@ -181,10 +181,10 @@ void LLPanelVolume::getState( )
return;
}
- BOOL owners_identical;
LLUUID owner_id;
std::string owner_name;
- owners_identical = LLSelectMgr::getInstance()->selectGetOwner(owner_id, owner_name);
+ // This is still needed for the side effects, though the result is not.
+ LLSelectMgr::getInstance()->selectGetOwner(owner_id, owner_name);
// BUG? Check for all objects being editable?
BOOL editable = root_objectp->permModify();
--
cgit v1.1
From 78d49f51549a7f23b36e61ac09e6c9dfccfeb395 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Thu, 11 Apr 2013 07:11:58 +1000
Subject: Add release number to version strings.
---
linden/scripts/viewer_info.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
(limited to 'linden')
diff --git a/linden/scripts/viewer_info.py b/linden/scripts/viewer_info.py
index 53ea432..bd0f436 100755
--- a/linden/scripts/viewer_info.py
+++ b/linden/scripts/viewer_info.py
@@ -54,10 +54,11 @@ class ViewerInfo:
self.major = re.search('MAJOR\s*=\s*(\d+)', data).group(1)
self.minor = re.search('MINOR\s*=\s*(\d+)', data).group(1)
self.patch = re.search('PATCH\s*=\s*(\d+)', data).group(1)
+ self.release = re.search('RLEAS\s*=\s*(\d+)', data).group(1)
self.extra = re.search('EXTRA\s*=\s*"([^"]*)"', data).group(1)
self.bundle_id = re.search('BUNDLE_ID\s*=\s*"([^"]*)"', data).group(1)
- self.version = "%s.%s.%s"%(self.major, self.minor, self.patch)
+ self.version = "%s.%s.%s.%s"%(self.major, self.minor, self.patch, self.release)
if len(self.extra) > 0:
# Replace spaces and some puncuation with '-' in extra
extra = re.sub('[- \t:;,!+/\\"\'`]+', '-', self.extra)
--
cgit v1.1
From 3f993f695c25e39088d037dd6c49cf6d4d0bda0f Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Thu, 11 Apr 2013 07:14:34 +1000
Subject: Bump version number to 1.4.0.3 exp 0.
TODO - still too much hard coding going on, need to fix that using viewer_info.py more.
---
.../windows/imprudence_installer_script_experimental.iss | 12 ++++++------
.../newview/packaging/mac/English.lproj/InfoPlist.strings | 4 ++--
linden/indra/newview/res/viewerRes.rc | 4 ++--
linden/indra/newview/viewerinfo.cpp | 3 ++-
4 files changed, 12 insertions(+), 11 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/newview/installers/windows/imprudence_installer_script_experimental.iss b/linden/indra/newview/installers/windows/imprudence_installer_script_experimental.iss
index c551919..d50957d 100644
--- a/linden/indra/newview/installers/windows/imprudence_installer_script_experimental.iss
+++ b/linden/indra/newview/installers/windows/imprudence_installer_script_experimental.iss
@@ -9,15 +9,15 @@
; These will change
AppId={{1B3E68BC-13EB-4277-9439-CB5FF9259460}
AppName=Imprudence Viewer Experimental
-AppVerName=Imprudence Viewer 1.4.0 beta 1.5 windows test release
+AppVerName=Imprudence Viewer 1.4.0.3 exp 0 windows test release
DefaultDirName={pf}\ImprudenceExperimental
DefaultGroupName=Imprudence Viewer Experimental
VersionInfoProductName=Imprudence Viewer Experimental
-OutputBaseFilename=Imprudence-1.4.0-beta-1.5-windows-test
-VersionInfoVersion=1.4.0
-VersionInfoTextVersion=1.4.0
-VersionInfoProductVersion=1.4.0
-AppVersion=1.4.0
+OutputBaseFilename=Imprudence-1.4.0.3-exp-0-windows-test
+VersionInfoVersion=1.4.0.3
+VersionInfoTextVersion=1.4.0.3
+VersionInfoProductVersion=1.4.0.3
+AppVersion=1.4.0.3
VersionInfoCopyright=2011
; These won't change
diff --git a/linden/indra/newview/packaging/mac/English.lproj/InfoPlist.strings b/linden/indra/newview/packaging/mac/English.lproj/InfoPlist.strings
index 1ebe727..91eae98 100644
--- a/linden/indra/newview/packaging/mac/English.lproj/InfoPlist.strings
+++ b/linden/indra/newview/packaging/mac/English.lproj/InfoPlist.strings
@@ -1,5 +1,5 @@
/* Localized versions of Info.plist keys */
CFBundleName = "Imprudence";
-CFBundleShortVersionString = "Imprudence 1.4.0 beta 1";
-CFBundleGetInfoString = "Imprudence 1.4.0 beta 1";
+CFBundleShortVersionString = "Imprudence 1.4.0.3 exp 0";
+CFBundleGetInfoString = "Imprudence 1.4.0.3 exp 0";
diff --git a/linden/indra/newview/res/viewerRes.rc b/linden/indra/newview/res/viewerRes.rc
index 951d0cc..4144e47 100644
--- a/linden/indra/newview/res/viewerRes.rc
+++ b/linden/indra/newview/res/viewerRes.rc
@@ -156,11 +156,11 @@ BEGIN
BEGIN
VALUE "CompanyName", "Imprudence Viewer Project"
VALUE "FileDescription", "Imprudence"
- VALUE "FileVersion", "1.4.0 beta 2"
+ VALUE "FileVersion", "1.4.0.3 exp 0"
VALUE "InternalName", "Imprudence"
VALUE "OriginalFilename", "imprudence.exe"
VALUE "ProductName", "Imprudence"
- VALUE "ProductVersion", "1.4.0 beta 2"
+ VALUE "ProductVersion", "1.4.0.3 exp 0"
END
END
BLOCK "VarFileInfo"
diff --git a/linden/indra/newview/viewerinfo.cpp b/linden/indra/newview/viewerinfo.cpp
index fc463c8..d1ed1a0 100644
--- a/linden/indra/newview/viewerinfo.cpp
+++ b/linden/indra/newview/viewerinfo.cpp
@@ -30,13 +30,14 @@ namespace ViewerInfo
// These are intentionally defined here instead of in the header,
// because they should NOT be read directly. Use the functions.
+ // NOTE: Some parts of the build system scan this file looking for version numbers and such, commenting out sections confuses that.
const std::string NAME = "Imprudence";
const std::string VARNT = "";
const S32 MAJOR = 1;
const S32 MINOR = 4;
const S32 PATCH = 0;
const S32 RLEAS = 3; // increment for each beta/RC/release
- const std::string EXTRA = "beta 2";
+ const std::string EXTRA = "exp 0";
// Mac OS X bundle identifier. Should match the one in Info.plist.
const std::string BUNDLE_ID = "org.imprudenceviewer.viewer";
--
cgit v1.1
From 7d87f4eb8737215323bfb9f7991e4d6519a310b0 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Wed, 17 Apr 2013 18:53:49 +1000
Subject: Better cache directory code for pre built libraries.
---
linden/scripts/install.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
(limited to 'linden')
diff --git a/linden/scripts/install.py b/linden/scripts/install.py
index a7c0a48..99e8b73 100755
--- a/linden/scripts/install.py
+++ b/linden/scripts/install.py
@@ -830,10 +830,10 @@ def _default_installable_cache():
"""In general, the installable files do not change much, so find a
host/user specific location to cache files."""
user = _getuser()
- cache_dir = "/var/tmp/%s/install.cache" % user
- if _get_platform() == 'windows':
- cache_dir = os.path.join(tempfile.gettempdir(), \
- 'install.cache.%s' % user)
+ if sys.platform != 'cygwin' and _get_platform() == 'windows':
+ cache_dir = os.path.join(tempfile.gettempdir(), 'install.cache.%s' % user)
+ else:
+ cache_dir = "/var/tmp/%s/install.cache" % user
return cache_dir
def parse_args():
--
cgit v1.1
From eb0aae28a1d96e509b72ff3e3e64239a928447d7 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Wed, 17 Apr 2013 18:55:40 +1000
Subject: Random white space clean ups. In Python! Yes, be scared. B-)
---
linden/indra/newview/viewer_manifest.py | 14 +++++---------
1 file changed, 5 insertions(+), 9 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/newview/viewer_manifest.py b/linden/indra/newview/viewer_manifest.py
index c13cf1a..fd5af9d 100755
--- a/linden/indra/newview/viewer_manifest.py
+++ b/linden/indra/newview/viewer_manifest.py
@@ -260,21 +260,17 @@ class WindowsManifest(ViewerManifest):
except:
print "Can't save symbol file %s, skipping" % (symbol_path)
pass
-
+
self.gather_documents()
if self.prefix("../..", dst="doc"):
self.path("LICENSE-libraries.txt")
self.end_prefix("../..")
-
self.path("imprudence.url")
# Plugin host application
- self.path(os.path.join(os.pardir,
- 'llplugin', 'slplugin', self.args['configuration'], "SLPlugin.exe"),
- "SLPlugin.exe")
-
+ self.path(os.path.join(os.pardir, 'llplugin', 'slplugin', self.args['configuration'], "SLPlugin.exe"), "SLPlugin.exe")
self.path("featuretable.txt")
@@ -283,13 +279,13 @@ class WindowsManifest(ViewerManifest):
# For using FMOD for sound... DJS
#self.path("fmod.dll")
-
+
# For spellchecking
if self.prefix(src=self.args['configuration'], dst=""):
self.path("libhunspell.dll")
self.end_prefix()
- # Copy the llkdu DSO .config
+ # Copy the llkdu DSO .config
self.path("llkdu.dll.2.config")
# Get llcommon and deps.
@@ -309,7 +305,7 @@ class WindowsManifest(ViewerManifest):
if self.prefix(src="../../libraries/i686-win32/lib/release", dst=""):
self.path("openal32.dll")
self.path("alut.dll")
- self.end_prefix()
+ self.end_prefix()
# Media plugins - QuickTime
if self.prefix(src='../media_plugins/quicktime/%s' % self.args['configuration'], dst="llplugin"):
--
cgit v1.1
From 36d8bf7016074981ba0efc5ab4767840cc96e8b1 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Wed, 17 Apr 2013 18:59:49 +1000
Subject: Fix up Windows installer, and make it more consistant with other
OSes.
---
.../windows/imprudence_installer_template.iss | 20 ++++++++++----------
linden/indra/newview/viewer_manifest.py | 4 +++-
2 files changed, 13 insertions(+), 11 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/newview/installers/windows/imprudence_installer_template.iss b/linden/indra/newview/installers/windows/imprudence_installer_template.iss
index 558b7ec..7113368 100644
--- a/linden/indra/newview/installers/windows/imprudence_installer_template.iss
+++ b/linden/indra/newview/installers/windows/imprudence_installer_template.iss
@@ -15,9 +15,9 @@ DefaultDirName={pf}\Imprudence
DefaultGroupName=Imprudence Viewer
VersionInfoProductName=%%APPNAME%%
OutputBaseFilename=%%INSTALLERFILENAME%%
-VersionInfoVersion=%%VERSION%%
+VersionInfoVersion=%%VERSIONNUMBER%%
VersionInfoTextVersion=%%VERSION%%
-VersionInfoProductVersion=%%VERSION%%
+VersionInfoProductVersion=%%VERSIONNUMBER%%
AppVersion=%%VERSION%%
VersionInfoCopyright=2011
@@ -27,16 +27,16 @@ AppPublisher=The Imprudence Project
AppPublisherURL=http://kokuaviewer.org
AppSupportURL=http://kokuaviewer.org
AllowNoIcons=true
-InfoAfterFile=..\..\..\..\..\..\README.txt
+InfoAfterFile=..\..\..\..\..\README.txt
OutputDir=.
-SetupIconFile=..\..\..\..\newview\installers\windows\imp_icon.ico
+SetupIconFile=..\..\..\newview\installers\windows\imp_icon.ico
Compression=lzma2/ultra64
InternalCompressLevel=ultra64
SolidCompression=true
PrivilegesRequired=poweruser
AllowRootDirectory=true
-WizardImageFile=..\..\..\..\newview\installers\windows\imprudence_installer_icon_left.bmp
-WizardSmallImageFile=..\..\..\..\newview\installers\windows\imprudence_installer_icon_right.bmp
+WizardImageFile=..\..\..\newview\installers\windows\imprudence_installer_icon_left.bmp
+WizardSmallImageFile=..\..\..\newview\installers\windows\imprudence_installer_icon_right.bmp
SetupLogging=true
RestartIfNeededByRun=false
AlwaysRestart=false
@@ -145,9 +145,9 @@ Source: %%PACKAGEFILES%%\vivoxsdk.dll; DestDir: {app}; Flags: ignoreversion
Source: %%PACKAGEFILES%%\wrap_oal.dll; DestDir: {app}; Flags: ignoreversion
; VC++ 2005 SP1 x86, VC++ 2008 SP1 x86, and VC++ 2010 SP1 x86 redist
-Source: ..\..\..\..\newview\installers\windows\vcredist_x86_VS2005_SP1_MFC_SEC.exe; DestDir: {app}\redist; DestName: vcredist_x86_VS2005_SP1_MFC_SEC.exe
-;Source: ..\..\..\..\newview\installers\windows\vcredist_x86_VS2008_SP1_ATL_SEC.exe; DestDir: {app}\redist; DestName: vcredist_x86_VS2008_SP1_ATL_SEC.exe
-Source: ..\..\..\..\newview\installers\windows\vcredist_x86_VS2010_SP1.exe; DestDir: {app}\redist; DestName: vcredist_x86_VS2010_SP1.exe
+Source: ..\..\..\newview\installers\windows\vcredist_x86_VS2005_SP1_MFC_SEC.exe; DestDir: {app}\redist; DestName: vcredist_x86_VS2005_SP1_MFC_SEC.exe
+;Source: ..\..\..\newview\installers\windows\vcredist_x86_VS2008_SP1_ATL_SEC.exe; DestDir: {app}\redist; DestName: vcredist_x86_VS2008_SP1_ATL_SEC.exe
+Source: ..\..\..\newview\installers\windows\vcredist_x86_VS2010_SP1.exe; DestDir: {app}\redist; DestName: vcredist_x86_VS2010_SP1.exe
; Old files we don't use anymore:
; Source: %%PACKAGEFILES%%\dronesettings.xml; DestDir: {app}; Flags: ignoreversion
@@ -307,7 +307,7 @@ begin
Success := RegQueryDWordValue(HKLM64, 'SOFTWARE\Microsoft\VisualStudio\10.0\VC\VCRedist\x86', 'Installed', V);
end else begin
Success := RegQueryDWordValue(HKLM, 'SOFTWARE\Microsoft\VisualStudio\10.0\VC\VCRedist\x86', 'Installed', V);
- end
+ end;
if Success = TRUE then begin
if V = 1 then begin
diff --git a/linden/indra/newview/viewer_manifest.py b/linden/indra/newview/viewer_manifest.py
index fd5af9d..bcdf4a9 100755
--- a/linden/indra/newview/viewer_manifest.py
+++ b/linden/indra/newview/viewer_manifest.py
@@ -472,13 +472,15 @@ class WindowsManifest(ViewerManifest):
sse_string = "-(SSE2-optimized)"
version = '.'.join(self.args['version'])
- base_filename = self.installer_prefix() + version + sse_string
+ version_number = version.split('-', 1)[0]
+ base_filename = self.installer_prefix() + version + "-Windows-x86" + sse_string
app_name = self.channel()
app_ver_name="%s %s" % (app_name, version)
new_script = base_filename + ".iss"
self.replace_in("installers/windows/imprudence_installer_template.iss", new_script, {
"%%VERSION%%":version,
+ "%%VERSIONNUMBER%%":version_number,
"%%INSTALLERFILENAME%%":base_filename,
"%%PACKAGEFILES%%":self.args['dest'],
"%%APPNAME%%":app_name,
--
cgit v1.1
From d277b4e8984ba3d99a9a5d546a1d57ded4062400 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Wed, 17 Apr 2013 19:03:42 +1000
Subject: Use unix style bison build for cygwin.
---
linden/indra/lscript/lscript_compile/CMakeLists.txt | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/lscript/lscript_compile/CMakeLists.txt b/linden/indra/lscript/lscript_compile/CMakeLists.txt
index 252085b..f6d5212 100644
--- a/linden/indra/lscript/lscript_compile/CMakeLists.txt
+++ b/linden/indra/lscript/lscript_compile/CMakeLists.txt
@@ -103,7 +103,7 @@ if (WINDOWS)
PROPERTIES COMPILE_FLAGS /DYY_NO_UNISTD_H)
endif (WINDOWS)
-if (WINDOWS)
+if (WINDOWS AND NOT CYGWIN)
get_filename_component(M4_PATH ${M4} PATH)
add_custom_command(
OUTPUT
@@ -118,7 +118,7 @@ if (WINDOWS)
${CMAKE_CURRENT_SOURCE_DIR}/indra.y
)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/windows)
-else (WINDOWS)
+else (WINDOWS AND NOT CYGWIN)
add_custom_command(
OUTPUT
${CMAKE_CURRENT_BINARY_DIR}/indra.y.cpp
@@ -131,7 +131,7 @@ else (WINDOWS)
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/indra.y
)
-endif (WINDOWS)
+endif (WINDOWS AND NOT CYGWIN)
if (DARWIN)
# Mac OS X 10.4 compatibility
--
cgit v1.1
From fd0115db1ebfce67d121a8ea750ec115ca70df85 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Wed, 17 Apr 2013 19:05:23 +1000
Subject: Attempt to fix up Windows yyparse issue, but ultimately fail, then
notice it's possibly not being used anyway, so just commit it.
---
linden/indra/lscript/lscript_compile/indra.l | 24 +++++++++++++++++-------
1 file changed, 17 insertions(+), 7 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/lscript/lscript_compile/indra.l b/linden/indra/lscript/lscript_compile/indra.l
index 584087e..7f4cdc5 100644
--- a/linden/indra/lscript/lscript_compile/indra.l
+++ b/linden/indra/lscript/lscript_compile/indra.l
@@ -53,9 +53,16 @@ void parse_string();
#define ECHO do { } while (0)
#if defined(__cplusplus)
-extern "C" { int yylex( void ); }
-extern "C" { int yyparse( void ); }
-extern "C" { int yyerror(const char *fmt, ...); }
+extern "C" {
+#endif
+int yyerror(const char *fmt, ...);
+int yylex( void );
+// Windows defines this in indra.y.hpp, which is included above, and defines it differently.
+#ifndef LL_WINDOWS
+int yyparse( void );
+#endif
+#if defined(__cplusplus)
+}
#endif
%}
@@ -722,9 +729,6 @@ L?\"(\\.|[^\\"])*\" { parse_string(); count(); return(STRING_CONSTANT); }
LLScriptAllocationManager *gAllocationManager;
LLScriptScript *gScriptp;
-// Prototype for the yacc parser entry point
-int yyparse(void);
-
int yyerror(const char *fmt, ...)
{
gErrorToText.writeError(yyout, gLine, gColumn, LSERROR_SYNTAX_ERROR);
@@ -760,7 +764,13 @@ BOOL lscript_compile(const char* src_filename, const char* dst_filename,
yyrestart(yyin);
- b_parse_ok = !yyparse();
+// TODO - Try to fix this, but for now, no compiling LSL for Windows in SL.
+// Actually, this seems to not actually be needed anymore?
+// I thought it was needed to support ancient pre Mono LSL scripts, which only work in SL anyway, but they still work fine. Perhaps SL fixed it server side?
+// If that's the case, we don't need any of this stuff.
+#ifndef LL_WINDOWS
+// b_parse_ok = !yyparse();
+#endif
if (b_parse_ok)
{
--
cgit v1.1
From c16929159920e75aa44cb72350ca37890dbd0f31 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Wed, 17 Apr 2013 19:07:44 +1000
Subject: Potential fix for http://redmine.kokuaviewer.org/issues/1215 but
needs testing.
---
linden/indra/llwindow/llwindowsdl.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
(limited to 'linden')
diff --git a/linden/indra/llwindow/llwindowsdl.cpp b/linden/indra/llwindow/llwindowsdl.cpp
index 2f9de6b..69ec3b3 100644
--- a/linden/indra/llwindow/llwindowsdl.cpp
+++ b/linden/indra/llwindow/llwindowsdl.cpp
@@ -2521,9 +2521,10 @@ std::vector LLWindowSDL::getDynamicFallbackFontList()
sortpat = FcNameParse((FcChar8*) sort_order.c_str());
if (sortpat)
{
+ FcResult dummyResult;
// Sort the list of system fonts from most-to-least-desirable.
fs = FcFontSort(NULL, sortpat, elide_unicode_coverage,
- NULL, NULL);
+ NULL, &dummyResult);
FcPatternDestroy(sortpat);
}
--
cgit v1.1
From 8fa60cf0f49c872402aa72d486e1f900a166d951 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Thu, 18 Apr 2013 14:03:24 +1000
Subject: New branch for building with nmake.
This is a branch, coz it's still crap.
---
linden/indra/develop.py | 83 ++++++++++++++++++----------
linden/indra/newview/CMakeLists.txt | 4 +-
linden/indra/newview/viewer_manifest.py | 8 +--
linden/scripts/linux/0-patch-SL-source | 2 +-
linden/scripts/linux/1-get-libraries-from-SL | 11 ++--
linden/scripts/linux/3-compile-SL-source | 27 +--------
linden/scripts/linux/4-package-viewer | 11 +++-
linden/scripts/linux/config-SL-source | 16 +++++-
8 files changed, 90 insertions(+), 72 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/develop.py b/linden/indra/develop.py
index 3760609..3344288 100755
--- a/linden/indra/develop.py
+++ b/linden/indra/develop.py
@@ -485,6 +485,10 @@ class WindowsSetup(PlatformSetup):
'vc100' : {
'gen' : r'Visual Studio 10',
'ver' : r'10.0'
+ },
+ 'nmake' : {
+ 'gen' : r'NMake Makefiles',
+ 'ver' : r''
}
}
gens['vs2003'] = gens['vc71']
@@ -510,7 +514,7 @@ class WindowsSetup(PlatformSetup):
else:
print >> sys.stderr, 'Cannot find a Visual Studio installation, testing for express editions'
for version in 'vc80 vc90 vc100 vc71'.split():
- if self.find_visual_studio_express(version):
+ if self.find_visual_studio_express(version) != '':
self._generator = version
self.using_express = True
print 'Building with ', self.gens[version]['gen'] , "Express edition"
@@ -534,19 +538,33 @@ class WindowsSetup(PlatformSetup):
def cmake_commandline(self, src_dir, build_dir, opts, simple):
args = dict(
dir=src_dir,
- generator=self.gens[self.generator.lower()]['gen'],
opts=quote(opts),
standalone=self.standalone,
unattended=self.unattended,
- project_name=self.project_name
+ project_name=self.project_name,
+ type=self.build_type,
+ use_vstool='ON'
)
+ if self.generator == 'nmake':
+ args['generator'] = r'NMake Makefiles'
+ args['use_vstool'] = 'OFF'
+ else:
+ args['generator'] = self.gens[self.generator.lower()]['gen']
+ if self.using_express:
+ args['using_express'] = 'ON'
+ args['use_vstool'] = 'OFF'
+ else:
+ args['using_express'] = 'OFF'
# default to packaging disabled
# if simple:
# return 'cmake %(opts)s "%(dir)s"' % args
return ('cmake -G "%(generator)s" '
+ '-DCMAKE_BUILD_TYPE:STRING=%(type)s '
'-DSTANDALONE:BOOL=%(standalone)s '
'-DUNATTENDED:BOOL=%(unattended)s '
'-DROOT_PROJECT_NAME:STRING=%(project_name)s '
+ '-DUSING_EXPRESS:BOOL=%(using_express)s '
+ '-DUSE_VSTOOL:BOOL=%(use_vstool)s '
#'-DPACKAGE:BOOL=ON '
'%(opts)s "%(dir)s"' % args)
@@ -602,7 +620,7 @@ class WindowsSetup(PlatformSetup):
config = '\"%s|Win32\"' % config
return "buildconsole %s.sln /build %s" % (self.project_name, config)
-
+
environment = self.find_visual_studio()
if environment == '':
environment = self.find_visual_studio_express()
@@ -614,7 +632,17 @@ class WindowsSetup(PlatformSetup):
print >> sys.stderr, "Solution can now be found in:", build_dirs[0]
print >> sys.stderr, "Set %s as startup project" % self.project_name
print >> sys.stderr, "Set build target is Release or RelWithDbgInfo"
- exit(0)
+ exit(0)
+
+ if self.generator == 'nmake':
+ '''Hack around a bug in cmake that I'm surprised did not hit GUI controlled builds.'''
+ self.run(r'sed -i "s|\(^RC_FLAGS .* \) /GS .*$|\1|" build-nmake/win_crash_logger/CMakeFiles/windows-crash-logger.dir/flags.make')
+ self.run(r'sed -i "s|\(^RC_FLAGS .* \) /GS .*$|\1|" build-nmake/newview/CMakeFiles/imprudence-bin.dir/flags.make')
+ self.run(r'sed -i "s|\(^RC_FLAGS .* \) /EHsc .*/Zm1000 \($\)|\1\2|" build-nmake/win_crash_logger/CMakeFiles/windows-crash-logger.dir/flags.make')
+ self.run(r'sed -i "s|\(^RC_FLAGS .* \) /EHsc .*/Zm1000 \($\)|\1\2|" build-nmake/newview/CMakeFiles/imprudence-bin.dir/flags.make')
+ '''Evil hack.'''
+ self.run(r'touch newview/touched.bat')
+ return "nmake"
# devenv.com is CLI friendly, devenv.exe... not so much.
return ('"%sdevenv.com" %s.sln /build %s' %
@@ -634,13 +662,6 @@ class WindowsSetup(PlatformSetup):
raise CommandError('the command %r %s' %
(name, ret))
- def run_cmake(self, args=[]):
- '''Override to add the vstool.exe call after running cmake.'''
- PlatformSetup.run_cmake(self, args)
- if self.unattended == 'OFF':
- if self.using_express == False:
- self.run_vstool()
-
def run_vstool(self):
for build_dir in self.build_dirs():
stamp = os.path.join(build_dir, 'vstool.txt')
@@ -659,30 +680,30 @@ class WindowsSetup(PlatformSetup):
print 'Running %r in %r' % (vstool_cmd, getcwd())
self.run(vstool_cmd)
print >> open(stamp, 'w'), self.build_type
-
+
def run_build(self, opts, targets):
cwd = getcwd()
build_cmd = self.get_build_cmd()
-
- for d in self.build_dirs():
- try:
- os.chdir(d)
- if targets:
- for t in targets:
- cmd = '%s /project %s %s' % (build_cmd, t, ' '.join(opts))
+ if build_cmd != "":
+ for d in self.build_dirs():
+ try:
+ os.chdir(d)
+ if targets:
+ for t in targets:
+ cmd = '%s /project %s %s' % (build_cmd, t, ' '.join(opts))
+ print 'Running %r in %r' % (cmd, d)
+ self.run(cmd)
+ else:
+ cmd = '%s %s' % (build_cmd, ' '.join(opts))
print 'Running %r in %r' % (cmd, d)
self.run(cmd)
- else:
- cmd = '%s %s' % (build_cmd, ' '.join(opts))
- print 'Running %r in %r' % (cmd, d)
- self.run(cmd)
- finally:
- os.chdir(cwd)
-
+ finally:
+ os.chdir(cwd)
+
class CygwinSetup(WindowsSetup):
def __init__(self):
super(CygwinSetup, self).__init__()
- self.generator = 'vc80'
+ self.generator = 'nmake'
def cmake_commandline(self, src_dir, build_dir, opts, simple):
dos_dir = commands.getoutput("cygpath -w %s" % src_dir)
@@ -692,11 +713,13 @@ class CygwinSetup(WindowsSetup):
opts=quote(opts),
standalone=self.standalone,
unattended=self.unattended,
- project_name=self.project_name
+ project_name=self.project_name,
+ type=self.build_type
)
#if simple:
# return 'cmake %(opts)s "%(dir)s"' % args
return ('cmake -G "%(generator)s" '
+ '-DCMAKE_BUILD_TYPE:STRING=%(type)s '
'-DUNATTENDED:BOOl=%(unattended)s '
'-DSTANDALONE:BOOL=%(standalone)s '
'-DROOT_PROJECT_NAME:STRING=%(project_name)s '
@@ -723,7 +746,7 @@ Options:
-m32 | -m64 build architecture (32-bit or 64-bit)
-N | --no-distcc disable use of distcc
-G | --generator=NAME generator name
- Windows: VC80 (VS2005--default), VC71 (VS2003),
+ Windows: NMake, VC80 (VS2005--default), VC71 (VS2003),
VC90 (VS2008), or VC100 (VS2010)
Mac OS X: Xcode (default), Unix Makefiles
Linux: Unix Makefiles (default), KDevelop3
diff --git a/linden/indra/newview/CMakeLists.txt b/linden/indra/newview/CMakeLists.txt
index b9c41fc..9172aa0 100644
--- a/linden/indra/newview/CMakeLists.txt
+++ b/linden/indra/newview/CMakeLists.txt
@@ -1326,7 +1326,7 @@ if (WINDOWS)
# sets the 'working directory' for debugging from visual studio.
if (NOT UNATTENDED)
- if (NOT self.using_express)
+ if (USE_VSTOOL)
add_custom_command(
TARGET ${VIEWER_BINARY_NAME} PRE_BUILD
COMMAND ${CMAKE_SOURCE_DIR}/tools/vstool/vstool.exe
@@ -1338,7 +1338,7 @@ if (WINDOWS)
${CMAKE_CURRENT_SOURCE_DIR}
COMMENT "Setting the ${VIEWER_BINARY_NAME} working directory for debugging."
)
- endif (NOT self.using_express)
+ endif (USE_VSTOOL)
endif (NOT UNATTENDED)
add_custom_command(
diff --git a/linden/indra/newview/viewer_manifest.py b/linden/indra/newview/viewer_manifest.py
index bcdf4a9..718c3d2 100755
--- a/linden/indra/newview/viewer_manifest.py
+++ b/linden/indra/newview/viewer_manifest.py
@@ -244,7 +244,7 @@ class WindowsManifest(ViewerManifest):
elif self.configuration().lower() == "debug":
self.path(self.find_existing_file('debug/imprudence-bin.exe'), dst=self.final_exe())
else:
- self.path(self.find_existing_file('release/imprudence-bin.exe', 'releasesse2/imprudence-bin.exe', 'relwithdebinfo/imprudence-bin.exe', 'debug/imprudence-bin.exe'), dst=self.final_exe())
+ self.path(self.find_existing_file('release/imprudence-bin.exe', 'releasesse2/imprudence-bin.exe', 'relwithdebinfo/imprudence-bin.exe', 'debug/imprudence-bin.exe', 'imprudence-bin.exe'), dst=self.final_exe())
# copy over the the pdb file for the regular or SSE2 versions if we don't already have one copied
symbol_ver = '.'.join(self.args['version'])
@@ -281,7 +281,7 @@ class WindowsManifest(ViewerManifest):
#self.path("fmod.dll")
# For spellchecking
- if self.prefix(src=self.args['configuration'], dst=""):
+ if self.prefix(src=os.path.join(self.args['configuration'], "Release"), dst=""):
self.path("libhunspell.dll")
self.end_prefix()
@@ -289,12 +289,12 @@ class WindowsManifest(ViewerManifest):
self.path("llkdu.dll.2.config")
# Get llcommon and deps.
- if self.prefix(src=self.args['configuration'], dst=""):
+ if self.prefix(src=os.path.join(self.args['configuration'], "Release"), dst=""):
self.path('libapr-1.dll')
self.path('libaprutil-1.dll')
self.path('libapriconv-1.dll')
- self.path('llcommon.dll')
self.end_prefix()
+ self.path('llcommon.dll')
# For textures
if self.prefix(src="../../libraries/i686-win32/lib/release", dst=""):
diff --git a/linden/scripts/linux/0-patch-SL-source b/linden/scripts/linux/0-patch-SL-source
index 4885d5d..ce0dabe 100755
--- a/linden/scripts/linux/0-patch-SL-source
+++ b/linden/scripts/linux/0-patch-SL-source
@@ -22,7 +22,7 @@ if [ "$PATCHES" != "" ] ; then
elif echo $i | grep ".bz2" &>/dev/null ; then
bzcat $i | patch -p1 -s
elif echo $i | grep ".zip" &>/dev/null ; then
- unzip -o $i >/dev/null
+ unzip -o $i >/dev/null
else
patch -p1 -s <$i
fi
diff --git a/linden/scripts/linux/1-get-libraries-from-SL b/linden/scripts/linux/1-get-libraries-from-SL
index 9ba61f4..87ad39c 100755
--- a/linden/scripts/linux/1-get-libraries-from-SL
+++ b/linden/scripts/linux/1-get-libraries-from-SL
@@ -53,7 +53,7 @@ source config-SL-source
cd $PATH_TO_SOURCES/indra
# Do a clean build
-./develop.py clean
+#./develop.py $os_extra clean
# Force the vectorization use if we chose so.
if [ "$FORCE_VECTORIZE" == "yes" ] ; then
@@ -65,7 +65,8 @@ else
FATAL_WARNINGS=""
fi
# Configure the sources and download the LL provided libraries:
-./develop.py --type=Release configure "$FATAL_WARNINGS" \
- -DCMAKE_C_FLAGS:STRING="-O2 $TUNE_FLAGS" -DCMAKE_CXX_FLAGS:STRING="-O2 $TUNE_FLAGS" \
- -DCMAKE_C_FLAGS_RELEASE:STRING="-O2 $TUNE_FLAGS" -DCMAKE_CXX_FLAGS_RELEASE:STRING="-O2 $TUNE_FLAGS" \
- -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING="-g -O2 $TUNE_FLAGS" -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING="-g -O2 $TUNE_FLAGS"
+./develop.py $os_extra --type=Release configure "$FATAL_WARNINGS" \
+ -DCMAKE_C_FLAGS:STRING="$TUNE_FLAGS" -DCMAKE_CXX_FLAGS:STRING="$TUNE_FLAGS" \
+ -DCMAKE_C_FLAGS_DEBUG:STRING="-g $TUNE_FLAGS" -DCMAKE_CXX_FLAGS_DEBUG:STRING="-g $TUNE_FLAGS" \
+ -DCMAKE_C_FLAGS_RELEASE:STRING="$TUNE_FLAGS" -DCMAKE_CXX_FLAGS_RELEASE:STRING="$TUNE_FLAGS" \
+ -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING="-g $TUNE_FLAGS" -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING="-g $TUNE_FLAGS" -DPACKAGE:BOOL=ON
diff --git a/linden/scripts/linux/3-compile-SL-source b/linden/scripts/linux/3-compile-SL-source
index 34395bb..c932340 100755
--- a/linden/scripts/linux/3-compile-SL-source
+++ b/linden/scripts/linux/3-compile-SL-source
@@ -54,10 +54,7 @@ source config-SL-source
function compile() {
cd $PATH_TO_SOURCES/indra
echo "Compiling the client into $TEMP_DIR..."
- nice -n 19 ionice -c 3 ./develop.py --type=Release build
-# if (($? == 0)) ; then
-# mv -f $PATH_TO_SOURCES/indra/viewer-linux-i686*/newview/SecondLife*.tar.bz2 $HOME/
-# fi
+ nice -n 19 $ionice ./develop.py $os_extra --type=Release build
}
########### end of functions ###########
@@ -66,14 +63,7 @@ if [ "$TEMP_DIR" == "" ] ; then
export TEMP_DIR="/usr/tmp/$USER"
fi
-# Check to see if we simply want to retry a compilation:
-if [ "$1" == "--retry" ] ; then
- compile
- exit $?
-fi
-
# Use the parameter (if any) as the path to the archives:
-
PATH_TO_ARCHIVES=`pwd`
if [ "$1" != "" ] && [ "$1" != "--prep" ] ; then
if [ -d $1 ] ; then
@@ -83,19 +73,4 @@ if [ "$1" != "" ] && [ "$1" != "--prep" ] ; then
fi
cd $PATH_TO_SOURCES/indra
-
-# Do a clean build
-#./develop.py clean
-
-# Force the vectorization use if we chose so.
-if [ "$FORCE_VECTORIZE" == "yes" ] ; then
- TUNE_FLAGS="$TUNE_FLAGS -DLL_VECTORIZE=1"
-fi
-if [ "$ALLOW_WARNINGS" == "yes" ] ; then
- FATAL_WARNINGS="-DGCC_DISABLE_FATAL_WARNINGS:BOOL=TRUE"
-else
- FATAL_WARNINGS=""
-fi
-
time compile
-
diff --git a/linden/scripts/linux/4-package-viewer b/linden/scripts/linux/4-package-viewer
index b2bff7f..19d2456 100755
--- a/linden/scripts/linux/4-package-viewer
+++ b/linden/scripts/linux/4-package-viewer
@@ -1,5 +1,10 @@
#!/bin/bash
-cd ../../indra/viewer-linux-*
-make package
-
+if [ "$OSTYPE" == "cygwin" ] ; then
+ # Assumes version has been passed in from outside, coz Windows insists on adding crap to python output.
+ cd ../../indra/build-nmake/
+ iscc newview/package/${version}-Windows-x86.iss
+else
+ cd ../../indra/viewer-linux-*
+ make package
+fi
diff --git a/linden/scripts/linux/config-SL-source b/linden/scripts/linux/config-SL-source
index 174d7d4..200f957 100644
--- a/linden/scripts/linux/config-SL-source
+++ b/linden/scripts/linux/config-SL-source
@@ -9,6 +9,9 @@
# accordingly, so that you (should) end up with a properly packaged client.
PWD=`pwd`
+os_extra=''
+ionice='ionice -c 3'
+
# Where the sources of the client will be held (defaults to "./linden"):
PATH_TO_SOURCES="$PWD/../.."
@@ -53,7 +56,7 @@ USE_SYSTEM_BOOST="no"
# You may add tune flags here, to optimize the code for your processor.
# Example, for an Athlon XP:
# TUNE_FLAGS="-march=athlon-xp"
-TUNE_FLAGS="-fomit-frame-pointer -frename-registers -ftree-vectorize -fweb -fexpensive-optimizations -msse -mfpmath=sse"
+TUNE_FLAGS="-O2 -fomit-frame-pointer -frename-registers -ftree-vectorize -fweb -fexpensive-optimizations -msse -mfpmath=sse"
# Set this to "yes" to force vectorization use in the viewer code (only for
# processors with SSE or Altivec units, and only if you did enable them via
# the TUNE_FLAGS.
@@ -61,3 +64,14 @@ FORCE_VECTORIZE="yes"
# When using gcc v4.3 or later, you might have to set this to yes...
ALLOW_WARNINGS="yes"
+
+
+# Change it all for cygwin.
+if [ "$OSTYPE" == "cygwin" ] ; then
+ os_extra='-G nmake'
+ ionice=''
+ USE_SYSTEM_LIBSTDC="no"
+ TUNE_FLAGS="/EHsc /GR /Zm1000 /DWIN32 /D_WINDOWS "
+ FORCE_VECTORIZE="no"
+ ALLOW_WARNINGS="no"
+fi
--
cgit v1.1
From 51b5df7ebb0aa5a426e98082e76fc31796dcbb4d Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Fri, 19 Apr 2013 04:01:13 +1000
Subject: Bump experimental version number.
---
.../installers/windows/imprudence_installer_script_experimental.iss | 4 ++--
linden/indra/newview/packaging/mac/English.lproj/InfoPlist.strings | 4 ++--
linden/indra/newview/res/viewerRes.rc | 4 ++--
linden/indra/newview/viewerinfo.cpp | 2 +-
4 files changed, 7 insertions(+), 7 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/newview/installers/windows/imprudence_installer_script_experimental.iss b/linden/indra/newview/installers/windows/imprudence_installer_script_experimental.iss
index d50957d..a396381 100644
--- a/linden/indra/newview/installers/windows/imprudence_installer_script_experimental.iss
+++ b/linden/indra/newview/installers/windows/imprudence_installer_script_experimental.iss
@@ -9,11 +9,11 @@
; These will change
AppId={{1B3E68BC-13EB-4277-9439-CB5FF9259460}
AppName=Imprudence Viewer Experimental
-AppVerName=Imprudence Viewer 1.4.0.3 exp 0 windows test release
+AppVerName=Imprudence Viewer 1.4.0.3 exp 1 windows test release
DefaultDirName={pf}\ImprudenceExperimental
DefaultGroupName=Imprudence Viewer Experimental
VersionInfoProductName=Imprudence Viewer Experimental
-OutputBaseFilename=Imprudence-1.4.0.3-exp-0-windows-test
+OutputBaseFilename=Imprudence-1.4.0.3-exp-1-windows-test
VersionInfoVersion=1.4.0.3
VersionInfoTextVersion=1.4.0.3
VersionInfoProductVersion=1.4.0.3
diff --git a/linden/indra/newview/packaging/mac/English.lproj/InfoPlist.strings b/linden/indra/newview/packaging/mac/English.lproj/InfoPlist.strings
index 91eae98..e0014d3 100644
--- a/linden/indra/newview/packaging/mac/English.lproj/InfoPlist.strings
+++ b/linden/indra/newview/packaging/mac/English.lproj/InfoPlist.strings
@@ -1,5 +1,5 @@
/* Localized versions of Info.plist keys */
CFBundleName = "Imprudence";
-CFBundleShortVersionString = "Imprudence 1.4.0.3 exp 0";
-CFBundleGetInfoString = "Imprudence 1.4.0.3 exp 0";
+CFBundleShortVersionString = "Imprudence 1.4.0.3 exp 1";
+CFBundleGetInfoString = "Imprudence 1.4.0.3 exp 1";
diff --git a/linden/indra/newview/res/viewerRes.rc b/linden/indra/newview/res/viewerRes.rc
index 4144e47..edeee92 100644
--- a/linden/indra/newview/res/viewerRes.rc
+++ b/linden/indra/newview/res/viewerRes.rc
@@ -156,11 +156,11 @@ BEGIN
BEGIN
VALUE "CompanyName", "Imprudence Viewer Project"
VALUE "FileDescription", "Imprudence"
- VALUE "FileVersion", "1.4.0.3 exp 0"
+ VALUE "FileVersion", "1.4.0.3 exp 1"
VALUE "InternalName", "Imprudence"
VALUE "OriginalFilename", "imprudence.exe"
VALUE "ProductName", "Imprudence"
- VALUE "ProductVersion", "1.4.0.3 exp 0"
+ VALUE "ProductVersion", "1.4.0.3 exp 1"
END
END
BLOCK "VarFileInfo"
diff --git a/linden/indra/newview/viewerinfo.cpp b/linden/indra/newview/viewerinfo.cpp
index d1ed1a0..7237c16 100644
--- a/linden/indra/newview/viewerinfo.cpp
+++ b/linden/indra/newview/viewerinfo.cpp
@@ -37,7 +37,7 @@ namespace ViewerInfo
const S32 MINOR = 4;
const S32 PATCH = 0;
const S32 RLEAS = 3; // increment for each beta/RC/release
- const std::string EXTRA = "exp 0";
+ const std::string EXTRA = "exp 1";
// Mac OS X bundle identifier. Should match the one in Info.plist.
const std::string BUNDLE_ID = "org.imprudenceviewer.viewer";
--
cgit v1.1
From 37301a51d2d2f3731ada3ad2170cb9ec91945b62 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Fri, 19 Apr 2013 17:12:36 +1000
Subject: Allow the build scripts to build a configurable type, and make that
type RelWithDebInfo.
---
linden/scripts/linux/1-get-libraries-from-SL | 2 +-
linden/scripts/linux/3-compile-SL-source | 2 +-
linden/scripts/linux/config-SL-source | 2 ++
3 files changed, 4 insertions(+), 2 deletions(-)
(limited to 'linden')
diff --git a/linden/scripts/linux/1-get-libraries-from-SL b/linden/scripts/linux/1-get-libraries-from-SL
index 87ad39c..99a4367 100755
--- a/linden/scripts/linux/1-get-libraries-from-SL
+++ b/linden/scripts/linux/1-get-libraries-from-SL
@@ -65,7 +65,7 @@ else
FATAL_WARNINGS=""
fi
# Configure the sources and download the LL provided libraries:
-./develop.py $os_extra --type=Release configure "$FATAL_WARNINGS" \
+./develop.py $os_extra --type=$TYPE configure "$FATAL_WARNINGS" \
-DCMAKE_C_FLAGS:STRING="$TUNE_FLAGS" -DCMAKE_CXX_FLAGS:STRING="$TUNE_FLAGS" \
-DCMAKE_C_FLAGS_DEBUG:STRING="-g $TUNE_FLAGS" -DCMAKE_CXX_FLAGS_DEBUG:STRING="-g $TUNE_FLAGS" \
-DCMAKE_C_FLAGS_RELEASE:STRING="$TUNE_FLAGS" -DCMAKE_CXX_FLAGS_RELEASE:STRING="$TUNE_FLAGS" \
diff --git a/linden/scripts/linux/3-compile-SL-source b/linden/scripts/linux/3-compile-SL-source
index c932340..4ac80a7 100755
--- a/linden/scripts/linux/3-compile-SL-source
+++ b/linden/scripts/linux/3-compile-SL-source
@@ -54,7 +54,7 @@ source config-SL-source
function compile() {
cd $PATH_TO_SOURCES/indra
echo "Compiling the client into $TEMP_DIR..."
- nice -n 19 $ionice ./develop.py $os_extra --type=Release build
+ nice -n 19 $ionice ./develop.py $os_extra --type=$TYPE build
}
########### end of functions ###########
diff --git a/linden/scripts/linux/config-SL-source b/linden/scripts/linux/config-SL-source
index 200f957..80ae27a 100644
--- a/linden/scripts/linux/config-SL-source
+++ b/linden/scripts/linux/config-SL-source
@@ -21,6 +21,8 @@ PATH_TO_PATCHES="$PWD/../../patches"
TEMP_DIR="/tmp/SL-$USER"
mkdir -p $TEMP_DIR
+TYPE="RelWithDebInfo"
+
USE_SYSTEM_GTK="no"
USE_SYSTEM_SDL="no"
USE_SYSTEM_SSL="no"
--
cgit v1.1
From 976874914ea9f8cda148c02bfed1cdc4f3c47442 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Sat, 20 Apr 2013 22:53:07 +1000
Subject: Make python output stuff in the proper order.
---
linden/scripts/linux/config-SL-source | 4 ++++
1 file changed, 4 insertions(+)
(limited to 'linden')
diff --git a/linden/scripts/linux/config-SL-source b/linden/scripts/linux/config-SL-source
index 80ae27a..f60fd92 100644
--- a/linden/scripts/linux/config-SL-source
+++ b/linden/scripts/linux/config-SL-source
@@ -77,3 +77,7 @@ if [ "$OSTYPE" == "cygwin" ] ; then
FORCE_VECTORIZE="no"
ALLOW_WARNINGS="no"
fi
+
+
+# Work around python problems.
+export PYTHONUNBUFFERED='True'
--
cgit v1.1
From 4e1c12f728f102f37f7e38b2ed12040dc3be42aa Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Sat, 20 Apr 2013 22:53:55 +1000
Subject: No need to run cmake twice, the user gets warned if they screw up.
---
linden/indra/develop.py | 1 -
1 file changed, 1 deletion(-)
(limited to 'linden')
diff --git a/linden/indra/develop.py b/linden/indra/develop.py
index 3344288..7d57973 100755
--- a/linden/indra/develop.py
+++ b/linden/indra/develop.py
@@ -829,7 +829,6 @@ For example: develop.py configure -DSERVER:BOOL=OFF"""
for d in setup.build_dirs():
if not os.path.exists(d):
raise CommandError('run "develop.py cmake" first')
- setup.run_cmake()
opts, targets = setup.parse_build_opts(args)
setup.run_build(opts, targets)
elif cmd == 'clean':
--
cgit v1.1
From e3e59e2244b98b78175fecad22053a8edae1b365 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Sat, 20 Apr 2013 22:54:58 +1000
Subject: Cmake now puts the running of vstool into the make files for us, so
no need to do it in python.
---
linden/indra/develop.py | 19 -------------------
1 file changed, 19 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/develop.py b/linden/indra/develop.py
index 7d57973..ba22202 100755
--- a/linden/indra/develop.py
+++ b/linden/indra/develop.py
@@ -662,25 +662,6 @@ class WindowsSetup(PlatformSetup):
raise CommandError('the command %r %s' %
(name, ret))
- def run_vstool(self):
- for build_dir in self.build_dirs():
- stamp = os.path.join(build_dir, 'vstool.txt')
- try:
- prev_build = open(stamp).read().strip()
- except IOError:
- prev_build = ''
- if prev_build == self.build_type:
- # Only run vstool if the build type has changed.
- continue
- vstool_cmd = (os.path.join('tools','vstool','VSTool.exe') +
- ' --solution ' +
- os.path.join(build_dir,'Imprudence.sln') +
- ' --config ' + self.build_type +
- ' --startup imprudence-bin')
- print 'Running %r in %r' % (vstool_cmd, getcwd())
- self.run(vstool_cmd)
- print >> open(stamp, 'w'), self.build_type
-
def run_build(self, opts, targets):
cwd = getcwd()
build_cmd = self.get_build_cmd()
--
cgit v1.1
From 45b52f8fa880afb3826f446f6b211b45873b29e5 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Sat, 20 Apr 2013 22:56:23 +1000
Subject: Remove excess output from the vs finding code, and move it up in the
file.
---
linden/indra/develop.py | 80 ++++++++++++++++++++++---------------------------
1 file changed, 35 insertions(+), 45 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/develop.py b/linden/indra/develop.py
index ba22202..b2c600e 100755
--- a/linden/indra/develop.py
+++ b/linden/indra/develop.py
@@ -504,6 +504,41 @@ class WindowsSetup(PlatformSetup):
self._generator = None
self.incredibuild = False
+ def find_visual_studio(self, gen=None):
+ if gen is None:
+ gen = self._generator
+ gen = gen.lower()
+ try:
+ import _winreg
+ key_str = (r'SOFTWARE\Microsoft\VisualStudio\%s\Setup\VS' %
+ self.gens[gen]['ver'])
+ value_str = (r'EnvironmentDirectory')
+ reg = _winreg.ConnectRegistry(None, _winreg.HKEY_LOCAL_MACHINE)
+ key = _winreg.OpenKey(reg, key_str)
+ value = _winreg.QueryValueEx(key, value_str)[0]
+ print 'Found: %s' % value
+ return value
+ except WindowsError, err:
+ return ''
+
+ def find_visual_studio_express(self, gen=None):
+ if gen is None:
+ gen = self._generator
+ gen = gen.lower()
+ try:
+ import _winreg
+ key_str = (r'SOFTWARE\Microsoft\VCExpress\%s\Setup\VC' %
+ self.gens[gen]['ver'])
+ value_str = (r'ProductDir')
+ reg = _winreg.ConnectRegistry(None, _winreg.HKEY_LOCAL_MACHINE)
+ key = _winreg.OpenKey(reg, key_str)
+ value = _winreg.QueryValueEx(key, value_str)[0]+"IDE"
+ print 'Found: %s' % value
+ self.using_express = True
+ return value
+ except WindowsError, err:
+ return ''
+
def _get_generator(self):
if self._generator is None:
for version in 'vc80 vc90 vc100 vc71'.split():
@@ -568,51 +603,6 @@ class WindowsSetup(PlatformSetup):
#'-DPACKAGE:BOOL=ON '
'%(opts)s "%(dir)s"' % args)
- def find_visual_studio(self, gen=None):
- if gen is None:
- gen = self._generator
- gen = gen.lower()
- try:
- import _winreg
- key_str = (r'SOFTWARE\Microsoft\VisualStudio\%s\Setup\VS' %
- self.gens[gen]['ver'])
- value_str = (r'EnvironmentDirectory')
- print ('Reading VS environment from HKEY_LOCAL_MACHINE\%s\%s' %
- (key_str, value_str))
- print key_str
-
- reg = _winreg.ConnectRegistry(None, _winreg.HKEY_LOCAL_MACHINE)
- key = _winreg.OpenKey(reg, key_str)
- value = _winreg.QueryValueEx(key, value_str)[0]
- print 'Found: %s' % value
- return value
- except WindowsError, err:
- print >> sys.stderr, "Didn't find ", self.gens[gen]['gen']
- return ''
-
- def find_visual_studio_express(self, gen=None):
- if gen is None:
- gen = self._generator
- gen = gen.lower()
- try:
- import _winreg
- key_str = (r'SOFTWARE\Microsoft\VCExpress\%s\Setup\VC' %
- self.gens[gen]['ver'])
- value_str = (r'ProductDir')
- print ('Reading VS environment from HKEY_LOCAL_MACHINE\%s\%s' %
- (key_str, value_str))
- print key_str
-
- reg = _winreg.ConnectRegistry(None, _winreg.HKEY_LOCAL_MACHINE)
- key = _winreg.OpenKey(reg, key_str)
- value = _winreg.QueryValueEx(key, value_str)[0]+"IDE"
- print 'Found: %s' % value
- self.using_express = True
- return value
- except WindowsError, err:
- print >> sys.stderr, "Didn't find ", self.gens[gen]['gen']
- return ''
-
def get_build_cmd(self):
if self.incredibuild:
config = self.build_type
--
cgit v1.1
From 3705e5468154c9682a4f38e646761a219cb53476 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Sat, 20 Apr 2013 22:57:10 +1000
Subject: Remove more excess vs finding output.
---
linden/indra/develop.py | 1 -
1 file changed, 1 deletion(-)
(limited to 'linden')
diff --git a/linden/indra/develop.py b/linden/indra/develop.py
index b2c600e..2c974f6 100755
--- a/linden/indra/develop.py
+++ b/linden/indra/develop.py
@@ -547,7 +547,6 @@ class WindowsSetup(PlatformSetup):
print 'Building with ', self.gens[version]['gen']
break
else:
- print >> sys.stderr, 'Cannot find a Visual Studio installation, testing for express editions'
for version in 'vc80 vc90 vc100 vc71'.split():
if self.find_visual_studio_express(version) != '':
self._generator = version
--
cgit v1.1
From d00b8c8ea63479d4c2b917142912e4bbd5f5d4d2 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Sat, 20 Apr 2013 22:58:51 +1000
Subject: Revert part of an earlier commit, no need to treat nmake differently
for this bit.
---
linden/indra/develop.py | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/develop.py b/linden/indra/develop.py
index 2c974f6..c3e1341 100755
--- a/linden/indra/develop.py
+++ b/linden/indra/develop.py
@@ -572,6 +572,7 @@ class WindowsSetup(PlatformSetup):
def cmake_commandline(self, src_dir, build_dir, opts, simple):
args = dict(
dir=src_dir,
+ generator=self.gens[self.generator.lower()]['gen'],
opts=quote(opts),
standalone=self.standalone,
unattended=self.unattended,
@@ -580,10 +581,7 @@ class WindowsSetup(PlatformSetup):
use_vstool='ON'
)
if self.generator == 'nmake':
- args['generator'] = r'NMake Makefiles'
args['use_vstool'] = 'OFF'
- else:
- args['generator'] = self.gens[self.generator.lower()]['gen']
if self.using_express:
args['using_express'] = 'ON'
args['use_vstool'] = 'OFF'
--
cgit v1.1
From ccc8c7cbe905b1762e0a70201f1389c844f0db5d Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Sat, 20 Apr 2013 22:59:42 +1000
Subject: Do the right vs finding thing even if it's an nmake build.
---
linden/indra/develop.py | 25 ++++++++++++++-----------
1 file changed, 14 insertions(+), 11 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/develop.py b/linden/indra/develop.py
index c3e1341..470f66a 100755
--- a/linden/indra/develop.py
+++ b/linden/indra/develop.py
@@ -559,6 +559,8 @@ class WindowsSetup(PlatformSetup):
return self._generator
def _set_generator(self, gen):
+ if gen == 'nmake':
+ self._get_generator()
self._generator = gen
generator = property(_get_generator, _set_generator)
@@ -608,18 +610,19 @@ class WindowsSetup(PlatformSetup):
return "buildconsole %s.sln /build %s" % (self.project_name, config)
- environment = self.find_visual_studio()
+ environment = self.find_visual_studio(self.generator)
if environment == '':
- environment = self.find_visual_studio_express()
- if environment == '':
- print >> sys.stderr, "Something went very wrong during build stage, could not find a Visual Studio?"
- else:
- print >> sys.stderr, "\nSolution generation complete, as you are using an express edition the final\n stages will need to be completed by hand"
- build_dirs=self.build_dirs();
- print >> sys.stderr, "Solution can now be found in:", build_dirs[0]
- print >> sys.stderr, "Set %s as startup project" % self.project_name
- print >> sys.stderr, "Set build target is Release or RelWithDbgInfo"
- exit(0)
+ environment = self.find_visual_studio_express(self.generator)
+ if self.generator != 'nmake':
+ if environment == '':
+ print >> sys.stderr, "Something went very wrong during build stage, could not find a Visual Studio?"
+ else:
+ print >> sys.stderr, "\nSolution generation complete, as you are using an express edition the final\n stages will need to be completed by hand"
+ build_dirs=self.build_dirs();
+ print >> sys.stderr, "Solution can now be found in:", build_dirs[0]
+ print >> sys.stderr, "Set %s as startup project" % self.project_name
+ print >> sys.stderr, "Set build target is Release or RelWithDbgInfo"
+ exit(0)
if self.generator == 'nmake':
'''Hack around a bug in cmake that I'm surprised did not hit GUI controlled builds.'''
--
cgit v1.1
From 52fbc90af39ed076c039ea5b4f69bb4fb8d6518d Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Sat, 20 Apr 2013 23:00:01 +1000
Subject: Small clean ups.
---
linden/indra/develop.py | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/develop.py b/linden/indra/develop.py
index 470f66a..eb071bd 100755
--- a/linden/indra/develop.py
+++ b/linden/indra/develop.py
@@ -408,7 +408,7 @@ class LinuxSetup(UnixSetup):
print 'Running %r' % cmd
self.run(cmd)
-
+
class DarwinSetup(UnixSetup):
def __init__(self):
super(DarwinSetup, self).__init__()
@@ -599,7 +599,6 @@ class WindowsSetup(PlatformSetup):
'-DROOT_PROJECT_NAME:STRING=%(project_name)s '
'-DUSING_EXPRESS:BOOL=%(using_express)s '
'-DUSE_VSTOOL:BOOL=%(use_vstool)s '
- #'-DPACKAGE:BOOL=ON '
'%(opts)s "%(dir)s"' % args)
def get_build_cmd(self):
@@ -607,7 +606,6 @@ class WindowsSetup(PlatformSetup):
config = self.build_type
if self.gens[self.generator]['ver'] in [ r'8.0', r'9.0', r'10.0', r'7.1' ]:
config = '\"%s|Win32\"' % config
-
return "buildconsole %s.sln /build %s" % (self.project_name, config)
environment = self.find_visual_studio(self.generator)
@@ -625,14 +623,14 @@ class WindowsSetup(PlatformSetup):
exit(0)
if self.generator == 'nmake':
- '''Hack around a bug in cmake that I'm surprised did not hit GUI controlled builds.'''
+ # Hack around a bug in cmake that I'm surprised did not hit GUI controlled builds.
self.run(r'sed -i "s|\(^RC_FLAGS .* \) /GS .*$|\1|" build-nmake/win_crash_logger/CMakeFiles/windows-crash-logger.dir/flags.make')
self.run(r'sed -i "s|\(^RC_FLAGS .* \) /GS .*$|\1|" build-nmake/newview/CMakeFiles/imprudence-bin.dir/flags.make')
self.run(r'sed -i "s|\(^RC_FLAGS .* \) /EHsc .*/Zm1000 \($\)|\1\2|" build-nmake/win_crash_logger/CMakeFiles/windows-crash-logger.dir/flags.make')
self.run(r'sed -i "s|\(^RC_FLAGS .* \) /EHsc .*/Zm1000 \($\)|\1\2|" build-nmake/newview/CMakeFiles/imprudence-bin.dir/flags.make')
- '''Evil hack.'''
+ # Evil hack.
self.run(r'touch newview/touched.bat')
- return "nmake"
+ return 'nmake'
# devenv.com is CLI friendly, devenv.exe... not so much.
return ('"%sdevenv.com" %s.sln /build %s' %
--
cgit v1.1
From 305f086cdd84249f16602f775e87979ce3c66a4d Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Sun, 21 Apr 2013 19:43:57 +1000
Subject: Fix http://redmine.kokuaviewer.org/issues/1139 and provide better
protection against NULL callbacks.
---
linden/indra/newview/llinventorymodel.cpp | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/newview/llinventorymodel.cpp b/linden/indra/newview/llinventorymodel.cpp
index 40cbc43..8b98782 100644
--- a/linden/indra/newview/llinventorymodel.cpp
+++ b/linden/indra/newview/llinventorymodel.cpp
@@ -455,8 +455,6 @@ LLUUID LLInventoryModel::createNewCategory(const LLUUID& parent_id,
void (*callback)(const LLSD&, void*),
void* user_data)
{
- llassert_always(NULL != callback);
-
LLUUID id;
if(!isInventoryUsable())
@@ -464,7 +462,8 @@ LLUUID LLInventoryModel::createNewCategory(const LLUUID& parent_id,
llwarns << "Inventory is broken." << llendl;
LLSD result;
result["failure"] = true;
- callback(result, user_data);
+ if (callback)
+ callback(result, user_data);
}
@@ -473,7 +472,8 @@ LLUUID LLInventoryModel::createNewCategory(const LLUUID& parent_id,
LL_DEBUGS("Inventory") << "Attempt to create simstate category." << LL_ENDL;
LLSD result;
result["failure"] = true;
- callback(result, user_data);
+ if (callback)
+ callback(result, user_data);
}
id.generate();
@@ -492,10 +492,8 @@ LLUUID LLInventoryModel::createNewCategory(const LLUUID& parent_id,
name.assign(NEW_CATEGORY_NAME);
}
- if (user_data) // callback required for acked message.
+ if ((NULL != callback) && (NULL != user_data)) // callback required for acked message.
{
-
-
LLViewerRegion* viewer_region = gAgent.getRegion();
if (!viewer_region->capabilitiesReceived())
@@ -537,7 +535,10 @@ LLUUID LLInventoryModel::createNewCategory(const LLUUID& parent_id,
{
// user_data is a LLCategoryCreate object instantiated in the calling
// function - bug (or low memory - any leaks?).
- llwarns << "NULL user_data" << llendl;
+ // Or, it might just be no problem, since passing the callback in the first place is optional.
+ // It's really up to the calling function to know what it passed to pass back to the callback.
+ if (callback)
+ llwarns << "NULL user_data" << llendl;
}
// Add the category to the internal representation
--
cgit v1.1
From 85444c4aff8cc51da35468df62aa70ed87339622 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Wed, 24 Apr 2013 13:04:14 +1000
Subject: Add compatibility with autobuild pre built libraries.
Now Imprudence can share them with Kokua.
---
linden/scripts/install.py | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
(limited to 'linden')
diff --git a/linden/scripts/install.py b/linden/scripts/install.py
index 99e8b73..b39dd5a 100755
--- a/linden/scripts/install.py
+++ b/linden/scripts/install.py
@@ -565,6 +565,7 @@ windows/i686/vs/2003 -- specify a windows visual studio 2003 package"""
tar.extractall(path=install_dir)
except AttributeError:
_extractall(tar, path=install_dir)
+
symlinks = []
if _get_platform() == 'linux' or _get_platform() == 'linux64':
first = 1
@@ -591,6 +592,43 @@ windows/i686/vs/2003 -- specify a windows visual studio 2003 package"""
os.symlink(target, link_name)
symlinks += [LINK]
print " %s --> %s" % (LINK, target)
+
+ # Reroute autobuilds
+ auto_name = install_dir + "/include"
+ if os.path.exists(auto_name):
+ print "Moving autobuilt include files to legacy locations."
+ for entry in os.listdir(auto_name):
+ os.rename(auto_name + "/" + entry, install_dir + "/libraries/include/" + entry)
+ os.rmdir(auto_name)
+
+ auto_name = install_dir + "/lib"
+ dest_name = ''
+ if _get_platform() == 'darwin':
+ dest_name = 'universal-darwin/'
+ if _get_platform() == 'linux64':
+ dest_name = 'x86_64-linux/'
+ if _get_platform() == 'linux':
+ dest_name = 'i686-linux/'
+ if _get_platform() == 'windows':
+ dest_name = 'i686-win32/'
+ if os.path.exists(auto_name):
+ print "Moving autobuilt lib files to legacy locations."
+ for entry in os.listdir(auto_name):
+ if os.path.isdir(auto_name + "/" + entry):
+ path = install_dir + "/libraries/" + dest_name + "lib_" + entry
+ if entry == 'release':
+ # Linux is special, coz it's got server code.
+ if _get_platform() == 'linux' or _get_platform() == 'linux64':
+ path = install_dir + "/libraries/" + dest_name + "lib_" + entry + "_client"
+ if not os.path.exists(path):
+ os.makedirs(path)
+ for filename in os.listdir(auto_name + "/" + entry):
+ os.rename(auto_name + "/" + entry + "/" + filename, path + "/" + filename)
+ os.rmdir(auto_name + "/" + entry)
+ else:
+ os.rename(auto_name + "/" + entry, install_dir + "/libraries/" + dest_name + "lib/" + entry)
+ os.rmdir(auto_name)
+
if ifile.pkgname in self._installed:
self._installed[ifile.pkgname].add_files(
ifile.url,
--
cgit v1.1
From af09cc274b50c9d9c41af0ff9f2e66b4c81a1fa4 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Wed, 24 Apr 2013 13:05:44 +1000
Subject: Update boost library for Linux 64 bit to 1.48 from Kokua.
Also added icu from there, but not sure it's needed anymore?
---
linden/indra/newview/viewer_manifest.py | 19 +++++++++++++++++++
linden/install.xml | 25 +++++++++++++++++++++++--
2 files changed, 42 insertions(+), 2 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/newview/viewer_manifest.py b/linden/indra/newview/viewer_manifest.py
index bcdf4a9..6380b39 100755
--- a/linden/indra/newview/viewer_manifest.py
+++ b/linden/indra/newview/viewer_manifest.py
@@ -1121,6 +1121,25 @@ class Linux_x86_64Manifest(LinuxManifest):
#self.path("libgsttag-0.10.so.0")
#self.path("libgstvideo-0.10.so.0")
+ # Wish I could kill it with fire. lol
+ self.path("libboost_date_time-mt.so")
+ self.path("libboost_date_time-mt.so.1.48.0")
+ self.path("libboost_filesystem-mt.so")
+ self.path("libboost_filesystem-mt.so.1.48.0")
+ self.path("libboost_iostreams-mt.so")
+ self.path("libboost_iostreams-mt.so.1.48.0")
+ self.path("libboost_program_options-mt.so")
+ self.path("libboost_program_options-mt.so.1.48.0")
+ self.path("libboost_regex-mt.so")
+ self.path("libboost_regex-mt.so.1.48.0")
+ self.path("libboost_signals-mt.so")
+ self.path("libboost_signals-mt.so.1.48.0")
+ self.path("libboost_system-mt.so")
+ self.path("libboost_system-mt.so.1.48.0")
+ self.path("libboost_thread-mt.so")
+ self.path("libboost_thread-mt.so.1.48.0")
+ self.path("libboost_wave-mt.so")
+ self.path("libboost_wave-mt.so.1.48.0")
self.end_prefix("lib64")
diff --git a/linden/install.xml b/linden/install.xml
index 3e5810a..c18e55a 100755
--- a/linden/install.xml
+++ b/linden/install.xml
@@ -202,9 +202,9 @@
linux64
md5sum
- ebfaa439a8a78db7d99a26a73a70994a
+ fb26c88983b6bf9b5042d00bfdd3ade4
url
- http://imprudenceviewer.org/download/libs/boost-1.39.0-linux64-20100901.tar.bz2
+ https://bitbucket.org/kokua/3p-boost/downloads/boost-1.48.0-linux64-20130103.tar.bz2
windows
@@ -701,6 +701,27 @@ cairo: Copyright © 2002 University of Southern California, Copyright © 2005 Re
+ icu
+
+ copyright
+ various
+ description
+ Unicode and globalization support for software applications.
+ license
+ icu
+ license
+ unicode-license
+ packages
+
+ linux64
+
+ md5sum
+ bc3226223f0d14881a84c2e836c4a81a
+ url
+ https://bitbucket.org/kokua/3p-icu4c-64/downloads/icu4c-48.1-linux64-20121227.tar.bz2
+
+
+
jpeglib
copyright
--
cgit v1.1
From 044d7575eab98ff26ed7d48a461b613db52bed04 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Fri, 26 Apr 2013 13:09:45 +1000
Subject: Make nmake builds more like VS builds.
Still some tweaking to go, therefore, still some rough bits in this.
---
linden/indra/cmake/00-Common.cmake | 5 +++
linden/indra/develop.py | 5 ++-
linden/indra/llplugin/slplugin/CMakeLists.txt | 2 +-
linden/indra/mac_crash_logger/CMakeLists.txt | 2 +-
linden/indra/mac_updater/CMakeLists.txt | 2 +-
linden/indra/media_plugins/webkit/CMakeLists.txt | 4 +-
linden/indra/newview/CMakeLists.txt | 42 +++++++++---------
.../windows/imprudence_installer_template.iss | 14 +++---
linden/indra/newview/viewer_manifest.py | 51 ++++++++++++----------
linden/indra/test_apps/llplugintest/CMakeLists.txt | 4 +-
linden/scripts/linux/4-package-viewer | 2 +-
11 files changed, 73 insertions(+), 60 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/cmake/00-Common.cmake b/linden/indra/cmake/00-Common.cmake
index 81bfbdf..ea21ba0 100644
--- a/linden/indra/cmake/00-Common.cmake
+++ b/linden/indra/cmake/00-Common.cmake
@@ -24,6 +24,11 @@ list(REMOVE_DUPLICATES TYPES)
set(CMAKE_CONFIGURATION_TYPES ${TYPES} CACHE STRING "Supported build types." FORCE)
unset(TYPES)
+# Work around nmake / VS difference.
+set(VIEWER_CFG_INTDIR ${CMAKE_CFG_INTDIR})
+if (NMAKE)
+ set(VIEWER_CFG_INTDIR ${CMAKE_BUILD_TYPE})
+endif(NMAKE)
# Determine the number of bits of this processor
diff --git a/linden/indra/develop.py b/linden/indra/develop.py
index eb071bd..76ba0d9 100755
--- a/linden/indra/develop.py
+++ b/linden/indra/develop.py
@@ -580,10 +580,12 @@ class WindowsSetup(PlatformSetup):
unattended=self.unattended,
project_name=self.project_name,
type=self.build_type,
- use_vstool='ON'
+ use_vstool='ON',
+ nmake=''
)
if self.generator == 'nmake':
args['use_vstool'] = 'OFF'
+ args['nmake'] = '-DNMAKE:BOOL=ON'
if self.using_express:
args['using_express'] = 'ON'
args['use_vstool'] = 'OFF'
@@ -599,6 +601,7 @@ class WindowsSetup(PlatformSetup):
'-DROOT_PROJECT_NAME:STRING=%(project_name)s '
'-DUSING_EXPRESS:BOOL=%(using_express)s '
'-DUSE_VSTOOL:BOOL=%(use_vstool)s '
+ '%(nmake)s '
'%(opts)s "%(dir)s"' % args)
def get_build_cmd(self):
diff --git a/linden/indra/llplugin/slplugin/CMakeLists.txt b/linden/indra/llplugin/slplugin/CMakeLists.txt
index 81d9299..f794dae 100755
--- a/linden/indra/llplugin/slplugin/CMakeLists.txt
+++ b/linden/indra/llplugin/slplugin/CMakeLists.txt
@@ -75,7 +75,7 @@ if (DARWIN)
COMMAND mkdir
ARGS
-p
- ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/SLPlugin.app/Contents/Resources
+ ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/SLPlugin.app/Contents/Resources
)
endif (DARWIN)
diff --git a/linden/indra/mac_crash_logger/CMakeLists.txt b/linden/indra/mac_crash_logger/CMakeLists.txt
index daf3e10..ee1dc93 100644
--- a/linden/indra/mac_crash_logger/CMakeLists.txt
+++ b/linden/indra/mac_crash_logger/CMakeLists.txt
@@ -71,6 +71,6 @@ add_custom_command(
-E
copy_directory
${CMAKE_CURRENT_SOURCE_DIR}/CrashReporter.nib
- ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/mac-crash-logger.app/Contents/Resources/CrashReporter.nib
+ ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/mac-crash-logger.app/Contents/Resources/CrashReporter.nib
)
diff --git a/linden/indra/mac_updater/CMakeLists.txt b/linden/indra/mac_updater/CMakeLists.txt
index 0eac76f..5ae7dd8 100644
--- a/linden/indra/mac_updater/CMakeLists.txt
+++ b/linden/indra/mac_updater/CMakeLists.txt
@@ -74,6 +74,6 @@ add_custom_command(
-E
copy_directory
${CMAKE_CURRENT_SOURCE_DIR}/AutoUpdater.nib
- ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/mac-updater.app/Contents/Resources/AutoUpdater.nib
+ ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/mac-updater.app/Contents/Resources/AutoUpdater.nib
)
diff --git a/linden/indra/media_plugins/webkit/CMakeLists.txt b/linden/indra/media_plugins/webkit/CMakeLists.txt
index 303a774..f589c61 100644
--- a/linden/indra/media_plugins/webkit/CMakeLists.txt
+++ b/linden/indra/media_plugins/webkit/CMakeLists.txt
@@ -112,8 +112,8 @@ if (DARWIN)
# copy the webkit dylib to the build directory
add_custom_command(
TARGET media_plugin_webkit POST_BUILD
-# OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/libllqtwebkit.dylib
- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib_release/libllqtwebkit.dylib ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/
+# OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/libllqtwebkit.dylib
+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib_release/libllqtwebkit.dylib ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/
DEPENDS media_plugin_webkit ${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib_release/libllqtwebkit.dylib
)
diff --git a/linden/indra/newview/CMakeLists.txt b/linden/indra/newview/CMakeLists.txt
index 9172aa0..907fa5c 100644
--- a/linden/indra/newview/CMakeLists.txt
+++ b/linden/indra/newview/CMakeLists.txt
@@ -1348,7 +1348,7 @@ if (WINDOWS)
-E
copy_if_different
${CMAKE_CURRENT_SOURCE_DIR}/../../scripts/messages/message_template.msg
- ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/app_settings/message_template.msg
+ ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/app_settings/message_template.msg
COMMENT "Copying message_template.msg to the runtime folder."
)
@@ -1359,7 +1359,7 @@ if (WINDOWS)
-E
copy_if_different
${CMAKE_CURRENT_SOURCE_DIR}/../../etc/message.xml
- ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/app_settings/message.xml
+ ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/app_settings/message.xml
COMMENT "Copying message.xml to the runtime folder."
)
@@ -1370,11 +1370,11 @@ if (WINDOWS)
endif (EXISTS ${CMAKE_SOURCE_DIR}/copy_win_scripts)
add_custom_command(
- OUTPUT ${CMAKE_CFG_INTDIR}/touched.bat
+ OUTPUT ${VIEWER_CFG_INTDIR}/touched.bat
COMMAND ${PYTHON_EXECUTABLE}
ARGS
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
- --configuration=${CMAKE_CFG_INTDIR}
+ --configuration=${VIEWER_CFG_INTDIR}
--channel=${VIEWER_CHANNEL}
--login_channel=${VIEWER_LOGIN_CHANNEL}
--standalone=${STANDALONE}
@@ -1383,15 +1383,15 @@ if (WINDOWS)
--source=${CMAKE_CURRENT_SOURCE_DIR}
--artwork=${ARTWORK_DIR}
--build=${CMAKE_CURRENT_BINARY_DIR}
- --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/package
- --touch=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/touched.bat
+ --dest=${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/package
+ --touch=${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/touched.bat
DEPENDS ${VIEWER_BINARY_NAME} ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
)
add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_quicktime media_plugin_webkit media_plugin_gstreamer010)
if (PACKAGE)
- add_custom_target(package ALL DEPENDS ${CMAKE_CFG_INTDIR}/touched.bat)
+ add_custom_target(package ALL DEPENDS ${VIEWER_CFG_INTDIR}/touched.bat)
add_dependencies(package windows-updater windows-crash-logger)
endif (PACKAGE)
endif (WINDOWS)
@@ -1526,8 +1526,8 @@ if (DARWIN)
--artwork=${ARTWORK_DIR}
--build=${CMAKE_CURRENT_BINARY_DIR}
--buildtype=${CMAKE_BUILD_TYPE}
- --configuration=${CMAKE_CFG_INTDIR}
- --dest=${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${product}.app
+ --configuration=${VIEWER_CFG_INTDIR}
+ --dest=${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/${product}.app
--grid=${GRID}
--source=${CMAKE_CURRENT_SOURCE_DIR}
--standalone=${STANDALONE}
@@ -1558,8 +1558,8 @@ if (WINDOWS)
-E
copy_if_different
${BUILT_LLCOMMON}
- ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
- COMMENT "Copying llcommon.dll to the runtime folder."
+ ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}
+ COMMENT "Copying llcommon.dll to the runtime folder ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}."
)
get_target_property(BUILT_SLPLUGIN SLPlugin LOCATION)
@@ -1570,8 +1570,8 @@ if (WINDOWS)
-E
copy_if_different
${BUILT_SLPLUGIN}
- ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
- COMMENT "Copying SLPlugin executable to the runtime folder."
+ ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}
+ COMMENT "Copying SLPlugin executable to the runtime folder ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}."
)
get_target_property(BUILT_WEBKIT_PLUGIN media_plugin_webkit LOCATION)
@@ -1582,8 +1582,8 @@ if (WINDOWS)
-E
copy_if_different
${BUILT_WEBKIT_PLUGIN}
- ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/llplugin
- COMMENT "Copying WebKit Plugin to the runtime folder."
+ ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/llplugin
+ COMMENT "Copying WebKit Plugin to the runtime folder ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/llplugin."
)
get_target_property(BUILT_GSTREAMER_PLUGIN media_plugin_gstreamer010 LOCATION)
@@ -1594,8 +1594,8 @@ if (WINDOWS)
-E
copy_if_different
${BUILT_GSTREAMER_PLUGIN}
- ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/llplugin
- COMMENT "Copying Gstreamer Plugin to the runtime folder."
+ ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/llplugin
+ COMMENT "Copying Gstreamer Plugin to the runtime folder ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/llplugin."
)
get_target_property(BUILT_QUICKTIME_PLUGIN media_plugin_quicktime LOCATION)
@@ -1606,13 +1606,13 @@ if (WINDOWS)
-E
copy_if_different
${BUILT_QUICKTIME_PLUGIN}
- ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/llplugin
- COMMENT "Copying Quicktime Plugin to the runtime folder."
+ ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/llplugin
+ COMMENT "Copying Quicktime Plugin to the runtime folder ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/llplugin."
)
# Copying the mime_types.xml file to app_settings
set(mime_types_source "${CMAKE_SOURCE_DIR}/newview/skins/default/xui/en-us")
- set(mime_types_dest "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/app_settings")
+ set(mime_types_dest "${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/app_settings")
add_custom_command(
TARGET ${VIEWER_BINARY_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND}
@@ -1629,7 +1629,7 @@ endif (WINDOWS)
if (DARWIN)
# Don't do this here -- it's taken care of by viewer_manifest.py
# add_custom_command(TARGET ${VIEWER_BINARY_NAME} POST_BUILD
-# COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib_release/libllqtwebkit.dylib ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/llplugin/
+# COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib_release/libllqtwebkit.dylib ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/llplugin/
# DEPENDS ${CMAKE_SOURCE_DIR}/../libraries/universal-darwin/lib_release/libllqtwebkit.dylib
# )
endif (DARWIN)
diff --git a/linden/indra/newview/installers/windows/imprudence_installer_template.iss b/linden/indra/newview/installers/windows/imprudence_installer_template.iss
index 7113368..7d02b0c 100644
--- a/linden/indra/newview/installers/windows/imprudence_installer_template.iss
+++ b/linden/indra/newview/installers/windows/imprudence_installer_template.iss
@@ -27,16 +27,16 @@ AppPublisher=The Imprudence Project
AppPublisherURL=http://kokuaviewer.org
AppSupportURL=http://kokuaviewer.org
AllowNoIcons=true
-InfoAfterFile=..\..\..\..\..\README.txt
+InfoAfterFile=..\..\..\..\..\..\README.txt
OutputDir=.
-SetupIconFile=..\..\..\newview\installers\windows\imp_icon.ico
+SetupIconFile=..\..\..\..\newview\installers\windows\imp_icon.ico
Compression=lzma2/ultra64
InternalCompressLevel=ultra64
SolidCompression=true
PrivilegesRequired=poweruser
AllowRootDirectory=true
-WizardImageFile=..\..\..\newview\installers\windows\imprudence_installer_icon_left.bmp
-WizardSmallImageFile=..\..\..\newview\installers\windows\imprudence_installer_icon_right.bmp
+WizardImageFile=..\..\..\..\newview\installers\windows\imprudence_installer_icon_left.bmp
+WizardSmallImageFile=..\..\..\..\newview\installers\windows\imprudence_installer_icon_right.bmp
SetupLogging=true
RestartIfNeededByRun=false
AlwaysRestart=false
@@ -145,9 +145,9 @@ Source: %%PACKAGEFILES%%\vivoxsdk.dll; DestDir: {app}; Flags: ignoreversion
Source: %%PACKAGEFILES%%\wrap_oal.dll; DestDir: {app}; Flags: ignoreversion
; VC++ 2005 SP1 x86, VC++ 2008 SP1 x86, and VC++ 2010 SP1 x86 redist
-Source: ..\..\..\newview\installers\windows\vcredist_x86_VS2005_SP1_MFC_SEC.exe; DestDir: {app}\redist; DestName: vcredist_x86_VS2005_SP1_MFC_SEC.exe
-;Source: ..\..\..\newview\installers\windows\vcredist_x86_VS2008_SP1_ATL_SEC.exe; DestDir: {app}\redist; DestName: vcredist_x86_VS2008_SP1_ATL_SEC.exe
-Source: ..\..\..\newview\installers\windows\vcredist_x86_VS2010_SP1.exe; DestDir: {app}\redist; DestName: vcredist_x86_VS2010_SP1.exe
+Source: ..\..\..\..\newview\installers\windows\vcredist_x86_VS2005_SP1_MFC_SEC.exe; DestDir: {app}\redist; DestName: vcredist_x86_VS2005_SP1_MFC_SEC.exe
+;Source: ..\..\..\..\newview\installers\windows\vcredist_x86_VS2008_SP1_ATL_SEC.exe; DestDir: {app}\redist; DestName: vcredist_x86_VS2008_SP1_ATL_SEC.exe
+Source: ..\..\..\..\newview\installers\windows\vcredist_x86_VS2010_SP1.exe; DestDir: {app}\redist; DestName: vcredist_x86_VS2010_SP1.exe
; Old files we don't use anymore:
; Source: %%PACKAGEFILES%%\dronesettings.xml; DestDir: {app}; Flags: ignoreversion
diff --git a/linden/indra/newview/viewer_manifest.py b/linden/indra/newview/viewer_manifest.py
index 718c3d2..84e75b8 100755
--- a/linden/indra/newview/viewer_manifest.py
+++ b/linden/indra/newview/viewer_manifest.py
@@ -232,21 +232,15 @@ class WindowsManifest(ViewerManifest):
def construct(self):
super(WindowsManifest, self).construct()
- # the final exe is complicated because we're not sure where it's coming from,
- # nor do we have a fixed name for the executable
- # Actually, we know on both counts -- MC
- if self.configuration().lower() == "release":
- self.path(self.find_existing_file('release/imprudence-bin.exe'), dst=self.final_exe())
- elif self.configuration().lower() == "releasesse2":
- self.path(self.find_existing_file('releasesse2/imprudence-bin.exe'), dst=self.final_exe())
- elif self.configuration().lower() == "relwithdebinfo":
- self.path(self.find_existing_file('relwithdebinfo/imprudence-bin.exe'), dst=self.final_exe())
- elif self.configuration().lower() == "debug":
- self.path(self.find_existing_file('debug/imprudence-bin.exe'), dst=self.final_exe())
- else:
- self.path(self.find_existing_file('release/imprudence-bin.exe', 'releasesse2/imprudence-bin.exe', 'relwithdebinfo/imprudence-bin.exe', 'debug/imprudence-bin.exe', 'imprudence-bin.exe'), dst=self.final_exe())
+ # Come out, come out, where ever you are.
+ executable = self.find_existing_file('release/imprudence-bin.exe', 'releasesse2/imprudence-bin.exe', 'relwithdebinfo/imprudence-bin.exe', 'debug/imprudence-bin.exe', './imprudence-bin.exe')
+ nmake = False
+ self.path(executable, dst=self.final_exe())
# copy over the the pdb file for the regular or SSE2 versions if we don't already have one copied
+ # Don't think this ever worked, the destination seems bogus.
+ # It's trying to copy a built file outside of the source tree, a file we have anyway.
+ # TODO - do we even need this?
symbol_ver = '.'.join(self.args['version'])
symbol_file = 'imprudence-%s.%s.pdb' % (symbol_ver, self.args['configuration'])
symbol_path = '../../../../../pdb_files/%s' % (symbol_file)
@@ -255,7 +249,7 @@ class WindowsManifest(ViewerManifest):
else:
#print "%s doesn't exist yet" % (os.getcwd() + symbol_path)
try:
- self.path(self.find_existing_file('release/imprudence-bin.pdb'), dst="../%s" % (symbol_path))
+ self.path(self.find_existing_file(executable.split('/', 1)[0] % '/imprudence-bin.pdb'), dst="../%s" % (symbol_path))
pass
except:
print "Can't save symbol file %s, skipping" % (symbol_path)
@@ -270,7 +264,13 @@ class WindowsManifest(ViewerManifest):
self.path("imprudence.url")
# Plugin host application
- self.path(os.path.join(os.pardir, 'llplugin', 'slplugin', self.args['configuration'], "SLPlugin.exe"), "SLPlugin.exe")
+ try:
+ self.path(os.path.join(os.pardir, 'llplugin', 'slplugin', self.args['configuration'], "SLPlugin.exe"), "SLPlugin.exe")
+ except:
+ # Probably an nmake build, which is not putting exe's into the configuration folders.
+ self.path(os.path.join(os.pardir, 'llplugin', 'slplugin', "SLPlugin.exe"), "SLPlugin.exe")
+ # Propogate our wild guess.
+ nmake = True
self.path("featuretable.txt")
@@ -281,7 +281,7 @@ class WindowsManifest(ViewerManifest):
#self.path("fmod.dll")
# For spellchecking
- if self.prefix(src=os.path.join(self.args['configuration'], "Release"), dst=""):
+ if self.prefix(self.args['configuration'], dst=""):
self.path("libhunspell.dll")
self.end_prefix()
@@ -289,12 +289,12 @@ class WindowsManifest(ViewerManifest):
self.path("llkdu.dll.2.config")
# Get llcommon and deps.
- if self.prefix(src=os.path.join(self.args['configuration'], "Release"), dst=""):
+ if self.prefix(self.args['configuration'], dst=""):
self.path('libapr-1.dll')
self.path('libaprutil-1.dll')
self.path('libapriconv-1.dll')
- self.end_prefix()
self.path('llcommon.dll')
+ self.end_prefix()
# For textures
if self.prefix(src="../../libraries/i686-win32/lib/release", dst=""):
@@ -307,21 +307,26 @@ class WindowsManifest(ViewerManifest):
self.path("alut.dll")
self.end_prefix()
+ # TODO - Yes, I know, would be better if nmake builds put stuff in the right place, track that down and fix it later.
+ if nmake:
+ config = ''
+ else:
+ config = self.args['configuration']
# Media plugins - QuickTime
- if self.prefix(src='../media_plugins/quicktime/%s' % self.args['configuration'], dst="llplugin"):
+ if self.prefix(src='../media_plugins/quicktime/%s' % config, dst="llplugin"):
self.path("media_plugin_quicktime.dll")
self.end_prefix()
# Media plugins - WebKit/Qt
- if self.prefix(src='../media_plugins/webkit/%s' % self.args['configuration'], dst="llplugin"):
+ if self.prefix(src='../media_plugins/webkit/%s' % config, dst="llplugin"):
self.path("media_plugin_webkit.dll")
self.end_prefix()
# Media plugins - GStreamer
- if self.prefix(src='../media_plugins/gstreamer010/%s' % self.args['configuration'], dst="llplugin"):
+ if self.prefix(src='../media_plugins/gstreamer010/%s' % config, dst="llplugin"):
self.path("media_plugin_gstreamer010.dll")
- self.end_prefix()
-
+ self.end_prefix()
+
# For WebKit/Qt plugin runtimes
if self.prefix(src="../../libraries/i686-win32/lib/release", dst="llplugin"):
self.path("libeay32.dll")
diff --git a/linden/indra/test_apps/llplugintest/CMakeLists.txt b/linden/indra/test_apps/llplugintest/CMakeLists.txt
index a6cb740..91ba2db 100644
--- a/linden/indra/test_apps/llplugintest/CMakeLists.txt
+++ b/linden/indra/test_apps/llplugintest/CMakeLists.txt
@@ -311,7 +311,7 @@ endif (DARWIN OR LINUX)
if (DARWIN)
# path inside the app bundle where we'll need to copy plugins and other related files
set(PLUGINS_DESTINATION_DIR
- ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/llmediaplugintest.app/Contents/Resources
+ ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/llmediaplugintest.app/Contents/Resources
)
# create the Contents/Resources directory
@@ -326,7 +326,7 @@ if (DARWIN)
)
else (DARWIN)
set(PLUGINS_DESTINATION_DIR
- ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/
+ ${CMAKE_CURRENT_BINARY_DIR}/${VIEWER_CFG_INTDIR}/
)
endif (DARWIN)
diff --git a/linden/scripts/linux/4-package-viewer b/linden/scripts/linux/4-package-viewer
index 19d2456..d954f02 100755
--- a/linden/scripts/linux/4-package-viewer
+++ b/linden/scripts/linux/4-package-viewer
@@ -3,7 +3,7 @@
if [ "$OSTYPE" == "cygwin" ] ; then
# Assumes version has been passed in from outside, coz Windows insists on adding crap to python output.
cd ../../indra/build-nmake/
- iscc newview/package/${version}-Windows-x86.iss
+ iscc newview/$TYPE/package/${version}-Windows-x86.iss
else
cd ../../indra/viewer-linux-*
make package
--
cgit v1.1
From 35078867283f1e9302e0a507629e384fd8c86be6 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Fri, 26 Apr 2013 13:10:25 +1000
Subject: Ah, iss has different UUIDs for release and experimentals.
---
.../indra/newview/installers/windows/imprudence_installer_template.iss | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'linden')
diff --git a/linden/indra/newview/installers/windows/imprudence_installer_template.iss b/linden/indra/newview/installers/windows/imprudence_installer_template.iss
index 7d02b0c..6ae437e 100644
--- a/linden/indra/newview/installers/windows/imprudence_installer_template.iss
+++ b/linden/indra/newview/installers/windows/imprudence_installer_template.iss
@@ -8,7 +8,7 @@
; Imp Experimental ID: 1B3E68BC-13EB-4277-9439-CB5FF9259460
; These will change
-AppId={{D7736EE8-AFCE-4735-BBE3-652CDFBBFCA8}
+AppId={{1B3E68BC-13EB-4277-9439-CB5FF9259460}
AppName=%%APPNAME%%
AppVerName=%%APPVERNAME%%
DefaultDirName={pf}\Imprudence
--
cgit v1.1
From a4dd5745326f4477b49e2331c45e549e821ffbee Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Fri, 26 Apr 2013 17:26:38 +1000
Subject: Make sure the TYPE variable is actually defined for nmake builds.
---
linden/scripts/linux/4-package-viewer | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
(limited to 'linden')
diff --git a/linden/scripts/linux/4-package-viewer b/linden/scripts/linux/4-package-viewer
index d954f02..a1a74f2 100755
--- a/linden/scripts/linux/4-package-viewer
+++ b/linden/scripts/linux/4-package-viewer
@@ -1,9 +1,11 @@
#!/bin/bash
+source config-SL-source
+
if [ "$OSTYPE" == "cygwin" ] ; then
# Assumes version has been passed in from outside, coz Windows insists on adding crap to python output.
cd ../../indra/build-nmake/
- iscc newview/$TYPE/package/${version}-Windows-x86.iss
+ iscc newview/${TYPE}/package/${version}-Windows-x86.iss
else
cd ../../indra/viewer-linux-*
make package
--
cgit v1.1
From 3932afd085f2bc480f7ba5c664972a616d1b6939 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Sat, 27 Apr 2013 09:41:06 +1000
Subject: Fix Windows autobuild support, coz it's different from the others.
sigh
---
linden/scripts/install.py | 3 +++
1 file changed, 3 insertions(+)
(limited to 'linden')
diff --git a/linden/scripts/install.py b/linden/scripts/install.py
index b39dd5a..1e2bccb 100755
--- a/linden/scripts/install.py
+++ b/linden/scripts/install.py
@@ -620,6 +620,9 @@ windows/i686/vs/2003 -- specify a windows visual studio 2003 package"""
# Linux is special, coz it's got server code.
if _get_platform() == 'linux' or _get_platform() == 'linux64':
path = install_dir + "/libraries/" + dest_name + "lib_" + entry + "_client"
+ # Windows is also special.
+ if _get_platform() == 'windows':
+ path = install_dir + "/libraries/" + dest_name + "lib/" + entry
if not os.path.exists(path):
os.makedirs(path)
for filename in os.listdir(auto_name + "/" + entry):
--
cgit v1.1
From f3ae21b2222de34bc213fb5754e67860b1761b8a Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Thu, 2 May 2013 17:23:58 +1000
Subject: Add more credits, including my own.
---
linden/indra/newview/skins/default/xui/en-us/floater_about.xml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_about.xml b/linden/indra/newview/skins/default/xui/en-us/floater_about.xml
index 91a63eb..fa8251c 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_about.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_about.xml
@@ -35,17 +35,17 @@
max_length="65536" mouse_opaque="true" name="credits_editor" width="423"
word_wrap="true">
The Imprudence Viewer was rocked hard by:
- Jacek Antonelli, McCabe Maxsted, Armin Weatherwax, Elektra Hesse, CodeBastard Redgrave and Boroondas Gupte.
+ Armin Weatherwax, Boroondas Gupte, CodeBastard Redgrave, Elektra Hesse, Jacek Antonelli, McCabe Maxsted, and onefang rejected.
http://kokuaviewer.org/
Imprudence is so awesome thanks to contributions from many generous people:
- For their patches and code contributions, we thank Admiral Admiral, Aimee Trescothick, Aleric Inglewood, Alissa Sabre, Angus Boyd, Ansariel Hiller, Archimedies Plutonian, Ardy Lay, Asuka Neely, Balp Allen, Carjay McGinnis, Chalice Yao, Dale Glass, Damian Delacrois, Danny Nolan, Eryn, Felix Duesenburg, Frederick Martian, Geneko Nemeth, Grandma Bates, Hazim Gazov, Henri Beauchamp, Hg Beeks, Hiroshi Kumaki, Kakurady Drakenar, Katharine Berry, KirstenLee Cinquetti, Kitty Barnett, Latif Khalifa, Lance Corrimal, Lilly Zenovka, Makomk Makosen, Mana Janus, Matthew Dowd, Michelle2 Zenovka, Mimika Oh, Mm Alder, Nemurimasu Neiro, Nicholaz Beresford, Nicky Perian, Patrick Sapinski, Paul Churchill, Peter Lameth, Qarl Fizz, Revolution Smythe, Robin Cornelius, Seraph Linden, Shyotl Kuhr, Siana Gearz, SignpostMarv Martin, Stephen Zenith, TankMaster Finesmith, Thickbrick Sleaford, Thomas Shikami, Tom Meta, Tonya Souther, tx Oh, Vaalith Jinn, Vadim Bigbear, Vex Streeter, WhiteStar Magic, Zi Ree, and Zwagoth Klaar.
+ For their patches and code contributions, we thank Admiral Admiral, Aimee Trescothick, Aleric Inglewood, Alissa Sabre, Angus Boyd, Ansariel Hiller, Archimedies Plutonian, Ardy Lay, Asuka Neely, Balp Allen, Carjay McGinnis, Chalice Yao, Dale Glass, Damian Delacrois, Danny Nolan, Eryn, Felix Duesenburg, Frederick Martian, Geneko Nemeth, Grandma Bates, Hazim Gazov, Henri Beauchamp, Hg Beeks, Hiroshi Kumaki, Johnnie Carling, Lord Drakeo, Kakurady Drakenar, Katharine Berry, Kentron Katana, KirstenLee Cinquetti, Kitty Barnett, Latif Khalifa, Lance Corrimal, Lilly Zenovka, Makomk Makosen, Mana Janus, Matthew Dowd, Michelle2 Zenovka, Mimika Oh, Mm Alder, Nemurimasu Neiro, Nicholaz Beresford, Nicky Perian, Patrick Sapinski, Paul Churchill, Peter Lameth, Qarl Fizz, Revolution Smythe, Robin Cornelius, Seraph Linden, Shyotl Kuhr, Siana Gearz, SignpostMarv Martin, Stephen Zenith, TankMaster Finesmith, Thickbrick Sleaford, Thomas Shikami, Tom Meta, Tonya Souther, tx Oh, Vaalith Jinn, Vadim Bigbear, Vex Streeter, WhiteStar Magic, Zi Ree, and Zwagoth Klaar.
For their WindLight presets, we thank Ana Lutetia, CodeBastard Redgrave, and Torley Linden.
- Thanks also to the developer(s) of the Ascent Viewer, Astra Viewer, Cool VL Viewer, Dolphin Viewer, Emerald Viewer, FrozenGlobe Viewer, Hippo Viewer, Meerkat Viewer, Meta7 Viewer, Phoenix Viewer, Singularity Viewer and Snowglobe Viewer for viewer enhancements we have incorporated, as well as Kitty Barnett for RLVa. Special thanks to the folks at Linden Lab for releasing the viewer source, without which this endeavor would have been impossible.
+ Thanks also to the developer(s) of the Ascent Viewer, Astra Viewer, Cool VL Viewer, Dolphin Viewer, Emerald Viewer, FrozenGlobe Viewer, Hippo Viewer, Meerkat Viewer, Meta7 Viewer, Phoenix Viewer, Singularity Viewer and Snowglobe Viewer for viewer enhancements we have incorporated, as well as Kitty Barnett for RLVa. Special thanks to the folks at Linden Lab for releasing the viewer source, without which this endeavor would have been impossible.
For a complete list of who did what, read the release notes!
--
cgit v1.1
From ffe6207af4fd2e731aba4248629a622514a44852 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Thu, 2 May 2013 22:49:55 +1000
Subject: Update boost on Linux to 1.52.
Mac and Windows will be done when I can test them better.
---
linden/indra/newview/viewer_manifest.py | 40 +++++++++++++++++++++++----------
linden/install.xml | 29 ++++--------------------
2 files changed, 32 insertions(+), 37 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/newview/viewer_manifest.py b/linden/indra/newview/viewer_manifest.py
index ea18cd2..01e422f 100755
--- a/linden/indra/newview/viewer_manifest.py
+++ b/linden/indra/newview/viewer_manifest.py
@@ -1023,9 +1023,27 @@ class Linux_i686Manifest(LinuxManifest):
#self.path("libgstvolume.so")
#self.path("libgstvorbis.so")
#self.path("libgstwavparse.so")
-
+
#self.end_prefix("gstreamer-plugins")
-
+
+ # Wish I could kill it with fire. lol
+ self.path("libboost_date_time-mt.so")
+ self.path("libboost_date_time-mt.so.1.52.0")
+ self.path("libboost_filesystem-mt.so")
+ self.path("libboost_filesystem-mt.so.1.52.0")
+ self.path("libboost_iostreams-mt.so")
+ self.path("libboost_iostreams-mt.so.1.52.0")
+ self.path("libboost_program_options-mt.so")
+ self.path("libboost_program_options-mt.so.1.52.0")
+ self.path("libboost_regex-mt.so")
+ self.path("libboost_regex-mt.so.1.52.0")
+ self.path("libboost_signals-mt.so")
+ self.path("libboost_signals-mt.so.1.52.0")
+ self.path("libboost_system-mt.so")
+ self.path("libboost_system-mt.so.1.52.0")
+ self.path("libboost_thread-mt.so")
+ self.path("libboost_thread-mt.so.1.52.0")
+
self.end_prefix("lib")
# Vivox runtimes and libs
@@ -1128,23 +1146,21 @@ class Linux_x86_64Manifest(LinuxManifest):
# Wish I could kill it with fire. lol
self.path("libboost_date_time-mt.so")
- self.path("libboost_date_time-mt.so.1.48.0")
+ self.path("libboost_date_time-mt.so.1.52.0")
self.path("libboost_filesystem-mt.so")
- self.path("libboost_filesystem-mt.so.1.48.0")
+ self.path("libboost_filesystem-mt.so.1.52.0")
self.path("libboost_iostreams-mt.so")
- self.path("libboost_iostreams-mt.so.1.48.0")
+ self.path("libboost_iostreams-mt.so.1.52.0")
self.path("libboost_program_options-mt.so")
- self.path("libboost_program_options-mt.so.1.48.0")
+ self.path("libboost_program_options-mt.so.1.52.0")
self.path("libboost_regex-mt.so")
- self.path("libboost_regex-mt.so.1.48.0")
+ self.path("libboost_regex-mt.so.1.52.0")
self.path("libboost_signals-mt.so")
- self.path("libboost_signals-mt.so.1.48.0")
+ self.path("libboost_signals-mt.so.1.52.0")
self.path("libboost_system-mt.so")
- self.path("libboost_system-mt.so.1.48.0")
+ self.path("libboost_system-mt.so.1.52.0")
self.path("libboost_thread-mt.so")
- self.path("libboost_thread-mt.so.1.48.0")
- self.path("libboost_wave-mt.so")
- self.path("libboost_wave-mt.so.1.48.0")
+ self.path("libboost_thread-mt.so.1.52.0")
self.end_prefix("lib64")
diff --git a/linden/install.xml b/linden/install.xml
index c18e55a..dff0768 100755
--- a/linden/install.xml
+++ b/linden/install.xml
@@ -195,16 +195,16 @@
linux
md5sum
- 4db3d74e40d149eeec06f4d97a609bb1
+ 146ed8a8c2ef8ab3f0a6c4f214fc5c22
url
- http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/boost-1.39.0-linux-20100624.tar.bz2
+ http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-boost/rev/268347/arch/Linux/installer/boost-1.52.0-linux-20121218.tar.bz2
linux64
md5sum
- fb26c88983b6bf9b5042d00bfdd3ade4
+ b9dbe1ab34187a9a6f53fd89f88060d2
url
- https://bitbucket.org/kokua/3p-boost/downloads/boost-1.48.0-linux64-20130103.tar.bz2
+ https://bitbucket.org/kokua/3p-boost-64/downloads/boost-1.52.0-linux64-20130107.tar.bz2
windows
@@ -701,27 +701,6 @@ cairo: Copyright © 2002 University of Southern California, Copyright © 2005 Re
- icu
-
- copyright
- various
- description
- Unicode and globalization support for software applications.
- license
- icu
- license
- unicode-license
- packages
-
- linux64
-
- md5sum
- bc3226223f0d14881a84c2e836c4a81a
- url
- https://bitbucket.org/kokua/3p-icu4c-64/downloads/icu4c-48.1-linux64-20121227.tar.bz2
-
-
-
jpeglib
copyright
--
cgit v1.1
From e0be0f4d1a35d4f3fce701b9895fefbbe5ca459f Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Sat, 11 May 2013 21:06:10 +1000
Subject: Fix http://redmine.kokuaviewer.org/issues/944 - Shadow Frustra
missing from Advanced Menu > Rendering > Info Display
---
linden/indra/newview/llviewermenu.cpp | 5 ++++-
linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml | 6 ++++++
2 files changed, 10 insertions(+), 1 deletion(-)
(limited to 'linden')
diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp
index 7fd58db..1ee00d0 100644
--- a/linden/indra/newview/llviewermenu.cpp
+++ b/linden/indra/newview/llviewermenu.cpp
@@ -1258,7 +1258,6 @@ void init_debug_rendering_menu(LLMenuGL* menu)
sub_menu->append(new LLMenuItemCheckGL("Octree", &LLPipeline::toggleRenderDebug, NULL,
&LLPipeline::toggleRenderDebugControl,
(void*)LLPipeline::RENDER_DEBUG_OCTREE));
- // For Imprudence 1.3 - need to XUIfy
sub_menu->append(new LLMenuItemCheckGL("Shadow Frusta", &LLPipeline::toggleRenderDebug, NULL,
&LLPipeline::toggleRenderDebugControl,
(void*)LLPipeline::RENDER_DEBUG_SHADOW_FRUSTA));
@@ -9263,6 +9262,10 @@ U32 info_display_from_string(std::string info_display)
{
return LLPipeline::RENDER_DEBUG_SCULPTED;
}
+ else if ("shadow frusta" == info_display)
+ {
+ return LLPipeline::RENDER_DEBUG_SHADOW_FRUSTA;
+ }
else
{
return 0;
diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml b/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml
index c66bce0..284f1d3 100644
--- a/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml
@@ -1327,6 +1327,12 @@
+
+
+
+
setStatusText("selectface");
// From now on, draw faces
LLSelectMgr::getInstance()->setTEMode(TRUE);
}
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml b/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml
index 3f476cf..db7e75e 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml
@@ -1366,6 +1366,9 @@
CTRL-A to align on an axis, CTRL-Shift-A to Pack
+
+ Click to selet a Face for texturing
+
Click and Hold to Modify Land
--
cgit v1.1
From b73070b7d57835ef76a95e6b630262056af37e12 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Sat, 11 May 2013 22:50:54 +1000
Subject: White space fixups.
---
linden/indra/newview/skins/default/xui/en-us/floater_tools.xml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml b/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml
index db7e75e..3b78eab 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml
@@ -1363,12 +1363,12 @@
Drag to Move, Shift-Drag to Copy
-
- CTRL-A to align on an axis, CTRL-Shift-A to Pack
-
Click to selet a Face for texturing
+
+ CTRL-A to align on an axis, CTRL-Shift-A to Pack
+
Click and Hold to Modify Land
--
cgit v1.1
From e403206882a1f890f1c0ed273f36b23bc265168d Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Sun, 12 May 2013 00:53:03 +1000
Subject: White space fixes.
---
.../newview/skins/default/xui/en-us/menu_inventory.xml | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_inventory.xml b/linden/indra/newview/skins/default/xui/en-us/menu_inventory.xml
index 0cbd7c6..51e966c 100644
--- a/linden/indra/newview/skins/default/xui/en-us/menu_inventory.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/menu_inventory.xml
@@ -167,16 +167,16 @@
-
+
+
-
-
-
+
+
--
cgit v1.1
From 5ec39de2d9733b92d5ba79349e407702c5786dfd Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Sun, 12 May 2013 01:40:08 +1000
Subject: Fix Inventory "Cut" and "Paste" deletes inventory item instead of
moving it, http://redmine.kokuaviewer.org/issues/961
Instead of copying something, then trying to delete the original,
which was happening before the copy hit the sim server,
just move it to a different folder like drag and drop does.
---
linden/indra/newview/llinventorybridge.cpp | 23 +++++-----------------
.../skins/default/xui/en-us/menu_inventory.xml | 2 --
2 files changed, 5 insertions(+), 20 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/newview/llinventorybridge.cpp b/linden/indra/newview/llinventorybridge.cpp
index df32eab..c67c3c2 100644
--- a/linden/indra/newview/llinventorybridge.cpp
+++ b/linden/indra/newview/llinventorybridge.cpp
@@ -1921,24 +1921,11 @@ void LLFolderBridge::pasteFromClipboard()
item = model->getItem(objects.get(i));
if (item)
{
- copy_inventory_item(
- gAgent.getID(),
- item->getPermissions().getOwner(),
- item->getUUID(),
- parent_id,
- std::string(),
- LLPointer(NULL));
- LLInventoryCategory* cat = model->getCategory(item->getUUID());
- if(cat)
- {
- model->purgeDescendentsOf(mUUID);
- }
- LLInventoryObject* obj = model->getObject(item->getUUID());
- if(!obj) return;
- obj->removeFromServer();
- LLPreview::hide(item->getUUID());
- model->deleteObject(item->getUUID());
- model->notifyObservers();
+ LLInvFVBridge::changeItemParent(
+ model,
+ (LLViewerInventoryItem*)item,
+ mUUID,
+ FALSE);
}
}
}
diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_inventory.xml b/linden/indra/newview/skins/default/xui/en-us/menu_inventory.xml
index 51e966c..8295d3a 100644
--- a/linden/indra/newview/skins/default/xui/en-us/menu_inventory.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/menu_inventory.xml
@@ -166,10 +166,8 @@
-
${LLKDEPROTFILE} < ${LLKDEPROTOFILE} <("texture control")->setImageAssetID(LLUUID(gSavedPerAccountSettings.getString("BuildPrefs_Texture")));
childSetValue("BuildPrefsRenderHighlight_toggle", gSavedSettings.getBOOL("RenderHighlightSelections") );
+ childSetValue("BuildPrefsRenderHidden_toggle", gSavedSettings.getBOOL("RenderHiddenSelections") );
+ childSetValue("BuildPrefsRenderLightRadius_toggle", gSavedSettings.getBOOL("RenderLightRadius") );
+ childSetValue("BuildPrefsShowSelectionBeam_toggle", gSavedSettings.getBOOL("ShowSelectionBeam") );
childSetValue("grouplandrez", gSavedSettings.getBOOL("RezWithLandGroup") );
childSetValue("GridSubUnit", gSavedSettings.getBOOL("GridSubUnit") );
childSetValue("GridCrossSection", gSavedSettings.getBOOL("GridCrossSections") );
@@ -293,6 +296,17 @@ void LLFloaterBuildOptions::apply()
LLSelectMgr::sRenderSelectionHighlights = !LLSelectMgr::sRenderSelectionHighlights;
gSavedSettings.setBOOL("RenderHighlightSelections", LLSelectMgr::sRenderSelectionHighlights);
}
+ if (gSavedSettings.getBOOL("RenderHiddenSelections") != (BOOL)(childGetValue("BuildPrefsRenderHidden_toggle").asBoolean()))
+ {
+ LLSelectMgr::sRenderHiddenSelections = !LLSelectMgr::sRenderHiddenSelections;
+ gSavedSettings.setBOOL("RenderHiddenSelections", LLSelectMgr::sRenderHiddenSelections);
+ }
+ if (gSavedSettings.getBOOL("RenderLightRadius") != (BOOL)(childGetValue("BuildPrefsRenderLightRadius_toggle").asBoolean()))
+ {
+ LLSelectMgr::sRenderLightRadius = !LLSelectMgr::sRenderLightRadius;
+ gSavedSettings.setBOOL("RenderLightRadius", LLSelectMgr::sRenderLightRadius);
+ }
+ gSavedSettings.setBOOL("ShowSelectionBeam", childGetValue("BuildPrefsShowSelectionBeam_toggle").asBoolean() );
gSavedSettings.setBOOL("RezWithLandGroup", childGetValue("grouplandrez").asBoolean() );
gSavedSettings.setBOOL("GridSubUnit", childGetValue("GridSubUnit").asBoolean() );
@@ -340,6 +354,9 @@ void LLFloaterBuildOptions::reset()
mBuildTextureUUID = (LLUUID)gSavedPerAccountSettings.getControl("BuildPrefs_Texture")->getDefault().asString();
childSetValue("BuildPrefsRenderHighlight_toggle", gSavedSettings.getControl("RenderHighlightSelections")->getDefault() );
+ childSetValue("BuildPrefsRenderHidden_toggle", gSavedSettings.getControl("RenderHiddenSelections")->getDefault() );
+ childSetValue("BuildPrefsRenderLightRadius_toggle", gSavedSettings.getControl("RenderLightRadius")->getDefault() );
+ childSetValue("BuildPrefsShowSelectionBeam_toggle", gSavedSettings.getControl("ShowSelectionBeam")->getDefault() );
childSetValue("grouplandrez", gSavedSettings.getControl("RezWithLandGroup")->getDefault() );
childSetValue("GridSubUnit", gSavedSettings.getControl("GridSubUnit")->getDefault() );
childSetValue("GridCrossSection", gSavedSettings.getControl("GridCrossSections")->getDefault() );
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_build_options.xml b/linden/indra/newview/skins/default/xui/en-us/floater_build_options.xml
index 53dd217..5f9e745 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_build_options.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_build_options.xml
@@ -68,13 +68,34 @@
label="Values are percent" left_delta="-5" mouse_opaque="true"
tool_tip="Default settings are Percentages and every axis set at 50"
name="PivotPercToggle" radio_style="false" width="100" />
-
- Show during build:
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
+
+ userdata="WebLaunchImprudenceComms,http://wiki.kokuaviewer.org/wiki/Communication_Channels" />
-
+
+ userdata="WebLaunchImprudenceBugs,http://wiki.kokuaviewer.org/wiki/Reporting_a_bug" />
diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml b/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml
index 0dcc2d0..bace111 100644
--- a/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml
@@ -848,15 +848,15 @@
-
+
+ userdata="WebLaunchImprudenceComms,http://wiki.kokuaviewer.org/wiki/Communication_Channels" />
-
+
+ userdata="WebLaunchImprudenceBugs,http://wiki.kokuaviewer.org/wiki/Reporting_a_bug" />
-Go to the Official Imprudence Blog, for the Latest News and Information.
+Go to the Official Imprudence communications channels, to discuss the Imprudence Project.
@@ -7257,11 +7257,11 @@ Go to the Official Imprudence Blog, for the Latest News and Information.
-Go to the Official Imprudence Forums to discuss the Imprudence Project.
+Go to the Official Imprudence bug and feature trackers, to report bugs and request new features.
diff --git a/linden/indra/newview/skins/default/xui/zh/notifications.xml b/linden/indra/newview/skins/default/xui/zh/notifications.xml
index 1234e02..1b85998 100644
--- a/linden/indra/newview/skins/default/xui/zh/notifications.xml
+++ b/linden/indra/newview/skins/default/xui/zh/notifications.xml
@@ -3647,24 +3647,6 @@ GLOW — 发光
name="okignore"
yestext="OK"/>
-
-
-前往 Imprudence 官方日志阅读最新的新闻和信息。
-
-
-
-
-前往 Imprudence 官方论坛讨论 Imprudence 工程。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/linden/indra/newview/app_settings/low_graphics.xml b/linden/indra/newview/app_settings/low_graphics.xml
deleted file mode 100644
index 3f67a70..0000000
--- a/linden/indra/newview/app_settings/low_graphics.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/linden/indra/newview/app_settings/mid_graphics.xml b/linden/indra/newview/app_settings/mid_graphics.xml
deleted file mode 100644
index 12da77d..0000000
--- a/linden/indra/newview/app_settings/mid_graphics.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/linden/indra/newview/app_settings/ultra_graphics.xml b/linden/indra/newview/app_settings/ultra_graphics.xml
deleted file mode 100644
index f16ec6c..0000000
--- a/linden/indra/newview/app_settings/ultra_graphics.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/linden/indra/newview/featuretable.txt b/linden/indra/newview/featuretable.txt
index a31cd71..6da62f0 100644
--- a/linden/indra/newview/featuretable.txt
+++ b/linden/indra/newview/featuretable.txt
@@ -28,7 +28,7 @@ RenderAvatarCloth 1 1
RenderAvatarLODFactor 1 1.0
RenderAvatarVP 1 1
RenderCubeMap 1 1
-RenderFarClip 1 256
+RenderFarClip 1 1024
RenderFlexTimeFactor 1 1.0
RenderFogRatio 1 4.0
RenderGamma 1 0
@@ -41,10 +41,10 @@ RenderObjectBump 1 1
RenderReflectionDetail 1 3
RenderTerrainDetail 1 1
RenderTerrainLODFactor 1 2.0
-RenderTreeLODFactor 1 1.0
+RenderTreeLODFactor 1 12.0
RenderUseImpostors 1 1
RenderVBOEnable 1 1
-RenderVolumeLODFactor 1 2.0
+RenderVolumeLODFactor 1 4.0
RenderWaterReflections 1 1
UseStartScreen 1 1
UseOcclusion 1 1
@@ -54,8 +54,6 @@ WLSkyDetail 1 128
Disregard128DefaultDrawDistance 1 1
Disregard96DefaultDrawDistance 1 1
RenderTextureMemoryMultiple 1 1.0
-RenderShaderLightingMaxLevel 1 3
-
//
// Low Graphics Settings
@@ -74,7 +72,7 @@ RenderObjectBump 1 0
RenderReflectionDetail 1 0
RenderTerrainDetail 1 0
RenderTerrainLODFactor 1 1
-RenderTreeLODFactor 1 0.5
+RenderTreeLODFactor 1 2.0
RenderUseImpostors 1 1
RenderVolumeLODFactor 1 1.125
RenderWaterReflections 1 0
@@ -90,7 +88,7 @@ RenderAnisotropic 1 0
RenderAvatarCloth 1 0
RenderAvatarLODFactor 1 0.5
RenderAvatarVP 1 1
-RenderFarClip 1 96
+RenderFarClip 1 128
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 8
RenderLightingDetail 1 1
@@ -99,7 +97,7 @@ RenderObjectBump 1 1
RenderReflectionDetail 1 0
RenderTerrainDetail 1 1
RenderTerrainLODFactor 1 1.0
-RenderTreeLODFactor 1 0.5
+RenderTreeLODFactor 1 4.0
RenderUseImpostors 1 1
RenderVolumeLODFactor 1 1.125
RenderWaterReflections 1 0
@@ -115,7 +113,7 @@ RenderAnisotropic 1 1
RenderAvatarCloth 1 0
RenderAvatarLODFactor 1 1.0
RenderAvatarVP 1 1
-RenderFarClip 1 128
+RenderFarClip 1 256
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 9
RenderLightingDetail 1 1
@@ -124,9 +122,9 @@ RenderObjectBump 1 1
RenderReflectionDetail 1 2
RenderTerrainDetail 1 1
RenderTerrainLODFactor 1 2.0
-RenderTreeLODFactor 1 0.5
+RenderTreeLODFactor 1 8.0
RenderUseImpostors 1 1
-RenderVolumeLODFactor 1 1.125
+RenderVolumeLODFactor 1 2.0
RenderWaterReflections 1 0
VertexShaderEnable 1 1
WindLightUseAtmosShaders 1 1
@@ -140,7 +138,7 @@ RenderAnisotropic 1 1
RenderAvatarCloth 1 1
RenderAvatarLODFactor 1 1.0
RenderAvatarVP 1 1
-RenderFarClip 1 256
+RenderFarClip 1 1024
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 9
RenderLightingDetail 1 1
@@ -149,9 +147,9 @@ RenderObjectBump 1 1
RenderReflectionDetail 1 3
RenderTerrainDetail 1 1
RenderTerrainLODFactor 1 2.0
-RenderTreeLODFactor 1 1.0
+RenderTreeLODFactor 1 12.0
RenderUseImpostors 1 1
-RenderVolumeLODFactor 1 2.0
+RenderVolumeLODFactor 1 4.0
RenderWaterReflections 1 1
VertexShaderEnable 1 1
WindLightUseAtmosShaders 1 1
diff --git a/linden/indra/newview/featuretable_linux.txt b/linden/indra/newview/featuretable_linux.txt
index 57d712e..c5c685c 100644
--- a/linden/indra/newview/featuretable_linux.txt
+++ b/linden/indra/newview/featuretable_linux.txt
@@ -28,7 +28,7 @@ RenderAvatarCloth 1 1
RenderAvatarLODFactor 1 1.0
RenderAvatarVP 1 1
RenderCubeMap 1 1
-RenderFarClip 1 256
+RenderFarClip 1 1024
RenderFlexTimeFactor 1 1.0
RenderFogRatio 1 4.0
RenderGamma 1 0
@@ -41,10 +41,10 @@ RenderObjectBump 1 1
RenderReflectionDetail 1 3
RenderTerrainDetail 1 1
RenderTerrainLODFactor 1 2.0
-RenderTreeLODFactor 1 1.0
+RenderTreeLODFactor 1 12.0
RenderUseImpostors 1 1
RenderVBOEnable 1 1
-RenderVolumeLODFactor 1 2.0
+RenderVolumeLODFactor 1 4.0
RenderWaterReflections 1 1
UseStartScreen 1 1
UseOcclusion 1 1
@@ -72,7 +72,7 @@ RenderObjectBump 1 0
RenderReflectionDetail 1 0
RenderTerrainDetail 1 0
RenderTerrainLODFactor 1 1
-RenderTreeLODFactor 1 0.5
+RenderTreeLODFactor 1 2.0
RenderUseImpostors 1 1
RenderVolumeLODFactor 1 1.125
RenderWaterReflections 1 0
@@ -88,7 +88,7 @@ RenderAnisotropic 1 0
RenderAvatarCloth 1 0
RenderAvatarLODFactor 1 0.5
RenderAvatarVP 1 1
-RenderFarClip 1 96
+RenderFarClip 1 128
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 8
RenderLightingDetail 1 1
@@ -97,7 +97,7 @@ RenderObjectBump 1 1
RenderReflectionDetail 1 0
RenderTerrainDetail 1 1
RenderTerrainLODFactor 1 1.0
-RenderTreeLODFactor 1 0.5
+RenderTreeLODFactor 1 4.0
RenderUseImpostors 1 1
RenderVolumeLODFactor 1 1.125
RenderWaterReflections 1 0
@@ -113,7 +113,7 @@ RenderAnisotropic 1 1
RenderAvatarCloth 1 0
RenderAvatarLODFactor 1 1.0
RenderAvatarVP 1 1
-RenderFarClip 1 128
+RenderFarClip 1 256
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 9
RenderLightingDetail 1 1
@@ -122,9 +122,9 @@ RenderObjectBump 1 1
RenderReflectionDetail 1 2
RenderTerrainDetail 1 1
RenderTerrainLODFactor 1 2.0
-RenderTreeLODFactor 1 0.5
+RenderTreeLODFactor 1 8.0
RenderUseImpostors 1 1
-RenderVolumeLODFactor 1 1.125
+RenderVolumeLODFactor 1 2.0
RenderWaterReflections 1 0
VertexShaderEnable 1 1
WindLightUseAtmosShaders 1 1
@@ -138,7 +138,7 @@ RenderAnisotropic 1 1
RenderAvatarCloth 1 1
RenderAvatarLODFactor 1 1.0
RenderAvatarVP 1 1
-RenderFarClip 1 256
+RenderFarClip 1 1024
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 9
RenderLightingDetail 1 1
@@ -147,9 +147,9 @@ RenderObjectBump 1 1
RenderReflectionDetail 1 3
RenderTerrainDetail 1 1
RenderTerrainLODFactor 1 2.0
-RenderTreeLODFactor 1 1.0
+RenderTreeLODFactor 1 12.0
RenderUseImpostors 1 1
-RenderVolumeLODFactor 1 2.0
+RenderVolumeLODFactor 1 4.0
RenderWaterReflections 1 1
VertexShaderEnable 1 1
WindLightUseAtmosShaders 1 1
diff --git a/linden/indra/newview/featuretable_mac.txt b/linden/indra/newview/featuretable_mac.txt
index 15974c0..dec533b 100644
--- a/linden/indra/newview/featuretable_mac.txt
+++ b/linden/indra/newview/featuretable_mac.txt
@@ -23,39 +23,37 @@ version 20
// NOTE: All settings are set to the MIN of applied values, including 'all'!
//
list all
-RenderAnisotropic 1 0
-RenderAvatarCloth 0 0
-RenderAvatarLODFactor 1 1.0
-RenderAvatarVP 1 0
-RenderCubeMap 1 1
-RenderFarClip 1 256
-RenderFlexTimeFactor 1 1.0
-RenderFogRatio 1 4.0
-RenderGamma 1 0
-RenderGlowResolutionPow 1 9
-RenderGround 1 1
-RenderLightingDetail 1 1
-RenderMaxPartCount 1 8192
-RenderNightBrightness 1 1.0
-RenderObjectBump 1 1
-RenderReflectionDetail 1 3
-RenderTerrainDetail 1 1
-RenderTerrainLODFactor 1 2.0
-RenderTreeLODFactor 1 1.0
-RenderUseImpostors 1 1
-RenderVBOEnable 1 1
-RenderVolumeLODFactor 1 2.0
-RenderWaterReflections 1 1
-UseOcclusion 1 1
-VertexShaderEnable 1 1
-WindLightUseAtmosShaders 1 1
-WLSkyDetail 1 128
-RenderUseCleverUI 1 1
-Disregard128DefaultDrawDistance 1 1
-Disregard96DefaultDrawDistance 1 1
-RenderTextureMemoryMultiple 1 0.5
+RenderAnisotropic 1 0
+RenderAvatarCloth 1 1
+RenderAvatarLODFactor 1 1.0
+RenderAvatarVP 1 1
+RenderCubeMap 1 1
+RenderFarClip 1 1024
+RenderFlexTimeFactor 1 1.0
+RenderFogRatio 1 4.0
+RenderGamma 1 0
+RenderGlowResolutionPow 1 9
+RenderGround 1 1
+RenderLightingDetail 1 1
+RenderMaxPartCount 1 8192
+RenderNightBrightness 1 1.0
+RenderObjectBump 1 1
+RenderReflectionDetail 1 3
+RenderTerrainDetail 1 1
+RenderTerrainLODFactor 1 2.0
+RenderTreeLODFactor 1 12.0
+RenderUseImpostors 1 1
+RenderVBOEnable 1 1
+RenderVolumeLODFactor 1 4.0
+RenderWaterReflections 1 1
+UseStartScreen 1 1
+UseOcclusion 1 1
+VertexShaderEnable 1 1
+WindLightUseAtmosShaders 1 1
+WLSkyDetail 1 128
Disregard128DefaultDrawDistance 1 1
Disregard96DefaultDrawDistance 1 1
+RenderTextureMemoryMultiple 1 1.0
//
// Low Graphics Settings
@@ -74,7 +72,7 @@ RenderObjectBump 1 0
RenderReflectionDetail 1 0
RenderTerrainDetail 1 0
RenderTerrainLODFactor 1 1
-RenderTreeLODFactor 1 0.5
+RenderTreeLODFactor 1 2.0
RenderUseImpostors 1 1
RenderVolumeLODFactor 1 1.125
RenderWaterReflections 1 0
@@ -90,7 +88,7 @@ RenderAnisotropic 1 0
RenderAvatarCloth 1 0
RenderAvatarLODFactor 1 0.5
RenderAvatarVP 1 1
-RenderFarClip 1 96
+RenderFarClip 1 128
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 8
RenderLightingDetail 1 1
@@ -99,7 +97,7 @@ RenderObjectBump 1 1
RenderReflectionDetail 1 0
RenderTerrainDetail 1 1
RenderTerrainLODFactor 1 1.0
-RenderTreeLODFactor 1 0.5
+RenderTreeLODFactor 1 4.0
RenderUseImpostors 1 1
RenderVolumeLODFactor 1 1.125
RenderWaterReflections 1 0
@@ -115,7 +113,7 @@ RenderAnisotropic 1 1
RenderAvatarCloth 1 0
RenderAvatarLODFactor 1 1.0
RenderAvatarVP 1 1
-RenderFarClip 1 128
+RenderFarClip 1 256
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 9
RenderLightingDetail 1 1
@@ -124,9 +122,9 @@ RenderObjectBump 1 1
RenderReflectionDetail 1 2
RenderTerrainDetail 1 1
RenderTerrainLODFactor 1 2.0
-RenderTreeLODFactor 1 0.5
+RenderTreeLODFactor 1 8.0
RenderUseImpostors 1 1
-RenderVolumeLODFactor 1 1.125
+RenderVolumeLODFactor 1 2.0
RenderWaterReflections 1 0
VertexShaderEnable 1 1
WindLightUseAtmosShaders 1 1
@@ -140,7 +138,7 @@ RenderAnisotropic 1 1
RenderAvatarCloth 1 1
RenderAvatarLODFactor 1 1.0
RenderAvatarVP 1 1
-RenderFarClip 1 256
+RenderFarClip 1 1024
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 9
RenderLightingDetail 1 1
@@ -149,9 +147,9 @@ RenderObjectBump 1 1
RenderReflectionDetail 1 3
RenderTerrainDetail 1 1
RenderTerrainLODFactor 1 2.0
-RenderTreeLODFactor 1 1.0
+RenderTreeLODFactor 1 12.0
RenderUseImpostors 1 1
-RenderVolumeLODFactor 1 2.0
+RenderVolumeLODFactor 1 4.0
RenderWaterReflections 1 1
VertexShaderEnable 1 1
WindLightUseAtmosShaders 1 1
--
cgit v1.1
From 4a5f8a819844186569f9cab92e03e39fa5c81186 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Wed, 29 Jun 2011 10:30:38 +1000
Subject: Clean out no longer needed commented code.
---
linden/indra/newview/CMakeLists.txt | 4 ----
1 file changed, 4 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/newview/CMakeLists.txt b/linden/indra/newview/CMakeLists.txt
index 540754d..a875564 100644
--- a/linden/indra/newview/CMakeLists.txt
+++ b/linden/indra/newview/CMakeLists.txt
@@ -1204,19 +1204,15 @@ set(viewer_APPSETTINGS_FILES
app_settings/cmd_line.xml
app_settings/default_grids.xml
app_settings/grass.xml
-# app_settings/high_graphics.xml
app_settings/keys.ini
app_settings/keywords.ini
app_settings/logcontrol.xml
-# app_settings/low_graphics.xml
-# app_settings/mid_graphics.xml
app_settings/settings.xml
app_settings/settings_crash_behavior.xml
app_settings/settings_files.xml
app_settings/settings_per_account.xml
app_settings/std_bump.ini
app_settings/trees.xml
-# app_settings/ultra_graphics.xml
app_settings/viewerart.xml
${CMAKE_SOURCE_DIR}/../etc/message.xml
${CMAKE_SOURCE_DIR}/../scripts/messages/message_template.msg
--
cgit v1.1
From dbc65cef0cf5be5963b95e245476f22aff840f21 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Tue, 14 May 2013 01:18:28 +1000
Subject: Allow visual studio express builds from develop.py command line -
http://redmine.kokuaviewer.org/issues/711
A few additions to the previous nmake work, from Robin Cornelius.
---
linden/indra/develop.py | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/develop.py b/linden/indra/develop.py
index 76ba0d9..af633b2 100755
--- a/linden/indra/develop.py
+++ b/linden/indra/develop.py
@@ -532,7 +532,7 @@ class WindowsSetup(PlatformSetup):
value_str = (r'ProductDir')
reg = _winreg.ConnectRegistry(None, _winreg.HKEY_LOCAL_MACHINE)
key = _winreg.OpenKey(reg, key_str)
- value = _winreg.QueryValueEx(key, value_str)[0]+"IDE"
+ value = _winreg.QueryValueEx(key, value_str)[0]+"vcpackages"
print 'Found: %s' % value
self.using_express = True
return value
@@ -618,12 +618,8 @@ class WindowsSetup(PlatformSetup):
if environment == '':
print >> sys.stderr, "Something went very wrong during build stage, could not find a Visual Studio?"
else:
- print >> sys.stderr, "\nSolution generation complete, as you are using an express edition the final\n stages will need to be completed by hand"
build_dirs=self.build_dirs();
- print >> sys.stderr, "Solution can now be found in:", build_dirs[0]
- print >> sys.stderr, "Set %s as startup project" % self.project_name
- print >> sys.stderr, "Set build target is Release or RelWithDbgInfo"
- exit(0)
+ return("\"\"%s\\vcbuild\" /useenv %s.sln \"%s|win32\"\"" % (environment, self.project_name, self.build_type))
if self.generator == 'nmake':
# Hack around a bug in cmake that I'm surprised did not hit GUI controlled builds.
--
cgit v1.1
From 3fedb39c8555715eae69d77b1436ff4a1b2581f0 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Wed, 15 May 2013 21:53:17 +1000
Subject: Updated New World Grid details, at their request.
---
linden/indra/newview/app_settings/default_grids.xml | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/newview/app_settings/default_grids.xml b/linden/indra/newview/app_settings/default_grids.xml
index 180a76f..ec184a4 100644
--- a/linden/indra/newview/app_settings/default_grids.xml
+++ b/linden/indra/newview/app_settings/default_grids.xml
@@ -227,16 +227,16 @@
- gridnameThe New World Grid
- gridnickthenewworldgrid
+ gridnameNew World Grid
+ gridnicknewworldgrid
platformOpenSim
- loginurihttp://grid.newworldgrid.com:8002/
- loginpagehttp://account.newworldgrid.com/loginscreen.php
- helperurihttp://account.newworldgrid.com/
+ loginurihttp://3d.newworldgrid.com:8002/
+ loginpagehttp://www.newworldgrid.com/loginpage/
+ helperurihttp://3d.newworldgrid.com/services/helper/
websitehttp://www.newworldgrid.com/
- supporthttp://www.newworldgrid.com/
- registerhttp://www.newworldgrid.com/register
- passwordhttp://account.newworldgrid.com/
+ supporthttp://www.newworldgrid.com/contact/
+ registerhttp://www.newworldgrid.com/virreacentral/redirect.php?page=register
+ passwordhttp://www.newworldgrid.com/virreacentral/redirect.php?page=login
version0
--
cgit v1.1
From d147504a2b6fc2597e7d2e3d0e690693dd6a91a1 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Wed, 15 May 2013 21:54:19 +1000
Subject: Resorted the grid list file.
---
.../indra/newview/app_settings/default_grids.xml | 30 +++++++++++-----------
1 file changed, 15 insertions(+), 15 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/newview/app_settings/default_grids.xml b/linden/indra/newview/app_settings/default_grids.xml
index ec184a4..46a77f0 100644
--- a/linden/indra/newview/app_settings/default_grids.xml
+++ b/linden/indra/newview/app_settings/default_grids.xml
@@ -146,6 +146,21 @@
registerhttp://www.hypergrid.org/metropolis/metro_rg.php
+
+
+ gridnameNew World Grid
+ gridnicknewworldgrid
+ platformOpenSim
+ loginurihttp://3d.newworldgrid.com:8002/
+ loginpagehttp://www.newworldgrid.com/loginpage/
+ helperurihttp://3d.newworldgrid.com/services/helper/
+ websitehttp://www.newworldgrid.com/
+ supporthttp://www.newworldgrid.com/contact/
+ registerhttp://www.newworldgrid.com/virreacentral/redirect.php?page=register
+ passwordhttp://www.newworldgrid.com/virreacentral/redirect.php?page=login
+ version0
+
+
gridnameOSGrid
@@ -225,21 +240,6 @@
version3
-
-
- gridnameNew World Grid
- gridnicknewworldgrid
- platformOpenSim
- loginurihttp://3d.newworldgrid.com:8002/
- loginpagehttp://www.newworldgrid.com/loginpage/
- helperurihttp://3d.newworldgrid.com/services/helper/
- websitehttp://www.newworldgrid.com/
- supporthttp://www.newworldgrid.com/contact/
- registerhttp://www.newworldgrid.com/virreacentral/redirect.php?page=register
- passwordhttp://www.newworldgrid.com/virreacentral/redirect.php?page=login
- version0
-
-
gridnameVirtual Highway
--
cgit v1.1
From 0334b87b9c54f4c766e57cdfe4220a76d9526c95 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Sat, 25 May 2013 11:57:57 +1000
Subject: White space fix.
---
linden/indra/newview/lltoolmgr.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'linden')
diff --git a/linden/indra/newview/lltoolmgr.cpp b/linden/indra/newview/lltoolmgr.cpp
index 675412d..9e7bc5c 100644
--- a/linden/indra/newview/lltoolmgr.cpp
+++ b/linden/indra/newview/lltoolmgr.cpp
@@ -193,7 +193,7 @@ LLTool* LLToolMgr::getCurrentTool()
else
{
// due to window management weirdness we can get here with gToolNull
- bool can_override = mBaseTool && (mBaseTool != gToolNull) ;
+ bool can_override = mBaseTool && (mBaseTool != gToolNull);
mOverrideTool = can_override ? mBaseTool->getOverrideTool(override_mask) : NULL;
// use keyboard-override tool if available otherwise drop back to base tool
--
cgit v1.1
From 0d5f83ff72ab0604d06993bce035989804fef1ec Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Sat, 25 May 2013 11:59:42 +1000
Subject: Dump hotkeys for obscure debugging stuff, to free them up for other
things.
---
linden/indra/newview/llviewermenu.cpp | 8 ++++----
.../indra/newview/skins/default/xui/en-us/menu_viewer.xml | 14 ++++----------
2 files changed, 8 insertions(+), 14 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp
index 1ee00d0..0f6e5c4 100644
--- a/linden/indra/newview/llviewermenu.cpp
+++ b/linden/indra/newview/llviewermenu.cpp
@@ -1098,10 +1098,10 @@ void init_debug_ui_menu(LLMenuGL* menu)
menu->append(new LLMenuItemCallGL("Editable UI", &edit_ui));
menu->append(new LLMenuItemCallGL( "Dump SelectMgr", &dump_select_mgr));
menu->append(new LLMenuItemCallGL( "Dump Inventory", &dump_inventory));
- menu->append(new LLMenuItemCallGL( "Dump Focus Holder", &handle_dump_focus, NULL, NULL, 'F', MASK_ALT | MASK_CONTROL));
- menu->append(new LLMenuItemCallGL( "Print Selected Object Info", &print_object_info, NULL, NULL, 'P', MASK_CONTROL|MASK_SHIFT ));
- menu->append(new LLMenuItemCallGL( "Print Agent Info", &print_agent_nvpairs, NULL, NULL, 'P', MASK_SHIFT ));
- menu->append(new LLMenuItemCallGL( "Memory Stats", &output_statistics, NULL, NULL, 'M', MASK_SHIFT | MASK_ALT | MASK_CONTROL));
+ menu->append(new LLMenuItemCallGL( "Dump Focus Holder", &handle_dump_focus));
+ menu->append(new LLMenuItemCallGL( "Print Selected Object Info", &print_object_info));
+ menu->append(new LLMenuItemCallGL( "Print Agent Info", &print_agent_nvpairs));
+ menu->append(new LLMenuItemCallGL( "Memory Stats", &output_statistics));
menu->append(new LLMenuItemCheckGL("Double-Click Auto-Pilot",
menu_toggle_control, NULL, menu_check_control,
(void*)"DoubleClickAutoPilot"));
diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml b/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml
index bace111..46a2c81 100644
--- a/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml
@@ -1654,23 +1654,17 @@
-
+
-
+
-
+
-
+
--
cgit v1.1
From 50dc3e705bb2cc7552a2c23683cf6b9ed94711a5 Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Sat, 25 May 2013 23:16:00 +1000
Subject: White space cleanups.
---
linden/indra/newview/lltoolcomp.h | 24 ++++++++++++------------
linden/indra/newview/qtoolalign.cpp | 10 ++--------
2 files changed, 14 insertions(+), 20 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/newview/lltoolcomp.h b/linden/indra/newview/lltoolcomp.h
index 81ed0ba..b7ec940 100644
--- a/linden/indra/newview/lltoolcomp.h
+++ b/linden/indra/newview/lltoolcomp.h
@@ -113,8 +113,8 @@ public:
virtual ~LLToolCompInspect();
// Overridden from LLToolComposite
- virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
- virtual BOOL handleDoubleClick(S32 x, S32 y, MASK mask);
+ virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
+ virtual BOOL handleDoubleClick(S32 x, S32 y, MASK mask);
static void pickCallback(const LLPickInfo& pick_info);
};
@@ -150,9 +150,9 @@ public:
virtual ~LLToolCompScale();
// Overridden from LLToolComposite
- virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
- virtual BOOL handleDoubleClick(S32 x, S32 y, MASK mask);
- virtual BOOL handleHover(S32 x, S32 y, MASK mask);
+ virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
+ virtual BOOL handleDoubleClick(S32 x, S32 y, MASK mask);
+ virtual BOOL handleHover(S32 x, S32 y, MASK mask);
virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask); // Returns to the default tool
virtual void render();
@@ -172,9 +172,9 @@ public:
virtual ~LLToolCompRotate();
// Overridden from LLToolComposite
- virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
- virtual BOOL handleDoubleClick(S32 x, S32 y, MASK mask);
- virtual BOOL handleHover(S32 x, S32 y, MASK mask);
+ virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
+ virtual BOOL handleDoubleClick(S32 x, S32 y, MASK mask);
+ virtual BOOL handleHover(S32 x, S32 y, MASK mask);
virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask);
virtual void render();
@@ -195,14 +195,14 @@ public:
virtual ~LLToolCompCreate();
// Overridden from LLToolComposite
- virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
- virtual BOOL handleDoubleClick(S32 x, S32 y, MASK mask);
+ virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
+ virtual BOOL handleDoubleClick(S32 x, S32 y, MASK mask);
virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask);
static void pickCallback(const LLPickInfo& pick_info);
protected:
LLToolPlacer* mPlacer;
- BOOL mObjectPlacedOnMouseDown;
+ BOOL mObjectPlacedOnMouseDown;
};
@@ -220,7 +220,7 @@ public:
virtual ~LLToolCompGun();
// Overridden from LLToolComposite
- virtual BOOL handleHover(S32 x, S32 y, MASK mask);
+ virtual BOOL handleHover(S32 x, S32 y, MASK mask);
virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
virtual BOOL handleDoubleClick(S32 x, S32 y, MASK mask);
virtual BOOL handleRightMouseDown(S32 x, S32 y, MASK mask);
diff --git a/linden/indra/newview/qtoolalign.cpp b/linden/indra/newview/qtoolalign.cpp
index 3fe31f7..cb32d0d 100644
--- a/linden/indra/newview/qtoolalign.cpp
+++ b/linden/indra/newview/qtoolalign.cpp
@@ -46,7 +46,6 @@ QToolAlign::~QToolAlign()
}
-
BOOL QToolAlign::handleMouseDown(S32 x, S32 y, MASK mask)
{
if (mHighlightedAxis != -1)
@@ -105,7 +104,6 @@ void QToolAlign::pickCallback(const LLPickInfo& pick_info)
}
-
void QToolAlign::handleSelect()
{
// no parts, please
@@ -207,7 +205,6 @@ BOOL QToolAlign::handleHover(S32 x, S32 y, MASK mask)
}
-
void setup_transforms_bbox(LLBBox bbox)
{
// translate to center
@@ -242,6 +239,7 @@ void render_bbox(LLBBox bbox)
gGL.popMatrix();
}
+
void render_cone_bbox(LLBBox bbox)
{
glMatrixMode(GL_MODELVIEW);
@@ -256,7 +254,6 @@ void render_cone_bbox(LLBBox bbox)
}
-
// the selection bbox isn't axis aligned, so we must construct one
// should this be cached in the selection manager? yes.
LLBBox get_selection_axis_aligned_bbox()
@@ -288,7 +285,6 @@ LLBBox get_selection_axis_aligned_bbox()
}
-
void QToolAlign::computeManipulatorSize()
{
if (LLSelectMgr::getInstance()->getSelection()->getSelectType() == SELECT_TYPE_HUD)
@@ -407,6 +403,7 @@ void QToolAlign::render()
}
}
+
// only works for our specialized (AABB, position centered) bboxes
BOOL bbox_overlap(LLBBox bbox1, LLBBox bbox2)
{
@@ -422,7 +419,6 @@ BOOL bbox_overlap(LLBBox bbox1, LLBBox bbox2)
}
-
// used to sort bboxes before packing
class BBoxCompare
{
@@ -598,5 +594,3 @@ void QToolAlign::align()
LLSelectMgr::getInstance()->sendMultipleUpdate(UPD_POSITION);
}
-
-
--
cgit v1.1
From f4d49c31da1bdc3e9072365c1f54fce5b964dafc Mon Sep 17 00:00:00 2001
From: David Walter Seikel
Date: Sat, 25 May 2013 23:22:31 +1000
Subject: Fix Align tool conflicts with Edit Linked Parts -
http://redmine.kokuaviewer.org/issues/948
The new hot keys are -
Ctrl-Shift-P for position (Ctrl-Alt-P was taken).
Ctrl-Alt-F for face selection.
Ctrl-Alt-M for align, and Ctrl-Alt-Shift-M for pack.
Also fixed things so they all work all the time, and refactored common code.
---
linden/indra/newview/lltool.cpp | 4 +-
linden/indra/newview/lltoolcomp.cpp | 79 +++++++++-------------
linden/indra/newview/lltoolcomp.h | 11 +--
linden/indra/newview/lltoolface.cpp | 2 +-
linden/indra/newview/lltoolface.h | 3 +-
linden/indra/newview/qtoolalign.cpp | 9 ++-
linden/indra/newview/qtoolalign.h | 4 +-
.../skins/default/xui/en-us/floater_tools.xml | 20 +++---
8 files changed, 62 insertions(+), 70 deletions(-)
(limited to 'linden')
diff --git a/linden/indra/newview/lltool.cpp b/linden/indra/newview/lltool.cpp
index df2191b..f8188e3 100644
--- a/linden/indra/newview/lltool.cpp
+++ b/linden/indra/newview/lltool.cpp
@@ -40,10 +40,12 @@
#include "llviewerwindow.h"
#include "lltoolcomp.h"
+#include "lltoolface.h"
#include "lltoolfocus.h"
#include "llfocusmgr.h"
#include "llagent.h"
#include "llviewerjoystick.h"
+#include "qtoolalign.h"
extern BOOL gDebugClicks;
@@ -187,7 +189,7 @@ LLTool* LLTool::getOverrideTool(MASK mask)
{
return NULL;
}
- if (mask & MASK_ALT)
+ else if (mask & MASK_ALT)
{
return LLToolCamera::getInstance();
}
diff --git a/linden/indra/newview/lltoolcomp.cpp b/linden/indra/newview/lltoolcomp.cpp
index 172f71d..2ec1d8e 100644
--- a/linden/indra/newview/lltoolcomp.cpp
+++ b/linden/indra/newview/lltoolcomp.cpp
@@ -43,6 +43,7 @@
#include "llmaniptranslate.h"
#include "llmenugl.h" // for right-click menu hack
#include "llselectmgr.h"
+#include "lltoolface.h"
#include "lltoolfocus.h"
#include "lltoolgrab.h"
#include "lltoolgun.h"
@@ -131,6 +132,36 @@ void LLToolComposite::handleSelect()
mSelected = TRUE;
}
+
+LLTool* LLToolComposite::getOverrideTool(MASK mask)
+{
+ if (gKeyboard->getKeyDown('M') &&
+ ((mask == (MASK_ALT | MASK_CONTROL)) || (mask == (MASK_ALT | MASK_CONTROL | MASK_SHIFT))))
+ {
+ return QToolAlign::getInstance();
+ }
+ else if (gKeyboard->getKeyDown('P') &&
+ (mask == (MASK_CONTROL | MASK_SHIFT)))
+ {
+ return LLToolCompTranslate::getInstance();
+ }
+ else if (gKeyboard->getKeyDown('F') &&
+ (mask == (MASK_ALT | MASK_CONTROL)))
+ {
+ return LLToolFace::getInstance();
+ }
+ else if (mask == (MASK_CONTROL | MASK_SHIFT))
+ {
+ return LLToolCompScale::getInstance();
+ }
+ else if (mask == MASK_CONTROL)
+ {
+ return LLToolCompRotate::getInstance();
+ }
+ return LLTool::getOverrideTool(mask);
+}
+
+
//----------------------------------------------------------------------------
// LLToolCompInspect
//----------------------------------------------------------------------------
@@ -277,24 +308,6 @@ BOOL LLToolCompTranslate::handleMouseUp(S32 x, S32 y, MASK mask)
return LLToolComposite::handleMouseUp(x, y, mask);
}
-LLTool* LLToolCompTranslate::getOverrideTool(MASK mask)
-{
- if (gKeyboard->getKeyDown('A') &&
- ((mask & MASK_CONTROL) || (mask == (MASK_CONTROL | MASK_SHIFT))))
- {
- return QToolAlign::getInstance();
- }
- else if (mask == MASK_CONTROL)
- {
- return LLToolCompRotate::getInstance();
- }
- else if (mask == (MASK_CONTROL | MASK_SHIFT))
- {
- return LLToolCompScale::getInstance();
- }
- return LLToolComposite::getOverrideTool(mask);
-}
-
BOOL LLToolCompTranslate::handleDoubleClick(S32 x, S32 y, MASK mask)
{
if (mManip->getSelection()->isEmpty() && mManip->getHighlightedPart() == LLManip::LL_NO_PART)
@@ -401,22 +414,6 @@ BOOL LLToolCompScale::handleMouseUp(S32 x, S32 y, MASK mask)
return LLToolComposite::handleMouseUp(x, y, mask);
}
-LLTool* LLToolCompScale::getOverrideTool(MASK mask)
-{
- if (gKeyboard->getKeyDown('A') &&
- ((mask & MASK_CONTROL) || (mask == (MASK_CONTROL | MASK_SHIFT))))
- {
- return QToolAlign::getInstance();
- }
- else if (mask == MASK_CONTROL)
- {
- return LLToolCompRotate::getInstance();
- }
-
- return LLToolComposite::getOverrideTool(mask);
-}
-
-
BOOL LLToolCompScale::handleDoubleClick(S32 x, S32 y, MASK mask)
{
if (!mManip->getSelection()->isEmpty() && mManip->getHighlightedPart() == LLManip::LL_NO_PART)
@@ -604,20 +601,6 @@ BOOL LLToolCompRotate::handleMouseUp(S32 x, S32 y, MASK mask)
return LLToolComposite::handleMouseUp(x, y, mask);
}
-LLTool* LLToolCompRotate::getOverrideTool(MASK mask)
-{
- if (gKeyboard->getKeyDown('A') &&
- ((mask & MASK_CONTROL) || (mask == (MASK_CONTROL | MASK_SHIFT))))
- {
- return QToolAlign::getInstance();
- }
- else if (mask == (MASK_CONTROL | MASK_SHIFT))
- {
- return LLToolCompScale::getInstance();
- }
- return LLToolComposite::getOverrideTool(mask);
-}
-
BOOL LLToolCompRotate::handleDoubleClick(S32 x, S32 y, MASK mask)
{
if (!mManip->getSelection()->isEmpty() && mManip->getHighlightedPart() == LLManip::LL_NO_PART)
diff --git a/linden/indra/newview/lltoolcomp.h b/linden/indra/newview/lltoolcomp.h
index b7ec940..cb5e544 100644
--- a/linden/indra/newview/lltoolcomp.h
+++ b/linden/indra/newview/lltoolcomp.h
@@ -84,6 +84,9 @@ public:
{ mCur->localPointToScreen(local_x, local_y, screen_x, screen_y); }
BOOL isSelecting();
+
+ virtual LLTool* getOverrideTool(MASK mask);
+
protected:
void setCurrentTool( LLTool* new_tool );
LLTool* getCurrentTool() { return mCur; }
@@ -135,8 +138,6 @@ public:
virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask); // Returns to the default tool
virtual void render();
- virtual LLTool* getOverrideTool(MASK mask);
-
static void pickCallback(const LLPickInfo& pick_info);
};
@@ -156,8 +157,6 @@ public:
virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask); // Returns to the default tool
virtual void render();
- virtual LLTool* getOverrideTool(MASK mask);
-
static void pickCallback(const LLPickInfo& pick_info);
};
@@ -178,11 +177,7 @@ public:
virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask);
virtual void render();
- virtual LLTool* getOverrideTool(MASK mask);
-
static void pickCallback(const LLPickInfo& pick_info);
-
-protected:
};
//-----------------------------------------------------------------------
diff --git a/linden/indra/newview/lltoolface.cpp b/linden/indra/newview/lltoolface.cpp
index 51a4561..834bf76 100644
--- a/linden/indra/newview/lltoolface.cpp
+++ b/linden/indra/newview/lltoolface.cpp
@@ -57,7 +57,7 @@
//
LLToolFace::LLToolFace()
-: LLTool(std::string("Texture"))
+: LLToolComposite(std::string("Texture"))
{ }
diff --git a/linden/indra/newview/lltoolface.h b/linden/indra/newview/lltoolface.h
index f2b7d23..fc6f7de 100644
--- a/linden/indra/newview/lltoolface.h
+++ b/linden/indra/newview/lltoolface.h
@@ -34,12 +34,13 @@
#define LL_LLTOOLFACE_H
#include "lltool.h"
+#include "lltoolcomp.h"
class LLViewerObject;
class LLPickInfo;
class LLToolFace
-: public LLTool, public LLSingleton
+: public LLToolComposite, public LLSingleton
{
public:
LLToolFace();
diff --git a/linden/indra/newview/qtoolalign.cpp b/linden/indra/newview/qtoolalign.cpp
index cb32d0d..b4944fe 100644
--- a/linden/indra/newview/qtoolalign.cpp
+++ b/linden/indra/newview/qtoolalign.cpp
@@ -36,7 +36,7 @@ const F32 MANIPULATOR_SELECT_SIZE = 20.0;
QToolAlign::QToolAlign()
-: LLTool(std::string("Align"))
+: LLToolComposite(std::string("Align"))
{
}
@@ -61,6 +61,11 @@ BOOL QToolAlign::handleMouseDown(S32 x, S32 y, MASK mask)
}
+BOOL QToolAlign::handleDoubleClick(S32 x, S32 y, MASK mask)
+{
+ return TRUE;
+}
+
void QToolAlign::pickCallback(const LLPickInfo& pick_info)
{
@@ -94,7 +99,7 @@ void QToolAlign::pickCallback(const LLPickInfo& pick_info)
}
else
{
- if (!(pick_info.mKeyMask == MASK_SHIFT))
+ if (!(pick_info.mKeyMask & MASK_SHIFT))
{
LLSelectMgr::getInstance()->deselectAll();
}
diff --git a/linden/indra/newview/qtoolalign.h b/linden/indra/newview/qtoolalign.h
index b2c18b7..2d30b92 100644
--- a/linden/indra/newview/qtoolalign.h
+++ b/linden/indra/newview/qtoolalign.h
@@ -13,6 +13,7 @@
#define Q_QTOOLALIGN_H
#include "lltool.h"
+#include "lltoolcomp.h"
#include "llbbox.h"
class LLViewerObject;
@@ -20,7 +21,7 @@ class LLPickInfo;
class LLToolSelectRect;
class QToolAlign
-: public LLTool, public LLSingleton
+: public LLToolComposite, public LLSingleton
{
public:
QToolAlign();
@@ -29,6 +30,7 @@ public:
virtual void handleSelect();
virtual void handleDeselect();
virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
+ virtual BOOL handleDoubleClick(S32 x, S32 y, MASK mask);
virtual BOOL handleHover(S32 x, S32 y, MASK mask);
virtual void render();
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml b/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml
index 3b78eab..2ed5120 100644
--- a/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml
+++ b/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml
@@ -69,20 +69,24 @@
+ name="radio position" radio_style="true" width="114"
+ tool_tip="Position selected prims (Ctrl-Shift-P)." />
+ name="radio rotate" radio_style="true" width="114"
+ tool_tip="Rotate selected prims (Ctrl)." />
+ mouse_opaque="true" name="radio stretch" radio_style="true" width="123"
+ tool_tip="Resize selected prims (Ctrl-Shift)." />
+ name="radio select face" radio_style="true" width="114"
+ tool_tip="Select faces of prims to texture (Ctrl-Alt-F)." />
+ tool_tip="Align (Ctrl-Alt-M) aligns all selected prims edges along an axis. Pack (Ctrl-Alt-Shift-M) moves all selected prims edges so they're touching." />
- Click to selet a Face for texturing
+ Click to select a Face for texturing
- CTRL-A to align on an axis, CTRL-Shift-A to Pack
+ Click to Align, Shift-Click to Pack
Click and Hold to Modify Land
@@ -1382,7 +1386,7 @@
Click Inworld to Build
- Click and Drag to Select Land
+ Click and Drag to select Land
Screen
--
cgit v1.1