Pyrogenesis  trunk
Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
CPostprocManager Class Reference

#include <PostprocManager.h>

Collaboration diagram for CPostprocManager:
Collaboration graph
[legend]

Classes

struct  BlurScale
 

Public Member Functions

 CPostprocManager ()
 
 ~CPostprocManager ()
 
bool IsEnabled () const
 
void Initialize ()
 
void Resize ()
 
const CStrW & GetPostEffect () const
 
void SetPostEffect (const CStrW &name)
 
void UpdateAntiAliasingTechnique ()
 
void UpdateSharpeningTechnique ()
 
void UpdateSharpnessFactor ()
 
void SetDepthBufferClipPlanes (float nearPlane, float farPlane)
 
Renderer::Backend::IFramebufferPrepareAndGetOutputFramebuffer ()
 
void ApplyPostproc (Renderer::Backend::IDeviceCommandContext *deviceCommandContext)
 
void BlitOutputFramebuffer (Renderer::Backend::IDeviceCommandContext *deviceCommandContext, Renderer::Backend::IFramebuffer *destination)
 
bool IsMultisampleEnabled () const
 
void ResolveMultisampleFramebuffer (Renderer::Backend::IDeviceCommandContext *deviceCommandContext)
 

Static Public Member Functions

static std::vector< CStrW > GetPostEffects ()
 

Private Member Functions

void CreateMultisampleBuffer ()
 
void DestroyMultisampleBuffer ()
 
void ApplyBlur (Renderer::Backend::IDeviceCommandContext *deviceCommandContext)
 
void ApplyBlurDownscale2x (Renderer::Backend::IDeviceCommandContext *deviceCommandContext, Renderer::Backend::IFramebuffer *framebuffer, Renderer::Backend::ITexture *inTex, int inWidth, int inHeight)
 
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)
 
void ApplyEffect (Renderer::Backend::IDeviceCommandContext *deviceCommandContext, const CShaderTechniquePtr &shaderTech, int pass)
 
void Cleanup ()
 
void RecreateBuffers ()
 

Private Attributes

std::unique_ptr< Renderer::Backend::IFramebufferm_CaptureFramebuffer
 
std::unique_ptr< Renderer::Backend::IFramebufferm_PingFramebuffer
 
std::unique_ptr< Renderer::Backend::IFramebufferm_PongFramebuffer
 
std::unique_ptr< Renderer::Backend::ITexturem_ColorTex1
 
std::unique_ptr< Renderer::Backend::ITexturem_ColorTex2
 
std::unique_ptr< Renderer::Backend::ITexturem_DepthTex
 
float m_NearPlane
 
float m_FarPlane
 
std::array< BlurScale, 3 > m_BlurScales
 
bool m_WhichBuffer
 
Renderer::Backend::IVertexInputLayoutm_VertexInputLayout = nullptr
 
CStrW m_PostProcEffect
 
CShaderTechniquePtr m_PostProcTech
 
CStr m_SharpName
 
CShaderTechniquePtr m_SharpTech
 
float m_Sharpness
 
CStr m_AAName
 
CShaderTechniquePtr m_AATech
 
bool m_UsingMultisampleBuffer
 
std::unique_ptr< Renderer::Backend::IFramebufferm_MultisampleFramebuffer
 
std::unique_ptr< Renderer::Backend::ITexturem_MultisampleColorTex
 
std::unique_ptr< Renderer::Backend::ITexturem_MultisampleDepthTex
 
uint32_t m_MultisampleCount
 
std::vector< uint32_tm_AllowedSampleCounts
 
int m_Width
 
int m_Height
 
bool m_IsInitialized
 

Constructor & Destructor Documentation

◆ CPostprocManager()

CPostprocManager::CPostprocManager ( )

◆ ~CPostprocManager()

CPostprocManager::~CPostprocManager ( )

Member Function Documentation

◆ ApplyBlur()

void CPostprocManager::ApplyBlur ( Renderer::Backend::IDeviceCommandContext deviceCommandContext)
private

◆ ApplyBlurDownscale2x()

void CPostprocManager::ApplyBlurDownscale2x ( Renderer::Backend::IDeviceCommandContext deviceCommandContext,
Renderer::Backend::IFramebuffer framebuffer,
Renderer::Backend::ITexture inTex,
int  inWidth,
int  inHeight 
)
private

◆ ApplyBlurGauss()

void CPostprocManager::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 
)
private

◆ ApplyEffect()

void CPostprocManager::ApplyEffect ( Renderer::Backend::IDeviceCommandContext deviceCommandContext,
const CShaderTechniquePtr shaderTech,
int  pass 
)
private

◆ ApplyPostproc()

void CPostprocManager::ApplyPostproc ( Renderer::Backend::IDeviceCommandContext deviceCommandContext)

◆ BlitOutputFramebuffer()

void CPostprocManager::BlitOutputFramebuffer ( Renderer::Backend::IDeviceCommandContext deviceCommandContext,
Renderer::Backend::IFramebuffer destination 
)

