summaryrefslogtreecommitdiff
path: root/indra/newview/llreflectionmapmanager.h
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llreflectionmapmanager.h')
-rw-r--r--indra/newview/llreflectionmapmanager.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/indra/newview/llreflectionmapmanager.h b/indra/newview/llreflectionmapmanager.h
index 24ac40b264..f7feabbf66 100644
--- a/indra/newview/llreflectionmapmanager.h
+++ b/indra/newview/llreflectionmapmanager.h
@@ -31,6 +31,7 @@
#include "llcubemaparray.h"
class LLSpatialGroup;
+class LLViewerObject;
// number of reflection probes to keep in vram
#define LL_REFLECTION_PROBE_COUNT 256
@@ -38,6 +39,9 @@ class LLSpatialGroup;
// reflection probe resolution
#define LL_REFLECTION_PROBE_RESOLUTION 256
+// reflection probe mininum scale
+#define LL_REFLECTION_PROBE_MINIMUM_SCALE 1.f;
+
class alignas(16) LLReflectionMapManager
{
LL_ALIGN_NEW
@@ -63,12 +67,21 @@ public:
// If spatial group should receive a Reflection Probe, will create one for the specified spatial group
LLReflectionMap* registerSpatialGroup(LLSpatialGroup* group);
+ // presently hacked into LLViewerObject::setTE
+ // Used by LLViewerObjects that are Reflection Probes
+ // Guaranteed to not return null
+ LLReflectionMap* registerViewerObject(LLViewerObject* vobj);
+
// force an update of all probes
void rebuild();
// called on region crossing to "shift" probes into new coordinate frame
void shift(const LLVector4a& offset);
+ // debug display, called from llspatialpartition if reflection
+ // probe debug display is active
+ void renderDebug();
+
private:
friend class LLPipeline;
@@ -82,6 +95,7 @@ private:
// update the neighbors of the given probe
void updateNeighbors(LLReflectionMap* probe);
+ // update UBO used for rendering
void setUniforms();
// render target for cube snapshots