diff options
| author | RunitaiLinden <davep@lindenlab.com> | 2024-03-12 10:19:19 -0500 |
|---|---|---|
| committer | RunitaiLinden <davep@lindenlab.com> | 2024-03-12 10:19:19 -0500 |
| commit | 522c4b4f0925463d5f30a4a0f314999a11d5def3 (patch) | |
| tree | 9e6f25155182f643ace380179592516a08792646 /indra/newview/llreflectionmapmanager.h | |
| parent | afc943acbc2bb79e2e1aa5d5eaf448e01b6c2b00 (diff) | |
| parent | 5fca8915d8f44cdb2a4f7bb4715d61ba47043e5d (diff) | |
Merge branch '965-eep-skies-too-bright-after-hdri-local-preview-merge' of https://github.com/secondlife/viewer into 965-eep-skies-too-bright-after-hdri-local-preview-merge
Diffstat (limited to 'indra/newview/llreflectionmapmanager.h')
| -rw-r--r-- | indra/newview/llreflectionmapmanager.h | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/indra/newview/llreflectionmapmanager.h b/indra/newview/llreflectionmapmanager.h index b77a33da89..5c0651bc24 100644 --- a/indra/newview/llreflectionmapmanager.h +++ b/indra/newview/llreflectionmapmanager.h @@ -43,21 +43,23 @@ 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 public: - enum class DetailLevel + enum class DetailLevel { STATIC_ONLY = 0, STATIC_AND_DYNAMIC, REALTIME = 2 }; - // allocate an environment map of the given resolution + // allocate an environment map of the given resolution LLReflectionMapManager(); - // release any GL state + // release any GL state void cleanup(); // maintain reflection probes @@ -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(); @@ -119,7 +128,7 @@ private: // returns -1 if allocation failed S32 allocateCubeIndex(); - // update the neighbors of the given probe + // update the neighbors of the given probe void updateNeighbors(LLReflectionMap* probe); // update UBO used for rendering (call only once per render pipe flush) @@ -200,5 +209,6 @@ private: // if true, only update the default probe bool mPaused = false; + F32 mResumeTime = 0.f; }; |
