diff options
| author | Andrey Lihatskiy <alihatskiy@productengine.com> | 2024-06-11 01:21:42 +0300 |
|---|---|---|
| committer | Andrey Lihatskiy <alihatskiy@productengine.com> | 2024-06-11 01:21:42 +0300 |
| commit | ee49b3b045e366aec466f46743214386d7fecb21 (patch) | |
| tree | d5b498f2a73eb6709b5c24241549f854a14b7bb6 /indra/newview/llreflectionmapmanager.h | |
| parent | 8f6e50ed6a8b2a3f7b2a173bf7c535aac13f22b5 (diff) | |
| parent | a73773bc1abdac6bc3beea36fd4ba58eba686e13 (diff) | |
Merge branch 'main' into marchcat/c-merge
# Conflicts:
# indra/newview/llviewermenufile.cpp
Diffstat (limited to 'indra/newview/llreflectionmapmanager.h')
| -rw-r--r-- | indra/newview/llreflectionmapmanager.h | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/indra/newview/llreflectionmapmanager.h b/indra/newview/llreflectionmapmanager.h index bd4204468a..5c0651bc24 100644 --- a/indra/newview/llreflectionmapmanager.h +++ b/indra/newview/llreflectionmapmanager.h @@ -43,6 +43,8 @@ class LLViewerObject; // reflection probe mininum scale #define LL_REFLECTION_PROBE_MINIMUM_SCALE 1.f; +void renderReflectionProbe(LLReflectionMap* probe); + class alignas(16) LLReflectionMapManager { LL_ALIGN_NEW @@ -65,7 +67,7 @@ public: // add a probe for the given spatial group LLReflectionMap* addProbe(LLSpatialGroup* group = nullptr); - + // Populate "maps" with the N most relevant Reflection Maps where N is no more than maps.size() // If less than maps.size() ReflectionMaps are available, will assign trailing elements to nullptr. // maps -- presized array of Reflection Map pointers @@ -85,7 +87,8 @@ public: void reset(); // pause all updates other than the default probe - void pause(); + // duration - number of seconds to pause (default 10) + void pause(F32 duration = 10.f); // unpause (see pause) void resume(); @@ -106,8 +109,14 @@ public: // perform occlusion culling on all active reflection probes void doOcclusion(); + // *HACK: "cull" all reflection probes except the default one. Only call + // this if you don't intend to call updateUniforms directly. Call again + // with false when done. + void forceDefaultProbeAndUpdateUniforms(bool force = true); + private: friend class LLPipeline; + friend class LLHeroProbeManager; // initialize mCubeFree array to default values void initCubeFree(); @@ -151,7 +160,7 @@ private: // update the specified face of the specified probe void updateProbeFace(LLReflectionMap* probe, U32 face); - + // list of active reflection maps std::vector<LLPointer<LLReflectionMap> > mProbes; @@ -200,5 +209,6 @@ private: // if true, only update the default probe bool mPaused = false; + F32 mResumeTime = 0.f; }; |
