Initilization guards added to llviewertexturelist.
This commit is contained in:
@@ -100,6 +100,13 @@ void LLStandardBumpmap::restoreGL()
|
||||
// static
|
||||
void LLStandardBumpmap::addstandard()
|
||||
{
|
||||
if(!gTextureList.isInitialized())
|
||||
{
|
||||
//Note: loading pre-configuration sometimes triggers this call.
|
||||
//But it is safe to return here because bump images will be reloaded during initialization later.
|
||||
return ;
|
||||
}
|
||||
|
||||
// can't assert; we destroyGL and restoreGL a lot during *first* startup, which populates this list already, THEN we explicitly init the list as part of *normal* startup. Sigh. So clear the list every time before we (re-)add the standard bumpmaps.
|
||||
//llassert( LLStandardBumpmap::sStandardBumpmapCount == 0 );
|
||||
clear();
|
||||
@@ -891,6 +898,11 @@ void LLBumpImageList::destroyGL()
|
||||
|
||||
void LLBumpImageList::restoreGL()
|
||||
{
|
||||
if(!gTextureList.isInitialized())
|
||||
{
|
||||
//safe to return here because bump images will be reloaded during initialization later.
|
||||
return ;
|
||||
}
|
||||
LLStandardBumpmap::restoreGL();
|
||||
// Images will be recreated as they are needed.
|
||||
}
|
||||
|
||||
@@ -87,13 +87,16 @@ LLViewerTextureList::LLViewerTextureList()
|
||||
: mForceResetTextureStats(FALSE),
|
||||
mUpdateStats(FALSE),
|
||||
mMaxResidentTexMemInMegaBytes(0),
|
||||
mMaxTotalTextureMemInMegaBytes(0)
|
||||
mMaxTotalTextureMemInMegaBytes(0),
|
||||
mInitialized(FALSE)
|
||||
{
|
||||
}
|
||||
|
||||
void LLViewerTextureList::init()
|
||||
{
|
||||
mInitialized = TRUE ;
|
||||
sNumImages = 0;
|
||||
mUpdateStats = TRUE;
|
||||
mMaxResidentTexMemInMegaBytes = 0;
|
||||
mMaxTotalTextureMemInMegaBytes = 0 ;
|
||||
if (gNoRender)
|
||||
@@ -102,8 +105,6 @@ void LLViewerTextureList::init()
|
||||
return;
|
||||
}
|
||||
|
||||
mUpdateStats = TRUE;
|
||||
|
||||
// Update how much texture RAM we're allowed to use.
|
||||
updateMaxResidentTexMem(0); // 0 = use current
|
||||
|
||||
@@ -115,6 +116,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);
|
||||
|
||||
@@ -286,6 +291,8 @@ void LLViewerTextureList::shutdown()
|
||||
mUUIDMap.clear();
|
||||
|
||||
mImageList.clear();
|
||||
|
||||
mInitialized = FALSE ; //prevent loading textures again.
|
||||
}
|
||||
|
||||
void LLViewerTextureList::dump()
|
||||
@@ -312,6 +319,7 @@ void LLViewerTextureList::destroyGL(BOOL save_state)
|
||||
|
||||
void LLViewerTextureList::restoreGL()
|
||||
{
|
||||
llassert_always(mInitialized) ;
|
||||
LLImageGL::restoreGL();
|
||||
}
|
||||
|
||||
@@ -332,6 +340,11 @@ LLViewerFetchedTexture* LLViewerTextureList::getImageFromFile(const std::string&
|
||||
LLGLenum primary_format,
|
||||
const LLUUID& force_id)
|
||||
{
|
||||
if(!mInitialized)
|
||||
{
|
||||
return NULL ;
|
||||
}
|
||||
|
||||
std::string full_path = gDirUtilp->findSkinnedFilename("textures", filename);
|
||||
if (full_path.empty())
|
||||
{
|
||||
@@ -352,6 +365,11 @@ LLViewerFetchedTexture* LLViewerTextureList::getImageFromUrl(const std::string&
|
||||
LLGLenum primary_format,
|
||||
const LLUUID& force_id)
|
||||
{
|
||||
|
||||
if(!mInitialized)
|
||||
{
|
||||
return NULL ;
|
||||
}
|
||||
if (gNoRender)
|
||||
{
|
||||
// Never mind that this ignores image_set_id;
|
||||
@@ -418,6 +436,11 @@ LLViewerFetchedTexture* LLViewerTextureList::getImage(const LLUUID &image_id,
|
||||
LLGLenum primary_format,
|
||||
LLHost request_from_host)
|
||||
{
|
||||
if(!mInitialized)
|
||||
{
|
||||
return NULL ;
|
||||
}
|
||||
|
||||
// Return the image with ID image_id
|
||||
// If the image is not found, creates new image and
|
||||
// enqueues a request for transmission
|
||||
@@ -846,7 +869,7 @@ F32 LLViewerTextureList::updateImagesFetchTextures(F32 max_time)
|
||||
for (entries_list_t::iterator iter3 = entries.begin();
|
||||
iter3 != entries.end(); )
|
||||
{
|
||||
LLPointer<LLViewerFetchedTexture> imagep = *iter3++;
|
||||
LLViewerFetchedTexture* imagep = *iter3++;
|
||||
|
||||
bool fetching = imagep->updateFetch();
|
||||
if (fetching)
|
||||
|
||||
@@ -90,6 +90,7 @@ public:
|
||||
void dump();
|
||||
void destroyGL(BOOL save_state = TRUE);
|
||||
void restoreGL();
|
||||
BOOL isInitialized() const {return mInitialized;}
|
||||
|
||||
LLViewerFetchedTexture *findImage(const LLUUID &image_id);
|
||||
|
||||
@@ -196,6 +197,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;
|
||||
|
||||
Reference in New Issue
Block a user