00001 #pragma once 00002 00003 #include "Shader.h" 00004 #include "geometrybuffer.h" 00005 #include "vertexformats.h" 00006 00007 class Shader_Postprocess : public Shader 00008 { 00009 private: 00010 static GeometryBuffer *quadGeometryBuffer; 00011 static ID3D10InputLayout *quadInputLayout; 00012 static ID3D10EffectPool *pool; 00013 00014 struct _variables 00015 { 00016 ID3D10EffectShaderResourceVariable* inputTexture; 00017 ID3D10EffectVectorVariable* viewPort; 00018 ID3D10EffectScalarVariable* elapsedTime; 00019 }; 00020 00021 protected: 00022 void setViewPort(int x, int y) const; 00023 00024 00025 public: 00026 static _variables variables; 00027 00028 Shader_Postprocess(ID3D10Device *device); 00029 ~Shader_Postprocess(); 00030 bool compile(const D3D10_SHADER_MACRO *macros, DWORD shaderFlags); 00031 bool compilePostProcessingShader(const wchar_t* filename, const D3D10_SHADER_MACRO *macros, DWORD shaderFlags); 00032 virtual void setInputTexture(ID3D10ShaderResourceView *texture); 00033 void setElapsedTime(float t); 00034 };