This commit is contained in:
TighMacFanatic
2011-05-14 14:21:17 -04:00
225 changed files with 2518 additions and 2572 deletions

View File

@@ -1332,11 +1332,11 @@ set(PACKAGE ${PACKAGE_DEFAULT} CACHE BOOL
"Add a package target that builds an installer package.")
if (WINDOWS)
if(MSVC71)
set(release_flags "/MAP:Release/${VIEWER_BINARY_NAME}.map /MAPINFO:LINES")
else(MSVC71)
if(MSVC10)
set(release_flags "/MAPRelease/${VIEWER_BINARY_NAME}.map")
else()
set(release_flags "/MAP:Release/${VIEWER_BINARY_NAME}.map")
endif(MSVC71)
endif()
set_target_properties(${VIEWER_BINARY_NAME}
PROPERTIES
@@ -1469,6 +1469,7 @@ if (LINUX)
COMMAND ${PYTHON_EXECUTABLE}
ARGS
${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
--standalone=${STANDALONE}
--grid=${GRID}
--channel=${VIEWER_CHANNEL}
--login_channel=${VIEWER_LOGIN_CHANNEL}
@@ -1593,17 +1594,17 @@ endif (LL_TESTS)
# Don't do these for DARWIN or LINUX here -- they're taken care of by viewer_manifest.py
if (WINDOWS)
#~ get_target_property(BUILT_LLCOMMON llcommon LOCATION)
#~ add_custom_command(
#~ TARGET ${VIEWER_BINARY_NAME} POST_BUILD
#~ COMMAND ${CMAKE_COMMAND}
#~ ARGS
#~ -E
#~ copy_if_different
#~ ${BUILT_LLCOMMON}
#~ ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
#~ COMMENT "Copying llcommon.dll to the runtime folder."
#~ )
get_target_property(BUILT_LLCOMMON llcommon LOCATION)
add_custom_command(
TARGET ${VIEWER_BINARY_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND}
ARGS
-E
copy_if_different
${BUILT_LLCOMMON}
${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}
COMMENT "Copying llcommon.dll to the runtime folder."
)
get_target_property(BUILT_SLPLUGIN SLPlugin LOCATION)
add_custom_command(

View File

@@ -12973,7 +12973,7 @@
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>1</integer>
<integer>0</integer>
</map>
<key>UseOutfitFolders</key>
<map>

View File

@@ -134,10 +134,7 @@ void AscentDayCycleManager::loadPreset(const std::string & name,bool propagate)
{
// bugfix for SL-46920: preventing filenames that break stuff.
char * curl_str = curl_escape(name.c_str(), name.size());
std::string escaped_filename(curl_str);
curl_free(curl_str);
curl_str = NULL;
std::string escaped_filename = LLWeb::curlEscape(name);
escaped_filename += ".xml";
@@ -186,10 +183,7 @@ void AscentDayCycleManager::loadPreset(const std::string & name,bool propagate)
void AscentDayCycleManager::savePreset(const std::string & name)
{
// bugfix for SL-46920: preventing filenames that break stuff.
char * curl_str = curl_escape(name.c_str(), name.size());
std::string escaped_filename(curl_str);
curl_free(curl_str);
curl_str = NULL;
std::string escaped_filename = LLWeb::curlEscape(name);
escaped_filename += ".xml";
@@ -340,10 +334,7 @@ bool AscentDayCycleManager::removeParamSet(const std::string& name, bool delete_
std::string path_name(gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight/days", ""));
// use full curl escaped name
char * curl_str = curl_escape(name.c_str(), name.size());
std::string escaped_name(curl_str);
curl_free(curl_str);
curl_str = NULL;
std::string escaped_name = LLWeb::curlEscape(name);
gDirUtilp->deleteFilesInDir(path_name, escaped_name + ".xml");
}

View File

@@ -238,4 +238,4 @@ void ASFloaterContactGroups::populateGroupList()
}
}
}
}
}

View File

@@ -92,4 +92,4 @@ email for me right now, also in all cap.
my father not very understand of free softwares
and he make a fun of RMS.
*/
*/

View File

@@ -108,4 +108,4 @@ protected:
LLColor4 mKeywordsColor;
};
#endif
#endif

Binary file not shown.

View File

@@ -66,4 +66,4 @@ DSA *get_dsa2048()
if ((dsa->p == NULL) || (dsa->q == NULL) || (dsa->g == NULL))
{ DSA_free(dsa); return(NULL); }
return(dsa);
}
}

View File

@@ -590,4 +590,4 @@ EDSA::~EDSA()
{
delete mDSAImpl;
mDSAImpl = NULL;
}
}

View File

@@ -186,4 +186,4 @@ EmeraldBoobState EmeraldBoobUtils::idleUpdate(const EmeraldGlobalBoobConfig &con
newState.boobGrav = llclamp(newState.boobGrav, -1.5f, 2.0f);
return newState;
}
}

0
indra/newview/hippofloaterxml.cpp Executable file → Normal file
View File

0
indra/newview/hippofloaterxml.h Executable file → Normal file
View File

View File

