diff options
25 files changed, 176 insertions, 135 deletions
| @@ -414,3 +414,8 @@ a676b4d6c037b39fe5b8e42cf8839a9303936089 DRTVWR-289  28fa8b944a0c1869636ab00cc400f5aa71f6fa3c DRTVWR-290  7f09bbc28c297f14b67961be7b6575445fa160e8 DRTVWR-291  b23419a2748483c98f3b84b630468a21c88feba5 DRTVWR-292 +1567de5700c273b583dac41b64275c223287306e 3.4.5-beta4 +1cce8447f8f574673e3f47d6fe584262e6964fe2 DRTVWR-296 +0a5d409161ef2a89b28c9a741051dd2dedc707d6 DRTVWR-297 +852b69ef0b5fe6b13b69cc2217282cc64de6afab 3.4.5-beta5 +a49c715243a36a8a380504d14cb7416b3039c956 3.4.5-release diff --git a/autobuild.xml b/autobuild.xml index 11c2da52dc..4b05f5c05c 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -186,9 +186,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>ac37d0038c91b0672fa31a02731f0eac</string> +              <string>06dd7af75e1eb179aed54fd58d8688af</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-boost/rev/268347/arch/Darwin/installer/boost-1.52.0-darwin-20121218.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-boost/rev/270698/arch/Darwin/installer/boost-1.52.0-darwin-20130221.tar.bz2</string>              </map>              <key>name</key>              <string>darwin</string> @@ -198,9 +198,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>146ed8a8c2ef8ab3f0a6c4f214fc5c22</string> +              <string>50c8b50b7cced52cc5656fb44e9b12cf</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-boost/rev/268347/arch/Linux/installer/boost-1.52.0-linux-20121218.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-boost/rev/270698/arch/Linux/installer/boost-1.52.0-linux-20130222.tar.bz2</string>              </map>              <key>name</key>              <string>linux</string> @@ -210,9 +210,9 @@              <key>archive</key>              <map>                <key>hash</key> -              <string>3ea60f17d986b7e8a3351298734bdca4</string> +              <string>742fc9675b033df7f9c6f215ff250f6c</string>                <key>url</key> -              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-boost/rev/268347/arch/CYGWIN/installer/boost-1.52.0-windows-20121218.tar.bz2</string> +              <string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-boost/rev/270698/arch/CYGWIN/installer/boost-1.52.0-windows-20130221.tar.bz2</string>              </map>              <key>name</key>              <string>windows</string> diff --git a/doc/contributions.txt b/doc/contributions.txt index 10d6818bd3..e86ef11a72 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -1251,6 +1251,7 @@ Whimsy Winx  Whirly Fizzle  	STORM-1895  	MAINT-873 +	STORM-1930  Whoops Babii  	VWR-631  	VWR-1640 diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake index 452fd5f356..084ba7ea98 100644 --- a/indra/cmake/00-Common.cmake +++ b/indra/cmake/00-Common.cmake @@ -192,12 +192,7 @@ endif (LINUX)  if (DARWIN) -  # NOTE (per http://lists.apple.com/archives/darwin-dev/2008/Jan/msg00232.html): -  # > Why the bus error? What am I doing wrong?  -  # This is a known issue where getcontext(3) is writing past the end of the -  # ucontext_t struct when _XOPEN_SOURCE is not defined (rdar://problem/5578699 ). -  # As a workaround, define _XOPEN_SOURCE before including ucontext.h. -  add_definitions(-DLL_DARWIN=1 -D_XOPEN_SOURCE) +  add_definitions(-DLL_DARWIN=1)    set(CMAKE_CXX_LINK_FLAGS "-Wl,-headerpad_max_install_names,-search_paths_first")    set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_CXX_LINK_FLAGS}")    set(DARWIN_extra_cstar_flags "-mlong-branch -g") diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake index 1acb2bbbfd..cff762e1f0 100644 --- a/indra/cmake/Boost.cmake +++ b/indra/cmake/Boost.cmake @@ -7,11 +7,12 @@ set(Boost_FIND_REQUIRED ON)  if (STANDALONE)    include(FindBoost) +  set(BOOST_CONTEXT_LIBRARY boost_context-mt) +  set(BOOST_FILESYSTEM_LIBRARY boost_filesystem-mt)    set(BOOST_PROGRAM_OPTIONS_LIBRARY boost_program_options-mt)    set(BOOST_REGEX_LIBRARY boost_regex-mt)    set(BOOST_SIGNALS_LIBRARY boost_signals-mt)    set(BOOST_SYSTEM_LIBRARY boost_system-mt) -  set(BOOST_FILESYSTEM_LIBRARY boost_filesystem-mt)    set(BOOST_THREAD_LIBRARY boost_thread-mt)  else (STANDALONE)    use_prebuilt_binary(boost) @@ -20,6 +21,12 @@ else (STANDALONE)    if (WINDOWS)      if(MSVC80) +      set(BOOST_CONTEXT_LIBRARY  +          optimized libboost_context-vc80-mt-${BOOST_VERSION} +          debug libboost_context-vc80-mt-gd-${BOOST_VERSION}) +      set(BOOST_FILESYSTEM_LIBRARY  +          optimized libboost_filesystem-vc80-mt-${BOOST_VERSION} +          debug libboost_filesystem-vc80-mt-gd-${BOOST_VERSION})        set(BOOST_PROGRAM_OPTIONS_LIBRARY             optimized libboost_program_options-vc80-mt-${BOOST_VERSION}            debug libboost_program_options-vc80-mt-gd-${BOOST_VERSION}) @@ -32,59 +39,74 @@ else (STANDALONE)        set(BOOST_SYSTEM_LIBRARY             optimized libboost_system-vc80-mt-${BOOST_VERSION}            debug libboost_system-vc80-mt-gd-${BOOST_VERSION}) -      set(BOOST_FILESYSTEM_LIBRARY  -          optimized libboost_filesystem-vc80-mt-${BOOST_VERSION} -          debug libboost_filesystem-vc80-mt-gd-${BOOST_VERSION}) +      set(BOOST_THREAD_LIBRARY  +          optimized libboost_thread-vc80-mt-${BOOST_VERSION} +          debug libboost_thread-vc80-mt-gd-${BOOST_VERSION})      else(MSVC80)        # MSVC 10.0 config +      set(BOOST_CONTEXT_LIBRARY  +          optimized libboost_context-mt +          debug libboost_context-mt-gd) +      set(BOOST_FILESYSTEM_LIBRARY  +          optimized libboost_filesystem-mt +          debug libboost_filesystem-mt-gd)        set(BOOST_PROGRAM_OPTIONS_LIBRARY             optimized libboost_program_options-mt            debug libboost_program_options-mt-gd)        set(BOOST_REGEX_LIBRARY            optimized libboost_regex-mt            debug libboost_regex-mt-gd) +      set(BOOST_SIGNALS_LIBRARY  +          optimized libboost_signals-mt +          debug libboost_signals-mt-gd)        set(BOOST_SYSTEM_LIBRARY             optimized libboost_system-mt            debug libboost_system-mt-gd) -      set(BOOST_FILESYSTEM_LIBRARY  -          optimized libboost_filesystem-mt -          debug libboost_filesystem-mt-gd)        set(BOOST_THREAD_LIBRARY             optimized libboost_thread-mt            debug libboost_thread-mt-gd)      endif (MSVC80)    elseif (LINUX) +    set(BOOST_CONTEXT_LIBRARY +        optimized boost_context-mt +        debug boost_context-mt-d) +    set(BOOST_FILESYSTEM_LIBRARY +        optimized boost_filesystem-mt +        debug boost_filesystem-mt-d)      set(BOOST_PROGRAM_OPTIONS_LIBRARY          optimized boost_program_options-mt          debug boost_program_options-mt-d)      set(BOOST_REGEX_LIBRARY          optimized boost_regex-mt          debug boost_regex-mt-d) +    set(BOOST_SIGNALS_LIBRARY +        optimized boost_signals-mt +        debug boost_signals-mt-d)      set(BOOST_SYSTEM_LIBRARY          optimized boost_system-mt          debug boost_system-mt-d) -    set(BOOST_FILESYSTEM_LIBRARY -        optimized boost_filesystem-mt -        debug boost_filesystem-mt-d)      set(BOOST_THREAD_LIBRARY          optimized boost_thread-mt          debug boost_thread-mt-d)    elseif (DARWIN) -    set(BOOST_PROGRAM_OPTIONS_LIBRARY -        optimized boost_program_options-mt -        debug boost_program_options-mt-d) +    set(BOOST_CONTEXT_LIBRARY +        optimized boost_context-mt +        debug boost_context-mt-d) +    set(BOOST_FILESYSTEM_LIBRARY +        optimized boost_filesystem-mt +        debug boost_filesystem-mt-d)      set(BOOST_PROGRAM_OPTIONS_LIBRARY          optimized boost_program_options-mt          debug boost_program_options-mt-d)      set(BOOST_REGEX_LIBRARY          optimized boost_regex-mt          debug boost_regex-mt-d) +    set(BOOST_SIGNALS_LIBRARY +        optimized boost_signals-mt +        debug boost_signals-mt-d)      set(BOOST_SYSTEM_LIBRARY          optimized boost_system-mt          debug boost_system-mt-d) -    set(BOOST_FILESYSTEM_LIBRARY -        optimized boost_filesystem-mt -        debug boost_filesystem-mt-d)      set(BOOST_THREAD_LIBRARY          optimized boost_thread-mt          debug boost_thread-mt-d) diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index c32e357da3..8457cf5359 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -254,12 +254,13 @@ elseif(LINUX)          libapr-1.so.0          libaprutil-1.so.0          libatk-1.0.so +        libboost_context-mt.so.${BOOST_VERSION}.0 +        libboost_filesystem-mt.so.${BOOST_VERSION}.0          libboost_program_options-mt.so.${BOOST_VERSION}.0          libboost_regex-mt.so.${BOOST_VERSION}.0 -        libboost_thread-mt.so.${BOOST_VERSION}.0 -        libboost_filesystem-mt.so.${BOOST_VERSION}.0          libboost_signals-mt.so.${BOOST_VERSION}.0          libboost_system-mt.so.${BOOST_VERSION}.0 +        libboost_thread-mt.so.${BOOST_VERSION}.0          libbreakpad_client.so.0          libcollada14dom.so          libcrypto.so.1.0.0 diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake index 4b459f1a48..e2528ea7d5 100644 --- a/indra/cmake/Variables.cmake +++ b/indra/cmake/Variables.cmake @@ -104,15 +104,20 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")      OUTPUT_VARIABLE XCODE_VERSION )    # To support a different SDK update these Xcode settings: +  if (XCODE_VERSION GREATER 4.5) +    set(CMAKE_OSX_DEPLOYMENT_TARGET 10.8) +    set(CMAKE_OSX_SYSROOT macosx10.8) +  else (XCODE_VERSION GREATER 4.5)    if (XCODE_VERSION GREATER 4.2)      set(CMAKE_OSX_DEPLOYMENT_TARGET 10.6) +    set(CMAKE_OSX_SYSROOT macosx10.6)    else (XCODE_VERSION GREATER 4.2)      set(CMAKE_OSX_DEPLOYMENT_TARGET 10.5) +    set(CMAKE_OSX_SYSROOT macosx10.6)    endif (XCODE_VERSION GREATER 4.2) +  endif (XCODE_VERSION GREATER 4.5) -  set(CMAKE_OSX_SYSROOT macosx10.6)    set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvmgcc42") -          set(CMAKE_XCODE_ATTRIBUTE_DEBUG_INFORMATION_FORMAT dwarf-with-dsym)    # NOTE: To attempt an i386/PPC Universal build, add this on the configure line: diff --git a/indra/llcommon/llcoros.cpp b/indra/llcommon/llcoros.cpp index 0b5829eb7e..9122704306 100644 --- a/indra/llcommon/llcoros.cpp +++ b/indra/llcommon/llcoros.cpp @@ -115,7 +115,7 @@ std::string LLCoros::getNameByID(const void* self_id) const      // passed to us comes.      for (CoroMap::const_iterator mi(mCoros.begin()), mend(mCoros.end()); mi != mend; ++mi)      { -        namespace coro_private = boost::coroutines::detail; +        namespace coro_private = boost::dcoroutines::detail;          if (static_cast<void*>(coro_private::coroutine_accessor::get_impl(const_cast<coro&>(*mi->second)).get())              == self_id)          { diff --git a/indra/llcommon/llcoros.h b/indra/llcommon/llcoros.h index d75f28ec1a..03df406b68 100644 --- a/indra/llcommon/llcoros.h +++ b/indra/llcommon/llcoros.h @@ -29,7 +29,7 @@  #if ! defined(LL_LLCOROS_H)  #define LL_LLCOROS_H -#include <boost/coroutine/coroutine.hpp> +#include <boost/dcoroutine/coroutine.hpp>  #include "llsingleton.h"  #include <boost/ptr_container/ptr_map.hpp>  #include <string> @@ -78,8 +78,8 @@  class LL_COMMON_API LLCoros: public LLSingleton<LLCoros>  {  public: -    /// Canonical boost::coroutines::coroutine signature we use -    typedef boost::coroutines::coroutine<void()> coro; +    /// Canonical boost::dcoroutines::coroutine signature we use +    typedef boost::dcoroutines::coroutine<void()> coro;      /// Canonical 'self' type      typedef coro::self self; diff --git a/indra/llcommon/lleventcoro.h b/indra/llcommon/lleventcoro.h index 88a5e6ec74..a42af63b65 100644 --- a/indra/llcommon/lleventcoro.h +++ b/indra/llcommon/lleventcoro.h @@ -29,8 +29,8 @@  #if ! defined(LL_LLEVENTCORO_H)  #define LL_LLEVENTCORO_H -#include <boost/coroutine/coroutine.hpp> -#include <boost/coroutine/future.hpp> +#include <boost/dcoroutine/coroutine.hpp> +#include <boost/dcoroutine/future.hpp>  #include <boost/optional.hpp>  #include <string>  #include <stdexcept> @@ -206,13 +206,13 @@ LLSD postAndWait(SELF& self, const LLSD& event, const LLEventPumpOrPumpName& req                   const LLEventPumpOrPumpName& replyPump, const LLSD& replyPumpNamePath=LLSD())  {      // declare the future -    boost::coroutines::future<LLSD> future(self); +    boost::dcoroutines::future<LLSD> future(self);      // make a callback that will assign a value to the future, and listen on      // the specified LLEventPump with that callback      std::string listenerName(LLEventDetail::listenerNameForCoro(self));      LLTempBoundListener connection(          replyPump.getPump().listen(listenerName, -                                   voidlistener(boost::coroutines::make_callback(future)))); +                                   voidlistener(boost::dcoroutines::make_callback(future))));      // skip the "post" part if requestPump is default-constructed      if (requestPump)      { @@ -257,7 +257,7 @@ namespace LLEventDetail       * This helper is specifically for the two-pump version of waitForEventOn().       * We use a single future object, but we want to listen on two pumps with it.       * Since we must still adapt from (the callable constructed by) -     * boost::coroutines::make_callback() (void return) to provide an event +     * boost::dcoroutines::make_callback() (void return) to provide an event       * listener (bool return), we've adapted LLVoidListener for the purpose. The       * basic idea is that we construct a distinct instance of WaitForEventOnHelper       * -- binding different instance data -- for each of the pumps. Then, when a @@ -331,16 +331,16 @@ LLEventWithID postAndWait2(SELF& self, const LLSD& event,                             const LLSD& replyPump1NamePath=LLSD())  {      // declare the future -    boost::coroutines::future<LLEventWithID> future(self); +    boost::dcoroutines::future<LLEventWithID> future(self);      // either callback will assign a value to this future; listen on      // each specified LLEventPump with a callback      std::string name(LLEventDetail::listenerNameForCoro(self));      LLTempBoundListener connection0(          replyPump0.getPump().listen(name + "a", -                               LLEventDetail::wfeoh(boost::coroutines::make_callback(future), 0))); +                               LLEventDetail::wfeoh(boost::dcoroutines::make_callback(future), 0)));      LLTempBoundListener connection1(          replyPump1.getPump().listen(name + "b", -                               LLEventDetail::wfeoh(boost::coroutines::make_callback(future), 1))); +                               LLEventDetail::wfeoh(boost::dcoroutines::make_callback(future), 1)));      // skip the "post" part if requestPump is default-constructed      if (requestPump)      { diff --git a/indra/llcommon/llsys.cpp b/indra/llcommon/llsys.cpp index 2a8eea88b6..0a68fe2e3b 100644 --- a/indra/llcommon/llsys.cpp +++ b/indra/llcommon/llsys.cpp @@ -73,6 +73,12 @@ using namespace llsd;  #	include <mach/mach_host.h>  #	include <mach/task.h>  #	include <mach/task_info.h> + +// disable warnings about Gestalt calls being deprecated +// until Apple get's on the ball and provides an alternative +// +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +  #elif LL_LINUX  #	include <errno.h>  #	include <sys/utsname.h> @@ -1394,3 +1400,10 @@ BOOL gzip_file(const std::string& srcfile, const std::string& dstfile)  	if (dst != NULL) gzclose(dst);  	return retval;  } + +#if LL_DARWIN +// disable warnings about Gestalt calls being deprecated +// until Apple get's on the ball and provides an alternative +// +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif diff --git a/indra/llcommon/tests/lleventcoro_test.cpp b/indra/llcommon/tests/lleventcoro_test.cpp index 901ba35b2f..8d12529613 100644 --- a/indra/llcommon/tests/lleventcoro_test.cpp +++ b/indra/llcommon/tests/lleventcoro_test.cpp @@ -64,10 +64,10 @@  // Boost.Coroutine #include is the *first* #include of the platform header.  // That means that client code must generally #include Boost.Coroutine headers  // before anything else. -#include <boost/coroutine/coroutine.hpp> +#include <boost/dcoroutine/coroutine.hpp>  // Normally, lleventcoro.h obviates future.hpp. We only include this because  // we implement a "by hand" test of future functionality. -#include <boost/coroutine/future.hpp> +#include <boost/dcoroutine/future.hpp>  #include <boost/bind.hpp>  #include <boost/range.hpp> @@ -87,7 +87,7 @@  /*****************************************************************************  *   from the banana.cpp example program borrowed for test<1>()  *****************************************************************************/ -namespace coroutines = boost::coroutines; +namespace coroutines = boost::dcoroutines;  using coroutines::coroutine;  template<typename Iter> @@ -122,7 +122,7 @@ typedef coroutine<std::string::iterator(void)> match_coroutine_type;  *   Test helpers  *****************************************************************************/  // I suspect this will be typical of coroutines used in Linden software -typedef boost::coroutines::coroutine<void()> coroutine_type; +typedef boost::dcoroutines::coroutine<void()> coroutine_type;  /// Simulate an event API whose response is immediate: sent on receipt of the  /// initial request, rather than after some delay. This is the case that @@ -173,10 +173,10 @@ namespace tut                  // ... do whatever preliminary stuff must happen ...                  // declare the future -                boost::coroutines::future<LLSD> future(self); +                boost::dcoroutines::future<LLSD> future(self);                  // tell the future what to wait for                  LLTempBoundListener connection( -                    LLEventPumps::instance().obtain("source").listen("coro", voidlistener(boost::coroutines::make_callback(future)))); +                    LLEventPumps::instance().obtain("source").listen("coro", voidlistener(boost::dcoroutines::make_callback(future))));                  ensure("Not yet", ! future);                  // attempting to dereference ("resolve") the future causes the calling                  // coroutine to wait for it diff --git a/indra/llrender/llglheaders.h b/indra/llrender/llglheaders.h index 509de51f4d..dcac5e897b 100644 --- a/indra/llrender/llglheaders.h +++ b/indra/llrender/llglheaders.h @@ -993,12 +993,7 @@ extern void glGetBufferPointervARB (GLenum, GLenum, GLvoid* *);  }  #endif -#if __MAC_OS_X_VERSION_MAX_ALLOWED <= 1070  #include <OpenGL/gl.h> -#else -#include <AGL/gl.h> -#endif -  #endif // LL_MESA / LL_WINDOWS / LL_DARWIN diff --git a/indra/llrender/llrendertarget.cpp b/indra/llrender/llrendertarget.cpp index c1b96a43da..d2fd8345dd 100644 --- a/indra/llrender/llrendertarget.cpp +++ b/indra/llrender/llrendertarget.cpp @@ -244,12 +244,15 @@ bool LLRenderTarget::addColorAttachment(U32 color_fmt)  	mTex.push_back(tex);  	mInternalFormat.push_back(color_fmt); +#if !LL_DARWIN  	if (gDebugGL)  	{ //bind and unbind to validate target  		bindTarget();  		flush();  	} - +#endif +     +      	return true;  } diff --git a/indra/mac_updater/mac_updater.cpp b/indra/mac_updater/mac_updater.cpp index aa45c5d23f..f533d47b18 100644 --- a/indra/mac_updater/mac_updater.cpp +++ b/indra/mac_updater/mac_updater.cpp @@ -47,6 +47,11 @@  #include "llerrorcontrol.h" +#if LL_DARWIN +// FSPathMakeRef, FSObjectCopy, deprecations... +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif +  enum  {  	kEventClassCustom = 'Cust', @@ -1255,3 +1260,7 @@ void *updatethreadproc(void*)  	return(NULL);  } + +#if LL_DARWIN +#pragma GCC diagnostic warning "-Wdeprecated-declarations" +#endif diff --git a/indra/media_plugins/quicktime/media_plugin_quicktime.cpp b/indra/media_plugins/quicktime/media_plugin_quicktime.cpp index 24328202cb..2dd97a9ba7 100644 --- a/indra/media_plugins/quicktime/media_plugin_quicktime.cpp +++ b/indra/media_plugins/quicktime/media_plugin_quicktime.cpp @@ -232,12 +232,8 @@ private:  			mMovieHandle = NULL;  		}; -		if ( mGWorldHandle ) -		{ -			DisposeGWorld( mGWorldHandle ); -			mGWorldHandle = NULL; -		}; - +        mGWorldHandle = NULL; +          		setStatus(STATUS_NONE);  		return true; @@ -273,6 +269,7 @@ private:  				//std::cerr << "<--- Sending size change request to application with name: " << mTextureSegmentName << " - size is " << width << " x " << height << std::endl;  			}  		} +          		// sanitize destination size  		Rect dest_rect = rectFromSize(mWidth, mHeight); @@ -281,12 +278,10 @@ private:  		int depth_bits = mDepth * 8;  		long rowbytes = mDepth * mTextureWidth; -		GWorldPtr old_gworld_handle = mGWorldHandle; -  		if(mPixels != NULL)  		{  			// We have pixels.  Set up a GWorld pointing at the texture. -			OSErr result = NewGWorldFromPtr( &mGWorldHandle, depth_bits, &dest_rect, NULL, NULL, 0, (Ptr)mPixels, rowbytes); +			OSErr result = QTNewGWorldFromPtr( &mGWorldHandle, depth_bits, &dest_rect, NULL, NULL, 0, (Ptr)mPixels, rowbytes);  			if ( noErr != result )  			{  				// TODO: unrecoverable??  throw exception?  return something? @@ -297,7 +292,7 @@ private:  		{  			// We don't have pixels. Create a fake GWorld we can point the movie at when it's not safe to render normally.  			Rect tempRect = rectFromSize(1, 1); -			OSErr result = NewGWorld( &mGWorldHandle, depth_bits, &tempRect, NULL, NULL, 0); +			OSErr result = QTNewGWorld( &mGWorldHandle, depth_bits, &tempRect, NULL, NULL, 0);  			if ( noErr != result )  			{  				// TODO: unrecoverable??  throw exception?  return something? @@ -305,14 +300,8 @@ private:  			}  		} -		SetMovieGWorld( mMovieHandle, mGWorldHandle, GetGWorldDevice( mGWorldHandle ) ); - -		// If the GWorld was already set up, delete it. -		if(old_gworld_handle != NULL) -		{ -			DisposeGWorld( old_gworld_handle ); -		} - +		SetMovieGWorld( mMovieHandle, mGWorldHandle, NULL ); +          		// Set up the movie display matrix  		{  			// scale movie to fit rect and invert vertically to match opengl image format @@ -579,28 +568,7 @@ private:  		}  	}; - -	int getDataWidth() const -	{ -		if ( mGWorldHandle ) -		{ -			int depth = mDepth; - -			if (depth < 1) -				depth = 1; - -			// ALWAYS use the row bytes from the PixMap if we have a GWorld because -			// sometimes it's not the same as mMediaDepth * mMediaWidth ! -			PixMapHandle pix_map_handle = GetGWorldPixMap( mGWorldHandle ); -			return QTGetPixMapHandleRowBytes( pix_map_handle ) / depth; -		} -		else -		{ -			// TODO :   return LLMediaImplCommon::getaDataWidth(); -			return 0; -		} -	}; - +      	void seek( F64 time )  	{  		if ( mMovieController ) diff --git a/indra/media_plugins/webkit/mac_volume_catcher.cpp b/indra/media_plugins/webkit/mac_volume_catcher.cpp index 2f3f2211a3..cc94556413 100644 --- a/indra/media_plugins/webkit/mac_volume_catcher.cpp +++ b/indra/media_plugins/webkit/mac_volume_catcher.cpp @@ -38,6 +38,10 @@  #include <QuickTime/QuickTime.h>  #include <AudioUnit/AudioUnit.h> +#if LL_DARWIN +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif +  struct VolumeCatcherStorage;  class VolumeCatcherImpl @@ -265,3 +269,6 @@ void VolumeCatcher::pump()  	// No periodic tasks are necessary for this implementation.  } +#if LL_DARWIN +#pragma GCC diagnostic warning "-Wdeprecated-declarations" +#endif diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 75323f4945..84ae0933b4 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1829,6 +1829,7 @@ target_link_libraries(${VIEWER_BINARY_NAME}      ${viewer_LIBRARIES}      ${BOOST_PROGRAM_OPTIONS_LIBRARY}      ${BOOST_REGEX_LIBRARY} +    ${BOOST_CONTEXT_LIBRARY}      ${DBUSGLIB_LIBRARIES}      ${OPENGL_LIBRARIES}      ${FMODWRAPPER_LIBRARY} # must come after LLAudio diff --git a/indra/newview/llfilepicker_mac.mm b/indra/newview/llfilepicker_mac.mm index 13d0caeb9f..d8862bce57 100644 --- a/indra/newview/llfilepicker_mac.mm +++ b/indra/newview/llfilepicker_mac.mm @@ -66,19 +66,21 @@ std::vector<std::string>* doLoadDialog(const std::vector<std::string>* allowed_t      if (fileTypes)      { -          [panel setAllowedFileTypes:fileTypes]; -     -        result = [panel runModalForTypes:fileTypes]; +        result = [panel runModal];      }      else       { -        result = [panel runModalForDirectory:NSHomeDirectory() file:nil]; +        // I suggest it's better to open the last path and let this default to home dir as necessary +        // for consistency with other OS X apps +        // +        //[panel setDirectoryURL: fileURLWithPath(NSHomeDirectory()) ]; +        result = [panel runModal];      }      if (result == NSOKButton)       { -        NSArray *filesToOpen = [panel filenames]; +        NSArray *filesToOpen = [panel URLs];          int i, count = [filesToOpen count];          if (count > 0) @@ -114,11 +116,14 @@ std::string* doSaveDialog(const std::string* file,      NSString *fileName = [NSString stringWithCString:file->c_str() encoding:[NSString defaultCStringEncoding]];      std::string *outfile = NULL; -     -    if([panel runModalForDirectory:nil file:fileName] ==  +    NSURL* url = [NSURL fileURLWithPath:fileName]; +    [panel setDirectoryURL: url]; +    if([panel runModal] ==          NSFileHandlingPanelOKButton)  -    {  -        outfile= new std::string( [ [panel filename] UTF8String ] ); +    { +        NSURL* url = [panel URL]; +        NSString* p = [url path]; +        outfile = new std::string( [p UTF8String] );          // write the file       }       return outfile; diff --git a/indra/newview/llmeshrepository.cpp b/indra/newview/llmeshrepository.cpp index 09003e3e53..1223615079 100755 --- a/indra/newview/llmeshrepository.cpp +++ b/indra/newview/llmeshrepository.cpp @@ -215,17 +215,19 @@ public:  	~LLMeshHeaderResponder()  	{ -		if (!mProcessed && !LLApp::isQuitting()) -		{ //something went wrong, retry -			llwarns << "Timeout or service unavailable, retrying." << llendl; -			LLMeshRepository::sHTTPRetryCount++; -			LLMeshRepoThread::HeaderRequest req(mMeshParams); -			LLMutexLock lock(gMeshRepo.mThread->mMutex); -			gMeshRepo.mThread->mHeaderReqQ.push(req); +		if (!LLApp::isQuitting()) +		{ +			if (!mProcessed) +			{ //something went wrong, retry +				llwarns << "Timeout or service unavailable, retrying." << llendl; +				LLMeshRepository::sHTTPRetryCount++; +				LLMeshRepoThread::HeaderRequest req(mMeshParams); +				LLMutexLock lock(gMeshRepo.mThread->mMutex); +				gMeshRepo.mThread->mHeaderReqQ.push(req); +			} +			LLMeshRepoThread::decActiveHeaderRequests();  		} - -		LLMeshRepoThread::decActiveHeaderRequests();  	}  	virtual void completedRaw(U32 status, const std::string& reason, @@ -252,13 +254,16 @@ public:  	~LLMeshLODResponder()  	{ -		if (!mProcessed && !LLApp::isQuitting()) +		if (!LLApp::isQuitting())  		{ -			llwarns << "Killed without being processed, retrying." << llendl; -			LLMeshRepository::sHTTPRetryCount++; -			gMeshRepo.mThread->lockAndLoadMeshLOD(mMeshParams, mLOD); +			if (!mProcessed) +			{ +				llwarns << "Killed without being processed, retrying." << llendl; +				LLMeshRepository::sHTTPRetryCount++; +				gMeshRepo.mThread->lockAndLoadMeshLOD(mMeshParams, mLOD); +			} +			LLMeshRepoThread::decActiveLODRequests();  		} -		LLMeshRepoThread::decActiveLODRequests();  	}  	virtual void completedRaw(U32 status, const std::string& reason, diff --git a/indra/newview/llviewerprecompiledheaders.h b/indra/newview/llviewerprecompiledheaders.h index 0316f79973..a565005f30 100644 --- a/indra/newview/llviewerprecompiledheaders.h +++ b/indra/newview/llviewerprecompiledheaders.h @@ -33,8 +33,6 @@  // in viewer.  // It is used to precompile headers for improved build speed. -#include <boost/coroutine/coroutine.hpp> -  #include "linden_common.h"  // Work around stupid Microsoft STL warning diff --git a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml index 7eb0fac2be..cd243d40a4 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml @@ -147,7 +147,7 @@       height="12"       layout="topleft"       left_delta="87" -     name="ShadersPrefText3" +     name="ShadersPrefText2"       top_delta="0"       width="80">          Mid @@ -159,6 +159,19 @@       halign="center"       height="12"       layout="topleft" +     left_delta="87" +     name="ShadersPrefText3" +     top_delta="0" +     width="80"> +        High +    </text> +    <text +     type="string" +     length="1" +     follows="left|top" +     halign="center" +     height="12" +     layout="topleft"       left_delta="85"       name="ShadersPrefText4"       top_delta="0" diff --git a/indra/viewer_components/login/CMakeLists.txt b/indra/viewer_components/login/CMakeLists.txt index 7720619df3..1139fecd16 100644 --- a/indra/viewer_components/login/CMakeLists.txt +++ b/indra/viewer_components/login/CMakeLists.txt @@ -9,6 +9,7 @@ endif(LL_TESTS)  include(LLCommon)  include(LLMath)  include(LLXML) +include(Boost)  include_directories(      ${LLCOMMON_INCLUDE_DIRS} @@ -40,12 +41,18 @@ target_link_libraries(lllogin      ${LLCOMMON_LIBRARIES}      ${LLMATH_LIBRARIES}      ${LLXML_LIBRARIES} +    ${BOOST_CONTEXT_LIBRARY}      )  if(LL_TESTS)    SET(lllogin_TEST_SOURCE_FILES        lllogin.cpp        ) +  set_source_files_properties( +    lllogin.cpp +    PROPERTIES +    LL_TEST_ADDITIONAL_LIBRARIES "${BOOST_CONTEXT_LIBRARY}" +    )    LL_ADD_PROJECT_UNIT_TESTS(lllogin "${lllogin_TEST_SOURCE_FILES}")  endif(LL_TESTS) diff --git a/indra/viewer_components/login/lllogin.cpp b/indra/viewer_components/login/lllogin.cpp index bdcb068200..3357ad812d 100644 --- a/indra/viewer_components/login/lllogin.cpp +++ b/indra/viewer_components/login/lllogin.cpp @@ -23,7 +23,6 @@   * $/LicenseInfo$   */ -#include <boost/coroutine/coroutine.hpp>  #include "linden_common.h"  #include "llsd.h"  #include "llsdutil.h" diff --git a/indra/viewer_components/updater/llupdatechecker.cpp b/indra/viewer_components/updater/llupdatechecker.cpp index 5edbbf9914..aa7bb72e6d 100644 --- a/indra/viewer_components/updater/llupdatechecker.cpp +++ b/indra/viewer_components/updater/llupdatechecker.cpp @@ -144,18 +144,7 @@ std::string LLUpdateChecker::Implementation::buildUrl(std::string const & protoc  #ifdef LL_WINDOWS  	static const char * platform = "win";  #elif LL_DARWIN -    long versMin; -    Gestalt(gestaltSystemVersionMinor, &versMin); -     -    static const char *platform; -    if (versMin == 5) //OS 10.5 -    { -        platform = "mac_legacy"; -    } -    else  -    { -        platform = "mac"; -    } +    static const char * platform = "mac";  #else  	static const char * platform = "lnx";  #endif | 
