"L. Spiro Engine"

F:/My Projects/LSEngine/Modules/LSGraphicsLib/Src/PostProcessing/LSGPostProcessorBase.h

00001 
00016 #ifndef __LSG_POSTPROCESSORBASE_H__
00017 #define __LSG_POSTPROCESSORBASE_H__
00018 
00019 #include "../LSGGraphicsLib.h"
00020 #include "../RenderTarget/LSGColorRenderTarget.h"
00021 #include "../RenderTarget/LSGDepthStencilRenderTarget.h"
00022 #include "../ShaderLanguage/LSGShader.h"
00023 #include "../VertexBuffer/LSGVertexBuffer.h"
00024 #include "LSGPostProcessBrightPass.h"
00025 #include "LSGPostProcessHorBlur.h"
00026 #include "LSGPostProcessLuminance.h"
00027 #include "LSGPostProcessVertBlur.h"
00028 
00029 namespace lsg {
00030 
00037         class CPostProcessorBase {
00038         public :
00039                 // == Functions.
00045                 LSBOOL LSE_CALL                                                 ActivateHdrRenderTarget();
00046 
00050                 LSVOID LSE_CALL                                                 Present();
00051 
00057                 LSVOID LSE_CALL                                                 Tick( LSUINT64 _ui64Time );
00058 
00064                 LSE_INLINE CColorRenderTarget & LSE_CALL
00065                                                                                                 GetDepthColorCopy();
00066                                                                                                 
00072                 LSE_INLINE CDepthStencilRenderTarget & LSE_CALL
00073                                                                                                 GetDepthStencilTarget();
00074                 
00075                 
00076         protected :
00077                 // == Various constructors.
00078                 LSE_CALLCTOR                                                    CPostProcessorBase();
00079                 virtual LSE_CALLCTOR                                    ~CPostProcessorBase();
00080 
00081 
00082                 // == Members.
00086                 CColorRenderTarget                                              m_crtHdrColor;
00087 
00091                 CDepthStencilRenderTarget                               m_dsrtHdrDepth;
00092 
00097                 CColorRenderTarget                                              m_crtHdrDepthColorVersion;
00098 
00102                 CColorRenderTarget                                              m_crtHdrNormals;
00103 
00107                 CShader                                                                 m_sBlitShader;
00108 
00112                 CPostProcessLuminance                                   m_pplLuminance;
00113 
00117                 CPostProcessBrightPass                                  m_ppbpBright;
00118 
00122                 CPostProcessHorBlur                                             m_pphbHorBlur;
00123 
00127                 CPostProcessVertBlur                                    m_ppvbVertBlur;
00128 
00132                 LSUINT64                                                                m_ui64Time;
00133 
00137                 static CShader *                                                m_psCombiner;
00138 
00142                 static CCriticalSection                                 m_csCrit;
00143 
00147                 static LSUINT32                                                 m_ui32RefCount;
00148 
00152                 static CShaderBase::LSG_HANDLE                  m_hExposure;
00153 
00157                 static CShaderBase::LSG_HANDLE                  m_hGaussianScalar;
00158 
00162                 static CShaderBase::LSG_HANDLE                  m_hInvBloomW;
00163 
00167                 static CShaderBase::LSG_HANDLE                  m_hInvBloomH;
00168 
00169 
00170                 // == Functions.
00176                 LSBOOL LSE_CALL                                                 Init();
00177         };
00178 
00179 
00180         // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
00181         // DEFINITIONS
00182         // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
00188         LSE_INLINE CColorRenderTarget & LSE_CALL CPostProcessorBase::GetDepthColorCopy() {
00189                 return m_crtHdrDepthColorVersion;
00190         }
00191         
00197         LSE_INLINE CDepthStencilRenderTarget & LSE_CALL CPostProcessorBase::GetDepthStencilTarget() {
00198                 return m_dsrtHdrDepth;
00199         }
00200 
00201 }       // namespace lsg
00202 
00203 #endif  // #ifndef __LSG_POSTPROCESSORBASE_H__
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator