summaryrefslogtreecommitdiff
path: root/indra/newview/llheroprobemanager.h
diff options
context:
space:
mode:
authorJonathan "Geenz" Goodman <geenz@geenzo.com>2024-03-06 17:56:16 -0800
committerJonathan "Geenz" Goodman <geenz@geenzo.com>2024-03-06 17:56:16 -0800
commit1fc45a50ff15e6f31a4554da83256b7f59b1af15 (patch)
treeb65f155530ebc130443582ca0fedda284833b02d /indra/newview/llheroprobemanager.h
parent47cd3cb0ad03c91f118fd20fea8d8924759fd2b7 (diff)
#681 Add probe blending for mirrors.
Diffstat (limited to 'indra/newview/llheroprobemanager.h')
-rw-r--r--indra/newview/llheroprobemanager.h18
1 files changed, 13 insertions, 5 deletions
diff --git a/indra/newview/llheroprobemanager.h b/indra/newview/llheroprobemanager.h
index e430cae203..04027cd57e 100644
--- a/indra/newview/llheroprobemanager.h
+++ b/indra/newview/llheroprobemanager.h
@@ -38,6 +38,15 @@ class LLViewerObject;
// number of reflection probes to keep in vram
#define LL_MAX_HERO_PROBE_COUNT 2
+struct HeroProbeData
+{
+ LLMatrix4 heroBox;
+ LLVector4 heroSphere;
+ GLint heroShape;
+ GLint heroMipCount;
+ GLint heroProbeCount;
+};
+
class alignas(16) LLHeroProbeManager
{
LL_ALIGN_NEW
@@ -74,16 +83,17 @@ public:
bool isMirrorPass() const { return mRenderingMirror; }
LLVector3 mMirrorPosition;
- LLVector3 mMirrorNormal;
+ LLVector3 mMirrorNormal;
+ HeroProbeData mHeroData;
private:
friend class LLPipeline;
+ friend class LLReflectionMapManager;
// update UBO used for rendering (call only once per render pipe flush)
void updateUniforms();
// bind UBO used for rendering
- void setUniforms();
// render target for cube snapshots
// used to generate mipmaps without doing a copy-to-texture
@@ -109,9 +119,6 @@ private:
// list of active reflection maps
std::vector<LLPointer<LLReflectionMap>> mProbes;
- // handle to UBO
- U32 mUBO = 0;
-
// list of maps being used for rendering
std::vector<LLReflectionMap*> mReflectionMaps;
@@ -141,5 +148,6 @@ private:
std::vector<LLVOVolume*> mHeroVOList;
LLVOVolume* mNearestHero;
+
};