Merge branch 'master' of https://github.com/siana/SingularityViewer
This commit is contained in:
@@ -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(
|
||||
|
||||
@@ -12973,7 +12973,7 @@
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>UseOutfitFolders</key>
|
||||
<map>
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
@@ -238,4 +238,4 @@ void ASFloaterContactGroups::populateGroupList()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
*/
|
||||
|
||||
@@ -108,4 +108,4 @@ protected:
|
||||
LLColor4 mKeywordsColor;
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
Binary file not shown.
@@ -66,4 +66,4 @@ DSA *get_dsa2048()
|
||||
if ((dsa->p == NULL) || (dsa->q == NULL) || (dsa->g == NULL))
|
||||
{ DSA_free(dsa); return(NULL); }
|
||||
return(dsa);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -590,4 +590,4 @@ EDSA::~EDSA()
|
||||
{
|
||||
delete mDSAImpl;
|
||||
mDSAImpl = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
0
indra/newview/hippofloaterxml.cpp
Executable file → Normal file
0
indra/newview/hippofloaterxml.h
Executable file → Normal file
0
indra/newview/hippofloaterxml.h
Executable file → Normal 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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -139,6 +139,7 @@ int main( int argc, char **argv )
|
||||
}
|
||||
delete viewer_app_ptr;
|
||||
viewer_app_ptr = NULL;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -119,6 +119,7 @@ int main( int argc, char **argv )
|
||||
}
|
||||
delete viewer_app_ptr;
|
||||
viewer_app_ptr = NULL;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -128,7 +128,7 @@ protected:
|
||||
|
||||
LLScrollingPanelList* mScrollingPanelList;
|
||||
LLScrollableContainerView* mScrollContainer;
|
||||
LLVisualParamReset* mResetParams;
|
||||
LLPointer<LLVisualParamReset> mResetParams;
|
||||
|
||||
LLInventoryObserver* mInventoryObserver;
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
0
indra/newview/llfloatersellland.cpp
Executable file → Normal file
0
indra/newview/llfloatersellland.h
Executable file → Normal file
0
indra/newview/llfloatersellland.h
Executable file → Normal 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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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
2
indra/newview/llinventorybridge.h
Executable file → Normal 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() {}
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 << "®ion=" << curl_region;
|
||||
|
||||
curl_free(curl_region);
|
||||
|
||||
if (!password.empty())
|
||||
{
|
||||
oStr << "&password=" << password;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -847,4 +847,4 @@ void LLPhysicsMotion::reset()
|
||||
mCharacter->setVisualParamWeight((*iter).mParam,(*iter).mParam->getDefaultWeight());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1789,4 +1789,4 @@ void LLPreviewGesture::onDonePreview(LLMultiGesture* gesture, void* data)
|
||||
self->mPreviewGesture = NULL;
|
||||
|
||||
self->refresh();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2669,4 +2669,4 @@ void LLLiveLSLEditor::saveAs()
|
||||
fclose(fp);
|
||||
fp = NULL;
|
||||
}
|
||||
// </edit>
|
||||
// </edit>
|
||||
|
||||
@@ -182,4 +182,4 @@ void LLSavedSettingsGlue::setColor4(const std::string &name, LLColor4 value)
|
||||
gSavedSettings.setColor4(name, value);
|
||||
else
|
||||
gSavedPerAccountSettings.setColor4(name, value);
|
||||
}*/
|
||||
}*/
|
||||
|
||||
@@ -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()); }
|
||||
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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
0
indra/newview/lltoolpipette.cpp
Executable file → Normal file
0
indra/newview/lltoolpipette.h
Executable file → Normal file
0
indra/newview/lltoolpipette.h
Executable file → Normal 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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
0
indra/newview/llviewerobjectbackup.cpp
Executable file → Normal file
0
indra/newview/llviewerobjectbackup.h
Executable file → Normal file
0
indra/newview/llviewerobjectbackup.h
Executable file → Normal 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;
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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")))
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -144,6 +144,7 @@ public:
|
||||
void adjustRectanglesForFirstUse(const LLRect& window);
|
||||
void adjustControlRectanglesForFirstUse(const LLRect& window);
|
||||
void initWorldUI();
|
||||
void initWorldUI_postLogin();
|
||||
|
||||
//
|
||||
// LLWindowCallback interface implementation
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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";
|
||||
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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") &&
|
||||
|
||||
@@ -626,4 +626,4 @@ void QToolAlign::align()
|
||||
|
||||
|
||||
LLSelectMgr::getInstance()->sendMultipleUpdate(UPD_POSITION);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,4 +46,4 @@ private:
|
||||
BOOL mForce;
|
||||
};
|
||||
|
||||
#endif // Q_QTOOLALIGN_H
|
||||
#endif // Q_QTOOLALIGN_H
|
||||
|
||||
@@ -75,4 +75,4 @@ private:
|
||||
static bool doDelete;
|
||||
static std::stringstream sstr;
|
||||
static int countingDone;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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'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'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>
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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 "";
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -178,4 +178,4 @@ void wlfPanel_AdvSettings::onChangePresetName(LLUICtrl* ctrl, void * userData)
|
||||
current_preset = combo_box->getSelectedValue().asString();
|
||||
LLWaterParamManager::instance()->loadPreset(current_preset);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user