#ifndef PostSSAO_h__ #define PostSSAO_h__ #include "render/IRenderer.h" #include "Globals.h" #include "math/LifeMath.h" namespace LifeGraphics { class IScene; class PostSSAO { private: IRenderer* pRenderer; IScene* pScene; IShader* vs; IShader* psRender; IShader* psBlur; ITexture2D* ssaoTex; ITexture2D* ssaoBlur; texture_ptr ssaoRandom; ITextureSampler* pointSamplerClamp; IDepthStencilState* depthState; ITextureSampler* linearSampler; LifeMath::Vec2i ssaoSize; public: LifeMath::Vec2i getSize() { return ssaoSize; } ITexture2D* getTexture(); void process(IConstantBuffer* camera, ITexture2D* sceneGbuf, ITexture2D* sceneDepthTarget); PostSSAO(IScene* scene, QUALITY effectQuality); ~PostSSAO(); }; } #endif // PostSSAO_h__