summaryrefslogtreecommitdiff
path: root/indra/newview/pipeline.h
diff options
context:
space:
mode:
authorOz Linden <oz@lindenlab.com>2013-01-17 13:54:39 -0500
committerOz Linden <oz@lindenlab.com>2013-01-17 13:54:39 -0500
commit841dc5da2ef9626fa4ab9255681d217df62a6b0b (patch)
tree2c5bacebcb27b78d318b6e162334488f6e515974 /indra/newview/pipeline.h
parentb7f8a2479249646c7fb38ead195d5197ab733c94 (diff)
parentd16757545c91d4f7dac3c52a311ad0f0239052e1 (diff)
merge up to 3.4.4
Diffstat (limited to 'indra/newview/pipeline.h')
-rw-r--r--indra/newview/pipeline.h25
1 files changed, 24 insertions, 1 deletions
diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h
index 368be1c14d..36abeca295 100644
--- a/indra/newview/pipeline.h
+++ b/indra/newview/pipeline.h
@@ -119,8 +119,25 @@ public:
void createGLBuffers();
void createLUTBuffers();
- void allocateScreenBuffer(U32 resX, U32 resY);
+ //allocate the largest screen buffer possible up to resX, resY
+ //returns true if full size buffer allocated, false if some other size is allocated
+ bool allocateScreenBuffer(U32 resX, U32 resY);
+
+ typedef enum {
+ FBO_SUCCESS_FULLRES = 0,
+ FBO_SUCCESS_LOWRES,
+ FBO_FAILURE
+ } eFBOStatus;
+
+private:
+ //implementation of above, wrapped for easy error handling
+ eFBOStatus doAllocateScreenBuffer(U32 resX, U32 resY);
+public:
+
+ //attempt to allocate screen buffers at resX, resY
+ //returns true if allocation successful, false otherwise
bool allocateScreenBuffer(U32 resX, U32 resY, U32 samples);
+
void allocatePhysicsBuffer();
void resetVertexBuffers(LLDrawable* drawable);
@@ -151,6 +168,8 @@ public:
void unlinkDrawable(LLDrawable*);
+ static void removeMutedAVsLights(LLVOAvatar*);
+
// Object related methods
void markVisible(LLDrawable *drawablep, LLCamera& camera);
void markOccluder(LLSpatialGroup* group);
@@ -223,6 +242,7 @@ public:
void updateGL();
void rebuildPriorityGroups();
void rebuildGroups();
+ void clearRebuildGroups();
//calculate pixel area of given box from vantage point of given camera
static F32 calcPixelArea(LLVector3 center, LLVector3 size, LLCamera& camera);
@@ -382,6 +402,7 @@ private:
BOOL updateDrawableGeom(LLDrawable* drawable, BOOL priority);
void assertInitializedDoError();
bool assertInitialized() { const bool is_init = isInit(); if (!is_init) assertInitializedDoError(); return is_init; };
+ void connectRefreshCachedSettingsSafe(const std::string name);
void hideDrawable( LLDrawable *pDrawable );
void unhideDrawable( LLDrawable *pDrawable );
public:
@@ -664,6 +685,8 @@ protected:
LLSpatialGroup::sg_vector_t mGroupQ1; //priority
LLSpatialGroup::sg_vector_t mGroupQ2; // non-priority
+ LLSpatialGroup::sg_vector_t mGroupSaveQ1; // a place to save mGroupQ1 until it is safe to unref
+
LLSpatialGroup::sg_vector_t mMeshDirtyGroup; //groups that need rebuildMesh called
U32 mMeshDirtyQueryObject;