Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • alchemy/viewer
  • Miezhiko/alchemy-next
  • JennaHuntsman/xdg-integration
  • logue/alchemy-next
  • FelixWolf/alchemy-viewer
  • XenHat/xdg-integration
6 results
Show changes
Commits on Source (488)
Showing
with 202 additions and 105 deletions
repos:
- repo: https://bitbucket.org/lindenlab/git-hooks.git
rev: v1.0.0-beta2
hooks:
- id: opensource-license
- id: jira-issue
- id: llsd
- id: no-trigraphs
- id: copyright
- id: end-of-file
files: \.(cpp|c|h|py|glsl|cmake|txt)$
exclude: language.txt
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.5.0
hooks:
- id: check-xml
- id: mixed-line-ending
This diff is collapsed.
......@@ -279,6 +279,7 @@ Beq Janus
SL-14766
SL-14927
SL-11300
SL-16021
Beth Walcher
Bezilon Kasei
Biancaluce Robbiani
......@@ -1107,6 +1108,7 @@ Nicky Dasmijn
OPEN-187
STORM-1937
OPEN-187
SL-15234
STORM-2010
STORM-2082
MAINT-6665
......@@ -1116,6 +1118,7 @@ Nicky Dasmijn
SL-11072
SL-13141
SL-13642
SL-16438
Nicky Perian
OPEN-1
STORM-1087
......
......@@ -151,8 +151,6 @@ elseif(DARWIN)
libGLOD.dylib
libhunspell-1.7.0.dylib
libndofdev.dylib
libxmlrpc-epi.dylib
libxmlrpc-epi.0.dylib
)
if (USE_FMODSTUDIO)
......
......@@ -6,6 +6,8 @@ if (NOT USESYSTEMLIBS)
use_prebuilt_binary(glod)
endif (NOT USESYSTEMLIBS)
set(GLODLIB ON CACHE BOOL "Using GLOD library")
set(GLOD_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include)
if (WINDOWS)
set(GLOD_LIBRARIES
......
......@@ -452,7 +452,7 @@ def __exit__(self, type, value, traceback):
# if we restore the length of each stack to what it was before the
# current prefix() block, it doesn't matter whether end_prefix()
# was called or not.
for stack, prevlen in self.prevlen.items():
for stack, prevlen in list(self.prevlen.items()):
# find the attribute in 'self.manifest' named by 'stack', and
# truncate that list back to 'prevlen'
del getattr(self.manifest, stack)[prevlen:]
......@@ -618,7 +618,7 @@ def finish(self):
organize[frozenset(missingfile.tried)].add(missingfile.pattern)
# Now dump all the patterns sought in each group of 'tried'
# directories.
for tried, patterns in organize.items():
for tried, patterns in list(organize.items()):
print(" Could not find in:")
for dir in sorted(tried):
print(" %s" % dir)
......@@ -869,7 +869,7 @@ def try_path(src):
break
else:
# no more prefixes left to try
print("\nunable to find '%s'; looked in:\n %s" % (src, '\n '.join(try_prefixes)))
print(("\nunable to find '%s'; looked in:\n %s" % (src, '\n '.join(try_prefixes))))
if err_if_missing == True:
self.missing.append(MissingFile(pattern=src, tried=try_prefixes))
# At this point 'count' might never have been successfully
......
......@@ -288,6 +288,7 @@ LLAvatarAppearance::~LLAvatarAppearance()
{
mRoot->removeAllChildren();
delete mRoot;
mRoot = nullptr;
}
mJointMap.clear();
......@@ -529,7 +530,10 @@ void LLAvatarAppearance::computeBodySize()
F32 old_offset = mAvatarOffset.mV[VZ];
mAvatarOffset.mV[VZ] = getVisualParamWeight(AVATAR_HOVER);
// [RLVa:KB] - Checked: 2013-03-03 (RLVa-1.4.8)
mAvatarOffset.mV[VZ] = getAvatarOffset();
// [/RLVa:KB]
// mAvatarOffset.mV[VZ] = getVisualParamWeight(AVATAR_HOVER);
mPelvisToFoot = hip.mV[VZ] * pelvis_scale.mV[VZ] -
knee.mV[VZ] * hip_scale.mV[VZ] -
......@@ -556,14 +560,21 @@ void LLAvatarAppearance::computeBodySize()
if (new_body_size != mBodySize || old_offset != mAvatarOffset.mV[VZ])
{
mBodySize = new_body_size;
bodySizeChanged();
#ifdef SHOW_DEBUG
compareJointStateMaps(mLastBodySizeState, mCurrBodySizeState);
#endif
bodySizeChanged();
}
}
// [RLVa:KB] - Checked: 2013-03-03 (RLVa-1.4.8)
F32 LLAvatarAppearance::getAvatarOffset() /*const*/
{
return getVisualParamWeight(AVATAR_HOVER);
}
// [/RLVa:KB]
//-----------------------------------------------------------------------------
// parseSkeletonFile()
//-----------------------------------------------------------------------------
......
......@@ -161,6 +161,9 @@ class LLAvatarAppearance : public LLCharacter
static BOOL parseSkeletonFile(const std::string& filename, LLXmlTree& skeleton_xml_tree);
virtual void buildCharacter();
virtual BOOL loadAvatar();
// [RLVa:KB] - Checked: 2013-03-03 (RLVa-1.4.8)
virtual F32 getAvatarOffset() /*const*/;
// [/RLVa:KB]
virtual void bodySizeChanged() = 0;
BOOL setupBone(const LLAvatarBoneInfo* info, LLJoint* parent, S32 &current_volume_num, S32 &current_joint_num);
......
......@@ -302,7 +302,9 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
BOOL status = FALSE;
if ( strncmp(header, HEADER_BINARY, strlen(HEADER_BINARY)) == 0 ) /*Flawfinder: ignore*/
{
#ifdef SHOW_DEBUG
LL_DEBUGS() << "Loading " << fileName << LL_ENDL;
#endif
//----------------------------------------------------------------
// File Header (seek past it)
......@@ -559,10 +561,12 @@ BOOL LLPolyMeshSharedData::loadMesh( const std::string& fileName )
numTris++;
}
#ifdef SHOW_DEBUG
LL_DEBUGS() << "verts: " << numVertices
<< ", faces: " << numFaces
<< ", tris: " << numTris
<< LL_ENDL;
#endif
//----------------------------------------------------------------
// NumSkinJoints
......
......@@ -1429,7 +1429,9 @@ void LLTexLayer::renderMorphMasks(S32 x, S32 y, S32 width, S32 height, const LLC
{
if (!force_render && !hasMorph())
{
#ifdef SHOW_DEBUG
LL_DEBUGS() << "skipping renderMorphMasks for " << getUUID() << LL_ENDL;
#endif
return;
}
LL_RECORD_BLOCK_TIME(FTM_RENDER_MORPH_MASKS);
......@@ -1470,7 +1472,9 @@ void LLTexLayer::renderMorphMasks(S32 x, S32 y, S32 width, S32 height, const LLC
success &= param->render( x, y, width, height );
if (!success && !force_render)
{
#ifdef SHOW_DEBUG
LL_DEBUGS() << "Failed to render param " << param->getID() << " ; skipping morph mask." << LL_ENDL;
#endif
return;
}
}
......@@ -1556,8 +1560,10 @@ void LLTexLayer::renderMorphMasks(S32 x, S32 y, S32 width, S32 height, const LLC
// We can get bad morph masks during login, on minimize, and occasional gl errors.
// We should only be doing this when we believe something has changed with respect to the user's appearance.
{
LL_DEBUGS("Avatar") << "gl alpha cache of morph mask not found, doing readback: " << getName() << LL_ENDL;
// clear out a slot if we have filled our cache
#ifdef SHOW_DEBUG
LL_DEBUGS("Avatar") << "gl alpha cache of morph mask not found, doing readback: " << getName() << LL_ENDL;
#endif
// clear out a slot if we have filled our cache
S32 max_cache_entries = getTexLayerSet()->getAvatarAppearance()->isSelf() ? 4 : 1;
while ((S32)mAlphaCache.size() >= max_cache_entries)
{
......
......@@ -324,8 +324,10 @@ BOOL LLTexLayerParamAlpha::render(S32 x, S32 y, S32 width, S32 height)
mStaticImageRaw = NULL;
mStaticImageRaw = new LLImageRaw;
mStaticImageTGA->decodeAndProcess(mStaticImageRaw, info->mDomain, effective_weight);
mNeedsCreateTexture = TRUE;
mNeedsCreateTexture = TRUE;
#ifdef SHOW_DEBUG
LL_DEBUGS() << "Built Cached Alpha: " << info->mStaticImageFileName << ": (" << mStaticImageRaw->getWidth() << ", " << mStaticImageRaw->getHeight() << ") " << "Domain: " << info->mDomain << " Weight: " << effective_weight << LL_ENDL;
#endif
}
if (mCachedProcessedTexture)
......
......@@ -94,8 +94,8 @@ class LLTexLayerParamAlpha final : public LLTexLayerParam
/*virtual*/ const LLVector4a& getAvgDistortion() override { return mAvgDistortionVec; }
/*virtual*/ F32 getMaxDistortion() override { return 3.f; }
/*virtual*/ LLVector4a getVertexDistortion(S32 index, LLPolyMesh *poly_mesh) override { return LLVector4a(1.f, 1.f, 1.f);}
/*virtual*/ const LLVector4a* getFirstDistortion(U32 *index, LLPolyMesh **poly_mesh) override { index = 0; poly_mesh = NULL; return &mAvgDistortionVec;};
/*virtual*/ const LLVector4a* getNextDistortion(U32 *index, LLPolyMesh **poly_mesh) override { index = 0; poly_mesh = NULL; return NULL;};
/*virtual*/ const LLVector4a* getFirstDistortion(U32 *index, LLPolyMesh **poly_mesh)override { if( index ){ *index = 0;} if( poly_mesh ){ *poly_mesh = NULL; } return &mAvgDistortionVec; };
/*virtual*/ const LLVector4a* getNextDistortion(U32 *index, LLPolyMesh **poly_mesh) override { if( index ){ *index = 0;} if( poly_mesh ){ *poly_mesh = NULL; } return NULL; };
// New functions
BOOL render( S32 x, S32 y, S32 width, S32 height );
......
......@@ -173,7 +173,9 @@ void LLWearable::createVisualParams(LLAvatarAppearance *avatarp)
{
if( !param->linkDrivenParams(boost::bind(param_function,avatarp,_1 ), true))
{
#ifdef SHOW_DEBUG
LL_DEBUGS("Avatar") << "could not link driven params for wearable " << getName() << " id: " << param->getID() << LL_ENDL;
#endif
continue;
}
}
......
......@@ -95,6 +95,7 @@ void LLWearableData::pushWearable(const LLWearableType::EType type,
{
// no null wearables please!
LL_WARNS() << "Null wearable sent for type " << type << LL_ENDL;
return;
}
if (canAddWearable(type))
{
......
......@@ -1479,6 +1479,15 @@ bool LLAudioSource::setupChannel()
return true;
}
void LLAudioSource::stop()
{
play(LLUUID::null);
if (mCurrentDatap)
{
// always reset data if something wants us to stop
mCurrentDatap = nullptr;
}
}
bool LLAudioSource::play(const LLUUID &audio_uuid)
{
......
......@@ -322,7 +322,13 @@ class LLAudioSource
LLAudioBuffer *getCurrentBuffer();
bool setupChannel();
bool play(const LLUUID &audio_id); // Start the audio source playing
// Stop the audio source, reset audio id even if muted
void stop();
// Start the audio source playing,
// takes mute into account to preserve previous id if nessesary
bool play(const LLUUID &audio_id);
bool hasPendingPreloads() const; // Has preloads that haven't been done yet
......
......@@ -423,14 +423,14 @@ void LLStreamingAudio_FMODSTUDIO::stop()
if (mCurrentInternetStreamp)
{
LL_INFOS() << "Stopping internet stream: " << mCurrentInternetStreamp->getURL() << LL_ENDL;
LL_INFOS("FMOD") << "Stopping internet stream: " << mCurrentInternetStreamp->getURL() << LL_ENDL;
if (mCurrentInternetStreamp->stopStream())
{
delete mCurrentInternetStreamp;
}
else
{
LL_WARNS() << "Pushing stream to dead list: " << mCurrentInternetStreamp->getURL() << LL_ENDL;
LL_WARNS("FMOD") << "Pushing stream to dead list: " << mCurrentInternetStreamp->getURL() << LL_ENDL;
mDeadStreams.push_back(mCurrentInternetStreamp);
}
mCurrentInternetStreamp = nullptr;
......@@ -448,6 +448,7 @@ void LLStreamingAudio_FMODSTUDIO::pause(S32 pauseopt)
{
if (mCurrentInternetStreamp)
{
LL_INFOS("FMOD") << "Pausing internet stream" << LL_ENDL;
stop();
}
}
......@@ -558,7 +559,7 @@ LLAudioStreamManagerFMODSTUDIO::LLAudioStreamManagerFMODSTUDIO(FMOD::System *sys
if (result!= FMOD_OK)
{
LL_WARNS() << "Couldn't open fmod stream, error "
LL_WARNS("FMOD") << "Couldn't open fmod stream, error "
<< FMOD_ErrorString(result)
<< LL_ENDL;
mReady = false;
......@@ -574,7 +575,7 @@ FMOD::Channel *LLAudioStreamManagerFMODSTUDIO::startStream()
FMOD_OPENSTATE open_state;
if (getOpenState(open_state) != FMOD_OK || open_state != FMOD_OPENSTATE_READY)
{
LL_WARNS() << "No internet stream to start playing!" << LL_ENDL;
LL_WARNS("FMOD") << "No internet stream to start playing!" << LL_ENDL;
return nullptr;
}
......
......@@ -247,7 +247,9 @@ LLMotion::LLMotionInitStatus LLKeyframeMotion::onInitialize(LLCharacter *charact
// request asset
mAssetStatus = ASSET_FETCHED;
#ifdef SHOW_DEBUG
LL_DEBUGS("Animation") << "Requesting data fetch for: " << mID << LL_ENDL;
#endif
character_id = new LLUUID(mCharacter->getID());
gAssetStorage->getAssetData(mID,
LLAssetType::AT_ANIMATION,
......@@ -346,7 +348,9 @@ LLMotion::LLMotionInitStatus LLKeyframeMotion::onInitialize(LLCharacter *charact
return STATUS_FAILURE;
}
#ifdef SHOW_DEBUG
LL_DEBUGS() << "Loading keyframe data for: " << getName() << ":" << getID() << " (" << anim_file_size << " bytes)" << LL_ENDL;
#endif
LLDataPackerBinaryBuffer dp(anim_data, anim_file_size);
......@@ -2104,7 +2108,9 @@ void LLKeyframeMotion::onLoadComplete(const LLUUID& asset_uuid,
return;
}
#ifdef SHOW_DEBUG
LL_DEBUGS("Animation") << "Loading keyframe data for: " << motionp->getName() << ":" << motionp->getID() << " (" << size << " bytes)" << LL_ENDL;
#endif
LLDataPackerBinaryBuffer dp(buffer.get(), size);
if (motionp->deserialize(dp, asset_uuid))
......
......@@ -133,6 +133,15 @@ class LLKeyframeMotion :
else return LLJoint::LOW_PRIORITY;
}
virtual S32 getNumJointMotions()
{
if (mJointMotionList)
{
return mJointMotionList->getNumJointMotions();
}
return 0;
}
virtual LLMotionBlendType getBlendType() { return NORMAL_BLEND; }
// called to determine when a motion should be activated/deactivated based on avatar pixel coverage
......
......@@ -129,6 +129,9 @@ class LLMotion
// motions must report their priority level
virtual LLJoint::JointPriority getPriority() = 0;
// amount of affected joints
virtual S32 getNumJointMotions() { return 0; };
// motions must report their blend type
virtual LLMotionBlendType getBlendType() = 0;
......