SL-11402 Resaving home image if file does not exist
parent
31a22910c1
commit
d72fcfba57
|
|
@ -3709,6 +3709,23 @@ BOOL LLAgent::getHomePosGlobal( LLVector3d* pos_global )
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
bool LLAgent::isInHomeRegion()
|
||||
{
|
||||
if(!mHaveHomePosition)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (!getRegion())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (getRegion()->getHandle() != mHomeRegionHandle)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void LLAgent::clearVisualParams(void *data)
|
||||
{
|
||||
if (isAgentAvatarValid())
|
||||
|
|
|
|||
|
|
@ -233,6 +233,8 @@ public:
|
|||
void setStartPosition(U32 location_id); // Marks current location as start, sends information to servers
|
||||
void setHomePosRegion(const U64& region_handle, const LLVector3& pos_region);
|
||||
BOOL getHomePosGlobal(LLVector3d* pos_global);
|
||||
bool isInHomeRegion();
|
||||
|
||||
private:
|
||||
void setStartPositionSuccess(const LLSD &result);
|
||||
|
||||
|
|
|
|||
|
|
@ -4507,8 +4507,35 @@ void LLAppViewer::saveFinalSnapshot()
|
|||
snap_filename += gDirUtilp->getDirDelimiter();
|
||||
snap_filename += LLStartUp::getScreenLastFilename();
|
||||
// use full pixel dimensions of viewer window (not post-scale dimensions)
|
||||
gViewerWindow->saveSnapshot(snap_filename, gViewerWindow->getWindowWidthRaw(), gViewerWindow->getWindowHeightRaw(), FALSE, TRUE, LLSnapshotModel::SNAPSHOT_TYPE_COLOR, LLSnapshotModel::SNAPSHOT_FORMAT_PNG);
|
||||
gViewerWindow->saveSnapshot(snap_filename,
|
||||
gViewerWindow->getWindowWidthRaw(),
|
||||
gViewerWindow->getWindowHeightRaw(),
|
||||
FALSE,
|
||||
TRUE,
|
||||
LLSnapshotModel::SNAPSHOT_TYPE_COLOR,
|
||||
LLSnapshotModel::SNAPSHOT_FORMAT_PNG);
|
||||
mSavedFinalSnapshot = TRUE;
|
||||
|
||||
if (gAgent.isInHomeRegion())
|
||||
{
|
||||
LLVector3d home;
|
||||
if (gAgent.getHomePosGlobal(&home) && dist_vec(home, gAgent.getPositionGlobal()) < 10)
|
||||
{
|
||||
// We are at home position or close to it, see if we need to create home screenshot
|
||||
// Notes:
|
||||
// 1. It might be beneficial to also replace home if file is too old
|
||||
// 2. This is far from best way/place to update screenshot since location might be not fully loaded,
|
||||
// but we don't have many options
|
||||
std::string snap_home = gDirUtilp->getLindenUserDir();
|
||||
snap_home += gDirUtilp->getDirDelimiter();
|
||||
snap_home += LLStartUp::getScreenHomeFilename();
|
||||
if (!gDirUtilp->fileExists(snap_home))
|
||||
{
|
||||
// We are at home position yet no home image exist, fix it
|
||||
LLFile::copy(snap_filename, snap_home);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue