diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/cmake/00-Common.cmake | 4 | ||||
| -rw-r--r-- | indra/cmake/Havok.cmake | 134 | ||||
| -rw-r--r-- | indra/cmake/Linking.cmake | 5 | ||||
| -rw-r--r-- | indra/cmake/Prebuilt.cmake | 5 | ||||
| -rw-r--r-- | indra/cmake/Variables.cmake | 11 | ||||
| -rwxr-xr-x[-rw-r--r--] | indra/llappearance/llavatarappearance.cpp | 4 | ||||
| -rwxr-xr-x | indra/llappearance/lldriverparam.cpp | 1 | ||||
| -rwxr-xr-x | indra/llappearance/lltexlayerparams.cpp | 1 | ||||
| -rwxr-xr-x | indra/llappearance/llwearable.cpp | 6 | ||||
| -rwxr-xr-x | indra/llappearance/llwearabledata.cpp | 2 | ||||
| -rwxr-xr-x[-rw-r--r--] | indra/llcharacter/llcharacter.cpp | 0 | ||||
| -rwxr-xr-x[-rw-r--r--] | indra/llcharacter/llvisualparam.cpp | 20 | ||||
| -rwxr-xr-x[-rw-r--r--] | indra/llcharacter/llvisualparam.h | 12 | ||||
| -rw-r--r-- | indra/llrender/CMakeLists.txt | 10 | ||||
| -rw-r--r-- | indra/llwindow/CMakeLists.txt | 20 | ||||
| -rwxr-xr-x | indra/newview/llviewerwearable.cpp | 5 | ||||
| -rwxr-xr-x | indra/newview/llvoavatar.cpp | 13 | ||||
| -rwxr-xr-x | indra/newview/llvoavatarself.cpp | 7 | 
18 files changed, 196 insertions, 64 deletions
| diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake index 87fa4cf55a..da0920d048 100644 --- a/indra/cmake/00-Common.cmake +++ b/indra/cmake/00-Common.cmake @@ -2,6 +2,9 @@  #  # Compilation options shared by all Second Life components. +if(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED) +set(${CMAKE_CURRENT_LIST_FILE}_INCLUDED "YES") +  include(Variables)  # Portable compilation flags. @@ -234,3 +237,4 @@ else (STANDALONE)        )  endif (STANDALONE) +endif(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED) diff --git a/indra/cmake/Havok.cmake b/indra/cmake/Havok.cmake index 5c0768abfa..44f81ce332 100644 --- a/indra/cmake/Havok.cmake +++ b/indra/cmake/Havok.cmake @@ -1,6 +1,10 @@  # -*- cmake -*- +if(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED) +set(${CMAKE_CURRENT_LIST_FILE}_INCLUDED "YES") +  use_prebuilt_binary(havok-source) +  set(Havok_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/havok/Source)  list(APPEND Havok_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/havok/Demo) @@ -8,14 +12,14 @@ set(HAVOK_DEBUG_LIBRARY_PATH ${LIBS_PREBUILT_DIR}/lib/debug/havok-fulldebug)  set(HAVOK_RELEASE_LIBRARY_PATH ${LIBS_PREBUILT_DIR}/lib/release/havok)  if (LL_DEBUG_HAVOK) -   if (WIN32) -      # Always link relwithdebinfo to havok-hybrid on windows. -      set(HAVOK_RELWITHDEBINFO_LIBRARY_PATH ${LIBS_PREBUILT_DIR}/lib/debug/havok-hybrid) -   else (WIN32) -      set(HAVOK_RELWITHDEBINFO_LIBRARY_PATH ${LIBS_PREBUILT_DIR}/lib/debug/havok-fulldebug) -   endif (WIN32) +  if (WIN32) +    # Always link relwithdebinfo to havok-hybrid on windows. +    set(HAVOK_RELWITHDEBINFO_LIBRARY_PATH ${LIBS_PREBUILT_DIR}/lib/debug/havok-hybrid) +  else (WIN32) +    set(HAVOK_RELWITHDEBINFO_LIBRARY_PATH ${LIBS_PREBUILT_DIR}/lib/debug/havok-fulldebug) +  endif (WIN32)  else (LL_DEBUG_HAVOK) -   set(HAVOK_RELWITHDEBINFO_LIBRARY_PATH ${LIBS_PREBUILT_DIR}/lib/release/havok) +  set(HAVOK_RELWITHDEBINFO_LIBRARY_PATH ${LIBS_PREBUILT_DIR}/lib/release/havok)  endif (LL_DEBUG_HAVOK)  set(HAVOK_LIBS @@ -45,39 +49,89 @@ unset(HK_DEBUG_LIBRARIES)  unset(HK_RELEASE_LIBRARIES)  unset(HK_RELWITHDEBINFO_LIBRARIES) +# *TODO: Figure out why we need to extract like this...  foreach(HAVOK_LIB ${HAVOK_LIBS}) -        find_library(HAVOK_DEBUG_LIB_${HAVOK_LIB}   ${HAVOK_LIB} PATHS ${HAVOK_DEBUG_LIBRARY_PATH}) -        find_library(HAVOK_RELEASE_LIB_${HAVOK_LIB} ${HAVOK_LIB} PATHS ${HAVOK_RELEASE_LIBRARY_PATH}) -        find_library(HAVOK_RELWITHDEBINFO_LIB_${HAVOK_LIB} ${HAVOK_LIB} PATHS ${HAVOK_RELWITHDEBINFO_LIBRARY_PATH}) -         -        if(LINUX) -            set(cmd "mkdir") -            set(debug_dir "${HAVOK_DEBUG_LIBRARY_PATH}/${HAVOK_LIB}") -            set(release_dir "${HAVOK_RELEASE_LIBRARY_PATH}/${HAVOK_LIB}") -            set(relwithdebinfo_dir "${HAVOK_RELWITHDEBINFO_LIBRARY_PATH}/${HAVOK_LIB}") - -            exec_program( ${cmd} ${HAVOK_DEBUG_LIBRARY_PATH} ARGS ${debug_dir} OUTPUT_VARIABLE rv) -            exec_program( ${cmd} ${HAVOK_RELEASE_LIBRARY_PATH} ARGS ${release_dir} OUTPUT_VARIABLE rv) -            exec_program( ${cmd} ${HAVOK_RELWITHDEBINFO_LIBRARY_PATH} ARGS ${relwithdebinfo_dir} OUTPUT_VARIABLE rv) - -            set(cmd "ar") -            set(arg " -xv") -            set(arg "${arg} ../lib${HAVOK_LIB}.a") -            exec_program( ${cmd} ${debug_dir} ARGS ${arg} OUTPUT_VARIABLE rv) -            exec_program( ${cmd} ${release_dir} ARGS ${arg} OUTPUT_VARIABLE rv) -            exec_program( ${cmd} ${relwithdebinfo_dir} ARGS ${arg} OUTPUT_VARIABLE rv) - -            file(GLOB extracted_debug "${debug_dir}/*.o") -            file(GLOB extracted_release "${release_dir}/*.o") -            file(GLOB extracted_relwithdebinfo "${relwithdebinfo_dir}/*.o") -            list(APPEND HK_DEBUG_LIBRARIES ${extracted_debug}) -            list(APPEND HK_RELEASE_LIBRARIES ${extracted_release}) -            list(APPEND HK_RELWITHDEBINFO_LIBRARIES ${extracted_relwithdebinfo}) -        else(LINUX) -        # Win32 -            list(APPEND HK_DEBUG_LIBRARIES   ${HAVOK_DEBUG_LIB_${HAVOK_LIB}}) -            list(APPEND HK_RELEASE_LIBRARIES ${HAVOK_RELEASE_LIB_${HAVOK_LIB}}) -            list(APPEND HK_RELWITHDEBINFO_LIBRARIES ${HAVOK_RELWITHDEBINFO_LIB_${HAVOK_LIB}}) -        endif (LINUX) +  find_library(HAVOK_DEBUG_LIB_${HAVOK_LIB}   ${HAVOK_LIB} PATHS ${HAVOK_DEBUG_LIBRARY_PATH}) +  find_library(HAVOK_RELEASE_LIB_${HAVOK_LIB} ${HAVOK_LIB} PATHS ${HAVOK_RELEASE_LIBRARY_PATH}) +  find_library(HAVOK_RELWITHDEBINFO_LIB_${HAVOK_LIB} ${HAVOK_LIB} PATHS ${HAVOK_RELWITHDEBINFO_LIBRARY_PATH}) +   +  if(LINUX) +    set(debug_dir "${HAVOK_DEBUG_LIBRARY_PATH}/${HAVOK_LIB}") +    set(release_dir "${HAVOK_RELEASE_LIBRARY_PATH}/${HAVOK_LIB}") +    set(relwithdebinfo_dir "${HAVOK_RELWITHDEBINFO_LIBRARY_PATH}/${HAVOK_LIB}") + +    # Try to avoid extracting havok library each time we run cmake. +    if("${havok_${HAVOK_LIB}_extracted}" STREQUAL "" AND EXISTS "${CMAKE_BINARY_DIR}/temp/havok_${HAVOK_LIB}_extracted") +      file(READ ${CMAKE_BINARY_DIR}/temp/havok_${HAVOK_LIB}_extracted "havok_${HAVOK_LIB}_extracted") +      if(DEBUG_PREBUILT) +        message(STATUS "havok_${HAVOK_LIB}_extracted: \"${havok_${HAVOK_LIB}_extracted}\"") +      endif(DEBUG_PREBUILT) +    endif("${havok_${HAVOK_LIB}_extracted}" STREQUAL "" AND EXISTS "${CMAKE_BINARY_DIR}/temp/havok_${HAVOK_LIB}_extracted") + +    if(${CMAKE_BINARY_DIR}/temp/havok-source_installed IS_NEWER_THAN ${CMAKE_BINARY_DIR}/temp/havok_${HAVOK_LIB}_extracted OR NOT ${havok_${HAVOK_LIB}_extracted} EQUAL 0) +      if(DEBUG_PREBUILT) +        MESSAGE(STATUS "Extracting ${HAVOK_LIB}...") +      endif(DEBUG_PREBUILT) +      set(cmd "mkdir") + +      if(DEBUG_PREBUILT) +        MESSAGE(STATUS "${cmd} ${debug_dir}") +      endif(DEBUG_PREBUILT) +      exec_program( ${cmd} ${HAVOK_DEBUG_LIBRARY_PATH} ARGS ${debug_dir} OUTPUT_VARIABLE rv) + +      if(DEBUG_PREBUILT) +        MESSAGE(STATUS "${cmd} ${release_dir}") +      endif(DEBUG_PREBUILT) +      exec_program( ${cmd} ${HAVOK_RELEASE_LIBRARY_PATH} ARGS ${release_dir} OUTPUT_VARIABLE rv) + +      if(DEBUG_PREBUILT) +        MESSAGE(STATUS "${cmd} ${relwithdebinfo_dir}") +      endif(DEBUG_PREBUILT) +      exec_program( ${cmd} ${HAVOK_RELWITHDEBINFO_LIBRARY_PATH} ARGS ${relwithdebinfo_dir} OUTPUT_VARIABLE rv) + +      set(cmd "ar") +      set(arg " -xv") +      set(arg "${arg} ../lib${HAVOK_LIB}.a") +      if(DEBUG_PREBUILT) +        MESSAGE(STATUS "cd ${debug_dir} && ${cmd} ${arg}") +      endif(DEBUG_PREBUILT) +      exec_program( ${cmd} ${debug_dir} ARGS ${arg} OUTPUT_VARIABLE rv) + +      if(DEBUG_PREBUILT) +        MESSAGE(STATUS "cd ${release_dir} && ${cmd} ${arg}") +      endif(DEBUG_PREBUILT) +      exec_program( ${cmd} ${release_dir} ARGS ${arg} OUTPUT_VARIABLE rv) + +      if(DEBUG_PREBUILT) +        MESSAGE(STATUS "cd ${relwithdebinfo_dir} && ${cmd} ${arg}") +      endif(DEBUG_PREBUILT) +      exec_program( ${cmd} ${relwithdebinfo_dir} ARGS ${arg} OUTPUT_VARIABLE rv) + +      # Just assume success for now. +      set(havok_${HAVOK_LIB}_extracted 0) +      file(WRITE ${CMAKE_BINARY_DIR}/temp/havok_${HAVOK_LIB}_extracted "${havok_${HAVOK_LIB}_extracted}") + +    endif(${CMAKE_BINARY_DIR}/temp/havok-source_installed IS_NEWER_THAN ${CMAKE_BINARY_DIR}/temp/havok_${HAVOK_LIB}_extracted OR NOT ${havok_${HAVOK_LIB}_extracted} EQUAL 0) + +    file(GLOB extracted_debug "${debug_dir}/*.o") +    file(GLOB extracted_release "${release_dir}/*.o") +    file(GLOB extracted_relwithdebinfo "${relwithdebinfo_dir}/*.o") + +    if(DEBUG_PREBUILT) +      MESSAGE(STATUS "extracted_debug ${debug_dir}/*.o") +      MESSAGE(STATUS "extracted_release ${release_dir}/*.o") +      MESSAGE(STATUS "extracted_relwithdebinfo ${relwithdebinfo_dir}/*.o") +    endif(DEBUG_PREBUILT) + +    list(APPEND HK_DEBUG_LIBRARIES ${extracted_debug}) +    list(APPEND HK_RELEASE_LIBRARIES ${extracted_release}) +    list(APPEND HK_RELWITHDEBINFO_LIBRARIES ${extracted_relwithdebinfo}) +  else(LINUX) +  # Win32 +    list(APPEND HK_DEBUG_LIBRARIES   ${HAVOK_DEBUG_LIB_${HAVOK_LIB}}) +    list(APPEND HK_RELEASE_LIBRARIES ${HAVOK_RELEASE_LIB_${HAVOK_LIB}}) +    list(APPEND HK_RELWITHDEBINFO_LIBRARIES ${HAVOK_RELWITHDEBINFO_LIB_${HAVOK_LIB}}) +  endif (LINUX)  endforeach(HAVOK_LIB) +endif(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED) diff --git a/indra/cmake/Linking.cmake b/indra/cmake/Linking.cmake index c3e3a80fd0..b9c9e531fc 100644 --- a/indra/cmake/Linking.cmake +++ b/indra/cmake/Linking.cmake @@ -1,5 +1,8 @@  # -*- cmake -*- +if(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED) +set(${CMAKE_CURRENT_LIST_FILE}_INCLUDED "YES") +  include(Variables)  set(ARCH_PREBUILT_DIRS ${AUTOBUILD_INSTALL_DIR}/lib) @@ -69,3 +72,5 @@ else (WINDOWS)  endif (WINDOWS)  mark_as_advanced(DL_LIBRARY PTHREAD_LIBRARY WINDOWS_LIBRARIES) + +endif(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED) diff --git a/indra/cmake/Prebuilt.cmake b/indra/cmake/Prebuilt.cmake index dbb4dfc46c..ac0cbde253 100644 --- a/indra/cmake/Prebuilt.cmake +++ b/indra/cmake/Prebuilt.cmake @@ -1,5 +1,8 @@  # -*- cmake -*- +if(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED) +set(${CMAKE_CURRENT_LIST_FILE}_INCLUDED "YES") +  include(FindAutobuild)  if(INSTALL_PROPRIETARY)    include(FindSCP) @@ -51,3 +54,5 @@ macro (use_prebuilt_binary _binary)      endif (NOT ${_binary}_installed EQUAL 0)    endif (NOT STANDALONE_${_binary})  endmacro (use_prebuilt_binary _binary) + +endif(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED) diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake index 405d80aeb0..895b3003db 100644 --- a/indra/cmake/Variables.cmake +++ b/indra/cmake/Variables.cmake @@ -12,6 +12,9 @@  # Relative and absolute paths to subtrees. +if(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED) +set(${CMAKE_CURRENT_LIST_FILE}_INCLUDED "YES") +  if(NOT DEFINED COMMON_CMAKE_DIR)      set(COMMON_CMAKE_DIR "${CMAKE_SOURCE_DIR}/cmake")  endif(NOT DEFINED COMMON_CMAKE_DIR) @@ -48,9 +51,6 @@ if (EXISTS ${CMAKE_SOURCE_DIR}/Server.cmake)    # We use this as a marker that you can try to use the proprietary libraries.    set(INSTALL_PROPRIETARY ON CACHE BOOL "Install proprietary binaries")  endif (EXISTS ${CMAKE_SOURCE_DIR}/Server.cmake) -if (LINUX AND INSTALL_PROPRIETARY) -  set(BUILD_HEADLESS ON CACHE BOOL "Build headless libraries.") -endif (LINUX AND INSTALL_PROPRIETARY)  set(TEMPLATE_VERIFIER_OPTIONS "" CACHE STRING "Options for scripts/template_verifier.py")  set(TEMPLATE_VERIFIER_MASTER_URL "http://bitbucket.org/lindenlab/master-message-template/raw/tip/message_template.msg" CACHE STRING "Location of the master message template") @@ -70,6 +70,10 @@ endif (${CMAKE_SYSTEM_NAME} MATCHES "Windows")  if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")    set(LINUX ON BOOl FORCE) +  if (INSTALL_PROPRIETARY) +    set(BUILD_HEADLESS ON CACHE BOOL "Build headless libraries.") +  endif (INSTALL_PROPRIETARY) +    # If someone has specified a word size, use that to determine the    # architecture.  Otherwise, let the architecture specify the word size.    if (WORD_SIZE EQUAL 32) @@ -167,3 +171,4 @@ set(USE_PRECOMPILED_HEADERS ON CACHE BOOL "Enable use of precompiled header dire  source_group("CMake Rules" FILES CMakeLists.txt) +endif(NOT DEFINED ${CMAKE_CURRENT_LIST_FILE}_INCLUDED) diff --git a/indra/llappearance/llavatarappearance.cpp b/indra/llappearance/llavatarappearance.cpp index bdd2d75822..3c01a00e61 100644..100755 --- a/indra/llappearance/llavatarappearance.cpp +++ b/indra/llappearance/llavatarappearance.cpp @@ -903,6 +903,7 @@ BOOL LLAvatarAppearance::loadAvatar()  		if (driver_param->setInfo(info))  		{  			addVisualParam( driver_param ); +			driver_param->setParamLocation(isSelf() ? LOC_AV_SELF : LOC_AV_OTHER);  			LLVisualParam*(LLAvatarAppearance::*avatar_function)(S32)const = &LLAvatarAppearance::getVisualParam;   			if( !driver_param->linkDrivenParams(boost::bind(avatar_function,(LLAvatarAppearance*)this,_1 ), false))  			{ @@ -981,6 +982,7 @@ BOOL LLAvatarAppearance::loadSkeletonNode ()  			else  			{  				addVisualParam(param); +				param->setParamLocation(isSelf() ? LOC_AV_SELF : LOC_AV_OTHER);  			}				  		}  	} @@ -1098,10 +1100,12 @@ BOOL LLAvatarAppearance::loadMeshNodes()  				if (info_pair->second)  				{  					addSharedVisualParam(param); +					param->setParamLocation(isSelf() ? LOC_AV_SELF : LOC_AV_OTHER);  				}  				else  				{  					addVisualParam(param); +					param->setParamLocation(isSelf() ? LOC_AV_SELF : LOC_AV_OTHER);  				}  			}				  		} diff --git a/indra/llappearance/lldriverparam.cpp b/indra/llappearance/lldriverparam.cpp index 2d91ebdee9..01184a9e23 100755 --- a/indra/llappearance/lldriverparam.cpp +++ b/indra/llappearance/lldriverparam.cpp @@ -481,6 +481,7 @@ BOOL LLDriverParam::linkDrivenParams(visual_param_mapper mapper, BOOL only_cross  		if (!found)  		{  			LLViewerVisualParam* param = (LLViewerVisualParam*)mapper(driven_id); +			if (param) param->setParamLocation(this->getParamLocation());  			bool push = param && (!only_cross_params || param->getCrossWearable());  			if (push)  			{ diff --git a/indra/llappearance/lltexlayerparams.cpp b/indra/llappearance/lltexlayerparams.cpp index 58737f7ff4..64b3b62185 100755 --- a/indra/llappearance/lltexlayerparams.cpp +++ b/indra/llappearance/lltexlayerparams.cpp @@ -67,6 +67,7 @@ BOOL LLTexLayerParam::setInfo(LLViewerVisualParamInfo *info, BOOL add_to_appeara  	if (add_to_appearance)  	{  		mAvatarAppearance->addVisualParam( this); +		this->setParamLocation(mAvatarAppearance->isSelf() ? LOC_AV_SELF : LOC_AV_OTHER);  	}  	return TRUE; diff --git a/indra/llappearance/llwearable.cpp b/indra/llappearance/llwearable.cpp index 5d53d1ae39..b33adb254d 100755 --- a/indra/llappearance/llwearable.cpp +++ b/indra/llappearance/llwearable.cpp @@ -128,7 +128,10 @@ void LLWearable::createVisualParams(LLAvatarAppearance *avatarp)  	{  		if (param->getWearableType() == mType)  		{ -			addVisualParam(param->cloneParam(this)); +			LLVisualParam *clone_param = param->cloneParam(this); +			clone_param->setParamLocation(LOC_UNKNOWN); +			clone_param->setParamLocation(LOC_WEARABLE); +			addVisualParam(clone_param);  		}  	} @@ -629,6 +632,7 @@ void LLWearable::addVisualParam(LLVisualParam *param)  		delete mVisualParamIndexMap[param->getID()];  	}  	param->setIsDummy(FALSE); +	param->setParamLocation(LOC_WEARABLE);  	mVisualParamIndexMap[param->getID()] = param;  	mSavedVisualParamMap[param->getID()] = param->getDefaultWeight();  } diff --git a/indra/llappearance/llwearabledata.cpp b/indra/llappearance/llwearabledata.cpp index 401b1dc192..68fdcca782 100755 --- a/indra/llappearance/llwearabledata.cpp +++ b/indra/llappearance/llwearabledata.cpp @@ -120,10 +120,12 @@ void LLWearableData::wearableUpdated(LLWearable *wearable, BOOL removed)  {  	wearable->setUpdated();  	// FIXME DRANO avoid updating params via wearables when rendering server-baked appearance. +#if 0  	if (mAvatarAppearance->isUsingServerBakes() && !mAvatarAppearance->isUsingLocalAppearance())  	{  		return;  	} +#endif  	if (!removed)  	{  		pullCrossWearableValues(wearable->getType()); diff --git a/indra/llcharacter/llcharacter.cpp b/indra/llcharacter/llcharacter.cpp index 85cf1cd3f5..85cf1cd3f5 100644..100755 --- a/indra/llcharacter/llcharacter.cpp +++ b/indra/llcharacter/llcharacter.cpp diff --git a/indra/llcharacter/llvisualparam.cpp b/indra/llcharacter/llvisualparam.cpp index 255f61b1b3..826f76bae0 100644..100755 --- a/indra/llcharacter/llvisualparam.cpp +++ b/indra/llcharacter/llvisualparam.cpp @@ -168,7 +168,8 @@ LLVisualParam::LLVisualParam()  	mIsAnimating( FALSE ),  	mID( -1 ),  	mInfo( 0 ), -	mIsDummy(FALSE) +	mIsDummy(FALSE), +	mParamLocation(LOC_UNKNOWN)  {  } @@ -320,3 +321,20 @@ void LLVisualParam::resetDrivenParams()  	// nothing to do for non-driver parameters  	return;  } + +void LLVisualParam::setParamLocation(EParamLocation loc) +{ +	if (mParamLocation == LOC_UNKNOWN || loc == LOC_UNKNOWN) +	{ +		mParamLocation = loc; +	} +	else if (mParamLocation == loc) +	{ +		// no action +	} +	else +	{ +		llwarns << "param location is already " << mParamLocation << ", not slamming to " << loc << llendl; +	} +} + diff --git a/indra/llcharacter/llvisualparam.h b/indra/llcharacter/llvisualparam.h index 694e27f371..8345990f47 100644..100755 --- a/indra/llcharacter/llvisualparam.h +++ b/indra/llcharacter/llvisualparam.h @@ -50,6 +50,14 @@ enum EVisualParamGroup  	NUM_VISUAL_PARAM_GROUPS  }; +enum EParamLocation +{ +	LOC_UNKNOWN, +	LOC_AV_SELF, +	LOC_AV_OTHER, +	LOC_WEARABLE +}; +  const S32 MAX_TRANSMITTED_VISUAL_PARAMS = 255;  //----------------------------------------------------------------------------- @@ -149,6 +157,9 @@ public:  	void					setIsDummy(BOOL is_dummy) { mIsDummy = is_dummy; } +	void					setParamLocation(EParamLocation loc); +	EParamLocation			getParamLocation() const { return mParamLocation; } +  protected:  	F32					mCurWeight;			// current weight  	F32					mLastWeight;		// last weight @@ -160,6 +171,7 @@ protected:  	S32					mID;				// id for storing weight/morphtarget compares compactly  	LLVisualParamInfo	*mInfo; +	EParamLocation		mParamLocation;		// where does this visual param live?  };  #endif // LL_LLVisualParam_H diff --git a/indra/llrender/CMakeLists.txt b/indra/llrender/CMakeLists.txt index 26b5ac17fe..669b70aa43 100644 --- a/indra/llrender/CMakeLists.txt +++ b/indra/llrender/CMakeLists.txt @@ -32,18 +32,21 @@ include_directories(SYSTEM  set(llrender_SOURCE_FILES      llcubemap.cpp +    llfontbitmapcache.cpp      llfontfreetype.cpp      llfontgl.cpp -    llfontbitmapcache.cpp      llfontregistry.cpp +    llgl.cpp      llgldbg.cpp      llglslshader.cpp      llgltexture.cpp      llimagegl.cpp      llpostprocess.cpp +    llrender.cpp      llrender2dutils.cpp      llrendernavprim.cpp      llrendersphere.cpp +    llrendertarget.cpp      llshadermgr.cpp      lltexture.cpp      lluiimage.cpp @@ -82,11 +85,6 @@ set_source_files_properties(${llrender_HEADER_FILES}  list(APPEND llrender_SOURCE_FILES ${llrender_HEADER_FILES}) -list(APPEND llrender_SOURCE_FILES -     llgl.cpp -     llrender.cpp -     llrendertarget.cpp -     )  if (BUILD_HEADLESS)    add_library (llrenderheadless      ${llrender_SOURCE_FILES} diff --git a/indra/llwindow/CMakeLists.txt b/indra/llwindow/CMakeLists.txt index 4610b7a234..ad010164eb 100644 --- a/indra/llwindow/CMakeLists.txt +++ b/indra/llwindow/CMakeLists.txt @@ -80,6 +80,15 @@ if (LINUX)        fontconfig          # For FCInit and other FC* functions.        ) +  list(APPEND viewer_SOURCE_FILES  +       llkeyboardsdl.cpp  +       llwindowsdl.cpp +       ) +  list(APPEND viewer_HEADER_FILES +       llkeyboardsdl.h +       llwindowsdl.h +       ) +    if (BUILD_HEADLESS)      set(llwindowheadless_LINK_LIBRARIES          ${LLCOMMON_LIBRARIES} @@ -92,6 +101,7 @@ if (LINUX)          fontconfig          # For FCInit and other FC* functions.          )    endif (BUILD_HEADLESS) +  endif (LINUX)  if (DARWIN) @@ -115,16 +125,6 @@ if (DARWIN)        )  endif (DARWIN) -if (LINUX) -  list(APPEND viewer_SOURCE_FILES  -       llkeyboardsdl.cpp  -       llwindowsdl.cpp -       ) -  list(APPEND viewer_HEADER_FILES -       llkeyboardsdl.h -       llwindowsdl.h -       ) -endif (LINUX)  if (WINDOWS)    list(APPEND llwindow_SOURCE_FILES diff --git a/indra/newview/llviewerwearable.cpp b/indra/newview/llviewerwearable.cpp index 1200f65b6e..4477893063 100755 --- a/indra/newview/llviewerwearable.cpp +++ b/indra/newview/llviewerwearable.cpp @@ -320,6 +320,7 @@ void LLViewerWearable::writeToAvatar(LLAvatarAppearance *avatarp)  	if (!viewer_avatar->isValid()) return; +#if 0  	// FIXME DRANO - kludgy way to avoid overwriting avatar state from wearables.  	// Ideally would avoid calling this func in the first place.  	if (viewer_avatar->isUsingServerBakes() && @@ -327,6 +328,7 @@ void LLViewerWearable::writeToAvatar(LLAvatarAppearance *avatarp)  	{  		return;  	} +#endif  	ESex old_sex = avatarp->getSex(); @@ -476,10 +478,13 @@ void LLViewerWearable::setItemID(const LLUUID& item_id)  void LLViewerWearable::revertValues()  { +#if 0 +	// DRANO avoid overwrite when not in local appearance  	if (isAgentAvatarValid() && gAgentAvatarp->isUsingServerBakes() && !gAgentAvatarp->isUsingLocalAppearance())  	{  		return;  	} +#endif  	LLWearable::revertValues(); diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 3d4573903f..a49ecc0127 100755 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -1792,6 +1792,7 @@ S32 LLVOAvatar::setTETexture(const U8 te, const LLUUID& uuid)  		const std::string url = getImageURL(te,uuid);  		if (!url.empty())  		{ +			llinfos << "texture URL " << url << llendl;  			return setTETextureCore(te, uuid, url);  		} @@ -6305,8 +6306,16 @@ void dump_visual_param(apr_file_t* file, LLVisualParam* viewer_param, F32 value)  		type_string = "param_morph";  	if (dynamic_cast<LLPolySkeletalDistortion*>(viewer_param))  		type_string = "param_skeleton"; -	apr_file_printf(file, "\t\t<param id=\"%d\" name=\"%s\" value=\"%.3f\"/ type=\"%s\">\n", -					viewer_param->getID(), viewer_param->getName().c_str(), value, type_string.c_str()); +	S32 wtype = -1; +	LLViewerVisualParam *vparam = dynamic_cast<LLViewerVisualParam*>(viewer_param); +	if (vparam) +	{ +		wtype = vparam->getWearableType(); +	} +	S32 u8_value = F32_to_U8(value,viewer_param->getMinWeight(),viewer_param->getMaxWeight()); +	apr_file_printf(file, "\t\t<param id=\"%d\" name=\"%s\" value=\"%.3f\" u8=\"%d\" type=\"%s\" wearable=\"%s\"/>\n", +					viewer_param->getID(), viewer_param->getName().c_str(), value, u8_value, type_string.c_str(), +					LLWearableType::getTypeName(LLWearableType::EType(wtype)).c_str());  } diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp index e4fb1ebf88..a01188d7dc 100755 --- a/indra/newview/llvoavatarself.cpp +++ b/indra/newview/llvoavatarself.cpp @@ -664,12 +664,13 @@ BOOL LLVOAvatarSelf::setParamWeight(const LLViewerVisualParam *param, F32 weight  		return FALSE;  	} +#if 0  	// FIXME DRANO - kludgy way to avoid overwriting avatar state from wearables.  	if (isUsingServerBakes() && !isUsingLocalAppearance())  	{  		return FALSE;  	} - +#endif  	if (param->getCrossWearable())  	{ @@ -2654,7 +2655,11 @@ void LLVOAvatarSelf::onCustomizeStart(bool disable_camera_switch)  			gAgentCamera.changeCameraToCustomizeAvatar();  		} +#if 0  		gAgentAvatarp->clearVisualParamWeights(); +		gAgentAvatarp->idleUpdateAppearanceAnimation(); +#endif +		  		gAgentAvatarp->invalidateAll();  		gAgentAvatarp->updateMeshTextures();  	} | 
