if (Config->PostProcess) {
pLightBlur = new ImageProcessing(pDevice, "Modules/D3D9Client/LightBlur.hlsl", "PSMain");
pFlare = new ImageProcessing(pDevice, "Modules/D3D9Client/LensFlare.hlsl", "PSMain");
int BufSize = pLightBlur->FindDefine("BufferDivider");
int BufFmt = pLightBlur->FindDefine("BufferFormat");
D3DFORMAT BackBuffer = D3DFMT_A2R10G10B10;
if (BufFmt == 1) BackBuffer = D3DFMT_A16B16G16R16F;
LPDIRECT3DSURFACE9 pBack = gc->GetBackBuffer();
D3DSURFACE_DESC desc;
pBack->GetDesc(&desc);
if (pDevice->CreateRenderTarget(viewW, viewH, BackBuffer, desc.MultiSampleType, desc.MultiSampleQuality, false, &pOffscreenTarget, NULL) == S_OK) {
HR(D3DXCreateTextureFromFileA(pDevice, "Textures/D3D9Noise.dds", &pTextures[TEX_NOISE]));
HR(D3DXCreateTextureFromFileA(pDevice, "Textures/D3D9CLUT.dds", &pTextures[TEX_CLUT]));
HR(D3DXCreateTexture(pDevice, viewW, viewH, 1, D3DUSAGE_RENDERTARGET, BackBuffer, D3DPOOL_DEFAULT, &ptgBuffer[GBUF_COLOR]));
HR(D3DXCreateTexture(pDevice, viewW / BufSize, viewH / BufSize, 1, D3DUSAGE_RENDERTARGET, D3DFMT_A2R10G10B10, D3DPOOL_DEFAULT, &ptgBuffer[GBUF_BLUR]));
HR(D3DXCreateTexture(pDevice, viewW / BufSize, viewH / BufSize, 1, D3DUSAGE_RENDERTARGET, D3DFMT_A2R10G10B10, D3DPOOL_DEFAULT, &ptgBuffer[GBUF_TEMP]));
}
else {
LogErr("Creation of Offscreen render target failed (LensBlur)");
SAFE_DELETE(pLightBlur);
SAFE_DELETE(pFlare);
}
}