@@ -7,7 +7,7 @@
## - Avoids using any OpenAL audio driver.
#export LL_BAD_OPENAL_DRIVER=x
## - Avoids using any FMOD audio driver.
export LL_BAD_FMOD_DRIVER=x
#export LL_BAD_FMOD_DRIVER=x
## - Avoids using the FMOD ESD audio driver.
#export LL_BAD_FMOD_ESD=x
@@ -45,6 +45,7 @@ export LL_BAD_FMOD_DRIVER=x
## disable these by enabling this option:
#export LL_DISABLE_GSTREAMER=x
## Everything below this line is just for advanced troubleshooters.
##-------------------------------------------------------------------
@@ -53,15 +54,8 @@ export LL_BAD_FMOD_DRIVER=x
## you're building your own viewer, bear in mind that the executable
## in the bin directory will be stripped: you should replace it with
## an unstripped binary before you run.
##
## I keep crashing without having GDB running, always run it if an
## environment variable is set.
if [ -n "$ASCENDED_DEVELOPER" ]; then
# export LL_WRAPPER='cgdb --args'
export LL_WRAPPER='gdb --args'
# export LL_WRAPPER='valgrind --smc-check=all --error-limit=no --log-file=secondlife.vg --leak-check=full --suppressions=/usr/lib/valgrind/glibc-2.5.supp --suppressions=secondlife-i686.supp'
fi
#export LL_WRAPPER='gdb --args'
#export LL_WRAPPER='valgrind --smc-check=all --error-limit=no --log-file=secondlife.vg --leak-check=full --suppressions=/usr/lib/valgrind/glibc-2.5.supp --suppressions=secondlife-i686.supp'
## - Avoids an often-buggy X feature that doesn't really benefit us anyway.
export SDL_VIDEO_X11_DGAMOUSE=0
@@ -74,13 +68,6 @@ if [ "$GTK_IM_MODULE" = "scim" ]; then
export GTK_IM_MODULE=xim
fi
# Work around for a crash bug when restarting OpenGL after a change in the
# graphic settings (anti-aliasing, VBO, FSAA, full screen mode, UI scale).
# When you enable this work around, you can change the settings without
# crashing, but you will have to restart the viewer after changing them
# because the display still gets corrupted.
export LL_OPENGL_RESTART_CRASH_BUG=x
## - Automatically work around the ATI mouse cursor crash bug:
## (this workaround is disabled as most fglrx users do not see the bug)
#if lsmod | grep fglrx &>/dev/null ; then
@@ -121,7 +108,13 @@ if [ -n "$LL_TCMALLOC" ]; then
fi
export VIEWER_BINARY='singularity-do-not-run-directly'
export SL_ENV='LD_LIBRARY_PATH="`pwd`"/lib:"`pwd`"/app_settings/mozilla-runtime-linux-i686:"${LD_LIBRARY_PATH}"'
BINARY_TYPE=$(expr match "$(file -b bin/$VIEWER_BINARY)" '\(.*executable\)')
if [ "${BINARY_TYPE}" == "ELF 64-bit LSB executable" ]; then
export SL_ENV='LD_LIBRARY_PATH="`pwd`"/lib64:"`pwd`"/lib32:"${LD_LIBRARY_PATH}"'
else
export SL_ENV='LD_LIBRARY_PATH="`pwd`"/lib:"${LD_LIBRARY_PATH}"'
fi
export SL_CMD='$LL_WRAPPER bin/$VIEWER_BINARY'
export SL_OPT="`cat gridargs.dat` $@"
@@ -134,27 +127,7 @@ if [ -n "$LL_RUN_ERR" ]; then
if [ "$LL_RUN_ERR" = "runerr" ]; then
# generic error running the binary
echo '*** Bad shutdown. ***'
BINARY_TYPE=$(expr match "$(file -b ${RUN_PATH}/bin/SLPlugin)" '\(.*executable\)')
BINARY_SYSTEM=$(expr match "$(file -b /bin/uname)" '\(.*executable\)')
if [ "${BINARY_SYSTEM}" == "ELF 64-bit LSB executable" -a "${BINARY_TYPE}" == "ELF 32-bit LSB executable" ]; then
echo
cat << EOFMARKER
You are running the Second Life Viewer on a x86_64 platform. The
most common problems when launching the Viewer (particularly
'bin/$VIEWER_BINARY: not found' and 'error while
loading shared libraries') may be solved by installing your Linux
distribution's 32-bit compatibility packages.
For example, on Ubuntu and other Debian-based Linuxes you might run:
$ sudo apt-get install ia32-libs ia32-libs-gtk ia32-libs-kde ia32-libs-sdl
EOFMARKER
fi
fi
fi
echo
echo '*******************************************************'
echo 'This is a BETA release of the Second Life linux client.'
echo 'Thank you for testing!'
echo 'Please see README-linux.txt before reporting problems.'
echo

View File

@@ -568,7 +568,10 @@ bool LLAppViewer::init()
gDirUtilp->setSkinFolder("default");
initLogging();
// Logging is initialized. Now it's safe to start the error thread.
startErrorThread();
// <edit>
gDeleteScheduler = new LLDeleteScheduler();
gBuildNewViewsScheduler = new LLBuildNewViewsScheduler();
@@ -857,7 +860,7 @@ bool LLAppViewer::mainLoop()
//-------------------------------------------
// Create IO Pump to use for HTTP Requests.
gServicePump = new LLPumpIO(gAPRPoolp);
gServicePump = new LLPumpIO;
LLHTTPClient::setPump(*gServicePump);
LLCurl::setCAFile(gDirUtilp->getCAFile());
@@ -1120,16 +1123,6 @@ bool LLAppViewer::mainLoop()
bool LLAppViewer::cleanup()
{
//----------------------------------------------
//this test code will be removed after the test
//test manual call stack tracer
if(gSavedSettings.getBOOL("QAMode"))
{
LLError::LLCallStacks::print() ;
}
//end of the test code
//----------------------------------------------
//flag all elements as needing to be destroyed immediately
// to ensure shutdown order
LLMortician::setZealous(TRUE);
@@ -1588,8 +1581,9 @@ bool LLAppViewer::initLogging()
return true;
}
bool LLAppViewer::loadSettingsFromDirectory(const std::string& location_key,
bool set_defaults)
bool LLAppViewer::loadSettingsFromDirectory(AIReadAccess<settings_map_type> const& settings_r,
std::string const& location_key,
bool set_defaults)
{
// Find and vet the location key.
if(!mSettingsLocationList.has(location_key))
@@ -1616,11 +1610,13 @@ bool LLAppViewer::loadSettingsFromDirectory(const std::string& location_key,
LLSD files = location.get("Files");
for(LLSD::map_iterator itr = files.beginMap(); itr != files.endMap(); ++itr)
{
std::string settings_group = (*itr).first;
std::string const settings_group = (*itr).first;
settings_map_type::const_iterator const settings_group_iter = settings_r->find(settings_group);
llinfos << "Attempting to load settings for the group " << settings_group
<< " - from location " << location_key << llendl;
if(gSettings.find(settings_group) == gSettings.end())
if(settings_group_iter == settings_r->end())
{
llwarns << "No matching settings group for name " << settings_group << llendl;
continue;
@@ -1634,11 +1630,10 @@ bool LLAppViewer::loadSettingsFromDirectory(const std::string& location_key,
std::string custom_name_setting = file.get("NameFromSetting");
// *NOTE: Regardless of the group currently being lodaed,
// this setting is always read from the Global settings.
if(gSettings[sGlobalSettingsName]->controlExists(custom_name_setting))
LLControlGroup const* control_group = settings_r->find(sGlobalSettingsName)->second;
if(control_group->controlExists(custom_name_setting))
{
std::string file_name =
gSettings[sGlobalSettingsName]->getString(custom_name_setting);
full_settings_path = file_name;
full_settings_path = control_group->getString(custom_name_setting);
}
}
@@ -1654,7 +1649,7 @@ bool LLAppViewer::loadSettingsFromDirectory(const std::string& location_key,
requirement = file.get("Requirement").asInteger();
}
if(!gSettings[settings_group]->loadFromFile(full_settings_path, set_defaults))
if(!settings_group_iter->second->loadFromFile(full_settings_path, set_defaults))
{
if(requirement == 1)
{
@@ -1696,10 +1691,14 @@ std::string LLAppViewer::getSettingsFilename(const std::string& location_key,
bool LLAppViewer::initConfiguration()
{
// Grab and hold write locks for the entire duration of this function.
AIWriteAccess<settings_map_type> settings_w(gSettings);
settings_map_type& settings(*settings_w);
//Set up internal pointers
gSettings[sGlobalSettingsName] = &gSavedSettings;
gSettings[sPerAccountSettingsName] = &gSavedPerAccountSettings;
gSettings[sCrashSettingsName] = &gCrashSettings;
settings[sGlobalSettingsName] = &gSavedSettings;
settings[sPerAccountSettingsName] = &gSavedPerAccountSettings;
settings[sCrashSettingsName] = &gCrashSettings;
//Load settings files list
std::string settings_file_list = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "settings_files.xml");
@@ -1724,7 +1723,7 @@ bool LLAppViewer::initConfiguration()
// - load defaults
bool set_defaults = true;
if(!loadSettingsFromDirectory("Default", set_defaults))
if(!loadSettingsFromDirectory(settings_w, "Default", set_defaults))
{
std::ostringstream msg;
msg << "Second Life could not load its default settings file. \n"
@@ -1841,7 +1840,7 @@ bool LLAppViewer::initConfiguration()
}
// - load overrides from user_settings
loadSettingsFromDirectory("User");
loadSettingsFromDirectory(settings_w, "User");
// - apply command line settings
clp.notify();
@@ -1921,7 +1920,7 @@ bool LLAppViewer::initConfiguration()
{
const std::string& name = *itr;
const std::string& value = *(++itr);
LLControlVariable* c = gSettings[sGlobalSettingsName]->getControl(name);
LLControlVariable* c = settings[sGlobalSettingsName]->getControl(name);
if(c)
{
c->setValue(value, false);
@@ -3213,12 +3212,15 @@ void LLAppViewer::saveFinalSnapshot()
gSavedSettings.setBOOL("ShowParcelOwners", FALSE);
idle();
std::string snap_filename = gDirUtilp->getLindenUserDir();
snap_filename += gDirUtilp->getDirDelimiter();
snap_filename += SCREEN_LAST_FILENAME;
// use full pixel dimensions of viewer window (not post-scale dimensions)
gViewerWindow->saveSnapshot(snap_filename, gViewerWindow->getWindowDisplayWidth(), gViewerWindow->getWindowDisplayHeight(), FALSE, TRUE);
mSavedFinalSnapshot = TRUE;
std::string snap_filename = gDirUtilp->getLindenUserDir(true);
if (!snap_filename.empty())
{
snap_filename += gDirUtilp->getDirDelimiter();
snap_filename += SCREEN_LAST_FILENAME;
// use full pixel dimensions of viewer window (not post-scale dimensions)
gViewerWindow->saveSnapshot(snap_filename, gViewerWindow->getWindowDisplayWidth(), gViewerWindow->getWindowDisplayHeight(), FALSE, TRUE);
mSavedFinalSnapshot = TRUE;
}
}
}

View File

@@ -33,7 +33,8 @@
#ifndef LL_LLAPPVIEWER_H
#define LL_LLAPPVIEWER_H
#include "llsys.h" // LLOSInfo
#include "llsys.h" // LLOSInfo
#include "llviewercontrol.h" // settings_map_type
class LLTextureCache;
class LLImageDecodeThread;
@@ -140,11 +141,12 @@ public:
// Load settings from the location specified by loction_key.
// Key availale and rules for loading, are specified in
// 'app_settings/settings_files.xml'
bool loadSettingsFromDirectory(const std::string& location_key,
bool set_defaults = false);
bool loadSettingsFromDirectory(AIReadAccess<settings_map_type> const& settings_r,
std::string const& location_key,
bool set_defaults = false);
std::string getSettingsFilename(const std::string& location_key,
const std::string& file);
std::string getSettingsFilename(std::string const& location_key,
std::string const& file);
// For thread debugging.
// llstartup needs to control init.

View File

@@ -139,6 +139,7 @@ int main( int argc, char **argv )
}
delete viewer_app_ptr;
viewer_app_ptr = NULL;
return 0;
}

View File

@@ -119,6 +119,7 @@ int main( int argc, char **argv )
}
delete viewer_app_ptr;
viewer_app_ptr = NULL;
return 0;
}

View File

@@ -68,8 +68,7 @@ LLConsole::LLConsole(const std::string& name, const LLRect &rect,
mFadeTime(persist_time - FADE_DURATION),
mFont(LLFontGL::getFontSansSerif()),
mConsoleWidth(0),
mConsoleHeight(0),
mQueueMutex(NULL)
mConsoleHeight(0)
{
mTimer.reset();

View File

@@ -252,12 +252,10 @@ BOOL LLFeatureManager::loadFeatureTables()
mTableVersion = version;
LLFeatureList *flp = NULL;
while (!file.eof() && file.good())
while (file >> name)
{
char buffer[MAX_STRING]; /*Flawfinder: ignore*/
file >> name;
if (name.substr(0,2) == "//")
{
// This is a comment.
@@ -265,13 +263,6 @@ BOOL LLFeatureManager::loadFeatureTables()
continue;
}
if (name.empty())
{
// This is a blank line
file.getline(buffer, MAX_STRING);
continue;
}
if (name == "list")
{
if (flp)

View File

@@ -75,7 +75,6 @@
extern LLCPUInfo gSysCPU;
extern LLMemoryInfo gSysMemory;
extern U32 gPacketsIn;
@@ -275,7 +274,7 @@ LLFloaterAbout::LLFloaterAbout()
// TODO: Implement media plugin version query
support.append("Qt Webkit Version: 4.7.1 ");
support.append("Qt Webkit Version: 4.7.1 (version number hard-coded)");
support.append("\n");
if (gPacketsIn > 0)

View File

@@ -715,31 +715,38 @@ void LLFloaterAvatarList::refreshAvatarList()
estate_owner = parent_estate->getOwner();
}
static const LLCachedControl<LLColor4> unselected_color("ScrollUnselectedColor",LLColor4(LLColor4U(0, 0, 0, 204)), gColors );
LLColor4 name_color = unselected_color;
//Lindens are always more Linden than your friend, make that take precedence
if(LLMuteList::getInstance()->isLinden(av_name))
{
static const LLCachedControl<LLColor4> ascent_linden_color("AscentLindenColor",LLColor4(0.f,0.f,1.f,1.f));
element["columns"][LIST_AVATAR_NAME]["color"] = ascent_linden_color.get().getValue();
name_color = ascent_linden_color;
}
//check if they are an estate owner at their current position
else if(estate_owner.notNull() && av_id == estate_owner)
{
static const LLCachedControl<LLColor4> ascent_estate_owner_color("AscentEstateOwnerColor",LLColor4(1.f,0.6f,1.f,1.f));
element["columns"][LIST_AVATAR_NAME]["color"] = ascent_estate_owner_color.get().getValue();
name_color = ascent_estate_owner_color;
}
//without these dots, SL would suck.
else if(is_agent_friend(av_id))
{
static const LLCachedControl<LLColor4> ascent_friend_color("AscentFriendColor",LLColor4(1.f,1.f,0.f,1.f));
element["columns"][LIST_AVATAR_NAME]["color"] = ascent_friend_color.get().getValue();
name_color = ascent_friend_color;
}
//big fat jerkface who is probably a jerk, display them as such.
else if(LLMuteList::getInstance()->isMuted(av_id))
{
static const LLCachedControl<LLColor4> ascent_muted_color("AscentMutedColor",LLColor4(0.7f,0.7f,0.7f,1.f));
element["columns"][LIST_AVATAR_NAME]["color"] = ascent_muted_color.get().getValue();
name_color = ascent_muted_color;
}
name_color = name_color*0.5f + unselected_color*0.5f;
element["columns"][LIST_AVATAR_NAME]["color"] = name_color.getValue();
char temp[32];
LLColor4 color = LLColor4::black;
@@ -830,16 +837,15 @@ void LLFloaterAvatarList::refreshAvatarList()
//element["columns"][LIST_METADATA]["type"] = "text";
static const LLCachedControl<LLColor4> avatar_name_color("AvatarNameColor",LLColor4(LLColor4U(251, 175, 93, 255)), gColors );
static const LLCachedControl<LLColor4> unselected_color("ScrollUnselectedColor",LLColor4(LLColor4U(0, 0, 0, 204)), gColors );
LLColor4 name_color(avatar_name_color);
LLColor4 client_color(avatar_name_color);
std::string client;
LLVOAvatar *avatarp = gObjectList.findAvatar(av_id);
if(avatarp)
{
avatarp->getClientInfo(client, name_color, TRUE);
avatarp->getClientInfo(client, client_color, TRUE);
if(client == "")
{
name_color = unselected_color;
client_color = unselected_color;
client = "?";
}
element["columns"][LIST_CLIENT]["value"] = client.c_str();
@@ -857,9 +863,9 @@ void LLFloaterAvatarList::refreshAvatarList()
element["columns"][LIST_CLIENT]["value"] = "Out Of Range";
}
//Blend to make the color show up better
name_color = name_color *.5f + unselected_color * .5f;
client_color = client_color *.5f + unselected_color * .5f;
element["columns"][LIST_CLIENT]["color"] = avatar_name_color.get().getValue();
element["columns"][LIST_CLIENT]["color"] = client_color.getValue();
// Add to list
mAvatarList->addElement(element, ADD_BOTTOM);

View File

@@ -1386,14 +1386,18 @@ LLScrollingPanelParam::LLScrollingPanelParam( const std::string& name,
else
{
//Kill everything that isn't the slider...
for(child_list_t::const_iterator it = getChildList()->begin();it!=getChildList()->end();)
child_list_t to_remove;
child_list_t::const_iterator it;
for (it = getChildList()->begin(); it != getChildList()->end(); it++)
{
if((*it)!=slider && (*it)->getName() != "panel border")
if ((*it) != slider && (*it)->getName() != "panel border")
{
llinfos << "removing: " << (*it)->getName() << llendl;
removeChild((*(it++)),TRUE);
to_remove.push_back(*it);
}
else ++it;
}
for (it = to_remove.begin(); it != to_remove.end(); it++)
{
removeChild(*it, TRUE);
}
slider->translate(0,PARAM_HINT_HEIGHT);
reshape(getRect().getWidth(),getRect().getHeight()-PARAM_HINT_HEIGHT);

View File

@@ -128,7 +128,7 @@ protected:
LLScrollingPanelList* mScrollingPanelList;
LLScrollableContainerView* mScrollContainer;
LLVisualParamReset* mResetParams;
LLPointer<LLVisualParamReset> mResetParams;
LLInventoryObserver* mInventoryObserver;

View File

@@ -77,6 +77,7 @@ void LLFloaterHardwareSettings::refresh()
LLPanel::refresh();
mUseVBO = gSavedSettings.getBOOL("RenderVBOEnable");
mUseFBO = gSavedSettings.getBOOL("RenderUseFBO");
mUseAniso = gSavedSettings.getBOOL("RenderAnisotropic");
mFSAASamples = gSavedSettings.getU32("RenderFSAASamples");
mGamma = gSavedSettings.getF32("RenderGamma");
@@ -106,7 +107,8 @@ void LLFloaterHardwareSettings::refreshEnabledState()
{
childSetEnabled("vbo_stream", LLVertexBuffer::sEnableVBOs);
}
childSetEnabled("fbo",gGLManager.mHasFramebufferObject);
// if no windlight shaders, turn off nighttime brightness, gamma, and fog distance
childSetEnabled("gamma", !gPipeline.canUseWindLightShaders());
@@ -192,6 +194,7 @@ void LLFloaterHardwareSettings::apply()
void LLFloaterHardwareSettings::cancel()
{
gSavedSettings.setBOOL("RenderVBOEnable", mUseVBO);
gSavedSettings.setBOOL("RenderUseFBO", mUseFBO);
gSavedSettings.setBOOL("RenderAnisotropic", mUseAniso);
gSavedSettings.setU32("RenderFSAASamples", mFSAASamples);
gSavedSettings.setF32("RenderGamma", mGamma);

View File

@@ -88,6 +88,7 @@ protected:
LLSliderCtrl* mCtrlVideoCardMem;
BOOL mUseVBO;
BOOL mUseFBO;
BOOL mUseAniso;
U32 mFSAASamples;
F32 mGamma;

0
indra/newview/llfloatersellland.cpp Executable file → Normal file
View File

0
indra/newview/llfloatersellland.h Executable file → Normal file
View File

View File

@@ -104,7 +104,7 @@ BOOL LLFloaterSettingsDebug::postBuild()
void LLFloaterSettingsDebug::draw()
{
LLComboBox* settings_combo = getChild<LLComboBox>("settings_combo");
LLControlVariable* controlp = (LLControlVariable*)settings_combo->getCurrentUserdata();
LLControlVariable* controlp = static_cast<LLControlVariable*>(settings_combo->getCurrentUserdata());
updateControl(controlp ? controlp->getCOAActive() : NULL);
LLFloater::draw();
@@ -127,8 +127,8 @@ void LLFloaterSettingsDebug::show(void*)
void LLFloaterSettingsDebug::onSettingSelect(LLUICtrl* ctrl, void* user_data)
{
LLFloaterSettingsDebug* floaterp = (LLFloaterSettingsDebug*)user_data;
LLComboBox* combo_box = (LLComboBox*)ctrl;
LLControlVariable* controlp = (LLControlVariable*)combo_box->getCurrentUserdata();
LLComboBox* combo_box = static_cast<LLComboBox*>(ctrl);
LLControlVariable* controlp = static_cast<LLControlVariable*>(combo_box->getCurrentUserdata());
floaterp->updateControl(controlp ? controlp->getCOAActive() : NULL);
}
@@ -139,7 +139,7 @@ void LLFloaterSettingsDebug::onCommitSettings(LLUICtrl* ctrl, void* user_data)
LLFloaterSettingsDebug* floaterp = (LLFloaterSettingsDebug*)user_data;
LLComboBox* settings_combo = floaterp->getChild<LLComboBox>("settings_combo");
LLControlVariable* controlp = (LLControlVariable*)settings_combo->getCurrentUserdata();
LLControlVariable* controlp = static_cast<LLControlVariable*>(settings_combo->getCurrentUserdata());
controlp = controlp ? controlp->getCOAActive() : NULL;
if(!controlp)//Uh oh!
return;

View File

@@ -97,7 +97,7 @@ public:
virtual void move( LLFolderViewEventListener* parent_listener ) = 0;
virtual BOOL isItemCopyable() const = 0;
virtual BOOL copyToClipboard() const = 0;
virtual void cutToClipboard() = 0;
virtual BOOL cutToClipboard() const = 0;
virtual BOOL isClipboardPasteable() const = 0;
virtual void pasteFromClipboard() = 0;
virtual void pasteLinkFromClipboard() = 0;

View File

@@ -509,6 +509,8 @@ void LLHUDEffectLookAt::render()
(gAgent.getAvatarObject() == ((LLVOAvatar*)(LLViewerObject*)mSourceObject))) return;
if (sDebugLookAt && mSourceObject.notNull())
{
LLGLDepthTest gls_depth(GL_TRUE,GL_FALSE);
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
LLVector3 target = mTargetPos + ((LLVOAvatar*)(LLViewerObject*)mSourceObject)->mHeadp->getWorldPosition();

View File

@@ -1347,7 +1347,7 @@ void LLIMMgr::saveIgnoreGroup()
{
// llinfos << "saving ignore_groups.xml" << llendl;
std::string user_dir = gDirUtilp->getLindenUserDir();
std::string user_dir = gDirUtilp->getLindenUserDir(true);
if (!user_dir.empty())
{
std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "ignore_groups.xml");

2
indra/newview/llinventorybridge.h Executable file → Normal file
View File

@@ -232,7 +232,7 @@ public:
virtual void move(LLFolderViewEventListener* new_parent_bridge) {}
virtual BOOL isItemCopyable() const { return FALSE; }
virtual BOOL copyToClipboard() const { return FALSE; }
virtual void cutToClipboard() {}
virtual BOOL cutToClipboard() const { return FALSE; }
virtual BOOL isClipboardPasteable() const;
virtual BOOL isClipboardPasteableAsLink() const;
virtual void pasteFromClipboard() {}

View File

@@ -264,7 +264,7 @@ LLMuteList::~LLMuteList()
// If we quit from the login screen we will not have an SL account
// name. Don't try to save, otherwise we'll dump a file in
// C:\Program Files\SecondLife\ JC
std::string user_dir = gDirUtilp->getLindenUserDir();
std::string user_dir = gDirUtilp->getLindenUserDir(true);
if (!user_dir.empty())
{
std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "volume_settings.xml");

View File

@@ -72,7 +72,7 @@ LLNameListCtrl::~LLNameListCtrl()
// public
BOOL LLNameListCtrl::addNameItem(const LLUUID& agent_id, EAddPosition pos,
BOOL enabled, std::string& suffix)
BOOL enabled, std::string const& suffix)
{
//llinfos << "LLNameListCtrl::addNameItem " << agent_id << llendl;

View File

@@ -58,7 +58,7 @@ public:
// Add a user to the list by name. It will be added, the name
// requested from the cache, and updated as necessary.
BOOL addNameItem(const LLUUID& agent_id, EAddPosition pos = ADD_BOTTOM,
BOOL enabled = TRUE, std::string& suffix = LLStringUtil::null);
BOOL enabled = TRUE, std::string const& suffix = LLStringUtil::null);
BOOL addNameItem(LLScrollListItem* item, EAddPosition pos = ADD_BOTTOM);
virtual LLScrollListItem* addElement(const LLSD& value, EAddPosition pos = ADD_BOTTOM, void* userdata = NULL);

View File

@@ -233,13 +233,21 @@ BOOL LLPanelDisplay::postBuild()
mCtrlReflections = getChild<LLCheckBoxCtrl>("Reflections");
mCtrlReflections->setCommitCallback(&LLPanelDisplay::onVertexShaderEnable);
mCtrlReflections->setCallbackUserData(this);
mRadioReflectionDetail = getChild<LLRadioGroup>("ReflectionDetailRadio");
mCtrlReflectionDetail = getChild<LLComboBox>("ReflectionDetailCombo");
// WindLight
mCtrlWindLight = getChild<LLCheckBoxCtrl>("WindLightUseAtmosShaders");
mCtrlWindLight->setCommitCallback(&LLPanelDisplay::onVertexShaderEnable);
mCtrlWindLight->setCallbackUserData(this);
// Deferred
mCtrlDeferred = getChild<LLCheckBoxCtrl>("RenderDeferred");
mCtrlDeferred->setCommitCallback(&LLPanelDisplay::onVertexShaderEnable);
mCtrlDeferred->setCallbackUserData(this);
mCtrlSunShadow = getChild<LLCheckBoxCtrl>("RenderDeferredSunShadow");
mCtrlSunShadow->setCommitCallback(&LLPanelDisplay::onVertexShaderEnable);
mCtrlSunShadow->setCallbackUserData(this);
//----------------------------------------------------------------------------
// Enable Avatar Shaders
mCtrlAvatarVP = getChild<LLCheckBoxCtrl>("AvatarVertexProgram");
@@ -391,6 +399,8 @@ void LLPanelDisplay::refresh()
mWindLight = gSavedSettings.getBOOL("WindLightUseAtmosShaders");
mReflections = gSavedSettings.getBOOL("RenderWaterReflections");
mAvatarVP = gSavedSettings.getBOOL("RenderAvatarVP");
mDeferred = gSavedSettings.getBOOL("RenderDeferred");
mSunShadow = gSavedSettings.getBOOL("RenderDeferredSunShadow");
// reflection radio
mReflectionDetail = gSavedSettings.getS32("RenderReflectionDetail");
@@ -464,10 +474,7 @@ void LLPanelDisplay::refreshEnabledState()
bool bumpshiny = gGLManager.mHasCubeMap && LLCubeMap::sUseCubeMaps && LLFeatureManager::getInstance()->isFeatureAvailable("RenderObjectBump");
mCtrlBumpShiny->setEnabled(bumpshiny ? TRUE : FALSE);
for (S32 i = 0; i < mRadioReflectionDetail->getItemCount(); ++i)
{
mRadioReflectionDetail->setIndexEnabled(i, mCtrlReflections->get() && reflections);
}
mCtrlReflectionDetail->setEnabled(mCtrlReflections->get() && reflections);
// Avatar Mode
S32 max_avatar_shader = LLViewerShaderMgr::instance()->mMaxAvatarShaderLevel;
@@ -483,6 +490,20 @@ void LLPanelDisplay::refreshEnabledState()
mCtrlAvatarCloth->setEnabled(true);
}
//I actually recommend RenderUseFBO:FALSE for ati users when not using deferred, so RenderUseFBO shouldn't control visibility of the element.
// Instead, gGLManager.mHasFramebufferObject seems better as it is determined by hardware and not current user settings. -Shyotl
//Enabling deferred will force RenderUseFBO to TRUE.
BOOL can_defer = gGLManager.mHasFramebufferObject &&
LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred") && //Ensure it's enabled in the gpu feature table
LLFeatureManager::getInstance()->isFeatureAvailable("RenderAvatarVP") && //Hardware Skinning. Deferred forces RenderAvatarVP to true
LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable") && gSavedSettings.getBOOL("VertexShaderEnable") && //Basic Shaders
LLFeatureManager::getInstance()->isFeatureAvailable("WindLightUseAtmosShaders") && gSavedSettings.getBOOL("WindLightUseAtmosShaders"); //Atmospheric Shaders
mCtrlDeferred->setEnabled(can_defer);
mCtrlSunShadow->setEnabled(can_defer && gSavedSettings.getBOOL("RenderDeferred"));
mCtrlAvatarCloth->setValue(gSavedSettings.getBOOL("RenderAvatarVP")); //Enabling RenderDeferred changes this setting behind this floaters back.
// Vertex Shaders
// mCtrlShaderEnable->setEnabled(LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable"));
// [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g) | Modified: RLVa-0.2.0a
@@ -538,6 +559,11 @@ void LLPanelDisplay::disableUnavailableSettings()
mCtrlAvatarCloth->setEnabled(FALSE);
mCtrlAvatarCloth->setValue(FALSE);
mCtrlDeferred->setEnabled(FALSE);
mCtrlDeferred->setValue(FALSE);
mCtrlSunShadow->setEnabled(FALSE);
mCtrlSunShadow->setValue(FALSE);
}
// disabled windlight
@@ -575,6 +601,15 @@ void LLPanelDisplay::disableUnavailableSettings()
mCtrlAvatarImpostors->setEnabled(FALSE);
mCtrlAvatarImpostors->setValue(FALSE);
}
// disabled deferred
if(!LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred"))
{
mCtrlDeferred->setEnabled(FALSE);
mCtrlDeferred->setValue(FALSE);
mCtrlSunShadow->setEnabled(FALSE);
mCtrlSunShadow->setValue(FALSE);
}
}
void LLPanelDisplay::setHiddenGraphicsState(bool isHidden)
@@ -610,7 +645,7 @@ void LLPanelDisplay::setHiddenGraphicsState(bool isHidden)
llassert(mRadioLightingDetail2 != NULL);
llassert(mRadioTerrainDetail != NULL);
llassert(mRadioReflectionDetail != NULL);
llassert(mCtrlReflectionDetail != NULL);
llassert(mMeshDetailText != NULL);
llassert(mShaderText != NULL);
@@ -633,7 +668,7 @@ void LLPanelDisplay::setHiddenGraphicsState(bool isHidden)
mCtrlLODFactor->setVisible(!isHidden);
mCtrlFlexFactor->setVisible(!isHidden);
mCtrlTreeFactor->setVisible(!isHidden);
mCtrlAvatarFactor->setVisible(!isHidden);
mCtrlAvatarFactor->setVisible(!isHidden);
mCtrlTerrainFactor->setVisible(!isHidden);
mCtrlSkyFactor->setVisible(!isHidden);
mCtrlMaxParticle->setVisible(!isHidden);
@@ -657,7 +692,10 @@ void LLPanelDisplay::setHiddenGraphicsState(bool isHidden)
mRadioLightingDetail2->setVisible(!isHidden);
mRadioTerrainDetail->setVisible(!isHidden);
mRadioReflectionDetail->setVisible(!isHidden);
mCtrlReflectionDetail->setVisible(!isHidden);
mCtrlDeferred->setVisible(!isHidden);
mCtrlSunShadow->setVisible(!isHidden);
// text boxes
mShaderText->setVisible(!isHidden);
@@ -691,6 +729,8 @@ void LLPanelDisplay::cancel()
gSavedSettings.setBOOL("WindLightUseAtmosShaders", mWindLight);
gSavedSettings.setBOOL("RenderWaterReflections", mReflections);
gSavedSettings.setBOOL("RenderAvatarVP", mAvatarVP);
gSavedSettings.setBOOL("RenderDeferred", mDeferred);
gSavedSettings.setBOOL("RenderDeferredSunShadow", mSunShadow);
gSavedSettings.setS32("RenderReflectionDetail", mReflectionDetail);

View File

@@ -84,6 +84,7 @@ protected:
LLComboBox *mCtrlFullScreen; // Fullscreen resolution
LLCheckBoxCtrl *mCtrlAutoDetectAspect; // automatically detect aspect ratio
LLComboBox *mCtrlAspectRatio; // user provided aspect ratio
LLComboBox *mCtrlReflectionDetail;
LLCheckBoxCtrl *mCtrlWindowed; // windowed mode
LLComboBox *mCtrlWindowSize; // window size for windowed mode
@@ -110,12 +111,12 @@ protected:
LLCheckBoxCtrl *mCtrlWindLight;
LLCheckBoxCtrl *mCtrlAvatarVP;
LLCheckBoxCtrl *mCtrlShaderEnable;
LLCheckBoxCtrl *mCtrlDeferred;
LLCheckBoxCtrl *mCtrlSunShadow;
LLCheckBoxCtrl *mCtrlAvatarImpostors;
LLCheckBoxCtrl *mCtrlAvatarCloth;
LLRadioGroup *mRadioLightingDetail2;
LLRadioGroup *mRadioTerrainDetail;
LLRadioGroup *mRadioReflectionDetail;
LLTextBox *mAspectRatioLabel1;
LLTextBox *mDisplayResLabel;
@@ -151,6 +152,8 @@ protected:
BOOL mShaderEnable;
BOOL mWindLight;
BOOL mReflections;
BOOL mDeferred;
BOOL mSunShadow;
BOOL mAvatarVP;
S32 mReflectionDetail;

View File

@@ -144,7 +144,7 @@ public:
virtual void move(LLFolderViewEventListener* parent_listener);
virtual BOOL isItemCopyable() const;
virtual BOOL copyToClipboard() const;
virtual void cutToClipboard();
virtual BOOL cutToClipboard() const;
virtual BOOL isClipboardPasteable() const;
virtual void pasteFromClipboard();
virtual void pasteLinkFromClipboard();
@@ -596,8 +596,9 @@ BOOL LLTaskInvFVBridge::copyToClipboard() const
return FALSE;
}
void LLTaskInvFVBridge::cutToClipboard()
BOOL LLTaskInvFVBridge::cutToClipboard() const
{
return FALSE;
}
BOOL LLTaskInvFVBridge::isClipboardPasteable() const

View File

@@ -911,20 +911,11 @@ void LLPanelLogin::loadLoginPage()
std::string version = llformat("%d.%d.%d (%d)",
LL_VERSION_MAJOR, LL_VERSION_MINOR, LL_VERSION_PATCH, LL_VERSION_BUILD);
char* curl_channel = curl_escape(LL_CHANNEL, 0);
char* curl_version = curl_escape(version.c_str(), 0);
oStr << "&channel=" << curl_channel;
oStr << "&version=" << curl_version;
curl_free(curl_channel);
curl_free(curl_version);
oStr << "&channel=" << LLWeb::curlEscape(LL_CHANNEL);
oStr << "&version=" << LLWeb::curlEscape(version);
// Grid
char* curl_grid = curl_escape(LLViewerLogin::getInstance()->getGridLabel().c_str(), 0);
oStr << "&grid=" << curl_grid;
curl_free(curl_grid);
oStr << "&grid=" << LLWeb::curlEscape(LLViewerLogin::getInstance()->getGridLabel());
if (gHippoGridManager->getConnectedGrid()->isSecondLife()) {
// find second life grid from login URI
@@ -938,9 +929,7 @@ void LLPanelLogin::loadLoginPage()
i = tmp.rfind('/');
if (i != std::string::npos) {
tmp = tmp.substr(i+1);
char* curl_grid = curl_escape(tmp.c_str(), 0);
oStr << "&grid=" << curl_grid;
curl_free(curl_grid);
oStr << "&grid=" << LLWeb::curlEscape(tmp);
}
}
}
@@ -997,13 +986,11 @@ void LLPanelLogin::loadLoginPage()
lastname = gSavedSettings.getString("LastName");
}
char* curl_region = curl_escape(region.c_str(), 0);
std::string curl_region = LLWeb::curlEscape(region);
oStr <<"firstname=" << firstname <<
"&lastname=" << lastname << "&location=" << location << "&region=" << curl_region;
curl_free(curl_region);
if (!password.empty())
{
oStr << "&password=" << password;

View File

@@ -2771,4 +2771,4 @@ void LLPanelObject::onPasteRotClip(void* user_data)
calcp->setVar(LLCalc::Y_ROT, mClipboardRot.mV[VY]);
calcp->setVar(LLCalc::Z_ROT, mClipboardRot.mV[VZ]);
self->sendRotation(FALSE);
}
}

View File

@@ -847,4 +847,4 @@ void LLPhysicsMotion::reset()
mCharacter->setVisualParamWeight((*iter).mParam,(*iter).mParam->getDefaultWeight());
}
}
}
}

