summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/installers/windows/installer_template.nsi21
-rw-r--r--indra/newview/linux_tools/client-readme.txt50
-rw-r--r--indra/newview/llappviewer.cpp43
-rw-r--r--indra/newview/llappviewerlinux.cpp24
-rw-r--r--indra/newview/llappviewerwin32.cpp24
-rw-r--r--indra/newview/llviewerwindow.cpp30
-rwxr-xr-xindra/newview/viewer_manifest.py6
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: