From b0fdea58e61c47ac553e9f0938c09d415eebda5b Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Fri, 20 Feb 2026 23:39:42 +0000 Subject: Simplified and tidied ShadowMapper No arbitrary 10m extra extents. No runtime vectors. Simpler code. Consts. etc. --- gfx/gl/shadowMapper.h | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'gfx/gl/shadowMapper.h') diff --git a/gfx/gl/shadowMapper.h b/gfx/gl/shadowMapper.h index 82374cb..8b5e0b6 100644 --- a/gfx/gl/shadowMapper.h +++ b/gfx/gl/shadowMapper.h @@ -5,10 +5,10 @@ #include "gfx/gl/shadowStenciller.h" #include "lib/glArrays.h" #include "program.h" +#include #include #include #include -#include class SceneProvider; class Camera; @@ -20,11 +20,12 @@ public: static constexpr std::size_t SHADOW_BANDS {4}; - using Definitions = std::vector; - using Sizes = std::vector; + using Definitions = std::array; + using Sizes = std::array; const Frustum & preFrame(const LightDirection & direction, const Camera &); - [[nodiscard]] Definitions update(const SceneProvider &, const LightDirection & direction, const Camera &) const; + [[nodiscard]] std::span update( + const SceneProvider &, const LightDirection & direction, const Camera &) const; class ShadowProgram : public Program { public: @@ -74,12 +75,13 @@ public: } private: - [[nodiscard]] static std::vector> getBandViewExtents( - const Camera &, const glm::mat4 & lightView); + using BandViewExtents = std::array, SHADOW_BANDS + 1>; + [[nodiscard]] static size_t getBandViewExtents(BandViewExtents &, const Camera &, const glm::mat4 & lightView); glFrameBuffer depthMapFBO; glTexture depthMap; TextureAbsCoord size; + BandViewExtents bandViewExtents; Definitions definitions; Sizes sizes; Frustum frustum; -- cgit v1.3