diff options
Diffstat (limited to 'indra/newview')
-rw-r--r-- | indra/newview/installers/windows/installer_template.nsi | 21 | ||||
-rw-r--r-- | indra/newview/linux_tools/client-readme.txt | 50 | ||||
-rw-r--r-- | indra/newview/llappviewer.cpp | 43 | ||||
-rw-r--r-- | indra/newview/llappviewerlinux.cpp | 24 | ||||
-rw-r--r-- | indra/newview/llappviewerwin32.cpp | 24 | ||||
-rw-r--r-- | indra/newview/llviewerwindow.cpp | 30 | ||||
-rwxr-xr-x | indra/newview/viewer_manifest.py | 6 |
7 files changed, 104 insertions, 94 deletions
diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi index 8db336f86f..836780d140 100644 --- a/indra/newview/installers/windows/installer_template.nsi +++ b/indra/newview/installers/windows/installer_template.nsi @@ -87,7 +87,6 @@ SetShellVarContext all ; install for all users (if you change this, change it ; Start with some default values. StrCpy $INSTFLAGS "${INSTFLAGS}" -StrCpy $INSTFLAGS "$INSTFLAGS $LANGFLAGS" StrCpy $INSTPROG "${INSTNAME}" StrCpy $INSTEXE "${INSTEXE}" StrCpy $INSTSHORTCUT "${SHORTCUT}" @@ -933,26 +932,6 @@ Function .onInit ; save language in registry WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage" $LANGUAGE - - ; generate language ID that will be used as a command line arg - StrCmp $LANGUAGE "1042" 0 +3 - StrCpy $LANGFLAGS " --set SystemLanguage ko" - Goto EndOfFunc - - StrCmp $LANGUAGE "1041" 0 +3 - StrCpy $LANGFLAGS " --set SystemLanguage ja" - Goto EndOfFunc - - StrCmp $LANGUAGE "1031" 0 +3 - StrCpy $LANGFLAGS " --set SystemLanguage de" - Goto EndOfFunc - - StrCmp $LANGUAGE "1033" 0 +3 - StrCpy $LANGFLAGS " --set SystemLanguage en-us" - Goto EndOfFunc - - EndOfFunc: - FunctionEnd ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/indra/newview/linux_tools/client-readme.txt b/indra/newview/linux_tools/client-readme.txt index 87087be778..179cb9e0b7 100644 --- a/indra/newview/linux_tools/client-readme.txt +++ b/indra/newview/linux_tools/client-readme.txt @@ -12,7 +12,7 @@ Life itself - please see <http://www.secondlife.com/whatis/>. 5. Troubleshooting 5.1. 'Error creating window.' 5.2. System hangs - 5.3. 'Shiny' and client performance + 5.3. Blank window after minimizing it 5.4. Audio 5.5. 'Alt' key for camera controls doesn't work 5.6. In-world movie playback @@ -98,16 +98,6 @@ you wish. These are the most commonly-encountered known issues which are specific to the Beta release of the Linux client. -* VISUAL EFFECTS AND PERFORMANCE - many Linux graphics drivers are not as - robust as their counterparts for other operating systems, so some advanced - Second Life graphical features have been DISABLED by default to aid - stability. See PROBLEM 3 in the TROUBLESHOOTING section if you wish to - turn these on to possibly enhance your experience. - -* MISC - The following features are not currently fully implemented on the - Linux client and are therefore known not to work properly: - * Full Unicode font rendering - * UPLOAD / SAVE / COLOR-PICKER DIALOGS - These only appear when the client is in 'windowed' mode, not 'fullscreen' mode. @@ -156,29 +146,21 @@ SOLUTION:- As a last resort, you can disable most of Second Life's advanced graphics features by editing the 'secondlife' script and removing the '#' from the line which reads '#export LL_GL_NOEXT=x' -PROBLEM 3:- Performance or graphical quality are not as high as I expect. -PROBLEM:- 'SHINY' doesn't work. -PROBLEM:- I can't turn on Anisotropic Filtering, Ripple Water, or AGP. -SOLUTION:- Some graphics performance features in Second Life are disabled - by default for the Linux version due to stability issues with some common - Linux graphic drivers. You can re-enable these features at the slight - risk of decreasing system stability. To do so: - * Edit the 'secondlife' script. Comment-out these lines by putting a '#' - in front of them: 'export LL_GL_BASICEXT=x', 'export LL_GL_NOEXT=x', - 'export LL_GL_BLACKLIST=abcdefghijklmno'. - * Now start Second Life. Some advanced performance features will now be - automatically used, and some new options in Preferences will now be - available to you; there is no guarantee, however, that they will - positively affect performance! -SOLUTION:- If you are not running an official Second Life client obtained from - secondlife.com, you should consider doing so as you may find its - performance to be superior to third-party versions. - -PROBLEM 4:- Sound effects seem to 'lag' a fraction of a second behind - actions. -SOLUTION:- You may uncomment the 'LL_BAD_ESD' line in the 'secondlife' script - to get more responsive audio. However, if you do this then you may - encounter audio issues or a hang during login, so beware. +PROBLEM 3:- After I minimize the Second Life window, it's just blank when + it comes back. +SOLUTION:- Some Linux desktop 'Visual Effects' features are incompatible + with Second Life. One reported solution is to use your desktop + configuration program to disable such effects. For example, on Ubuntu 7.10, + use the desktop toolbar menu to select System -> Preferences -> Appearance, + then change 'Visual Effects' to 'None'. + +PROBLEM 4:- Music and sound effects are silent or very stuttery. +SOLUTION:- The most common solution is to ensure that you have the 'esd' + program (part of the 'esound' package) installed and running before you + start Second Life. Users of Ubuntu (and some other) Linux systems can + simply run the following to install and configure 'esound': + sudo apt-get install esound + For others, simply running 'esd&' from a command-line should get it running. PROBLEM 5:- Using the 'Alt' key to control the camera doesn't work or just moves the Second Life window. diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 1550b6dc23..69c71224a9 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -159,6 +159,13 @@ #include "llcommandlineparser.h" +// annoying detail to determine whether font prefs are over-ridden +#if LL_LINUX +# define LL_DYNAMIC_FONT_DISCOVERY 1 +#else +# define LL_DYNAMIC_FONT_DISCOVERY 0 +#endif + // *FIX: These extern globals should be cleaned up. // The globals either represent state/config/resource-storage of either // this app, or another 'component' of the viewer. App globals should be @@ -1483,30 +1490,17 @@ bool LLAppViewer::initConfiguration() gSavedSettings.setString("VersionChannelName", LL_CHANNEL); -#ifndef LL_RELEASE_FOR_DOWNLOAD +#ifndef LL_RELEASE_FOR_DOWNLOAD gSavedSettings.setBOOL("ShowConsoleWindow", TRUE); gSavedSettings.setBOOL("AllowMultipleViewers", TRUE); #endif -#if LL_WINDOWS - // Lists Japanese, Korean, and Chinese sanserif fonts available in - // Windows XP and Vista, as well as "Arial Unicode MS". +#if !LL_DYNAMIC_FONT_DISCOVERY + // static font discovery - user settings can override. gSavedSettings.setString("FontSansSerifFallback", - "MSGOTHIC.TTC;gulim.ttc;simhei.ttf;ArialUni.ttf"); -#elif LL_DARWIN - // This is a fairly complete Japanese font that ships with Mac OS X. - // The first filename is in UTF8, but it shows up in the font menu as "Hiragino Kaku Gothic Pro W3". - // The third filename is in UTF8, but it shows up in the font menu as "STHeiti Light" - gSavedSettings.setString("FontSansSerifFallback", - "\xE3\x83\x92\xE3\x83\xA9\xE3\x82\xAD\xE3\x82\x99\xE3\x83\x8E\xE8\xA7\x92\xE3\x82\xB3\xE3\x82\x99 Pro W3.otf;\xE3\x83\x92\xE3\x83\xA9\xE3\x82\xAD\xE3\x82\x99\xE3\x83\x8E\xE8\xA7\x92\xE3\x82\xB3\xE3\x82\x99 ProN W3.otf;AppleGothic.dfont;AppleGothic.ttf;\xe5\x8d\x8e\xe6\x96\x87\xe7\xbb\x86\xe9\xbb\x91.ttf"); -#else - // 'unicode.ttf' doesn't exist, but hopefully an international - // user can take the hint and drop in their favourite local font. - gSavedSettings.setString("FontSansSerifFallback", - "unicode.ttf"); + LLWindow::getFontListSans()); #endif - // These are warnings that appear on the first experience of that condition. // They are already set in the settings_default.xml file, but still need to be added to LLFirstUse // for disable/reset ability @@ -1553,6 +1547,15 @@ bool LLAppViewer::initConfiguration() // Overwrite default user settings with user settings loadSettingsFromDirectory(LL_PATH_USER_SETTINGS); +#if LL_DYNAMIC_FONT_DISCOVERY + // Linux does *dynamic* font discovery which is preferable to + // whatever got written-out into the config file last time. This + // does remove the ability of the user to hand-define the fallbacks + // though, so from a config-management point of view this is hacky. + gSavedSettings.setString("FontSansSerifFallback", + LLWindow::getFontListSans()); +#endif + // Parse command line settings. LLControlGroupCLP clp; std::string cmd_line_config = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, @@ -1604,11 +1607,11 @@ bool LLAppViewer::initConfiguration() gSavedSettings.setString("ClientSettingsFile", full_settings_path); } - // Apply the command line params to the settings system. - // Anyway the following call to notify depends upon the settings being init'd. + // Apply the command line params to the settings system. + // Anyway the following call to notify depends upon the settings being init'd. clp.notify(); - // Start up the debugging console before handling other options. + // Start up the debugging console before handling other options. if (gSavedSettings.getBOOL("ShowConsoleWindow")) { initConsole(); diff --git a/indra/newview/llappviewerlinux.cpp b/indra/newview/llappviewerlinux.cpp index d7a8e66a4b..3ea8c737c9 100644 --- a/indra/newview/llappviewerlinux.cpp +++ b/indra/newview/llappviewerlinux.cpp @@ -37,7 +37,9 @@ #include "llmemtype.h" #include "llviewernetwork.h" +#include "llviewercontrol.h" #include "llmd5.h" +#include "llfindlocale.h" #include <exception> @@ -432,7 +434,27 @@ bool LLAppViewerLinux::initLogging() bool LLAppViewerLinux::initParseCommandLine(LLCommandLineParser& clp) { - clp.parseCommandLine(gArgC, gArgV); + if (!clp.parseCommandLine(gArgC, gArgV)) + { + return false; + } + + // Find the system language. + FL_Locale *locale = NULL; + FL_Success success = FL_FindLocale(&locale, FL_MESSAGES); + if (success != 0) + { + if (success >= 2 && locale->lang) // confident! + { + LLControlVariable* c = gSavedSettings.getControl("SystemLanguage"); + if(c) + { + c->setValue(std::string(locale->lang), false); + } + } + FL_FreeLocale(&locale); + } + return true; } diff --git a/indra/newview/llappviewerwin32.cpp b/indra/newview/llappviewerwin32.cpp index 3770fe2a33..fed538da37 100644 --- a/indra/newview/llappviewerwin32.cpp +++ b/indra/newview/llappviewerwin32.cpp @@ -54,6 +54,7 @@ #include "llviewernetwork.h" #include "llmd5.h" +#include "llfindlocale.h" #include "llcommandlineparser.h" @@ -385,7 +386,28 @@ bool LLAppViewerWin32::initHardwareTest() bool LLAppViewerWin32::initParseCommandLine(LLCommandLineParser& clp) { - return clp.parseCommandLineString(mCmdLine); + if (!clp.parseCommandLineString(mCmdLine)) + { + return false; + } + + // Find the system language. + FL_Locale *locale = NULL; + FL_Success success = FL_FindLocale(&locale, FL_MESSAGES); + if (success != 0) + { + if (success >= 2 && locale->lang) // confident! + { + LLControlVariable* c = gSavedSettings.getControl("SystemLanguage"); + if(c) + { + c->setValue(std::string(locale->lang), false); + } + } + FL_FreeLocale(&locale); + } + + return true; } void LLAppViewerWin32::handleSyncCrashTrace() diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 21b827cc0f..c6c751147c 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -4951,21 +4951,21 @@ void LLViewerWindow::initFonts(F32 zoom_factor) { LLFontGL::destroyGL(); LLFontGL::initDefaultFonts( gSavedSettings.getF32("FontScreenDPI"), - mDisplayScale.mV[VX] * zoom_factor, - mDisplayScale.mV[VY] * zoom_factor, - gSavedSettings.getString("FontMonospace"), - gSavedSettings.getF32("FontSizeMonospace"), - gSavedSettings.getString("FontSansSerif"), - gSavedSettings.getString("FontSansSerifFallback"), - gSavedSettings.getF32("FontSansSerifFallbackScale"), - gSavedSettings.getF32("FontSizeSmall"), - gSavedSettings.getF32("FontSizeMedium"), - gSavedSettings.getF32("FontSizeLarge"), - gSavedSettings.getF32("FontSizeHuge"), - gSavedSettings.getString("FontSansSerifBold"), - gSavedSettings.getF32("FontSizeMedium"), - gDirUtilp->getAppRODataDir() - ); + mDisplayScale.mV[VX] * zoom_factor, + mDisplayScale.mV[VY] * zoom_factor, + gSavedSettings.getString("FontMonospace"), + gSavedSettings.getF32("FontSizeMonospace"), + gSavedSettings.getString("FontSansSerif"), + gSavedSettings.getString("FontSansSerifFallback"), + gSavedSettings.getF32("FontSansSerifFallbackScale"), + gSavedSettings.getF32("FontSizeSmall"), + gSavedSettings.getF32("FontSizeMedium"), + gSavedSettings.getF32("FontSizeLarge"), + gSavedSettings.getF32("FontSizeHuge"), + gSavedSettings.getString("FontSansSerifBold"), + gSavedSettings.getF32("FontSizeMedium"), + gDirUtilp->getAppRODataDir() + ); } void LLViewerWindow::toggleFullscreen(BOOL show_progress) { diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index b147b471fa..0fbd177da4 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -445,18 +445,20 @@ class LinuxManifest(ViewerManifest): self.path("wrapper.sh","secondlife") self.path("handle_secondlifeprotocol.sh") self.path("register_secondlifeprotocol.sh") - self.path("unicode.ttf","unicode.ttf") self.end_prefix("linux_tools") # Create an appropriate gridargs.dat for this package, denoting required grid. self.put_in_file(self.flags_list(), 'gridargs.dat') + + def package_finish(self): # stripping all the libs removes a few megabytes from the end-user package for s,d in self.file_list: if re.search("lib/lib.+\.so.*", d): self.run_command('strip -S %s' % d) + if re.search("app_settings/mozilla-runtime-.*/lib.+\.so.*", d): + self.run_command('strip %s' % d) - def package_finish(self): if(self.args.has_key('installer_name')): installer_name = self.args['installer_name'] else: |