View File

@@ -1789,4 +1789,4 @@ void LLPreviewGesture::onDonePreview(LLMultiGesture* gesture, void* data)
self->mPreviewGesture = NULL;
self->refresh();
}
}

View File

@@ -2669,4 +2669,4 @@ void LLLiveLSLEditor::saveAs()
fclose(fp);
fp = NULL;
}
// </edit>
// </edit>

View File

@@ -182,4 +182,4 @@ void LLSavedSettingsGlue::setColor4(const std::string &name, LLColor4 value)
gSavedSettings.setColor4(name, value);
else
gSavedPerAccountSettings.setColor4(name, value);
}*/
}*/

View File

@@ -252,7 +252,7 @@ public:
return (object != NULL) && node->mValid && !node->mIndividualSelection && (object->isRootEdit() || object->isJointChild());
}
};
typedef boost::filter_iterator<is_root, list_t::iterator > valid_root_iterator;
typedef boost::filter_iterator<is_valid_root, list_t::iterator > valid_root_iterator;
valid_root_iterator valid_root_begin() { return valid_root_iterator(mList.begin(), mList.end()); }
valid_root_iterator valid_root_end() { return valid_root_iterator(mList.end(), mList.end()); }

View File

@@ -985,7 +985,7 @@ bool idle_startup()
);
// Overwrite default user settings with user settings
LLAppViewer::instance()->loadSettingsFromDirectory("Account");
LLAppViewer::instance()->loadSettingsFromDirectory(AIReadAccess<settings_map_type>(gSettings), "Account");
// Need to set the LastLogoff time here if we don't have one. LastLogoff is used for "Recent Items" calculation
// and startup time is close enough if we don't have a real value.
@@ -1890,6 +1890,10 @@ bool idle_startup()
gLLWindEnabled = gSavedSettings.getBOOL("WindEnabled");
set_startup_status(0.40f, LLTrans::getString("LoginInitializingWorld"), gAgent.mMOTD);
// Initialize the rest of the world.
gViewerWindow->initWorldUI_postLogin();
display_startup();
// We should have an agent id by this point.
llassert(!(gAgentID == LLUUID::null));

