33#ifndef DVD_SSAO_PRE_RENDER_OPERATOR_H_
34#define DVD_SSAO_PRE_RENDER_OPERATOR_H_
81 [[nodiscard]]
bool ready() const noexcept override;
Rough around the edges Adapter pattern abstracting the actual rendering API and access to the GPU.
virtual void onToggle(bool state)
F32 bias() const noexcept
void prepare(PlayerIndex idx, GFX::CommandBuffer &bufferInOut) override
F32 blurSharpness() const noexcept
I32 blurKernelSize() const noexcept
RenderTargetHandle _ssaoHalfResOutput
~SSAOPreRenderOperator() override
SamplerDescriptor _noiseSampler
Handle< ShaderProgram > _ssaoUpSampleShader
bool blurResults() const noexcept
Pipeline * _generateFullResPipeline
Pipeline * _blurVerticalPipeline
UniformData _ssaoGenerateConstants
Handle< Texture > _noiseTexture
Handle< ShaderProgram > _ssaoBlurShaderVertical
RenderTargetHandle _halfDepthAndNormals
F32 blurThreshold() const noexcept
void reshape(U16 width, U16 height) override
F32 fadeStart() const noexcept
RenderTargetHandle _ssaoBlurBuffer
RenderTargetHandle _ssaoOutput
Handle< ShaderProgram > _ssaoGenerateHalfResShader
void onToggle(const bool state) override
Handle< ShaderProgram > _ssaoGenerateShader
Pipeline * _passThroughPipeline
U8 sampleCount() const noexcept
bool ready() const noexcept override
Handle< ShaderProgram > _ssaoDownSampleShader
Pipeline * _generateHalfResPipeline
Pipeline * _blurHorizontalPipeline
F32 radius() const noexcept
Handle< ShaderProgram > _ssaoPassThroughShader
Handle< ShaderProgram > _ssaoBlurShaderHorizontal
Pipeline * _downsamplePipeline
F32 power() const noexcept
UniformData _ssaoBlurConstants
bool execute(PlayerIndex idx, const CameraSnapshot &cameraSnapshot, const RenderTargetHandle &input, const RenderTargetHandle &output, GFX::CommandBuffer &bufferInOut) override
Return true if we rendered into "output".
F32 maxRange() const noexcept
bool genHalfRes() const noexcept
Pipeline * _upsamplePipeline
Handle console commands that start with a forward slash.