Merge sunshine-internal -> sunshine-experimental
commit
793dde16f3
|
|
@ -10,7 +10,7 @@ syntax: glob
|
|||
.*.swp
|
||||
#OSX image cache file
|
||||
*.DS_Store
|
||||
*.orig
|
||||
#*.orig
|
||||
LICENSES
|
||||
indra/.distcc
|
||||
build-linux-*
|
||||
|
|
@ -74,4 +74,4 @@ glob:indra/newview/filters.xml
|
|||
glob:indra/newview/avatar_icons_cache.txt
|
||||
glob:indra/newview/avatar_lad.log
|
||||
glob:*.diff
|
||||
*.rej
|
||||
#*.rej
|
||||
|
|
|
|||
|
|
@ -107,7 +107,9 @@ public:
|
|||
public:
|
||||
virtual bool isSelf() const { return false; } // True if this avatar is for this viewer's agent
|
||||
virtual BOOL isValid() const;
|
||||
virtual BOOL isUsingBakedTextures() const = 0;
|
||||
virtual BOOL isUsingServerBakes() const = 0;
|
||||
virtual BOOL isUsingLocalAppearance() const = 0;
|
||||
virtual BOOL isEditingAppearance() const = 0;
|
||||
|
||||
bool isBuilt() const { return mIsBuilt; }
|
||||
|
||||
|
|
|
|||
|
|
@ -187,7 +187,10 @@ BOOL LLDriverParam::setInfo(LLDriverParamInfo *info)
|
|||
{
|
||||
llassert(wearable);
|
||||
LLDriverParam *new_param = new LLDriverParam(mAvatarAppearance, wearable);
|
||||
// FIXME DRANO this clobbers mWearablep, which means any code
|
||||
// currently using mWearablep is wrong, or at least untested.
|
||||
*new_param = *this;
|
||||
// new_param->mDriven.clear(); // clear driven list to avoid overwriting avatar driven params from wearables.
|
||||
return new_param;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -174,12 +174,9 @@ void LLTexLayerParamAlpha::setWeight(F32 weight, BOOL upload_bake)
|
|||
{
|
||||
mCurWeight = new_weight;
|
||||
|
||||
if ((mAvatarAppearance->getSex() & getSex()) && (mAvatarAppearance->isSelf() && !mIsDummy)) // only trigger a baked texture update if we're changing a wearable's visual param.
|
||||
if ((mAvatarAppearance->getSex() & getSex()) &&
|
||||
(mAvatarAppearance->isSelf() && !mIsDummy)) // only trigger a baked texture update if we're changing a wearable's visual param.
|
||||
{
|
||||
if (!mAvatarAppearance->isUsingBakedTextures())
|
||||
{
|
||||
upload_bake = FALSE;
|
||||
}
|
||||
mAvatarAppearance->invalidateComposite(mTexLayer->getTexLayerSet(), upload_bake);
|
||||
mTexLayer->invalidateMorphMasks();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -502,6 +502,8 @@ void LLWearable::setLocalTextureObject(S32 index, LLLocalTextureObject <o)
|
|||
|
||||
void LLWearable::revertValues()
|
||||
{
|
||||
// FIXME DRANO - this triggers changes to driven params on avatar, potentially clobbering baked appearance.
|
||||
|
||||
//update saved settings so wearable is no longer dirty
|
||||
// non-driver params first
|
||||
for (param_map_t::const_iterator iter = mSavedVisualParamMap.begin(); iter != mSavedVisualParamMap.end(); iter++)
|
||||
|
|
|
|||
|
|
@ -115,7 +115,7 @@ if (WINDOWS)
|
|||
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bison.bat
|
||||
ARGS
|
||||
${BISON} ${M4_PATH}
|
||||
-p indra_
|
||||
-p indra_
|
||||
-d -o ${CMAKE_CURRENT_BINARY_DIR}/indra.y.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/indra.y
|
||||
DEPENDS
|
||||
|
|
|
|||
|
|
@ -1927,6 +1927,17 @@
|
|||
<key>Value</key>
|
||||
<string />
|
||||
</map>
|
||||
<key>DebugAvatarAppearanceMessage</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Dump a bunch of XML files when handling appearance messages</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>DebugAvatarRezTime</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
|
|||
|
|
@ -3630,7 +3630,7 @@ void LLAgent::processAgentCachedTextureResponse(LLMessageSystem *mesgsys, void *
|
|||
return;
|
||||
}
|
||||
|
||||
if (isAgentAvatarValid() && !gAgentAvatarp->isUsingBakedTextures())
|
||||
if (isAgentAvatarValid() && gAgentAvatarp->isEditingAppearance())
|
||||
{
|
||||
// ignore baked textures when in customize mode
|
||||
return;
|
||||
|
|
@ -4260,9 +4260,16 @@ void LLAgent::requestLeaveGodMode()
|
|||
//-----------------------------------------------------------------------------
|
||||
void LLAgent::sendAgentSetAppearance()
|
||||
{
|
||||
// FIXME DRANO - this return short-circuits a bunch of phase stat tracking below.
|
||||
if (!isAgentAvatarValid() || (getRegion() && getRegion()->getCentralBakeVersion())) return;
|
||||
|
||||
if (gAgentQueryManager.mNumPendingQueries > 0 && (isAgentAvatarValid() && gAgentAvatarp->isUsingBakedTextures()))
|
||||
// FIXME DRANO - problems around new-style appearance in an old-style region.
|
||||
// - does this get called?
|
||||
// - need to change mUseServerBakes->FALSE in that case
|
||||
// - need to call processAvatarAppearance as if server had returned this result?
|
||||
// gAgentAvatarp->mUseServerBakes = FALSE;
|
||||
|
||||
if (gAgentQueryManager.mNumPendingQueries > 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -4320,6 +4327,9 @@ void LLAgent::sendAgentSetAppearance()
|
|||
}
|
||||
|
||||
// only update cache entries if we have all our baked textures
|
||||
// FIXME DRANO additional if check for not in appearance editing
|
||||
// mode, if still using local composites need to set using local
|
||||
// composites to false, update mesh textures.
|
||||
if (textures_current)
|
||||
{
|
||||
LL_INFOS("Avatar") << gAgentAvatarp->avString() << "TAT: Sending cached texture data" << LL_ENDL;
|
||||
|
|
|
|||
|
|
@ -1600,7 +1600,7 @@ class LLAdvancedEnableAppearanceToXML : public view_listener_t
|
|||
{
|
||||
bool handleEvent(const LLSD& userdata)
|
||||
{
|
||||
return gSavedSettings.getBOOL("DebugAvatarCompositeBaked");
|
||||
return gSavedSettings.getBOOL("DebugAvatarAppearanceMessage");
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -285,7 +285,7 @@ BOOL LLViewerTexLayerSetBuffer::uploadInProgress() const
|
|||
BOOL LLViewerTexLayerSetBuffer::isReadyToUpload() const
|
||||
{
|
||||
if (!gAgentQueryManager.hasNoPendingQueries()) return FALSE; // Can't upload if there are pending queries.
|
||||
if (isAgentAvatarValid() && !gAgentAvatarp->isUsingBakedTextures()) return FALSE; // Don't upload if avatar is using composites.
|
||||
if (isAgentAvatarValid() && gAgentAvatarp->isEditingAppearance()) return FALSE; // Don't upload if avatar is being edited.
|
||||
|
||||
BOOL ready = FALSE;
|
||||
if (getViewerTexLayerSet()->isLocalTextureDataFinal())
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@
|
|||
#include "llavatarappearancedefines.h"
|
||||
#include "llviewerwearable.h"
|
||||
#include "llviewercontrol.h"
|
||||
#include "llviewerregion.h"
|
||||
|
||||
using namespace LLAvatarAppearanceDefines;
|
||||
|
||||
|
|
@ -319,13 +320,12 @@ void LLViewerWearable::writeToAvatar(LLAvatarAppearance *avatarp)
|
|||
|
||||
if (!viewer_avatar->isValid()) return;
|
||||
|
||||
// *TODO: Check with Vir on this:
|
||||
#if 0
|
||||
if (!viewer_avatar->isUsingLocalAppearance())
|
||||
if (viewer_avatar->getRegion() &&
|
||||
(viewer_avatar->getRegion()->getCentralBakeVersion()>0) &&
|
||||
!viewer_avatar->isUsingLocalAppearance())
|
||||
{
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
ESex old_sex = avatarp->getSex();
|
||||
|
||||
|
|
|
|||
|
|
@ -4693,7 +4693,7 @@ void LLViewerWindow::restoreGL(const std::string& progress_message)
|
|||
gResizeScreenTexture = TRUE;
|
||||
gWindowResized = TRUE;
|
||||
|
||||
if (isAgentAvatarValid() && !gAgentAvatarp->isUsingBakedTextures())
|
||||
if (isAgentAvatarValid() && gAgentAvatarp->isEditingAppearance())
|
||||
{
|
||||
LLVisualParamHint::requestHintUpdates();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@
|
|||
#include "llcallingcard.h" // IDEVO for LLAvatarTracker
|
||||
#include "lldrawpoolavatar.h"
|
||||
#include "lldriverparam.h"
|
||||
#include "llpolyskeletaldistortion.h"
|
||||
#include "lleditingmotion.h"
|
||||
#include "llemote.h"
|
||||
//#include "llfirstuse.h"
|
||||
|
|
@ -191,8 +192,7 @@ enum ERenderName
|
|||
|
||||
// Utility func - FIXME move out of avatar.
|
||||
std::string get_sequential_numbered_file_name(const std::string& prefix,
|
||||
const std::string& suffix,
|
||||
const S32 width = 4);
|
||||
const std::string& suffix);
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Callback data
|
||||
|
|
@ -626,7 +626,7 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id,
|
|||
mLastRezzedStatus(-1),
|
||||
mIsEditingAppearance(FALSE),
|
||||
mUseLocalAppearance(FALSE),
|
||||
mUseServerBakes(TRUE)
|
||||
mUseServerBakes(FALSE)
|
||||
{
|
||||
LLMemType mt(LLMemType::MTYPE_AVATAR);
|
||||
//VTResume(); // VTune
|
||||
|
|
@ -2882,6 +2882,20 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
|
|||
|
||||
// clear debug text
|
||||
mDebugText.clear();
|
||||
|
||||
if (gSavedSettings.getBOOL("DebugAvatarAppearanceMessage"))
|
||||
{
|
||||
S32 central_bake_version = -1;
|
||||
if (getRegion())
|
||||
{
|
||||
central_bake_version = getRegion()->getCentralBakeVersion();
|
||||
}
|
||||
addDebugText(llformat("mUseLocalAppearance: %d,\nmIsEditingAppearance: %d\n"
|
||||
"mUseServerBakes %d,\ncentralBakeVersion %d",
|
||||
mUseLocalAppearance, mIsEditingAppearance,
|
||||
mUseServerBakes, central_bake_version));
|
||||
}
|
||||
|
||||
if (LLVOAvatar::sShowAnimationDebug)
|
||||
{
|
||||
for (LLMotionController::motion_list_t::iterator iter = mMotionController.getActiveMotions().begin();
|
||||
|
|
@ -4060,7 +4074,7 @@ void LLVOAvatar::updateTextures()
|
|||
if (isIndexBakedTexture((ETextureIndex)texture_index)
|
||||
&& imagep->getID() != IMG_DEFAULT_AVATAR
|
||||
&& imagep->getID() != IMG_INVISIBLE
|
||||
&& !mUseServerBakes
|
||||
&& !isUsingServerBakes()
|
||||
&& !imagep->getTargetHost().isOk())
|
||||
{
|
||||
LL_WARNS_ONCE("Texture") << "LLVOAvatar::updateTextures No host for texture "
|
||||
|
|
@ -4203,8 +4217,15 @@ void LLVOAvatar::setTexEntry(const U8 index, const LLTextureEntry &te)
|
|||
const std::string LLVOAvatar::getImageURL(const U8 te, const LLUUID &uuid)
|
||||
{
|
||||
std::string url = "";
|
||||
if (mUseServerBakes && !gSavedSettings.getString("AgentAppearanceServiceURL").empty())
|
||||
if (isUsingServerBakes())
|
||||
{
|
||||
if (gSavedSettings.getString("AgentAppearanceServiceURL").empty())
|
||||
{
|
||||
// Probably a server-side issue if we get here:
|
||||
llwarns << "AgentAppearanceServiceURL not set - Baked texture requests will fail" << llendl;
|
||||
return url;
|
||||
}
|
||||
|
||||
const LLAvatarAppearanceDictionary::TextureEntry* texture_entry = LLAvatarAppearanceDictionary::getInstance()->getTexture((ETextureIndex)te);
|
||||
if (texture_entry != NULL)
|
||||
{
|
||||
|
|
@ -5816,7 +5837,7 @@ void LLVOAvatar::updateMeshTextures()
|
|||
for (U32 i=0; i < mBakedTextureDatas.size(); i++)
|
||||
{
|
||||
LLViewerTexLayerSet* layerset = getTexLayerSet(i);
|
||||
if (use_lkg_baked_layer[i] && !mUseLocalAppearance )
|
||||
if (use_lkg_baked_layer[i] && !isUsingLocalAppearance() )
|
||||
{
|
||||
LLViewerFetchedTexture* baked_img;
|
||||
const std::string url = getImageURL(i, mBakedTextureDatas[i].mLastTextureIndex);
|
||||
|
|
@ -5852,7 +5873,7 @@ void LLVOAvatar::updateMeshTextures()
|
|||
}
|
||||
}
|
||||
}
|
||||
else if (!mUseLocalAppearance && is_layer_baked[i])
|
||||
else if (!isUsingLocalAppearance() && is_layer_baked[i])
|
||||
{
|
||||
LLViewerFetchedTexture* baked_img = LLViewerTextureManager::staticCastToFetchedTexture(getImage( mBakedTextureDatas[i].mTextureIndex, 0 ), TRUE) ;
|
||||
if( baked_img->getID() == mBakedTextureDatas[i].mLastTextureIndex )
|
||||
|
|
@ -5872,7 +5893,7 @@ void LLVOAvatar::updateMeshTextures()
|
|||
src_callback_list, paused );
|
||||
}
|
||||
}
|
||||
else if (layerset && mUseLocalAppearance)
|
||||
else if (layerset && isUsingLocalAppearance())
|
||||
{
|
||||
layerset->createComposite();
|
||||
layerset->setUpdatesEnabled( TRUE );
|
||||
|
|
@ -5913,7 +5934,7 @@ void LLVOAvatar::updateMeshTextures()
|
|||
// set texture and color of hair manually if we are not using a baked image.
|
||||
// This can happen while loading hair for yourself, or for clients that did not
|
||||
// bake a hair texture. Still needed for yourself after 1.22 is depricated.
|
||||
if (!is_layer_baked[BAKED_HAIR] || mIsEditingAppearance)
|
||||
if (!is_layer_baked[BAKED_HAIR] || isEditingAppearance())
|
||||
{
|
||||
const LLColor4 color = mTexHairColor ? mTexHairColor->getColor() : LLColor4(1,1,1,1);
|
||||
LLViewerTexture* hair_img = getImage( TEX_HAIR, 0 );
|
||||
|
|
@ -6277,6 +6298,24 @@ bool LLVOAvatar::visualParamWeightsAreDefault()
|
|||
return rtn;
|
||||
}
|
||||
|
||||
void dump_visual_param(apr_file_t* file, LLVisualParam* viewer_param, F32 value)
|
||||
{
|
||||
std::string type_string = "unknown";
|
||||
if (dynamic_cast<LLTexLayerParamAlpha*>(viewer_param))
|
||||
type_string = "param_alpha";
|
||||
if (dynamic_cast<LLTexLayerParamColor*>(viewer_param))
|
||||
type_string = "param_color";
|
||||
if (dynamic_cast<LLDriverParam*>(viewer_param))
|
||||
type_string = "param_driver";
|
||||
if (dynamic_cast<LLPolyMorphTarget*>(viewer_param))
|
||||
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());
|
||||
}
|
||||
|
||||
|
||||
void LLVOAvatar::dumpAppearanceMsgParams( const std::string& dump_prefix,
|
||||
const std::vector<F32>& params_for_dump,
|
||||
const LLTEContents& tec)
|
||||
|
|
@ -6306,8 +6345,7 @@ void LLVOAvatar::dumpAppearanceMsgParams( const std::string& dump_prefix,
|
|||
}
|
||||
LLViewerVisualParam* viewer_param = (LLViewerVisualParam*)param;
|
||||
F32 value = params_for_dump[i];
|
||||
apr_file_printf(file, "\t\t<param id=\"%d\" name=\"%s\" value=\"%.3f\"/>\n",
|
||||
viewer_param->getID(), viewer_param->getName().c_str(), value);
|
||||
dump_visual_param(file, viewer_param, value);
|
||||
param = getNextVisualParam();
|
||||
}
|
||||
for (U32 i = 0; i < tec.face_count; i++)
|
||||
|
|
@ -6323,14 +6361,14 @@ void LLVOAvatar::dumpAppearanceMsgParams( const std::string& dump_prefix,
|
|||
//-----------------------------------------------------------------------------
|
||||
void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
|
||||
{
|
||||
//std::string dump_prefix = getFullname() + " ";
|
||||
//dumpArchetypeXML(dump_prefix + "process_start");
|
||||
bool enable_verbose_dumps = gSavedSettings.getBOOL("DebugAvatarAppearanceMessage");
|
||||
std::string dump_prefix = getFullname() + "_" + (isSelf()?"s":"o") + "_";
|
||||
if (enable_verbose_dumps) { dumpArchetypeXML(dump_prefix + "process_start"); }
|
||||
if (gSavedSettings.getBOOL("BlockAvatarAppearanceMessages"))
|
||||
{
|
||||
llwarns << "Blocking AvatarAppearance message" << llendl;
|
||||
return;
|
||||
}
|
||||
|
||||
LLMemType mt(LLMemType::MTYPE_AVATAR);
|
||||
|
||||
BOOL is_first_appearance_message = !mFirstAppearanceMessageReceived;
|
||||
|
|
@ -6340,25 +6378,10 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
|
|||
<< " first? " << is_first_appearance_message << " self? " << isSelf() << LL_ENDL;
|
||||
|
||||
|
||||
if( isSelf() )
|
||||
{
|
||||
llwarns << avString() << "Received AvatarAppearance for self" << llendl;
|
||||
if( mFirstTEMessageReceived && !mUseServerBakes)
|
||||
{
|
||||
// llinfos << "processAvatarAppearance end " << mID << llendl;
|
||||
return;
|
||||
}
|
||||
}
|
||||
clearVisualParamWeights();
|
||||
//dumpArchetypeXML(dump_prefix + "process_post_clear");
|
||||
|
||||
ESex old_sex = getSex();
|
||||
|
||||
// llinfos << "LLVOAvatar::processAvatarAppearance()" << llendl;
|
||||
// dumpAvatarTEs( "PRE processAvatarAppearance()" );
|
||||
LLTEContents tec;
|
||||
parseTEMessage(mesgsys, _PREHASH_ObjectData, -1, tec);
|
||||
// dumpAvatarTEs( "POST processAvatarAppearance()" );
|
||||
|
||||
U8 appearance_version = 0;
|
||||
S32 this_update_cof_version = LLViewerInventoryCategory::VERSION_UNKNOWN;
|
||||
|
|
@ -6383,8 +6406,20 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
|
|||
mUseServerBakes = false;
|
||||
}
|
||||
|
||||
// Only now that we have result of appearance_version can we decide whether to bail out.
|
||||
// Don't expect this case to occur.
|
||||
if( isSelf() )
|
||||
{
|
||||
llwarns << avString() << "Received AvatarAppearance for self" << llendl;
|
||||
if( mFirstTEMessageReceived && !isUsingServerBakes())
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Check for stale update.
|
||||
if (mUseServerBakes && isSelf()
|
||||
if (isUsingServerBakes() && isSelf()
|
||||
&& this_update_cof_version >= LLViewerInventoryCategory::VERSION_INITIAL
|
||||
&& this_update_cof_version < last_update_request_cof_version)
|
||||
{
|
||||
|
|
@ -6470,12 +6505,11 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
|
|||
}
|
||||
param = getNextVisualParam();
|
||||
}
|
||||
//dumpAppearanceMsgParams(dump_prefix + "appearance_msg",
|
||||
// params_for_dump,
|
||||
// tec);
|
||||
if (enable_verbose_dumps)
|
||||
dumpAppearanceMsgParams(dump_prefix + "appearance_msg", params_for_dump, tec);
|
||||
}
|
||||
|
||||
//dumpArchetypeXML(dump_prefix + "process_post_set_weights");
|
||||
if (enable_verbose_dumps) { dumpArchetypeXML(dump_prefix + "process_post_set_weights"); }
|
||||
|
||||
const S32 expected_tweakable_count = getVisualParamCountInGroup(VISUAL_PARAM_GROUP_TWEAKABLE); // don't worry about VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT
|
||||
if (num_blocks != expected_tweakable_count)
|
||||
|
|
@ -6541,7 +6575,7 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
|
|||
|
||||
updateMeshTextures();
|
||||
|
||||
//dumpArchetypeXML(dump_prefix + "process_end");
|
||||
if (enable_verbose_dumps) dumpArchetypeXML(dump_prefix + "process_end");
|
||||
// llinfos << "processAvatarAppearance end " << mID << llendl;
|
||||
}
|
||||
|
||||
|
|
@ -6784,8 +6818,7 @@ void LLVOAvatar::useBakedTexture( const LLUUID& id )
|
|||
}
|
||||
|
||||
std::string get_sequential_numbered_file_name(const std::string& prefix,
|
||||
const std::string& suffix,
|
||||
const S32 width)
|
||||
const std::string& suffix)
|
||||
{
|
||||
typedef std::map<std::string,S32> file_num_type;
|
||||
static file_num_type file_nums;
|
||||
|
|
@ -6795,10 +6828,8 @@ std::string get_sequential_numbered_file_name(const std::string& prefix,
|
|||
{
|
||||
num = it->second;
|
||||
}
|
||||
std::ostringstream temp;
|
||||
temp << std::setw(width) << std::setfill('0') << num;
|
||||
file_nums[prefix] = num+1;
|
||||
std::string outfilename = prefix + " " + temp.str() + ".xml";
|
||||
std::string outfilename = prefix + " " + llformat("%04d",num) + ".xml";
|
||||
std::replace(outfilename.begin(),outfilename.end(),' ','_');
|
||||
return outfilename;
|
||||
}
|
||||
|
|
@ -6808,7 +6839,7 @@ void LLVOAvatar::dumpArchetypeXML(const std::string& prefix, bool group_by_weara
|
|||
std::string outprefix(prefix);
|
||||
if (outprefix.empty())
|
||||
{
|
||||
outprefix = getFullname();
|
||||
outprefix = getFullname() + (isSelf()?"_s":"_o");
|
||||
}
|
||||
if (outprefix.empty())
|
||||
{
|
||||
|
|
@ -6846,8 +6877,7 @@ void LLVOAvatar::dumpArchetypeXML(const std::string& prefix, bool group_by_weara
|
|||
if( (viewer_param->getWearableType() == type) &&
|
||||
(viewer_param->isTweakable() ) )
|
||||
{
|
||||
apr_file_printf(file, "\t\t<param id=\"%d\" name=\"%s\" value=\"%.3f\"/>\n",
|
||||
viewer_param->getID(), viewer_param->getName().c_str(), viewer_param->getWeight());
|
||||
dump_visual_param(file, viewer_param, viewer_param->getWeight());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -6873,10 +6903,7 @@ void LLVOAvatar::dumpArchetypeXML(const std::string& prefix, bool group_by_weara
|
|||
for (LLVisualParam* param = getFirstVisualParam(); param; param = getNextVisualParam())
|
||||
{
|
||||
LLViewerVisualParam* viewer_param = (LLViewerVisualParam*)param;
|
||||
{
|
||||
apr_file_printf(file, "\t\t<param id=\"%d\" name=\"%s\" value=\"%.3f\"/>\n",
|
||||
viewer_param->getID(), viewer_param->getName().c_str(), viewer_param->getWeight());
|
||||
}
|
||||
dump_visual_param(file, viewer_param, viewer_param->getWeight());
|
||||
}
|
||||
|
||||
for (U8 te = 0; te < TEX_NUM_INDICES; te++)
|
||||
|
|
|
|||
|
|
@ -208,7 +208,6 @@ public:
|
|||
|
||||
public:
|
||||
virtual bool isSelf() const { return false; } // True if this avatar is for this viewer's agent
|
||||
/*virtual*/BOOL isUsingBakedTextures() const { return mUseServerBakes; } // e.g. false if in appearance edit mode
|
||||
|
||||
private: //aligned members
|
||||
LL_ALIGN_16(LLVector4a mImpostorExtents[2]);
|
||||
|
|
@ -636,7 +635,21 @@ public:
|
|||
//--------------------------------------------------------------------
|
||||
public:
|
||||
BOOL getIsAppearanceAnimating() const { return mAppearanceAnimating; }
|
||||
BOOL isUsingLocalAppearance() const { return mUseLocalAppearance; }
|
||||
|
||||
// True if we are computing our appearance via local compositing
|
||||
// instead of baked textures, as for example during wearable
|
||||
// editing or when waiting for a subsequent server rebake.
|
||||
/*virtual*/ BOOL isUsingLocalAppearance() const { return mUseLocalAppearance; }
|
||||
|
||||
// True if this avatar should fetch its baked textures via the new
|
||||
// appearance mechanism.
|
||||
/*virtual*/ BOOL isUsingServerBakes() const { return mUseServerBakes; }
|
||||
|
||||
// True if we are currently in appearance editing mode. Often but
|
||||
// not always the same as isUsingLocalAppearance().
|
||||
/*virtual*/ BOOL isEditingAppearance() const { return mIsEditingAppearance; }
|
||||
|
||||
// FIXME review isUsingLocalAppearance uses, some should be isEditing instead.
|
||||
|
||||
private:
|
||||
BOOL mAppearanceAnimating;
|
||||
|
|
|
|||
|
|
@ -746,7 +746,10 @@ U32 LLVOAvatarSelf::processUpdateMessage(LLMessageSystem *mesgsys,
|
|||
{
|
||||
U32 retval = LLVOAvatar::processUpdateMessage(mesgsys,user_data,block_num,update_type,dp);
|
||||
|
||||
if (mInitialBakesLoaded == false && retval == 0x0)
|
||||
// FIXME DRANO - skipping in the case of !mFirstAppearanceMessageReceived prevents us from trying to
|
||||
// load textures before we know where they come from (ie, from baking service or not);
|
||||
// unknown impact on performance.
|
||||
if (mInitialBakesLoaded == false && retval == 0x0 && mFirstAppearanceMessageReceived)
|
||||
{
|
||||
// call update textures to force the images to be created
|
||||
updateMeshTextures();
|
||||
|
|
@ -1274,11 +1277,8 @@ void LLVOAvatarSelf::localTextureLoaded(BOOL success, LLViewerFetchedTexture *sr
|
|||
discard_level < local_tex_obj->getDiscard())
|
||||
{
|
||||
local_tex_obj->setDiscard(discard_level);
|
||||
if (isUsingBakedTextures())
|
||||
{
|
||||
requestLayerSetUpdate(index);
|
||||
}
|
||||
else
|
||||
requestLayerSetUpdate(index);
|
||||
if (isEditingAppearance())
|
||||
{
|
||||
LLVisualParamHint::requestHintUpdates();
|
||||
}
|
||||
|
|
@ -1758,11 +1758,8 @@ void LLVOAvatarSelf::setLocalTexture(ETextureIndex type, LLViewerTexture* src_te
|
|||
local_tex_obj->setDiscard(tex_discard);
|
||||
if (isSelf())
|
||||
{
|
||||
if (gAgentAvatarp->isUsingBakedTextures())
|
||||
{
|
||||
requestLayerSetUpdate(type);
|
||||
}
|
||||
else
|
||||
requestLayerSetUpdate(type);
|
||||
if (isEditingAppearance())
|
||||
{
|
||||
LLVisualParamHint::requestHintUpdates();
|
||||
}
|
||||
|
|
@ -2669,6 +2666,7 @@ void LLVOAvatarSelf::onCustomizeEnd(bool disable_camera_switch)
|
|||
gAgentAvatarp->mIsEditingAppearance = false;
|
||||
if (gAgentAvatarp->getRegion() && !gAgentAvatarp->getRegion()->getCentralBakeVersion())
|
||||
{
|
||||
// FIXME DRANO - move to sendAgentSetAppearance, make conditional on upload complete.
|
||||
gAgentAvatarp->mUseLocalAppearance = false;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue