HDRPostProcessor::TempRenderTarget* HDRPostProcessor::GetTempRenderTarget(U32 width, U32 height, DXGI_FORMAT format, U32 mipMapLevels) { // Check if there is free renderTarget that has already been created for(auto it = tempRenderTargets.begin(); it != tempRenderTargets.end(); ++it) { TempRenderTarget* tempRT = *it; RenderTarget* rt = tempRT->renderTarget; if (!(tempRT->inUse) && rt->GetWidth() == width && rt->GetHeight() == height && rt->GetRTViewFormat() == format && rt->GetMipMapLevels() == mipMapLevels) { return tempRT; } } // If there are no specified renderTargets that are free, create one RenderTarget* renderTarget = RenderTarget::Create(lowLevelGraphics->GetDevice(), width, height, format, mipMapLevels); TempRenderTarget* tempRenderTarget = new TempRenderTarget(renderTarget); tempRenderTargets.push_back(tempRenderTarget); return tempRenderTarget; }