◆ Cleanup()

void CPostprocManager::Cleanup ( )
private

◆ CreateMultisampleBuffer()

void CPostprocManager::CreateMultisampleBuffer ( )
private

◆ DestroyMultisampleBuffer()

void CPostprocManager::DestroyMultisampleBuffer ( )
private

◆ GetPostEffect()

const CStrW& CPostprocManager::GetPostEffect ( ) const
inline

◆ GetPostEffects()

std::vector< CStrW > CPostprocManager::GetPostEffects ( )
static

◆ Initialize()

void CPostprocManager::Initialize ( )

◆ IsEnabled()

bool CPostprocManager::IsEnabled ( ) const

◆ IsMultisampleEnabled()

bool CPostprocManager::IsMultisampleEnabled ( ) const

◆ PrepareAndGetOutputFramebuffer()

Renderer::Backend::IFramebuffer * CPostprocManager::PrepareAndGetOutputFramebuffer ( )

◆ RecreateBuffers()

void CPostprocManager::RecreateBuffers ( )
private

◆ Resize()

void CPostprocManager::Resize ( )

◆ ResolveMultisampleFramebuffer()

void CPostprocManager::ResolveMultisampleFramebuffer ( Renderer::Backend::IDeviceCommandContext deviceCommandContext)

◆ SetDepthBufferClipPlanes()

void CPostprocManager::SetDepthBufferClipPlanes ( float  nearPlane,
float  farPlane 
)

◆ SetPostEffect()

void CPostprocManager::SetPostEffect ( const CStrW &  name)

◆ UpdateAntiAliasingTechnique()

void CPostprocManager::UpdateAntiAliasingTechnique ( )

◆ UpdateSharpeningTechnique()

void CPostprocManager::UpdateSharpeningTechnique ( )

◆ UpdateSharpnessFactor()

void CPostprocManager::UpdateSharpnessFactor ( )

Member Data Documentation

◆ m_AAName

CStr CPostprocManager::m_AAName
private

◆ m_AATech

CShaderTechniquePtr CPostprocManager::m_AATech
private

◆ m_AllowedSampleCounts

std::vector<uint32_t> CPostprocManager::m_AllowedSampleCounts
private

◆ m_BlurScales

std::array<BlurScale, 3> CPostprocManager::m_BlurScales
private

◆ m_CaptureFramebuffer

std::unique_ptr<Renderer::Backend::IFramebuffer> CPostprocManager::m_CaptureFramebuffer
private

◆ m_ColorTex1

std::unique_ptr<Renderer::Backend::ITexture> CPostprocManager::m_ColorTex1
private

◆ m_ColorTex2

std::unique_ptr<Renderer::Backend::ITexture> CPostprocManager::m_ColorTex2
private

◆ m_DepthTex

std::unique_ptr<Renderer::Backend::ITexture> CPostprocManager::m_DepthTex
private

◆ m_FarPlane

float CPostprocManager::m_FarPlane
private

◆ m_Height

int CPostprocManager::m_Height
private

◆ m_IsInitialized

bool CPostprocManager::m_IsInitialized
private

◆ m_MultisampleColorTex

std::unique_ptr<Renderer::Backend::ITexture> CPostprocManager::m_MultisampleColorTex
private

◆ m_MultisampleCount

uint32_t CPostprocManager::m_MultisampleCount
private

◆ m_MultisampleDepthTex

std::unique_ptr<Renderer::Backend::ITexture> CPostprocManager::m_MultisampleDepthTex
private

◆ m_MultisampleFramebuffer

std::unique_ptr<Renderer::Backend::IFramebuffer> CPostprocManager::m_MultisampleFramebuffer
private

◆ m_NearPlane

float CPostprocManager::m_NearPlane
private

◆ m_PingFramebuffer

std::unique_ptr<Renderer::Backend::IFramebuffer> CPostprocManager::m_PingFramebuffer
private

◆ m_PongFramebuffer

std::unique_ptr<Renderer::Backend::IFramebuffer> CPostprocManager::m_PongFramebuffer
private

◆ m_PostProcEffect

CStrW CPostprocManager::m_PostProcEffect
private

◆ m_PostProcTech

CShaderTechniquePtr CPostprocManager::m_PostProcTech
private

◆ m_SharpName

CStr CPostprocManager::m_SharpName
private

◆ m_Sharpness

float CPostprocManager::m_Sharpness
private

◆ m_SharpTech

CShaderTechniquePtr CPostprocManager::m_SharpTech
private

◆ m_UsingMultisampleBuffer

bool CPostprocManager::m_UsingMultisampleBuffer
private

◆ m_VertexInputLayout

Renderer::Backend::IVertexInputLayout* CPostprocManager::m_VertexInputLayout = nullptr
private

◆ m_WhichBuffer

bool CPostprocManager::m_WhichBuffer
private

◆ m_Width

int CPostprocManager::m_Width
private

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