#pragma once #include "QuadRendering.h" #include "DXUT.h" #include class ToneMap { private: // Source HDR texture LPDIRECT3DTEXTURE9 sourceTexture; LPDIRECT3DSURFACE9 sourceTextureSurface; // Target HDR Texture LPDIRECT3DTEXTURE9 myRenderTexture; LPDIRECT3DSURFACE9 myRenderTextureSurface; // Luminance Texture LPDIRECT3DTEXTURE9 myLuminanceTexture; LPDIRECT3DSURFACE9 myLuminanceTextureSurface; // Luminance Texture LPDIRECT3DTEXTURE9 myAverageLuminanceTexture[2]; LPDIRECT3DSURFACE9 myAverageLuminanceTextureSurface[2]; // ToneMapping Effect LPD3DXEFFECT myEffect; D3DVERTEX_1 rttVertices[3]; LPDIRECT3DSURFACE9 rttDepthSurface; LPDIRECT3DSURFACE9 rttDepthSurface_small; IDirect3DVertexDeclaration9* textureDecl; LPDIRECT3DVERTEXBUFFER9 pQuadVB; LPDIRECT3DSURFACE9 backBuffer; LPDIRECT3DSURFACE9 backBufferDepthSurface; IDirect3DDevice9* pd3dDevice; // Gain float Gain; float Passes; public: ToneMap(void); ~ToneMap(void); HRESULT Init( IDirect3DDevice9* pd3dDevice, LPDIRECT3DTEXTURE9 sourceTexture, LPDIRECT3DSURFACE9 targetTextureSurface); void SetSource(LPDIRECT3DTEXTURE9 sourceTexture); void SetGain(float gain); void SetPasses(float pass); void Destroy(); void Map(); };