"L. Spiro Engine"
|
00001 00016 #ifndef __LSG_POSTPROCESSBRIGHTPASS_H__ 00017 #define __LSG_POSTPROCESSBRIGHTPASS_H__ 00018 00019 #include "../LSGGraphicsLib.h" 00020 #include "../RenderTarget/LSGColorRenderTarget.h" 00021 #include "../ShaderLanguage/LSGShader.h" 00022 #include "CriticalSection/LSHCriticalSection.h" 00023 00024 namespace lsg { 00025 00032 class CPostProcessBrightPass { 00033 public : 00034 // == Various constructors. 00035 LSE_CALLCTOR CPostProcessBrightPass(); 00036 LSE_CALLCTOR ~CPostProcessBrightPass(); 00037 00038 00039 // == Functions. 00045 LSBOOL LSE_CALL GetBright( CColorRenderTarget &_crtSrc ); 00046 00052 LSE_INLINE CColorRenderTarget & LSE_CALL GetBrightPassTarget(); 00053 00054 00055 protected : 00056 // == Members. 00060 CColorRenderTarget m_crtBrightPass; 00061 00065 static CShader * m_psBrightPass; 00066 00070 static CCriticalSection m_csCrit; 00071 00075 static LSUINT32 m_ui32RefCount; 00076 00080 static CShaderBase::LSG_HANDLE m_hThresh; 00081 00085 static CShaderBase::LSG_HANDLE m_hDownsamples; 00086 00087 00088 // == Functions. 00096 LSBOOL LSE_CALL Init( LSUINT32 _ui32Width, LSUINT32 _ui32Height ); 00097 }; 00098 00099 00100 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00101 // DEFINITIONS 00102 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00103 // == Functions. 00109 LSE_INLINE CColorRenderTarget & LSE_CALL CPostProcessBrightPass::GetBrightPassTarget() { 00110 return m_crtBrightPass; 00111 } 00112 00113 } // namespace lsg 00114 00115 #endif // __LSG_POSTPROCESSBRIGHTPASS_H__