From 892513f81ed68e05d4dedb99f51de5bc46cab6b2 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sun, 28 Jan 2024 02:25:11 +0000 Subject: Geometry shader for single pass shadow maps 2D array texture, 4 levels, geometry shader outputs to each layer for a specific band, single scene rendering. Pending massive tidy up. --- gfx/gl/shadowMapper.h | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'gfx/gl/shadowMapper.h') diff --git a/gfx/gl/shadowMapper.h b/gfx/gl/shadowMapper.h index 065db4f..421e6a5 100644 --- a/gfx/gl/shadowMapper.h +++ b/gfx/gl/shadowMapper.h @@ -26,25 +26,29 @@ public: class FixedPoint : public Program { public: - FixedPoint(const Shader & vs); - void setViewPoint(const GlobalPosition3D) const; - void setViewProjection(const glm::mat4 &) const; + FixedPoint(const Shader & vs, const Shader & gs); + void setViewPoint(const GlobalPosition3D, size_t n) const; + void setViewProjection(const glm::mat4 &, size_t n) const; void use() const; private: - RequiredUniformLocation viewProjectionLoc, viewPointLoc; + std::array viewProjectionLoc; + RequiredUniformLocation viewProjectionsLoc; + RequiredUniformLocation viewPointLoc; }; class DynamicPoint : public Program { public: DynamicPoint(); - void setViewPoint(const GlobalPosition3D) const; - void setViewProjection(const glm::mat4 &) const; + void setViewPoint(const GlobalPosition3D, size_t n) const; + void setViewProjection(const glm::mat4 &, size_t n) const; void use(const Location &) const; void setModel(const Location &) const; private: - RequiredUniformLocation viewProjectionLoc, viewPointLoc; + std::array viewProjectionLoc; + RequiredUniformLocation viewProjectionsLoc; + RequiredUniformLocation viewPointLoc; RequiredUniformLocation modelLoc; RequiredUniformLocation modelPosLoc; }; -- cgit v1.2.3