diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/cmake/Copy3rdPartyLibs.cmake | 13 | ||||
| -rw-r--r-- | indra/llwindow/llwindowwin32.cpp | 2 | ||||
| -rw-r--r-- | indra/llwindow/llwindowwin32.h | 2 | ||||
| -rw-r--r-- | indra/media_plugins/cef/media_plugin_cef.cpp | 60 | ||||
| -rw-r--r-- | indra/newview/installers/windows/installer_template.nsi | 31 | ||||
| -rwxr-xr-x | indra/newview/viewer_manifest.py | 2 | 
6 files changed, 52 insertions, 58 deletions
| diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index 14510d654f..c7fb7a5301 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -102,12 +102,17 @@ if(WINDOWS)              unset(debug_msvc_redist_path CACHE)          endif() +        if(ADDRESS_SIZE EQUAL 32) +            # this folder contains the 32bit DLLs.. (yes really!) +            set(registry_find_path "[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Windows;Directory]/SysWOW64") +        else(ADDRESS_SIZE EQUAL 32) +            # this folder contains the 64bit DLLs.. (yes really!) +            set(registry_find_path "[HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Windows;Directory]/System32") +        endif(ADDRESS_SIZE EQUAL 32) +          FIND_PATH(release_msvc_redist_path NAME msvcr${MSVC_VER}.dll              PATHS             -            [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\${MSVC_VERDOT}\\Setup\\VC;ProductDir]/redist/x86/Microsoft.VC${MSVC_VER}.CRT -            [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Windows;Directory]/SysWOW64 -            [HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Windows;Directory]/System32 -            ${MSVC_REDIST_PATH} +            ${registry_find_path}              NO_DEFAULT_PATH              ) diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp index 301ae7f9c4..5ec0ada6eb 100644 --- a/indra/llwindow/llwindowwin32.cpp +++ b/indra/llwindow/llwindowwin32.cpp @@ -3800,7 +3800,7 @@ LLWindowCallbacks::DragNDropResult LLWindowWin32::completeDragNDropRequest( cons  // When it handled the message, the value to be returned from  // the Window Procedure is set to *result. -BOOL LLWindowWin32::handleImeRequests(U32 request, U32 param, LRESULT *result) +BOOL LLWindowWin32::handleImeRequests(WPARAM request, LPARAM param, LRESULT *result)  {  	if ( mPreeditor )  	{ diff --git a/indra/llwindow/llwindowwin32.h b/indra/llwindow/llwindowwin32.h index 39ef9b31a4..059a008c45 100644 --- a/indra/llwindow/llwindowwin32.h +++ b/indra/llwindow/llwindowwin32.h @@ -148,7 +148,7 @@ protected:  	U32		fillReconvertString(const LLWString &text, S32 focus, S32 focus_length, RECONVERTSTRING *reconvert_string);  	void	handleStartCompositionMessage();  	void	handleCompositionMessage(U32 indexes); -	BOOL	handleImeRequests(U32 request, U32 param, LRESULT *result); +	BOOL	handleImeRequests(WPARAM request, LPARAM param, LRESULT *result);  protected:  	// diff --git a/indra/media_plugins/cef/media_plugin_cef.cpp b/indra/media_plugins/cef/media_plugin_cef.cpp index 906a5ff6e7..965b755887 100644 --- a/indra/media_plugins/cef/media_plugin_cef.cpp +++ b/indra/media_plugins/cef/media_plugin_cef.cpp @@ -55,7 +55,7 @@ public:  private:  	bool init(); -	void onPageChangedCallback(const unsigned char* pixels, int x, int y, const int width, const int height, bool is_popup); +	void onPageChangedCallback(const unsigned char* pixels, int x, int y, const int width, const int height);  	void onCustomSchemeURLCallback(std::string url);  	void onConsoleMessageCallback(std::string message, std::string source, int line);  	void onStatusMessageCallback(std::string value); @@ -84,6 +84,7 @@ private:  	bool mCookiesEnabled;  	bool mPluginsEnabled;  	bool mJavascriptEnabled; +	bool mDisableGPU;  	std::string mUserAgentSubtring;  	std::string mAuthUsername;  	std::string mAuthPassword; @@ -117,6 +118,7 @@ MediaPluginBase(host_send_func, host_user_data)  	mCookiesEnabled = true;  	mPluginsEnabled = false;  	mJavascriptEnabled = true; +	mDisableGPU = true;  	mUserAgentSubtring = "";  	mAuthUsername = "";  	mAuthPassword = ""; @@ -161,56 +163,13 @@ void MediaPluginCEF::postDebugMessage(const std::string& msg)  ////////////////////////////////////////////////////////////////////////////////  // -void MediaPluginCEF::onPageChangedCallback(const unsigned char* pixels, int x, int y, const int width, const int height, bool is_popup) +void MediaPluginCEF::onPageChangedCallback(const unsigned char* pixels, int x, int y, const int width, const int height)  { -	if( is_popup ) -	{ -		delete mPopupBuffer; -		mPopupBuffer = NULL; -		mPopupH = 0; -		mPopupW = 0; -		mPopupX = 0; -		mPopupY = 0; -	} -  	if( mPixels && pixels )  	{ -		if (is_popup) +		if (mWidth == width && mHeight == height)  		{ -			if( width > 0 && height> 0 ) -			{ -				mPopupBuffer = new U8[ width * height * mDepth ]; -				memcpy( mPopupBuffer, pixels, width * height * mDepth ); -				mPopupH = height; -				mPopupW = width; -				mPopupX = x; -				mPopupY = mHeight - y - height; -			} -		} -		else -		{ -			if (mWidth == width && mHeight == height) -			{ -				memcpy(mPixels, pixels, mWidth * mHeight * mDepth); -			} -			if( mPopupBuffer && mPopupH && mPopupW ) -			{ -				U32 bufferSize = mWidth * mHeight * mDepth; -				U32 popupStride = mPopupW * mDepth; -				U32 bufferStride = mWidth * mDepth; -				int dstY = mPopupY; - -				int src = 0; -				int dst = dstY  * mWidth * mDepth + mPopupX * mDepth; - -				for( int line = 0; dst + popupStride < bufferSize && line < mPopupH; ++line ) -				{ -					memcpy( mPixels + dst, mPopupBuffer + src, popupStride ); -					src += popupStride; -					dst += bufferStride; -				} -			} - +			memcpy(mPixels, pixels, mWidth * mHeight * mDepth);  		}  		setDirty(0, 0, mWidth, mHeight);  	} @@ -477,7 +436,7 @@ void MediaPluginCEF::receiveMessage(const char* message_string)  			if (message_name == "init")  			{  				// event callbacks from Dullahan -				mCEFLib->setOnPageChangedCallback(std::bind(&MediaPluginCEF::onPageChangedCallback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4, std::placeholders::_5, std::placeholders::_6)); +				mCEFLib->setOnPageChangedCallback(std::bind(&MediaPluginCEF::onPageChangedCallback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4, std::placeholders::_5));  				mCEFLib->setOnCustomSchemeURLCallback(std::bind(&MediaPluginCEF::onCustomSchemeURLCallback, this, std::placeholders::_1));  				mCEFLib->setOnConsoleMessageCallback(std::bind(&MediaPluginCEF::onConsoleMessageCallback, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3));  				mCEFLib->setOnStatusMessageCallback(std::bind(&MediaPluginCEF::onStatusMessageCallback, this, std::placeholders::_1)); @@ -499,6 +458,7 @@ void MediaPluginCEF::receiveMessage(const char* message_string)  				settings.cache_path = mCachePath;  				settings.cookie_store_path = mCookiePath;  				settings.cookies_enabled = mCookiesEnabled; +				settings.disable_gpu = mDisableGPU;  				settings.flash_enabled = mPluginsEnabled;  				settings.flip_mouse_y = false;  				settings.flip_pixels_y = true; @@ -755,6 +715,10 @@ void MediaPluginCEF::receiveMessage(const char* message_string)  			{  				mJavascriptEnabled = message_in.getValueBoolean("enable");  			} +			else if (message_name == "gpu_disabled") +			{ +				mDisableGPU = message_in.getValueBoolean("disable"); +			}  		}          else if (message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA_TIME)          { diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi index eb07b54d8d..71a33a0dc0 100644 --- a/indra/newview/installers/windows/installer_template.nsi +++ b/indra/newview/installers/windows/installer_template.nsi @@ -90,8 +90,11 @@ InstProgressFlags smooth colored		# New colored smooth look  SetOverwrite on							# Overwrite files by default
  AutoCloseWindow true					# After all files install, close window
 -InstallDir "%%$PROGRAMFILES%%\${INSTNAME}"
 -InstallDirRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" ""
 +# initial location of install (default when not already installed)
 +#   note: Now we defer looking for existing install until onInit when we
 +#   are able to engage the 32/64 registry function
 +InstallDir "%%PROGRAMFILES%%\${INSTNAME}"
 +
  UninstallText $(UninstallTextMsg)
  DirText $(DirectoryChooseTitle) $(DirectoryChooseSetup)
  Page directory dirPre
 @@ -118,6 +121,8 @@ Var DO_UNINSTALL_V2     # If non-null, path to a previous Viewer 2 installation  !insertmacro GetParameters
  !insertmacro GetOptions
  !include WinVer.nsh			# For OS and SP detection
 +!include 'LogicLib.nsh'     # for value comparison
 +!include "x64.nsh"			# for 64bit detection
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;; Pre-directory page callback
 @@ -136,7 +141,21 @@ FunctionEnd  ;; entry to the language ID selector below
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  Function .onInit
 +
  %%ENGAGEREGISTRY%%
 +
 +# read the current location of the install for this version
 +# if $0 is empty, this is the first time for this viewer name
 +ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\\Linden Research, Inc.\\${INSTNAME}" ""
 +
 +# viewer with this name not installed before
 +${If} $0 == ""
 +    # nothing to do here
 +${Else}
 +	# use the value we got from registry as install location
 +    StrCpy $INSTDIR $0
 +${EndIf}
 +
  Call CheckCPUFlags							# Make sure we have SSE2 support
  Call CheckWindowsVersion					# Don't install On unsupported systems
      Push $0
 @@ -195,7 +214,9 @@ FunctionEnd  ;; Prep Uninstaller Section
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  Function un.onInit
 +
  %%ENGAGEREGISTRY%%
 +
  # Read language from registry and set for uninstaller. Key will be removed on successful uninstall
  	ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage"
      IfErrors lbl_end
 @@ -320,6 +341,10 @@ WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninst  WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" "UninstallString" '"$INSTDIR\uninst.exe"'
  WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" "DisplayVersion" "${VERSION_LONG}"
  WriteRegDWORD HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" "EstimatedSize" "0x0001D500"		# ~117 MB
 +
 +# from FS:Ansariel
 +WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" "DisplayIcon" '"$INSTDIR\$INSTEXE"'
 +
  # BUG-2707 Disable SEHOP for installed viewer.
  WriteRegDWORD HKEY_LOCAL_MACHINE "Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\$INSTEXE" "DisableExceptionChainValidation" 1
 @@ -561,7 +586,7 @@ FunctionEnd  Function RemoveProgFilesOnInst
  # Remove old SecondLife.exe to invalidate any old shortcuts to it that may be in non-standard locations. See MAINT-3575
 -Delete "$INSTDIR\SecondLife.exe"
 +Delete "$INSTDIR\$INSTEXE"
  # Remove old shader files first so fallbacks will work. See DEV-5663
  RMDir /r "$INSTDIR\app_settings\shaders"
 diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 3a8cd0c626..bce94263c4 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -648,7 +648,7 @@ class WindowsManifest(ViewerManifest):                  "%%SOURCE%%":self.get_src_prefix(),                  "%%INST_VARS%%":inst_vars_template % substitution_strings,                  "%%INSTALL_FILES%%":self.nsi_file_commands(True), -                "%%$PROGRAMFILES%%":program_files, +                "%%PROGRAMFILES%%":program_files,                  "%%ENGAGEREGISTRY%%":engage_registry,                  "%%DELETE_FILES%%":self.nsi_file_commands(False)}) | 
