summaryrefslogtreecommitdiff
path: root/indra/newview/llviewertexture.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llviewertexture.h')
-rw-r--r--indra/newview/llviewertexture.h23
1 files changed, 18 insertions, 5 deletions
diff --git a/indra/newview/llviewertexture.h b/indra/newview/llviewertexture.h
index 79d9c4e7bb..a09a711cc7 100644
--- a/indra/newview/llviewertexture.h
+++ b/indra/newview/llviewertexture.h
@@ -134,7 +134,9 @@ public:
static S32 getIndexFromCategory(S32 category) ;
static S32 getCategoryFromIndex(S32 index) ;
- typedef std::vector<LLFace*> ll_face_list_t ;
+ typedef std::vector<LLFace*> ll_face_list_t;
+ typedef std::vector<LLVOVolume*> ll_volume_list_t;
+
protected:
virtual ~LLViewerTexture();
@@ -178,6 +180,11 @@ public:
S32 getNumFaces() const;
const ll_face_list_t* getFaceList() const {return &mFaceList;}
+ virtual void addVolume(LLVOVolume* volumep);
+ virtual void removeVolume(LLVOVolume* volumep);
+ S32 getNumVolumes() const;
+ const ll_volume_list_t* getVolumeList() const { return &mVolumeList; }
+
void generateGLTexture() ;
void destroyGLTexture() ;
@@ -191,6 +198,7 @@ public:
LLGLuint getTexName() const ;
BOOL createGLTexture() ;
BOOL createGLTexture(S32 discard_level, const LLImageRaw* imageraw, S32 usename = 0, BOOL to_create = TRUE, S32 category = LLViewerTexture::OTHER);
+ virtual void setCachedRawImage(S32 discard_level, LLImageRaw* imageraw) ;
void setFilteringOption(LLTexUnit::eTextureFilterOptions option);
void setExplicitFormat(LLGLint internal_format, LLGLenum primary_format, LLGLenum type_format = 0, BOOL swap_bytes = FALSE);
@@ -242,7 +250,7 @@ protected:
void cleanup() ;
void init(bool firstinit) ;
void reorganizeFaceList() ;
-
+ void reorganizeVolumeList() ;
private:
//note: do not make this function public.
/*virtual*/ LLImageGL* getGLTexture() const ;
@@ -269,6 +277,10 @@ protected:
U32 mNumFaces ;
LLFrameTimer mLastFaceListUpdateTimer ;
+ ll_volume_list_t mVolumeList;
+ U32 mNumVolumes;
+ LLFrameTimer mLastVolumeListUpdateTimer;
+
//do not use LLPointer here.
LLViewerMediaTexture* mParcelMedia ;
@@ -288,7 +300,7 @@ public:
static S32 sImageCount;
static S32 sRawCount;
static S32 sAuxCount;
- static LLTimer sEvaluationTimer;
+ static LLFrameTimer sEvaluationTimer;
static F32 sDesiredDiscardBias;
static F32 sDesiredDiscardScale;
static S32 sBoundTextureMemoryInBytes;
@@ -436,23 +448,24 @@ public:
BOOL isCachedRawImageReady() const {return mCachedRawImageReady ;}
BOOL isRawImageValid()const { return mIsRawImageValid ; }
void forceToSaveRawImage(S32 desired_discard = 0) ;
+ /*virtual*/ void setCachedRawImage(S32 discard_level, LLImageRaw* imageraw) ;
void destroySavedRawImage() ;
LLImageRaw* getSavedRawImage() ;
BOOL hasSavedRawImage() const ;
F32 getElapsedLastReferencedSavedRawImageTime() const ;
BOOL isFullyLoaded() const;
+ BOOL hasFetcher() const { return mHasFetcher;}
protected:
/*virtual*/ void switchToCachedImage();
+ S32 getCurrentDiscardLevelForFetching() ;
private:
void init(bool firstinit) ;
void cleanup() ;
void saveRawImage() ;
- BOOL forceFetch() ;
void setCachedRawImage() ;
- BOOL keepReuestedDiscardLevel();
//for atlas
void resetFaceAtlas() ;