18#ifndef INCLUDED_POSTPROCMANAGER
19#define INCLUDED_POSTPROCMANAGER
130 std::unique_ptr<Renderer::Backend::IFramebuffer>
136 std::unique_ptr<Renderer::Backend::ITexture>
138 std::unique_ptr<Renderer::Backend::IFramebuffer>
152 std::unique_ptr<Renderer::Backend::ITexture>
texture;
182 std::unique_ptr<Renderer::Backend::ITexture>
204 int inWidth,
int inHeight);
215 int inWidth,
int inHeight);
std::shared_ptr< CShaderTechnique > CShaderTechniquePtr
Definition: ShaderTechniquePtr.h:28
Definition: PostprocManager.h:32
std::array< BlurScale, 3 > m_BlurScales
Definition: PostprocManager.h:156
void SetDepthBufferClipPlanes(float nearPlane, float farPlane)
Definition: PostprocManager.cpp:853
uint32_t m_MultisampleCount
Definition: PostprocManager.h:184
void SetUpscaleTechnique(const CStr &upscaleName)
Definition: PostprocManager.cpp:833
void UpdateSharpeningTechnique()
Definition: PostprocManager.cpp:810
float m_FarPlane
Definition: PostprocManager.h:144
CPostprocManager(Renderer::Backend::IDevice *device)
Definition: PostprocManager.cpp:84
float m_NearPlane
Definition: PostprocManager.h:144
~CPostprocManager()
Definition: PostprocManager.cpp:91
bool m_UsingMultisampleBuffer
Definition: PostprocManager.h:180
std::unique_ptr< Renderer::Backend::ITexture > m_UnscaledTexture2
Definition: PostprocManager.h:137
CStr m_AAName
Definition: PostprocManager.h:178
void RecreateBuffers()
Definition: PostprocManager.cpp:184
float GetScale() const
Definition: PostprocManager.h:91
void UpdateAntiAliasingTechnique()
Definition: PostprocManager.cpp:760
std::unique_ptr< Renderer::Backend::IFramebuffer > m_PongFramebuffer
Definition: PostprocManager.h:131
void UpscaleTextureByCompute(Renderer::Backend::IDeviceCommandContext *deviceCommandContext, CShaderTechnique *shaderTechnique, Renderer::Backend::ITexture *source, Renderer::Backend::ITexture *destination)
Definition: PostprocManager.cpp:436
void DownscaleTextureByCompute(Renderer::Backend::IDeviceCommandContext *deviceCommandContext, CShaderTechnique *shaderTechnique, Renderer::Backend::ITexture *source, Renderer::Backend::ITexture *destination)
Definition: PostprocManager.cpp:526
static std::vector< CStrW > GetPostEffects()
Definition: PostprocManager.cpp:724
CShaderTechniquePtr m_DownscaleComputeTech
Definition: PostprocManager.h:174
void UpscaleTextureByFullscreenQuad(Renderer::Backend::IDeviceCommandContext *deviceCommandContext, CShaderTechnique *shaderTechnique, Renderer::Backend::ITexture *source, Renderer::Backend::IFramebuffer *destination)
Definition: PostprocManager.cpp:462
void ApplySharpnessAfterScale(Renderer::Backend::IDeviceCommandContext *deviceCommandContext, CShaderTechnique *shaderTechnique, Renderer::Backend::ITexture *source, Renderer::Backend::ITexture *destination)
Definition: PostprocManager.cpp:495
std::unique_ptr< Renderer::Backend::IFramebuffer > m_UnscaledFramebuffer2
Definition: PostprocManager.h:139
std::unique_ptr< Renderer::Backend::ITexture > m_UnscaledTexture1
Definition: PostprocManager.h:137
void Resize()
Definition: PostprocManager.cpp:175
bool IsEnabled() const
Definition: PostprocManager.cpp:96
CShaderTechniquePtr m_RCASComputeTech
Definition: PostprocManager.h:176
CShaderTechniquePtr m_PostProcTech
Definition: PostprocManager.h:166
void ApplyBlurGauss(Renderer::Backend::IDeviceCommandContext *deviceCommandContext, Renderer::Backend::ITexture *inTex, Renderer::Backend::ITexture *tempTex, Renderer::Backend::IFramebuffer *tempFramebuffer, Renderer::Backend::IFramebuffer *outFramebuffer, int inWidth, int inHeight)
Definition: PostprocManager.cpp:347
CShaderTechniquePtr m_SharpTech
Definition: PostprocManager.h:169
void Cleanup()
Definition: PostprocManager.cpp:108
std::unique_ptr< Renderer::Backend::ITexture > m_ColorTex2
Definition: PostprocManager.h:134
void DestroyMultisampleBuffer()
Definition: PostprocManager.cpp:907
void ApplyEffect(Renderer::Backend::IDeviceCommandContext *deviceCommandContext, const CShaderTechniquePtr &shaderTech, int pass)
Definition: PostprocManager.cpp:630
std::vector< uint32_t > m_AllowedSampleCounts
Definition: PostprocManager.h:185
uint32_t m_Width
Definition: PostprocManager.h:188
Renderer::Backend::IVertexInputLayout * m_VertexInputLayout
Definition: PostprocManager.h:161
std::unique_ptr< Renderer::Backend::ITexture > m_ColorTex1
Definition: PostprocManager.h:134
CShaderTechniquePtr m_AATech
Definition: PostprocManager.h:179
std::unique_ptr< Renderer::Backend::IFramebuffer > m_CaptureFramebuffer
Definition: PostprocManager.h:127
bool IsMultisampleEnabled() const
Definition: PostprocManager.cpp:916
std::unique_ptr< Renderer::Backend::IFramebuffer > m_PingFramebuffer
Definition: PostprocManager.h:131
Renderer::Backend::IDevice * m_Device
Definition: PostprocManager.h:125
float m_Sharpness
Definition: PostprocManager.h:170
const CStrW & GetPostEffect() const
Definition: PostprocManager.h:51
uint32_t m_UnscaledHeight
Definition: PostprocManager.h:189
void ResolveMultisampleFramebuffer(Renderer::Backend::IDeviceCommandContext *deviceCommandContext)
Definition: PostprocManager.cpp:921
uint32_t m_Height
Definition: PostprocManager.h:188
void ApplyBlur(Renderer::Backend::IDeviceCommandContext *deviceCommandContext)
Definition: PostprocManager.cpp:407
std::unique_ptr< Renderer::Backend::IFramebuffer > m_MultisampleFramebuffer
Definition: PostprocManager.h:181
void UpdateSharpnessFactor()
Definition: PostprocManager.cpp:828
CShaderTechniquePtr m_UpscaleTech
Definition: PostprocManager.h:172
void RecalculateSize(const uint32_t width, const uint32_t height)
Definition: PostprocManager.cpp:932
void ApplyBlurDownscale2x(Renderer::Backend::IDeviceCommandContext *deviceCommandContext, Renderer::Backend::IFramebuffer *framebuffer, Renderer::Backend::ITexture *inTex, int inWidth, int inHeight)
Definition: PostprocManager.cpp:316
bool m_WhichBuffer
Definition: PostprocManager.h:159
Renderer::Backend::IFramebuffer * PrepareAndGetOutputFramebuffer()
Definition: PostprocManager.cpp:425
bool ShouldUpscale() const
Definition: PostprocManager.cpp:951
bool ShouldDownscale() const
Definition: PostprocManager.cpp:956
std::unique_ptr< Renderer::Backend::ITexture > m_DepthTex
Definition: PostprocManager.h:143
CShaderTechniquePtr m_UpscaleComputeTech
Definition: PostprocManager.h:173
void BlitOutputFramebuffer(Renderer::Backend::IDeviceCommandContext *deviceCommandContext, Renderer::Backend::IFramebuffer *destination)
Definition: PostprocManager.cpp:552
std::unique_ptr< Renderer::Backend::ITexture > m_MultisampleColorTex
Definition: PostprocManager.h:183
CStr m_SharpName
Definition: PostprocManager.h:168
void CreateMultisampleBuffer()
Definition: PostprocManager.cpp:859
std::unique_ptr< Renderer::Backend::IFramebuffer > m_UnscaledFramebuffer1
Definition: PostprocManager.h:139
void Initialize()
Definition: PostprocManager.cpp:132
float m_Scale
Definition: PostprocManager.h:140
void ApplyPostproc(Renderer::Backend::IDeviceCommandContext *deviceCommandContext)
Definition: PostprocManager.cpp:685
std::unique_ptr< Renderer::Backend::ITexture > m_MultisampleDepthTex
Definition: PostprocManager.h:183
bool m_IsInitialized
Definition: PostprocManager.h:192
void SetPostEffect(const CStrW &name)
Definition: PostprocManager.cpp:746
uint32_t m_UnscaledWidth
Definition: PostprocManager.h:189
CStrW m_PostProcEffect
Definition: PostprocManager.h:165
Implements a render technique consisting of a sequence of passes.
Definition: ShaderTechnique.h:60
Definition: IDeviceCommandContext.h:42
IFramebuffer stores attachments which should be used by backend as rendering destinations.
Definition: IFramebuffer.h:85
Definition: ITexture.h:34
Definition: PostprocManager.h:150
std::unique_ptr< Renderer::Backend::ITexture > texture
Definition: PostprocManager.h:152
std::unique_ptr< Renderer::Backend::IFramebuffer > framebuffer
Definition: PostprocManager.h:151
Definition: PostprocManager.h:148
std::array< Step, 2 > steps
Definition: PostprocManager.h:154
unsigned int uint32_t
Definition: wposix_types.h:53