View File

@@ -743,9 +743,6 @@ void LLTextureCacheWorker::endWork(S32 param, bool aborted)
LLTextureCache::LLTextureCache(bool threaded)
: LLWorkerThread("TextureCache", threaded),
mWorkersMutex(NULL),
mHeaderMutex(NULL),
mListMutex(NULL),
mHeaderAPRFile(NULL),
mReadOnly(TRUE), //do not allow to change the texture cache until setReadOnly() is called.
mTexturesSizeTotal(0),
@@ -1426,7 +1423,7 @@ void LLTextureCache::readHeaderCache()
{
// Special case: cache size was reduced, need to remove entries
// Note: After we prune entries, we will call this again and create the LRU
U32 entries_to_purge = (num_entries-empty_entries) - sCacheMaxEntries;
U32 entries_to_purge = (num_entries - empty_entries) - sCacheMaxEntries;
llinfos << "Texture Cache Entries: " << num_entries << " Max: " << sCacheMaxEntries << " Empty: " << empty_entries << " Purging: " << entries_to_purge << llendl;
// We can exit the following loop with the given condition, since if we'd reach the end of the lru set we'd have:
// purge_list.size() = lru.size() = num_entries - empty_entries = entries_to_purge + sCacheMaxEntries >= entries_to_purge

View File

@@ -143,9 +143,6 @@ protected:
std::string getTextureFileName(const LLUUID& id);
void addCompleted(Responder* responder, bool success);
protected:
//void setFileAPRPool(apr_pool_t* pool) { mFileAPRPool = pool ; }
private:
void setDirNames(ELLPath location);
void readHeaderCache();

View File

@@ -425,7 +425,7 @@ class SGHostBlackList{
static void lock() {
if (!sMutex)
sMutex = new LLMutex(0);
sMutex = new LLMutex;
sMutex->lock();
}
@@ -767,7 +767,6 @@ LLTextureFetchWorker::LLTextureFetchWorker(LLTextureFetch* fetcher,
mRetryAttempt(0),
mActiveCount(0),
mGetStatus(0),
mWorkMutex(NULL),
mFirstPacket(0),
mLastPacket(-1),
mTotalPackets(0),
@@ -1943,8 +1942,6 @@ LLTextureFetch::LLTextureFetch(LLTextureCache* cache, LLImageDecodeThread* image
mDebugPause(FALSE),
mPacketCount(0),
mBadPacketCount(0),
mQueueMutex(getAPRPool()),
mNetworkQueueMutex(getAPRPool()),
mTextureCache(cache),
mImageDecodeThread(imagedecodethread),
mTextureBandwidth(0),

0
indra/newview/lltoolpipette.cpp Executable file → Normal file
View File

0
indra/newview/lltoolpipette.h Executable file → Normal file
View File

View File

@@ -36,6 +36,7 @@
#include "lltranslate.h"
#include "llui.h"
#include "llversionviewer.h"
#include "llweb.h"
// <edit>
#include "llviewercontrol.h"
@@ -79,7 +80,7 @@ void LLTranslate::translateMessage(LLHTTPClient::ResponderPtr &result, const std
//static
void LLTranslate::getTranslateUrl(std::string &translateUrl, const std::string &fromLang, const std::string &toLang, const std::string &mesg)
{
std::string escaped_mesg = curl_escape(mesg.c_str(), mesg.size());
std::string escaped_mesg = LLWeb::curlEscape(mesg);
translateUrl = m_GoogleURL
+ escaped_mesg + m_GoogleLangSpec

View File

@@ -74,7 +74,7 @@ bool LLURLHistory::loadFile(const std::string& filename)
// static
bool LLURLHistory::saveFile(const std::string& filename)
{
std::string temp_str = gDirUtilp->getLindenUserDir();
std::string temp_str = gDirUtilp->getLindenUserDir(true);
if( temp_str.empty() )
{
llwarns << "Can't save. No user directory set." << llendl;

View File

@@ -75,6 +75,7 @@
#include "llnetmap.h"
#include "llrender.h"
#include "llfloaterchat.h"
#include "aithreadsafe.h"
#include "llviewerobjectlist.h"
#include "lldrawpoolbump.h"
#include "emeraldboobutils.h"
@@ -83,8 +84,7 @@
BOOL gHackGodmode = FALSE;
#endif
std::map<std::string, LLControlGroup*> gSettings;
AITHREADSAFE(settings_map_type, gSettings,);
LLControlGroup gSavedSettings; // saved at end of session
LLControlGroup gSavedPerAccountSettings; // saved at end of session
LLControlGroup gColors; // read-only
@@ -218,7 +218,7 @@ static bool handleAvatarLODChanged(const LLSD& newvalue)
static bool handleAvatarPhysicsLODChanged(const LLSD& newvalue)
{
LLVOAvatar::sLODFactor = (F32) newvalue.asReal();
LLVOAvatar::sPhysicsLODFactor = (F32) newvalue.asReal();
return true;
}

View File

@@ -36,6 +36,7 @@
#include <map>
#include "llcontrol.h"
#include "lluictrl.h"
#include "aithreadsafe.h"
// Enabled this definition to compile a 'hacked' viewer that
// allows a hacked godmode to be toggled on and off.
@@ -48,7 +49,8 @@ extern BOOL gHackGodmode;
//setting variables are declared in this function
void settings_setup_listeners();
extern std::map<std::string, LLControlGroup*> gSettings;
typedef std::map<std::string, LLControlGroup*> settings_map_type;
extern AIThreadSafe<settings_map_type> gSettings;
// for the graphics settings
void create_graphics_group(LLControlGroup& group);

View File

@@ -6643,7 +6643,7 @@ class LLFloaterVisible : public view_listener_t
}
else if (floater_name == "teleport history")
{
new_value = gFloaterTeleportHistory->getVisible();
new_value = (gFloaterTeleportHistory && gFloaterTeleportHistory->getVisible());
}
else if (floater_name == "im")
{

0
indra/newview/llviewerobjectbackup.cpp Executable file → Normal file
View File

0
indra/newview/llviewerobjectbackup.h Executable file → Normal file
View File

View File

@@ -1092,9 +1092,9 @@ void LLViewerObjectList::renderObjectsForMap(LLNetMap &netmap)
LLViewerObject* objectp = *iter;
llassert_always(objectp);
llassert_always(!objectp->isDead());
if (!objectp->getRegion() || objectp->isOrphaned() || objectp->isAttachment())
llassert(!objectp->isDead());
if (objectp->isDead() || !objectp->getRegion() || objectp->isOrphaned() || objectp->isAttachment())
{
continue;
}

View File

@@ -164,7 +164,7 @@
#include "llinstantmessage.h"
#include "llinvite.h"
//#include "llloginflags.h"
#include "llmail.h"
//#include "llmail.h"
#include "llmessagethrottle.h"
#include "llnamevalue.h"
#include "llpacketack.h"

View File

@@ -310,7 +310,9 @@ void LLViewerShaderMgr::setShaders()
S32 deferred_class = 0;
if (LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred") &&
gSavedSettings.getBOOL("RenderDeferred"))
gSavedSettings.getBOOL("RenderDeferred") &&
LLFeatureManager::getInstance()->isFeatureAvailable("WindLightUseAtmosShaders") &&
gSavedSettings.getBOOL("WindLightUseAtmosShaders"))
{
deferred_class = 1;
@@ -319,9 +321,6 @@ void LLViewerShaderMgr::setShaders()
//make sure hardware skinning is enabled
gSavedSettings.setBOOL("RenderAvatarVP", TRUE);
//make sure atmospheric shaders are enabled
gSavedSettings.setBOOL("WindLightUseAtmosShaders", TRUE);
}
if (!(LLFeatureManager::getInstance()->isFeatureAvailable("WindLightUseAtmosShaders")
&& gSavedSettings.getBOOL("WindLightUseAtmosShaders")))

View File

@@ -1912,7 +1912,8 @@ void LLViewerWindow::initWorldUI()
S32 width = mRootView->getRect().getWidth();
LLRect full_window(0, height, width, 0);
if ( gBottomPanel == NULL ) // Don't re-enter if objects are alreay created
// Don't re-enter if objects are alreay created
if (gBottomPanel == NULL)
{
// panel containing chatbar, toolbar, and overlay, over floaters
gBottomPanel = new LLBottomPanel(mRootView->getRect());
@@ -1925,6 +1926,57 @@ void LLViewerWindow::initWorldUI()
gIMMgr = LLIMMgr::getInstance();
//
// Tools for building
//
init_menus();
// Toolbox floater
gFloaterTools = new LLFloaterTools();
gFloaterTools->setVisible(FALSE);
}
if ( gHUDView == NULL )
{
LLRect hud_rect = full_window;
hud_rect.mBottom += 50;
if (gMenuBarView)
{
hud_rect.mTop -= gMenuBarView->getRect().getHeight();
}
gHUDView = new LLHUDView(hud_rect);
// put behind everything else in the UI
mRootView->addChildAtEnd(gHUDView);
}
}
// initWorldUI that wasn't before logging in. Some of this may require the access the 'LindenUserDir'.
void LLViewerWindow::initWorldUI_postLogin()
{
S32 height = mRootView->getRect().getHeight();
S32 width = mRootView->getRect().getWidth();
LLRect full_window(0, height, width, 0);
// Don't re-enter if objects are alreay created.
if (!gStatusBar)
{
// Status bar
S32 menu_bar_height = gMenuBarView->getRect().getHeight();
LLRect root_rect = getRootView()->getRect();
LLRect status_rect(0, root_rect.getHeight(), root_rect.getWidth(), root_rect.getHeight() - menu_bar_height);
gStatusBar = new LLStatusBar(std::string("status"), status_rect);
gStatusBar->setFollows(FOLLOWS_LEFT | FOLLOWS_RIGHT | FOLLOWS_TOP);
gStatusBar->reshape(root_rect.getWidth(), gStatusBar->getRect().getHeight(), TRUE);
gStatusBar->translate(0, root_rect.getHeight() - gStatusBar->getRect().getHeight());
// sync bg color with menu bar
gStatusBar->setBackgroundColor( gMenuBarView->getBackgroundColor() );
getRootView()->addChild(gStatusBar);
// Menu holder appears on top to get first pass at all mouse events
getRootView()->sendChildToFront(gMenuHolder);
if ( gSavedPerAccountSettings.getBOOL("LogShowHistory") )
{
LLFloaterChat::getInstance(LLSD())->loadHistory();
@@ -1950,47 +2002,7 @@ void LLViewerWindow::initWorldUI()
gFloaterTeleportHistory = new LLFloaterTeleportHistory();
gFloaterTeleportHistory->setVisible(FALSE);
//
// Tools for building
//
// Toolbox floater
init_menus();
gFloaterTools = new LLFloaterTools();
gFloaterTools->setVisible(FALSE);
// Status bar
S32 menu_bar_height = gMenuBarView->getRect().getHeight();
LLRect root_rect = getRootView()->getRect();
LLRect status_rect(0, root_rect.getHeight(), root_rect.getWidth(), root_rect.getHeight() - menu_bar_height);
gStatusBar = new LLStatusBar(std::string("status"), status_rect);
gStatusBar->setFollows(FOLLOWS_LEFT | FOLLOWS_RIGHT | FOLLOWS_TOP);
gStatusBar->reshape(root_rect.getWidth(), gStatusBar->getRect().getHeight(), TRUE);
gStatusBar->translate(0, root_rect.getHeight() - gStatusBar->getRect().getHeight());
// sync bg color with menu bar
gStatusBar->setBackgroundColor( gMenuBarView->getBackgroundColor() );
LLFloaterChatterBox::createInstance(LLSD());
getRootView()->addChild(gStatusBar);
// menu holder appears on top to get first pass at all mouse events
getRootView()->sendChildToFront(gMenuHolder);
}
if ( gHUDView == NULL )
{
LLRect hud_rect = full_window;
hud_rect.mBottom += 50;
if (gMenuBarView)
{
hud_rect.mTop -= gMenuBarView->getRect().getHeight();
}
gHUDView = new LLHUDView(hud_rect);
// put behind everything else in the UI
mRootView->addChildAtEnd(gHUDView);
}
}

View File

@@ -144,6 +144,7 @@ public:
void adjustRectanglesForFirstUse(const LLRect& window);
void adjustControlRectanglesForFirstUse(const LLRect& window);
void initWorldUI();
void initWorldUI_postLogin();
//
// LLWindowCallback interface implementation

View File

@@ -1781,7 +1781,7 @@ void LLVoiceClient::stateMachine()
if(!mSocket)
{
mSocket = LLSocket::create(gAPRPoolp, LLSocket::STREAM_TCP);
mSocket = LLSocket::create(LLSocket::STREAM_TCP);
}
mConnected = mSocket->blockingConnect(mDaemonHost);

View File

@@ -184,8 +184,8 @@ void LLWatchdog::init(killer_event_callback func)
mKillerCallback = func;
if(!mSuspectsAccessMutex && !mTimer)
{
mSuspectsAccessMutex = new LLMutex(NULL);
mTimer = new LLWatchdogTimerThread();
mSuspectsAccessMutex = new LLMutex;
mTimer = new LLWatchdogTimerThread;
mTimer->setSleepTime(WATCHDOG_SLEEP_TIME_USEC / 1000);
mLastClockCount = LLTimer::getTotalTime();

View File

@@ -143,10 +143,7 @@ void LLWaterParamManager::loadAllPresets(const std::string& file_name)
void LLWaterParamManager::loadPreset(const std::string & name,bool propagate)
{
// bugfix for SL-46920: preventing filenames that break stuff.
char * curl_str = curl_escape(name.c_str(), name.size());
std::string escaped_filename(curl_str);
curl_free(curl_str);
curl_str = NULL;
std::string escaped_filename = LLWeb::curlEscape(name);
escaped_filename += ".xml";
@@ -199,10 +196,7 @@ void LLWaterParamManager::loadPreset(const std::string & name,bool propagate)
void LLWaterParamManager::savePreset(const std::string & name)
{
// bugfix for SL-46920: preventing filenames that break stuff.
char * curl_str = curl_escape(name.c_str(), name.size());
std::string escaped_filename(curl_str);
curl_free(curl_str);
curl_str = NULL;
std::string escaped_filename = LLWeb::curlEscape(name);
escaped_filename += ".xml";
@@ -415,10 +409,7 @@ bool LLWaterParamManager::removeParamSet(const std::string& name, bool delete_fr
std::string path_name(gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight/water", ""));
// use full curl escaped name
char * curl_str = curl_escape(name.c_str(), name.size());
std::string escaped_name(curl_str);
curl_free(curl_str);
curl_str = NULL;
std::string escaped_name = LLWeb::curlEscape(name);
gDirUtilp->deleteFilesInDir(path_name, escaped_name + ".xml");
}

View File

@@ -68,6 +68,36 @@ void LLWeb::loadURLExternal(const std::string& url)
}
// static
std::string LLWeb::curlEscape(const std::string& url)
{
static const char hex[] = "0123456789ABCDEF";
std::stringstream escaped_url;
for (std::string::const_iterator iter = url.begin(); iter != url.end(); ++iter)
{
switch(*iter) {
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
case 'a': case 'b': case 'c': case 'd': case 'e':
case 'f': case 'g': case 'h': case 'i': case 'j':
case 'k': case 'l': case 'm': case 'n': case 'o':
case 'p': case 'q': case 'r': case 's': case 't':
case 'u': case 'v': case 'w': case 'x': case 'y': case 'z':
case 'A': case 'B': case 'C': case 'D': case 'E':
case 'F': case 'G': case 'H': case 'I': case 'J':
case 'K': case 'L': case 'M': case 'N': case 'O':
case 'P': case 'Q': case 'R': case 'S': case 'T':
case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z':
escaped_url << (*iter);
break;
default:
unsigned char c = (unsigned char)(*iter);
escaped_url << '%' << hex[c>>4] << hex[c&0xF];
}
}
return escaped_url.str();
}
// static
std::string LLWeb::escapeURL(const std::string& url)
{

View File

@@ -51,6 +51,9 @@ public:
// Loads unescaped url in external browser.
static void loadURLExternal(const std::string& url);
// Behaves like the old curl_escape.
static std::string curlEscape(const std::string& url);
// Returns escaped (eg, " " to "%20") url
static std::string escapeURL(const std::string& url);

View File

@@ -862,7 +862,8 @@ void LLWinDebug::generateCrashStacks(struct _EXCEPTION_POINTERS *exception_infop
// Since there is exception info... Release the hounds.
gEmergencyMemoryReserve.release();
if(gSavedSettings.getControl("SaveMinidump").notNull() && gSavedSettings.getBOOL("SaveMinidump"))
LLControlVariable* save_minimap = gSavedSettings.getControl("SaveMinidump");
if(save_minimap && save_minimap->getValue().asBoolean())
{
_MINIDUMP_EXCEPTION_INFORMATION ExInfo;

View File

@@ -35,6 +35,7 @@
#include "llwldaycycle.h"
#include "llsdserialize.h"
#include "llwlparammanager.h"
#include "llweb.h"
#include "llviewerwindow.h"
@@ -57,10 +58,7 @@ void LLWLDayCycle::loadDayCycle(const std::string & fileName)
mTimeMap.clear();
// bugfix for SL-46920: preventing filenames that break stuff.
char * curl_str = curl_escape(fileName.c_str(), fileName.size());
std::string escaped_filename(curl_str);
curl_free(curl_str);
curl_str = NULL;
std::string escaped_filename = LLWeb::curlEscape(fileName);
escaped_filename += ".xml";
@@ -125,10 +123,7 @@ void LLWLDayCycle::saveDayCycle(const std::string & fileName)
{
// bugfix for SL-46920: preventing filenames that break stuff.
char * curl_str = curl_escape(fileName.c_str(), fileName.size());
std::string escaped_filename(curl_str);
curl_free(curl_str);
curl_str = NULL;
std::string escaped_filename = LLWeb::curlEscape(fileName);
escaped_filename += ".xml";

View File

@@ -187,10 +187,7 @@ void LLWLParamManager::loadPreset(const std::string & name,bool propagate)
{
// bugfix for SL-46920: preventing filenames that break stuff.
char * curl_str = curl_escape(name.c_str(), name.size());
std::string escaped_filename(curl_str);
curl_free(curl_str);
curl_str = NULL;
std::string escaped_filename = LLWeb::curlEscape(name);
escaped_filename += ".xml";
@@ -244,10 +241,7 @@ void LLWLParamManager::loadPreset(const std::string & name,bool propagate)
void LLWLParamManager::savePreset(const std::string & name)
{
// bugfix for SL-46920: preventing filenames that break stuff.
char * curl_str = curl_escape(name.c_str(), name.size());
std::string escaped_filename(curl_str);
curl_free(curl_str);
curl_str = NULL;
std::string escaped_filename = LLWeb::curlEscape(name);
escaped_filename += ".xml";
@@ -531,10 +525,7 @@ bool LLWLParamManager::removeParamSet(const std::string& name, bool delete_from_
std::string path_name(gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight/skies", ""));
// use full curl escaped name
char * curl_str = curl_escape(name.c_str(), name.size());
std::string escaped_name(curl_str);
curl_free(curl_str);
curl_str = NULL;
std::string escaped_name = LLWeb::curlEscape(name);
gDirUtilp->deleteFilesInDir(path_name, escaped_name + ".xml");
}

View File

@@ -1386,26 +1386,17 @@ void send_agent_resume()
LLAppViewer::instance()->resumeMainloopTimeout();
}
static LLVector3d unpackLocalToGlobalPosition(U32 compact_local, const LLVector3d& region_origin)
{
LLVector3d pos_global;
LLVector3 pos_local;
U8 bits;
bits = compact_local & 0xFF;
pos_local.mV[VZ] = F32(bits) * 4.f;
compact_local >>= 8;
bits = compact_local & 0xFF;
pos_local.mV[VY] = (F32)bits;
compact_local >>= 8;
bits = compact_local & 0xFF;
pos_local.mV[VX] = (F32)bits;
pos_global.setVec( pos_local );
pos_global += region_origin;
return pos_global;
static LLVector3d unpackLocalToGlobalPosition(U32 compact_local, const LLVector3d& region_origin)
{
LLVector3d pos_global(region_origin);
LLVector3d pos_local;
pos_local.mdV[VZ] = (compact_local & 0xFFU) * 4;
pos_local.mdV[VY] = (compact_local >> 8) & 0xFFU;
pos_local.mdV[VX] = (compact_local >> 16) & 0xFFU;
pos_global += pos_local;
return pos_global;
}
void LLWorld::getAvatars(std::vector<LLUUID>* avatar_ids, std::vector<LLVector3d>* positions, const LLVector3d& relative_to, F32 radius) const

View File

@@ -563,6 +563,7 @@ void LLPipeline::allocateScreenBuffer(U32 resX, U32 resY)
void LLPipeline::updateRenderDeferred()
{
sRenderDeferred = (gSavedSettings.getBOOL("RenderDeferred") &&
LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred") &&
LLRenderTarget::sUseFBO &&
gSavedSettings.getBOOL("VertexShaderEnable") &&
gSavedSettings.getBOOL("RenderAvatarVP") &&

View File

@@ -626,4 +626,4 @@ void QToolAlign::align()
LLSelectMgr::getInstance()->sendMultipleUpdate(UPD_POSITION);
}
}

View File

@@ -46,4 +46,4 @@ private:
BOOL mForce;
};
#endif // Q_QTOOLALIGN_H
#endif // Q_QTOOLALIGN_H

View File

@@ -75,4 +75,4 @@ private:
static bool doDelete;
static std::stringstream sstr;
static int countingDone;
};
};

View File

@@ -389,5 +389,6 @@
<texture name="media_btn_scrollup.png"/>
<texture name="media_btn_stoploading.png"/>
<texture name="media_panel_divider.png"/>
<texture name="media_panel_scrollbg.png"/>
</textures>

View File

@@ -69,6 +69,19 @@
mouse_opaque="true" name="vbo_stream" radio_style="false"
tool_tip="Disabling this may improve performance when VBOs are enabled. Disabling produced observable improvement on various AMD GPUs."
width="315" />
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom_delta="-20" drop_shadow_visible="true" enabled="true" follows="left|top"
font="SansSerifSmall" h_pad="0" halign="left" height="12"
left="10" mouse_opaque="true" name="Enable FBO:" v_pad="0"
width="140">
Enable Framebuffer Objects:
</text>
<check_box bottom_delta="-5" control_name="RenderUseFBO" enabled="false" follows="left|top"
font="SansSerifSmall" height="16" initial_value="true"
label="Enable OpenGL Frame Buffer Objects" left="148"
mouse_opaque="true" name="fbo" radio_style="false"
tool_tip="Enabling this on modern hardware can provide a performance gain. However, enabling this when combined with antialiasing on AMD GPUs may cause edge artifacts. This setting is required for deferred rendering."
width="315" />
<slider bottom_delta="-21" can_edit_text="false" control_name="TextureMemory"
decimal_digits="0" enabled="true"
follows="left|top" height="16" increment="16"

View File

@@ -1,478 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<mimetypes name="default">
<defaultlabel>
(Unknown)
</defaultlabel>
<defaultwidget>
none
</defaultwidget>
<defaultimpl>
media_plugin_webkit
</defaultimpl>
<widgetset name="web">
<label name="web_label">
Web Content
</label>
<icon>
icn_media_web.tga
</icon>
<default_type>
text/html
</default_type>
<tooltip name="web_tooltip">
This location has Web content
</tooltip>
<playtip name="web_playtip">
Show Web content
</playtip>
<allow_resize>
true
</allow_resize>
<allow_looping>
false
</allow_looping>
</widgetset>
<widgetset name="movie">
<label name="movie_label">
Movie
</label>
<default_type>
video/*
</default_type>
<icon>
icn_media_movie.tga
</icon>
<tooltip name="movie_tooltip">
There is a movie to play here
</tooltip>
<playtip name="movie_playtip">
Play movie
</playtip>
<allow_resize>
false
</allow_resize>
<allow_looping>
true
</allow_looping>
</widgetset>
<widgetset name="image">
<label name="image_label">
Image
</label>
<icon>
icn_media_web.tga
</icon>
<default_type>
image/*
</default_type>
<tooltip name="image_tooltip">
There is an image at this location
</tooltip>
<playtip name="image_playtip">
View this location&apos;s image
</playtip>
<allow_resize>
false
</allow_resize>
<allow_looping>
false
</allow_looping>
</widgetset>
<widgetset name="audio">
<label name="audio_label">
Audio
</label>
<icon>
icn_media_web.tga
</icon>
<default_type>
audio/*
</default_type>
<tooltip name="audio_tooltip">
There is audio at this location
</tooltip>
<playtip name="audio_playtip">
Play this location&apos;s audio
</playtip>
<allow_resize>
false
</allow_resize>
<allow_looping>
true
</allow_looping>
</widgetset>
<scheme name="rtsp">
<label name="rtsp_label">
Real Time Streaming
</label>
<widgettype>
movie
</widgettype>
<impl>
media_plugin_quicktime
</impl>
</scheme>
<mimetype name="blank">
<label name="blank_label">
- None -
</label>
<widgettype>
none
</widgettype>
<impl>
media_plugin_webkit
</impl>
</mimetype>
<mimetype name="none/none">
<label name="none/none_label">
- None -
</label>
<widgettype>
none
</widgettype>
<impl>
media_plugin_webkit
</impl>
</mimetype>
<mimetype name="audio/*">
<label name="audio2_label">
Audio
</label>
<widgettype>
audio
</widgettype>
<impl>
media_plugin_quicktime
</impl>
</mimetype>
<mimetype name="video/*">
<label name="video2_label">
Video
</label>
<widgettype>
movie
</widgettype>
<impl>
media_plugin_quicktime
</impl>
</mimetype>
<mimetype name="image/*">
<label name="image2_label">
Image
</label>
<widgettype>
image
</widgettype>
<impl>
media_plugin_webkit
</impl>
</mimetype>
<mimetype menu="1" name="video/vnd.secondlife.qt.legacy">
<label name="vnd.secondlife.qt.legacy_label">
Movie (QuickTime)
</label>
<widgettype>
movie
</widgettype>
<impl>
media_plugin_quicktime
</impl>
</mimetype>
<mimetype name="application/javascript">
<label name="application/javascript_label">
Javascript
</label>
<widgettype>
web
</widgettype>
<impl>
media_plugin_webkit
</impl>
</mimetype>
<mimetype name="application/ogg">
<label name="application/ogg_label">
Ogg Audio/Video
</label>
<widgettype>
audio
</widgettype>
<impl>
media_plugin_quicktime
</impl>
</mimetype>
<mimetype name="application/pdf">
<label name="application/pdf_label">
PDF Document
</label>
<widgettype>
image
</widgettype>
<impl>
media_plugin_webkit
</impl>
</mimetype>
<mimetype name="application/postscript">
<label name="application/postscript_label">
Postscript Document
</label>
<widgettype>
image
</widgettype>
<impl>
media_plugin_webkit
</impl>
</mimetype>
<mimetype name="application/rtf">
<label name="application/rtf_label">
Rich Text (RTF)
</label>
<widgettype>
image
</widgettype>
<impl>
media_plugin_webkit
</impl>
</mimetype>
<mimetype name="application/smil">
<label name="application/smil_label">
Synchronized Multimedia Integration Language (SMIL)
</label>
<widgettype>
movie
</widgettype>
<impl>
media_plugin_webkit
</impl>
</mimetype>
<mimetype name="application/xhtml+xml">
<label name="application/xhtml+xml_label">
Web Page (XHTML)
</label>
<widgettype>
web
</widgettype>
<impl>
media_plugin_webkit
</impl>
</mimetype>
<mimetype name="application/x-director">
<label name="application/x-director_label">
Macromedia Director
</label>
<widgettype>
image
</widgettype>
<impl>
media_plugin_webkit
</impl>
</mimetype>
<mimetype name="audio/mid">
<label name="audio/mid_label">
Audio (MIDI)
</label>
<widgettype>
audio
</widgettype>
<impl>
media_plugin_quicktime
</impl>
</mimetype>
<mimetype name="audio/mpeg">
<label name="audio/mpeg_label">
Audio (MP3)
</label>
<widgettype>
audio
</widgettype>
<impl>
media_plugin_quicktime
</impl>
</mimetype>
<mimetype name="audio/x-aiff">
<label name="audio/x-aiff_label">
Audio (AIFF)
</label>
<widgettype>
audio
</widgettype>
<impl>
media_plugin_quicktime
</impl>
</mimetype>
<mimetype name="audio/x-wav">
<label name="audio/x-wav_label">
Audio (WAV)
</label>
<widgettype>
audio
</widgettype>
<impl>
media_plugin_quicktime
</impl>
</mimetype>
<mimetype menu="1" name="image/bmp">
<label name="image/bmp_label">
Image (BMP)
</label>
<widgettype>
image
</widgettype>
<impl>
media_plugin_webkit
</impl>
</mimetype>
<mimetype menu="1" name="image/gif">
<label name="image/gif_label">
Image (GIF)
</label>
<widgettype>
image
</widgettype>
<impl>
media_plugin_webkit
</impl>
</mimetype>
<mimetype menu="1" name="image/jpeg">
<label name="image/jpeg_label">
Image (JPEG)
</label>
<widgettype>
image
</widgettype>
<impl>
media_plugin_webkit
</impl>
</mimetype>
<mimetype menu="1" name="image/png">
<label name="image/png_label">
Image (PNG)
</label>
<widgettype>
image
</widgettype>
<impl>
media_plugin_webkit
</impl>
</mimetype>
<mimetype name="image/svg+xml">
<label name="image/svg+xml_label">
Image (SVG)
</label>
<widgettype>
image
</widgettype>
<impl>
media_plugin_webkit
</impl>
</mimetype>
<mimetype menu="1" name="image/tiff">
<label name="image/tiff_label">
Image (TIFF)
</label>
<widgettype>
image
</widgettype>
<impl>
media_plugin_webkit
</impl>
</mimetype>
<mimetype menu="1" name="text/html">
<label name="text/html_label">
Web Page
</label>
<widgettype>
web
</widgettype>
<impl>
media_plugin_webkit
</impl>
</mimetype>
<mimetype menu="1" name="text/plain">
<label name="text/plain_label">
Text
</label>
<widgettype>
text
</widgettype>
<impl>
media_plugin_webkit
</impl>
</mimetype>
<mimetype name="text/xml">
<label name="text/xml_label">
XML
</label>
<widgettype>
text
</widgettype>
<impl>
media_plugin_webkit
</impl>
</mimetype>
<mimetype menu="1" name="video/mpeg">
<label name="video/mpeg_label">
Movie (MPEG)
</label>
<widgettype>
movie
</widgettype>
<impl>
media_plugin_quicktime
</impl>
</mimetype>
<mimetype name="video/mp4">
<label name="video/mp4_label">
Movie (MP4)
</label>
<widgettype>
movie
</widgettype>
<impl>
media_plugin_quicktime
</impl>
</mimetype>
<mimetype menu="1" name="video/quicktime">
<label name="video/quicktime_label">
Movie (QuickTime)
</label>
<widgettype>
movie
</widgettype>
<impl>
media_plugin_quicktime
</impl>
</mimetype>
<mimetype name="video/x-ms-asf">
<label name="video/x-ms-asf_label">
Movie (Windows Media ASF)
</label>
<widgettype>
movie
</widgettype>
<impl>
media_plugin_quicktime
</impl>
</mimetype>
<mimetype name="video/x-ms-wmv">
<label name="video/x-ms-wmv_label">
Movie (Windows Media WMV)
</label>
<widgettype>
movie
</widgettype>
<impl>
media_plugin_quicktime
</impl>
</mimetype>
<mimetype menu="1" name="video/x-msvideo">
<label name="video/x-msvideo_label">
Movie (AVI)
</label>
<widgettype>
movie
</widgettype>
<impl>
media_plugin_quicktime
</impl>
</mimetype>
</mimetypes>

View File

@@ -175,8 +175,8 @@
movie
</widgettype>
<impl>
media_plugin_gstreamer
</impl>
media_plugin_gstreamer
</impl>
</mimetype>
<mimetype name="application/javascript">
<label name="application/javascript_label">
@@ -235,7 +235,7 @@
</mimetype>
<mimetype name="application/smil">
<label name="application/smil_label">
Synchronized Multimedia Integration Language (SMIL)
Synchronized Multimedia Integration Language (SMIL)
</label>
<widgettype>
movie
@@ -384,8 +384,8 @@
web
</widgettype>
<impl>
media_plugin_webkit
</impl>
media_plugin_webkit
</impl>
</mimetype>
<mimetype menu="1" name="text/plain">
<label name="text/plain_label">
@@ -417,8 +417,8 @@
movie
</widgettype>
<impl>
media_plugin_gstreamer
</impl>
media_plugin_gstreamer
</impl>
</mimetype>
<mimetype name="video/mp4">
<label name="video/mp4_label">
@@ -428,8 +428,8 @@
movie
</widgettype>
<impl>
media_plugin_gstreamer
</impl>
media_plugin_gstreamer
</impl>
</mimetype>
<mimetype menu="1" name="video/quicktime">
<label name="video/quicktime_label">
@@ -439,8 +439,8 @@
movie
</widgettype>
<impl>
media_plugin_gstreamer
</impl>
media_plugin_gstreamer
</impl>
</mimetype>
<mimetype name="video/x-ms-asf">
<label name="video/x-ms-asf_label">
@@ -450,8 +450,8 @@
movie
</widgettype>
<impl>
media_plugin_gstreamer
</impl>
media_plugin_gstreamer
</impl>
</mimetype>
<mimetype name="video/x-ms-wmv">
<label name="video/x-ms-wmv_label">
@@ -461,8 +461,8 @@
movie
</widgettype>
<impl>
media_plugin_gstreamer
</impl>
media_plugin_gstreamer
</impl>
</mimetype>
<mimetype menu="1" name="video/x-msvideo">
<label name="video/x-msvideo_label">
@@ -472,7 +472,7 @@
movie
</widgettype>
<impl>
media_plugin_gstreamer
</impl>
media_plugin_gstreamer
</impl>
</mimetype>
</mimetypes>

View File

@@ -175,8 +175,8 @@
movie
</widgettype>
<impl>
media_plugin_quicktime
</impl>
media_plugin_quicktime
</impl>
</mimetype>
<mimetype name="application/javascript">
<label name="application/javascript_label">
@@ -235,7 +235,7 @@
</mimetype>
<mimetype name="application/smil">
<label name="application/smil_label">
Synchronized Multimedia Integration Language (SMIL)
Synchronized Multimedia Integration Language (SMIL)
</label>
<widgettype>
movie
@@ -384,8 +384,8 @@
web
</widgettype>
<impl>
media_plugin_webkit
</impl>
media_plugin_webkit
</impl>
</mimetype>
<mimetype menu="1" name="text/plain">
<label name="text/plain_label">
@@ -417,8 +417,8 @@
movie
</widgettype>
<impl>
media_plugin_quicktime
</impl>
media_plugin_quicktime
</impl>
</mimetype>
<mimetype name="video/mp4">
<label name="video/mp4_label">
@@ -428,8 +428,8 @@
movie
</widgettype>
<impl>
media_plugin_quicktime
</impl>
media_plugin_quicktime
</impl>
</mimetype>
<mimetype menu="1" name="video/quicktime">
<label name="video/quicktime_label">
@@ -439,8 +439,8 @@
movie
</widgettype>
<impl>
media_plugin_quicktime
</impl>
media_plugin_quicktime
</impl>
</mimetype>
<mimetype name="video/x-ms-asf">
<label name="video/x-ms-asf_label">
@@ -450,8 +450,8 @@
movie
</widgettype>
<impl>
media_plugin_quicktime
</impl>
media_plugin_quicktime
</impl>
</mimetype>
<mimetype name="video/x-ms-wmv">
<label name="video/x-ms-wmv_label">
@@ -461,8 +461,8 @@
movie
</widgettype>
<impl>
media_plugin_quicktime
</impl>
media_plugin_quicktime
</impl>
</mimetype>
<mimetype menu="1" name="video/x-msvideo">
<label name="video/x-msvideo_label">
@@ -472,7 +472,7 @@
movie
</widgettype>
<impl>
media_plugin_quicktime
</impl>
media_plugin_quicktime
</impl>
</mimetype>
</mimetypes>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel border="true" bottom="-409" enabled="true" follows="left|top|right|bottom"
height="408" label="Graphics" left="102" mouse_opaque="true"
<panel border="true" bottom="-439" enabled="true" follows="left|top|right|bottom"
height="438" label="Graphics" left="102" mouse_opaque="true"
name="Display panel" width="517">
<button bottom="-22" follows="left|top" font="SansSerif" height="18" label="?"
left="470" name="GraphicsPreferencesHelpButton" width="22" />
@@ -24,11 +24,8 @@
<combo_box allow_text_entry="false" bottom="-67" enabled="true" follows="left|top"
height="18" left="185" max_chars="20" mouse_opaque="true"
name="windowsize combo" width="150">
<combo_item type="string" length="1" enabled="true" name="640x480" value="640 x 480">
640x480
</combo_item>
<combo_item type="string" length="1" enabled="true" name="800x600" value="800 x 600">
800x600
800x600
</combo_item>
<combo_item type="string" length="1" enabled="true" name="720x480" value="720 x 480">
720x480 (NTSC)
@@ -39,7 +36,16 @@
<combo_item type="string" length="1" enabled="true" name="1024x768" value="1024 x 768">
1024x768
</combo_item>
<combo_item type="string" length="1" enabled="true" name="1280x720" value="1280 x 720">
1280x720 (HDV720)
</combo_item>
<combo_item type="string" length="1" enabled="true" name="1440x1080" value="1440 x 1080">
1440x1080 (HDV1080)
</combo_item>
<combo_item type="string" length="1" enabled="true" name="1920x1080" value="1920 x 1080">
1920x1080 (HD1080)
</combo_item>
</combo_box>
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-62" drop_shadow_visible="true" enabled="true" follows="left|top"
@@ -67,10 +73,10 @@
5:4 (1280x1024 LCD)
</combo_item>
<combo_item type="string" length="1" enabled="true" name="8:5(Widescreen)" value="1.6">
8:5 (Widescreen)
16:10 (Widescreen PC)
</combo_item>
<combo_item type="string" length="1" enabled="true" name="16:9(Widescreen)" value="1.7777777">
16:9 (Widescreen)
16:9 (Widescreen TV)
</combo_item>
</combo_box>
<check_box bottom="-44" control_name="FullScreenAutoDetectAspectRatio" enabled="true"
@@ -157,8 +163,8 @@
follows="left|top" font="SansSerifSmall" height="16"
initial_value="true" label="Custom" left="385" mouse_opaque="true"
name="CustomSettings" radio_style="false" width="256" />
<view_border bevel_style="none" border_thickness="1" bottom="-375" follows="top|left"
height="260" left="5" name="GraphicsBorder" width="485" />
<view_border bevel_style="none" border_thickness="1" bottom="-405" follows="top|left"
height="290" left="5" name="GraphicsBorder" width="485" />
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-130" drop_shadow_visible="true" enabled="true" follows="left|top"
font="SansSerifSmall" h_pad="0" halign="left" height="12"
@@ -180,18 +186,45 @@
initial_value="true" label="Atmospheric Shaders" left_delta="0"
mouse_opaque="true" name="WindLightUseAtmosShaders" radio_style="false"
width="256" />
<check_box bottom_delta="-17" control_name="RenderDeferred" enabled="true"
follows="left|top" font="SansSerifSmall" height="16"
initial_value="true" label="Deferred Shading" left_delta="0"
mouse_opaque="true" name="RenderDeferred" radio_style="false"
width="256" />
<check_box bottom_delta="-17" control_name="RenderDeferredSunShadow" enabled="true"
follows="left|top" font="SansSerifSmall" height="16"
initial_value="true" label="Primary Shadows" left_delta="0"
mouse_opaque="true" name="RenderDeferredSunShadow" radio_style="false"
width="256" />
<check_box bottom_delta="-17" control_name="RenderWaterReflections" enabled="true"
follows="left|top" font="SansSerifSmall" height="16"
initial_value="true" label="Water Reflections" left_delta="0"
mouse_opaque="true" name="Reflections" radio_style="false" width="256" />
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-223" drop_shadow_visible="true" enabled="true" follows="left|top"
bottom_delta="-17" drop_shadow_visible="true" enabled="true" follows="left|top"
font="SansSerifSmall" h_pad="0" halign="left" height="12"
left="10" mouse_opaque="true" name="ReflectionDetailText" v_pad="0"
width="128">
Reflection Detail:
</text>
<radio_group bottom_delta="-73" control_name="RenderReflectionDetail" draw_border="false"
<combo_box bottom_delta="-20" control_name="RenderReflectionDetail" enabled = "true" follows="left|top" label="Reflection Detail"
left_delta="-2" mouse_opaque="true" name="ReflectionDetailCombo" width="160" height="16">
<combo_item type="string" length="1" name="0" value="0">
Terrain and Trees
</combo_item>
<combo_item type="string" length="1" name="1" value="1">
All Static Objects
</combo_item>
<combo_item type="string" length="1" name="2" value="2">
All Avatars and Objects
</combo_item>
<combo_item type="string" length="1" name="3" value="3">
Everything
</combo_item>
</combo_box>
<!--radio_group bottom_delta="-73" control_name="RenderReflectionDetail" draw_border="false"
enabled="true" follows="left|top" height="70"
left_delta="-2" mouse_opaque="true" name="ReflectionDetailRadio"
width="321">
@@ -211,7 +244,7 @@
left="3" mouse_opaque="true" name="3" width="315">
Everything
</radio_item>
</radio_group>
</radio_group-->
<text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
bottom="-313" drop_shadow_visible="true" enabled="true" follows="left|top"
font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10"
@@ -382,10 +415,10 @@
High
</radio_item>
</radio_group>
<button bottom="-400" enabled="true" font="SansSerif" halign="center" height="20"
<button bottom="-430" enabled="true" font="SansSerif" halign="center" height="20"
label="Recommended Settings" left="130" mouse_opaque="true"
name="Defaults" scale_image="true" width="170" />
<button bottom="-400" enabled="true" font="SansSerif" halign="center" height="20"
<button bottom="-430" enabled="true" font="SansSerif" halign="center" height="20"
label="Hardware Options" label_selected="Hardware Options"
left="310" mouse_opaque="true" name="GraphicsHardwareButton"
scale_image="true" width="170" />

View File

@@ -43,7 +43,7 @@ class LLControlGroupReader_Test : public LLControlGroupReader
public:
LLControlGroupReader_Test() : test_preferred_maturity(SIM_ACCESS_PG) {}
virtual std::string getString(const std::string& name)
virtual std::string getString(const std::string& name) const
{
return "";
}

View File

@@ -122,6 +122,8 @@ class ViewerManifest(LLManifest):
def buildtype(self):
return self.args['buildtype']
def standalone(self):
return self.args['standalone'] == "ON"
def grid(self):
return self.args['grid']
def channel(self):
@@ -261,19 +263,21 @@ class WindowsManifest(ViewerManifest):
self.path("skins/default/xui/en-us/mime_types_windows.xml", "skins/default/xui/en-us/mime_types.xml")
# Get llcommon and deps. If missing assume static linkage and continue.
#~ if self.prefix(src="../../libraries/i686-win32/lib/release", dst=""):
#~ try:
#~ self.path('llcommon.dll')
#~ except RuntimeError, err:
#~ print err.message
#~ print "Skipping llcommon.dll (assuming llcommon was linked statically)"
#~ try:
#~ self.path('libapr-1.dll')
#~ self.path('libaprutil-1.dll')
#~ self.path('libapriconv-1.dll')
#~ except RuntimeError, err:
#~ pass
#~ self.end_prefix()
if self.prefix(src=self.args['configuration'], dst=""):
try:
self.path('llcommon.dll')
except RuntimeError, err:
print err.message
print "Skipping llcommon.dll (assuming llcommon was linked statically)"
self.end_prefix()
if self.prefix(src="../../libraries/i686-win32/lib/release", dst=""):
try:
self.path('libapr-1.dll')
self.path('libaprutil-1.dll')
self.path('libapriconv-1.dll')
except RuntimeError, err:
pass
self.end_prefix()
# For google-perftools tcmalloc allocator.
self.path("../../libraries/i686-win32/lib/release/libtcmalloc_minimal.dll", dst="libtcmalloc_minimal.dll")
@@ -452,9 +456,6 @@ class DarwinManifest(ViewerManifest):
self.path("../../libraries/universal-darwin/lib_release/libvorbis.0.dylib", dst="MacOS/libvorbis.0.dylib")
self.path("../../libraries/universal-darwin/lib_release/libogg.0.dylib", dst="MacOS/libogg.0.dylib")
# hunspell library
#self.path("../../libraries/universal-darwin/lib_release/libhunspell-1.2.dylib", "MacOS/libhunspell-1.2.dylib");
# most everything goes in the Resources directory
if self.prefix(src="", dst="Resources"):
super(DarwinManifest, self).construct()
@@ -494,6 +495,8 @@ class DarwinManifest(ViewerManifest):
self.path("vivox-runtime/universal-darwin/libortp.dylib", "libortp.dylib")
self.path("vivox-runtime/universal-darwin/libvivoxsdk.dylib", "libvivoxsdk.dylib")
self.path("vivox-runtime/universal-darwin/SLVoice", "SLVoice")
self.path("../llcommon/" + self.args['configuration'] + "/libllcommon.dylib", "libllcommon.dylib")
libfile = "lib%s.dylib"
libdir = "../../libraries/universal-darwin/lib_release"
@@ -516,7 +519,8 @@ class DarwinManifest(ViewerManifest):
# dependencies on shared libs
mac_crash_logger_res_path = self.dst_path_of("mac-crash-logger.app/Contents/Resources")
slplugin_res_path = self.dst_path_of("SLPlugin.app/Contents/Resources")
for libfile in ("libapr-1.0.3.7.dylib",
for libfile in ("libllcommon.dylib",
"libapr-1.0.3.7.dylib",
"libaprutil-1.0.3.8.dylib",
"libexpat.0.5.0.dylib"):
target_lib = os.path.join('../../..', libfile)
@@ -759,19 +763,9 @@ class Linux_i686Manifest(LinuxManifest):
def construct(self):
super(Linux_i686Manifest, self).construct()
# install either the libllkdu we just built, or a prebuilt one, in
# decreasing order of preference. for linux package, this goes to bin/
#~ try:
#~ self.path(self.find_existing_file('../llkdu/libllkdu.so',
#~ '../../libraries/i686-linux/lib_release_client/libllkdu.so'),
#~ dst='bin/libllkdu.so')
#~ # keep this one to preserve syntax, open source mangling removes previous lines
#~ pass
#~ except:
#~ print "Skipping libllkdu.so - not found"
#~ pass
self.path("../llcommon/libllcommon.so", "lib/libllcommon.so")
if self.prefix("../../libraries/i686-linux/lib_release_client", dst="lib"):
if (not self.standalone()) and self.prefix("../../libraries/i686-linux/lib_release_client", dst="lib"):
try:
self.path("libkdu_v42R.so", "libkdu.so")
@@ -801,7 +795,6 @@ class Linux_i686Manifest(LinuxManifest):
self.path("libalut.so")
self.path("libopenal.so", "libopenal.so.1")
self.path("libtcmalloc_minimal.so.0")
#self.path("libhunspell-1.2.so.0.0.0", "libhunspell-1.2.so.0")
self.path("libtcmalloc_minimal.so.0.0.0")
self.end_prefix("lib")
@@ -815,12 +808,55 @@ class Linux_i686Manifest(LinuxManifest):
self.path("libvivoxsdk.so")
self.end_prefix("lib")
class Linux_x86_64Manifest(LinuxManifest):
def construct(self):
super(Linux_x86_64Manifest, self).construct()
# support file for valgrind debug tool
self.path("secondlife-i686.supp")
self.path("../llcommon/libllcommon.so", "lib64/libllcommon.so")
if (not self.standalone()) and self.prefix("../../libraries/x86_64-linux/lib_release_client", dst="lib64"):
self.path("libapr-1.so.0")
self.path("libaprutil-1.so.0")
self.path("libdb-4.2.so")
self.path("libcrypto.so.0.9.8")
self.path("libexpat.so.1")
self.path("libhunspell-1.2.so.0.0.0", "libhunspell-1.2.so.0")
self.path("libssl.so.0.9.8")
self.path("libuuid.so", "libuuid.so.1")
self.path("libSDL-1.2.so.0")
self.path("libELFIO.so")
self.path("libjpeg.so.7")
self.path("libpng12.so.0")
self.path("libopenjpeg.so.2")
self.path("libxml2.so.2")
#self.path("libz.so.1") #not needed
# OpenAL
self.path("libopenal.so.1")
self.path("libalut.so.0")
self.end_prefix("lib64")
# Vivox runtimes and libs
if self.prefix(src="vivox-runtime/i686-linux", dst="bin"):
self.path("SLVoice")
self.end_prefix("bin")
if self.prefix(src="vivox-runtime/i686-linux", dst="lib32"):
#self.path("libalut.so")
self.path("libortp.so")
self.path("libvivoxsdk.so")
self.end_prefix("lib32")
# 32bit libs needed for voice
if self.prefix("../../libraries/x86_64-linux/lib_release_client/32bit-compat", dst="lib32"):
self.path("libalut.so")
self.path("libidn.so.11")
self.path("libopenal.so.1")
# self.path("libortp.so")
self.path("libuuid.so.1")
self.end_prefix("lib32")
if __name__ == "__main__":
main()

View File

@@ -178,4 +178,4 @@ void wlfPanel_AdvSettings::onChangePresetName(LLUICtrl* ctrl, void * userData)
current_preset = combo_box->getSelectedValue().asString();
LLWaterParamManager::instance()->loadPreset(current_preset);
}
}
}