24 #ifndef PXR_IMAGING_GLF_SIMPLE_SHADOW_ARRAY_H
25 #define PXR_IMAGING_GLF_SIMPLE_SHADOW_ARRAY_H
55 GlfSimpleShadowArray&
operator=(
const GlfSimpleShadowArray&) =
delete;
140 void _AllocResources();
141 void _AllocBindfulTextures();
142 void _AllocBindlessTextures();
143 void _FreeResources();
144 void _FreeBindfulTextures();
145 void _FreeBindlessTextures();
146 bool _ShadowMapExists()
const;
147 void _BindFramebuffer(
size_t index);
148 void _UnbindFramebuffer();
155 GLuint _shadowDepthSampler;
158 std::vector<GfVec2i> _resolutions;
159 std::vector<GLuint> _bindlessTextures;
160 std::vector<uint64_t> _bindlessTextureHandles;
163 std::vector<GfMatrix4d> _viewMatrix;
164 std::vector<GfMatrix4d> _projectionMatrix;
168 GLuint _shadowCompareSampler;
170 GLuint _unbindRestoreDrawFramebuffer;
171 GLuint _unbindRestoreReadFramebuffer;
173 GLint _unbindRestoreViewport[4];
GLF_API void SetNumLayers(size_t numLayers)
GLF_API GfVec2i GetShadowMapSize(size_t pass) const
GLF_API void SetSize(GfVec2i const &size)
Bindful API:
GLF_API size_t GetNumShadowMapPasses() const
Common API (for shadow map generation)
GLF_API GLuint GetShadowMapDepthSampler() const
GLF_API std::vector< uint64_t > const & GetBindlessShadowMapHandles() const
GLF_API GlfSimpleShadowArray()
GLF_API void SetShadowMapResolutions(std::vector< GfVec2i > const &resolutions)
Bindless API:
GLF_API GLuint GetShadowMapTexture() const
GLF_API GfMatrix4d GetProjectionMatrix(size_t index) const
GLF_API ~GlfSimpleShadowArray() override
GLF_API GfMatrix4d GetWorldToShadowMatrix(size_t index) const
GLF_API void SetViewMatrix(size_t index, GfMatrix4d const &matrix)
GLF_API void SetProjectionMatrix(size_t index, GfMatrix4d const &matrix)
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
GLF_API GLuint GetShadowMapCompareSampler() const
#define PXR_NAMESPACE_CLOSE_SCOPE
static GLF_API bool GetBindlessShadowMapsEnabled()
GLF_API GfMatrix4d GetViewMatrix(size_t index) const
GLF_API void EndCapture(size_t index)
GlfSimpleShadowArray & operator=(const GlfSimpleShadowArray &)=delete
GLF_API void BeginCapture(size_t index, bool clear)