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 };