candlewick 0.6.0
A tiny cross-platform renderer based on SDL3
Loading...
Searching...
No Matches
candlewick::ShadowMapPass Class Reference

Class for defining the shadow maps (as an atlas) and rendering into it. More...

#include <candlewick/core/DepthAndShadowPass.h>

Classes

struct  AtlasRegion
 Texture atlas region, implicitly converts to an SDLGPU viewport. More...
 

Public Types

using Config = ShadowPassConfig
 

Public Member Functions

 ShadowMapPass (NoInitT)
 
 ShadowMapPass (const Device &device, const MeshLayout &layout, SDL_GPUTextureFormat format, const Config &config)
 
 ShadowMapPass (const Device &device, const MeshLayout &layout, SDL_GPUTextureFormat format)
 
 ShadowMapPass (const ShadowMapPass &)=delete
 
ShadowMapPassoperator= (const ShadowMapPass &)=delete
 
 ShadowMapPass (ShadowMapPass &&other) noexcept
 
ShadowMapPassoperator= (ShadowMapPass &&other) noexcept
 
void render (CommandBuffer &cmdBuf, std::span< const OpaqueCastable > castables)
 
void release () noexcept
 
 ~ShadowMapPass () noexcept
 
auto numLights () const noexcept
 

Public Attributes

Texture shadowMap {NoInit}
 actually a texture atlas
 
SDL_GPUGraphicsPipeline * pipeline = nullptr
 
SDL_GPUSampler * sampler = nullptr
 
std::array< Camera, kNumLights > cam
 
std::array< AtlasRegion, kNumLights > regions
 regions of the atlas
 

Detailed Description

Class for defining the shadow maps (as an atlas) and rendering into it.

The user has to take care of setting the "cameras" corresponding to the actual lights.

Member Typedef Documentation

◆ Config

Constructor & Destructor Documentation

◆ ShadowMapPass() [1/5]

candlewick::ShadowMapPass::ShadowMapPass ( NoInitT )
inline

◆ ShadowMapPass() [2/5]

candlewick::ShadowMapPass::ShadowMapPass ( const Device & device,
const MeshLayout & layout,
SDL_GPUTextureFormat format,
const Config & config )

◆ ShadowMapPass() [3/5]

candlewick::ShadowMapPass::ShadowMapPass ( const Device & device,
const MeshLayout & layout,
SDL_GPUTextureFormat format )
inline

◆ ShadowMapPass() [4/5]

candlewick::ShadowMapPass::ShadowMapPass ( const ShadowMapPass & )
delete

◆ ShadowMapPass() [5/5]

candlewick::ShadowMapPass::ShadowMapPass ( ShadowMapPass && other)
noexcept

◆ ~ShadowMapPass()

candlewick::ShadowMapPass::~ShadowMapPass ( )
inlinenoexcept

Member Function Documentation

◆ numLights()

auto candlewick::ShadowMapPass::numLights ( ) const
inlinenoexcept

◆ operator=() [1/2]

ShadowMapPass & candlewick::ShadowMapPass::operator= ( const ShadowMapPass & )
delete

◆ operator=() [2/2]

ShadowMapPass & candlewick::ShadowMapPass::operator= ( ShadowMapPass && other)
noexcept

◆ release()

void candlewick::ShadowMapPass::release ( )
noexcept

◆ render()

void candlewick::ShadowMapPass::render ( CommandBuffer & cmdBuf,
std::span< const OpaqueCastable > castables )

Member Data Documentation

◆ cam

std::array<Camera, kNumLights> candlewick::ShadowMapPass::cam

◆ pipeline

SDL_GPUGraphicsPipeline* candlewick::ShadowMapPass::pipeline = nullptr

◆ regions

std::array<AtlasRegion, kNumLights> candlewick::ShadowMapPass::regions

regions of the atlas

◆ sampler

SDL_GPUSampler* candlewick::ShadowMapPass::sampler = nullptr

◆ shadowMap

Texture candlewick::ShadowMapPass::shadowMap {NoInit}

actually a texture atlas


The documentation for this class was generated from the following file: