Automated merge with bundle:F:\code\viewer-experience-merge+c:\users\richard\appdata\local\temp\thg.7nrmxq\ssh__richard@hg.lindenlab.com_richard_viewer-experience_gittck.hg
commit
4e02747908
3
.hgtags
3
.hgtags
|
|
@ -106,5 +106,6 @@ d7fcefabdf32bb61a9ea6d6037c1bb26190a85bc 2.6.3-beta1
|
|||
7db558aaa7c176f2022b3e9cfe38ac72f6d1fccd DRTVWR-50_2.6.5-beta1
|
||||
7db558aaa7c176f2022b3e9cfe38ac72f6d1fccd 2.6.5-beta1
|
||||
800cefce8d364ffdd2f383cbecb91294da3ea424 2.6.6-start
|
||||
ce588bc1ae8e3a90ee5e1f5de71a346886a9fd8b 2.6.7-start
|
||||
bb1075286b3b147b1dae2e3d6b2d56f04ff03f35 DRTVWR-52_2.6.6-beta1
|
||||
bb1075286b3b147b1dae2e3d6b2d56f04ff03f35 2.6.6-beta1
|
||||
5e349dbe9cc84ea5795af8aeb6d473a0af9d4953 2.6.8-start
|
||||
|
|
|
|||
|
|
@ -1182,9 +1182,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>57f32a1a670f06a4dc036eb1164ad9d7</string>
|
||||
<string>e849bc2b779fb7cc5e81aeb021a542c0</string>
|
||||
<key>url</key>
|
||||
<string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ogg_vorbis-1.1.3-1.2.0-darwin-20110222.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-ogvorbis/rev/229529/arch/Darwin/installer/ogg_vorbis-1.2.2-1.3.2-darwin-20110510.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin</string>
|
||||
|
|
@ -1194,9 +1194,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>17c000ceef32c0623d038b4c73791bee</string>
|
||||
<string>71eaa462eb0bf8842277a3436483a354</string>
|
||||
<key>url</key>
|
||||
<string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ogg_vorbis-1.1.3-1.2.0-linux-20110307.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-ogvorbis/rev/229529/arch/Linux/installer/ogg_vorbis-1.2.2-1.3.2-linux-20110511.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>linux</string>
|
||||
|
|
@ -1206,9 +1206,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>c8fccf7eeb25fd45cb7e04399c0b83ee</string>
|
||||
<string>291dbba89dd8162b76f2c2d82e908c6f</string>
|
||||
<key>url</key>
|
||||
<string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/ogg_vorbis-1.1.3-1.2.0-windows-20110222.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-ogvorbis/rev/229529/arch/CYGWIN/installer/ogg_vorbis-1.2.2-1.3.2-windows-20110510.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows</string>
|
||||
|
|
|
|||
|
|
@ -364,6 +364,7 @@ Ian Kas
|
|||
CT-322
|
||||
CT-325
|
||||
Ima Mechanique
|
||||
OPEN-50
|
||||
OPEN-61
|
||||
Irene Muni
|
||||
CT-324
|
||||
|
|
@ -431,6 +432,7 @@ Jonathan Yap
|
|||
STORM-1128
|
||||
STORM-956
|
||||
STORM-1095
|
||||
STORM-1236
|
||||
Kage Pixel
|
||||
VWR-11
|
||||
Ken March
|
||||
|
|
|
|||
|
|
@ -853,6 +853,11 @@ void LLBumpImageList::destroyGL()
|
|||
|
||||
void LLBumpImageList::restoreGL()
|
||||
{
|
||||
if(!gTextureList.isInitialized())
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
LLStandardBumpmap::restoreGL();
|
||||
// Images will be recreated as they are needed.
|
||||
}
|
||||
|
|
|
|||
|
|
@ -459,10 +459,18 @@ void LLFloaterBuyLandUI::updateParcelInfo()
|
|||
return;
|
||||
}
|
||||
|
||||
if (!authorizedBuyer.isNull() && buyer != authorizedBuyer)
|
||||
if (!authorizedBuyer.isNull() && buyer != authorizedBuyer)
|
||||
{
|
||||
mCannotBuyReason = getString("set_to_sell_to_other");
|
||||
return;
|
||||
// Maybe the parcel is set for sale to a group we are in.
|
||||
bool authorized_group =
|
||||
gAgent.hasPowerInGroup(authorizedBuyer,GP_LAND_DEED)
|
||||
&& gAgent.hasPowerInGroup(authorizedBuyer,GP_LAND_SET_SALE_INFO);
|
||||
|
||||
if (!authorized_group)
|
||||
{
|
||||
mCannotBuyReason = getString("set_to_sell_to_other");
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -344,6 +344,11 @@ void process_layer_data(LLMessageSystem *mesgsys, void **user_data)
|
|||
{
|
||||
LLViewerRegion *regionp = LLWorld::getInstance()->getRegion(mesgsys->getSender());
|
||||
|
||||
if(!regionp)
|
||||
{
|
||||
llwarns << "Invalid region for layer data." << llendl;
|
||||
return;
|
||||
}
|
||||
S32 size;
|
||||
S8 type;
|
||||
|
||||
|
|
@ -2208,7 +2213,9 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
|
|||
name = clean_name_from_im(name, dialog);
|
||||
|
||||
BOOL is_busy = gAgent.getBusy();
|
||||
BOOL is_muted = LLMuteList::getInstance()->isMuted(from_id, name, LLMute::flagTextChat);
|
||||
BOOL is_muted = LLMuteList::getInstance()->isMuted(from_id, name, LLMute::flagTextChat)
|
||||
// object IMs contain sender object id in session_id (STORM-1209)
|
||||
|| dialog == IM_FROM_TASK && LLMuteList::getInstance()->isMuted(session_id);
|
||||
BOOL is_linden = LLMuteList::getInstance()->isLinden(name);
|
||||
BOOL is_owned_by_me = FALSE;
|
||||
BOOL is_friend = (LLAvatarTracker::instance().getBuddyInfo(from_id) == NULL) ? false : true;
|
||||
|
|
|
|||
|
|
@ -2200,7 +2200,10 @@ bool LLViewerParcelMgr::canAgentBuyParcel(LLParcel* parcel, bool forGroup) const
|
|||
= parcelOwner == (forGroup ? gAgent.getGroupID() : gAgent.getID());
|
||||
|
||||
bool isAuthorized
|
||||
= (authorizeBuyer.isNull() || (gAgent.getID() == authorizeBuyer));
|
||||
= (authorizeBuyer.isNull()
|
||||
|| (gAgent.getID() == authorizeBuyer)
|
||||
|| (gAgent.hasPowerInGroup(authorizeBuyer,GP_LAND_DEED)
|
||||
&& gAgent.hasPowerInGroup(authorizeBuyer,GP_LAND_SET_SALE_INFO)));
|
||||
|
||||
return isForSale && !isOwner && isAuthorized && isEmpowered;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -76,18 +76,23 @@ LLStat LLViewerTextureList::sFormattedMemStat(32, TRUE);
|
|||
LLViewerTextureList gTextureList;
|
||||
static LLFastTimer::DeclareTimer FTM_PROCESS_IMAGES("Process Images");
|
||||
|
||||
U32 LLViewerTextureList::sRenderThreadID = 0 ;
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
LLViewerTextureList::LLViewerTextureList()
|
||||
: mForceResetTextureStats(FALSE),
|
||||
mUpdateStats(FALSE),
|
||||
mMaxResidentTexMemInMegaBytes(0),
|
||||
mMaxTotalTextureMemInMegaBytes(0)
|
||||
mMaxTotalTextureMemInMegaBytes(0),
|
||||
mInitialized(FALSE)
|
||||
{
|
||||
}
|
||||
|
||||
void LLViewerTextureList::init()
|
||||
{
|
||||
sRenderThreadID = LLThread::currentID() ;
|
||||
|
||||
mInitialized = TRUE ;
|
||||
sNumImages = 0;
|
||||
mMaxResidentTexMemInMegaBytes = 0;
|
||||
mMaxTotalTextureMemInMegaBytes = 0 ;
|
||||
|
|
@ -105,6 +110,10 @@ void LLViewerTextureList::doPreloadImages()
|
|||
{
|
||||
LL_DEBUGS("ViewerImages") << "Preloading images..." << LL_ENDL;
|
||||
|
||||
llassert_always(mInitialized) ;
|
||||
llassert_always(mImageList.empty()) ;
|
||||
llassert_always(mUUIDMap.empty()) ;
|
||||
|
||||
// Set the "missing asset" image
|
||||
LLViewerFetchedTexture::sMissingAssetImagep = LLViewerTextureManager::getFetchedTextureFromFile("missing_asset.tga", MIPMAP_NO, LLViewerFetchedTexture::BOOST_UI);
|
||||
|
||||
|
|
@ -300,6 +309,7 @@ void LLViewerTextureList::destroyGL(BOOL save_state)
|
|||
|
||||
void LLViewerTextureList::restoreGL()
|
||||
{
|
||||
llassert_always(mInitialized) ;
|
||||
LLImageGL::restoreGL();
|
||||
}
|
||||
|
||||
|
|
@ -477,8 +487,10 @@ LLViewerFetchedTexture *LLViewerTextureList::findImage(const LLUUID &image_id)
|
|||
return iter->second;
|
||||
}
|
||||
|
||||
void LLViewerTextureList::addImageToList(LLViewerFetchedTexture *image)
|
||||
void LLViewerTextureList::addImageToList(LLViewerFetchedTexture *image, U32 thread_id)
|
||||
{
|
||||
llassert_always(mInitialized) ;
|
||||
llassert_always(sRenderThreadID == thread_id);
|
||||
llassert(image);
|
||||
if (image->isInImageList())
|
||||
{
|
||||
|
|
@ -492,8 +504,10 @@ void LLViewerTextureList::addImageToList(LLViewerFetchedTexture *image)
|
|||
image->setInImageList(TRUE) ;
|
||||
}
|
||||
|
||||
void LLViewerTextureList::removeImageFromList(LLViewerFetchedTexture *image)
|
||||
void LLViewerTextureList::removeImageFromList(LLViewerFetchedTexture *image, U32 thread_id)
|
||||
{
|
||||
llassert_always(mInitialized) ;
|
||||
llassert_always(sRenderThreadID == thread_id);
|
||||
llassert(image);
|
||||
if (!image->isInImageList())
|
||||
{
|
||||
|
|
@ -690,9 +704,9 @@ void LLViewerTextureList::updateImagesDecodePriorities()
|
|||
if ((decode_priority_test < old_priority_test * .8f) ||
|
||||
(decode_priority_test > old_priority_test * 1.25f))
|
||||
{
|
||||
removeImageFromList(imagep);
|
||||
removeImageFromList(imagep, sRenderThreadID);
|
||||
imagep->setDecodePriority(decode_priority);
|
||||
addImageToList(imagep);
|
||||
addImageToList(imagep, sRenderThreadID);
|
||||
}
|
||||
update_counter--;
|
||||
}
|
||||
|
|
@ -769,9 +783,8 @@ void LLViewerTextureList::forceImmediateUpdate(LLViewerFetchedTexture* imagep)
|
|||
imagep->processTextureStats();
|
||||
F32 decode_priority = LLViewerFetchedTexture::maxDecodePriority() ;
|
||||
imagep->setDecodePriority(decode_priority);
|
||||
mImageList.insert(imagep);
|
||||
imagep->setInImageList(TRUE) ;
|
||||
|
||||
addImageToList(imagep);
|
||||
|
||||
return ;
|
||||
}
|
||||
|
||||
|
|
@ -864,7 +877,9 @@ void LLViewerTextureList::updateImagesUpdateStats()
|
|||
void LLViewerTextureList::decodeAllImages(F32 max_time)
|
||||
{
|
||||
LLTimer timer;
|
||||
|
||||
|
||||
llassert_always(sRenderThreadID == LLThread::currentID());
|
||||
|
||||
// Update texture stats and priorities
|
||||
std::vector<LLPointer<LLViewerFetchedTexture> > image_list;
|
||||
for (image_priority_list_t::iterator iter = mImageList.begin();
|
||||
|
|
@ -882,8 +897,7 @@ void LLViewerTextureList::decodeAllImages(F32 max_time)
|
|||
imagep->processTextureStats();
|
||||
F32 decode_priority = imagep->calcDecodePriority();
|
||||
imagep->setDecodePriority(decode_priority);
|
||||
mImageList.insert(imagep);
|
||||
imagep->setInImageList(TRUE) ;
|
||||
addImageToList(imagep);
|
||||
}
|
||||
image_list.clear();
|
||||
|
||||
|
|
|
|||
|
|
@ -83,6 +83,7 @@ public:
|
|||
void dump();
|
||||
void destroyGL(BOOL save_state = TRUE);
|
||||
void restoreGL();
|
||||
BOOL isInitialized() const {return mInitialized;}
|
||||
|
||||
LLViewerFetchedTexture *findImage(const LLUUID &image_id);
|
||||
|
||||
|
|
@ -120,8 +121,8 @@ private:
|
|||
void addImage(LLViewerFetchedTexture *image);
|
||||
void deleteImage(LLViewerFetchedTexture *image);
|
||||
|
||||
void addImageToList(LLViewerFetchedTexture *image);
|
||||
void removeImageFromList(LLViewerFetchedTexture *image);
|
||||
void addImageToList(LLViewerFetchedTexture *image, U32 thread_id = LLThread::currentID());
|
||||
void removeImageFromList(LLViewerFetchedTexture *image, U32 thread_id = LLThread::currentID());
|
||||
|
||||
LLViewerFetchedTexture * getImage(const LLUUID &image_id,
|
||||
BOOL usemipmap = TRUE,
|
||||
|
|
@ -187,6 +188,7 @@ private:
|
|||
// simply holds on to LLViewerFetchedTexture references to stop them from being purged too soon
|
||||
std::set<LLPointer<LLViewerFetchedTexture> > mImagePreloads;
|
||||
|
||||
BOOL mInitialized ;
|
||||
BOOL mUpdateStats;
|
||||
S32 mMaxResidentTexMemInMegaBytes;
|
||||
S32 mMaxTotalTextureMemInMegaBytes;
|
||||
|
|
@ -206,6 +208,9 @@ public:
|
|||
private:
|
||||
static S32 sNumImages;
|
||||
static void (*sUUIDCallback)(void**, const LLUUID &);
|
||||
|
||||
//debug use
|
||||
static U32 sRenderThreadID;
|
||||
};
|
||||
|
||||
class LLUIImageList : public LLImageProviderInterface, public LLSingleton<LLUIImageList>
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
save_rect="true"
|
||||
save_visibility="true"
|
||||
title="SNAPSHOT PREVIEW"
|
||||
width="215">
|
||||
width="245">
|
||||
<floater.string
|
||||
name="unknown">
|
||||
unknown
|
||||
|
|
|
|||
|
|
@ -6815,6 +6815,34 @@ Deed to group failed.
|
|||
<tag>fail</tag>
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
icon="notifytip.tga"
|
||||
name="ReleaseLandThrottled"
|
||||
type="notifytip">
|
||||
The parcel [PARCEL_NAME] can not be abandoned at this time.
|
||||
tag>fail</tag>
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
icon="notifytip.tga"
|
||||
name="ReleasedLandWithReclaim"
|
||||
type="notifytip">
|
||||
The [AREA] m² parcel '[PARCEL_NAME]' has been released.
|
||||
|
||||
You will have [RECLAIM_PERIOD] hours to reclaim for L$0 before it is set for sale to anyone.
|
||||
<tag>fail</tag>
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
icon="notifytip.tga"
|
||||
name="ReleasedLandNoReclaim"
|
||||
type="notifytip">
|
||||
The [AREA] m² parcel '[PARCEL_NAME]' has been released.
|
||||
|
||||
It is now available for purchase by anyone.
|
||||
<tag>fail</tag>
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
icon="notifytip.tga"
|
||||
name="AvatarRezNotification"
|
||||
|
|
|
|||
|
|
@ -8,6 +8,13 @@
|
|||
tab_stop="false"
|
||||
name="main_view"
|
||||
width="1024">
|
||||
<panel top="0"
|
||||
follows="all"
|
||||
height="768"
|
||||
mouse_opaque="false"
|
||||
name="login_panel_holder"
|
||||
width="1024"/>
|
||||
|
||||
<layout_stack border_size="0"
|
||||
follows="all"
|
||||
mouse_opaque="false"
|
||||
|
|
@ -90,13 +97,6 @@
|
|||
visible="false"
|
||||
width="500"/>
|
||||
|
||||
<panel top="0"
|
||||
follows="all"
|
||||
height="500"
|
||||
mouse_opaque="false"
|
||||
name="login_panel_holder"
|
||||
width="1024"/>
|
||||
|
||||
<panel follows="all"
|
||||
height="500"
|
||||
left="0"
|
||||
|
|
|
|||
Loading…
Reference in New Issue