MCPcopy Create free account
hub / github.com/DiligentGraphics/DiligentFX / PrepareResources

Method PrepareResources

PostProcess/Common/src/PostFXContext.cpp:241–285  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

239PostFXContext::~PostFXContext() = default;
240
241void PostFXContext::PrepareResources(IRenderDevice* pDevice, const FrameDesc& Desc, FEATURE_FLAGS FeatureFlags)
242{
243 m_FrameDesc.Index = Desc.Index;
244 m_FeatureFlags = FeatureFlags;
245
246 if (m_FrameDesc.Width == Desc.Width && m_FrameDesc.Height == Desc.Height)
247 return;
248
249 m_FrameDesc = Desc;
250
251 RenderDeviceWithCache_N Device{pDevice};
252
253 {
254 TextureDesc ResourceDesc;
255 ResourceDesc.Name = "PostFXContext::ReprojectedDepth";
256 ResourceDesc.Type = RESOURCE_DIM_TEX_2D;
257 ResourceDesc.Width = m_FrameDesc.Width;
258 ResourceDesc.Height = m_FrameDesc.Height;
259 ResourceDesc.Format = (m_FeatureFlags & FEATURE_FLAG_HALF_PRECISION_DEPTH) ? TEX_FORMAT_R16_UNORM : TEX_FORMAT_R32_FLOAT;
260 ResourceDesc.BindFlags = BIND_SHADER_RESOURCE | BIND_RENDER_TARGET;
261 m_Resources.Insert(RESOURCE_IDENTIFIER_REPROJECTED_DEPTH, Device.CreateTexture(ResourceDesc));
262 }
263
264 {
265 TextureDesc ResourceDesc;
266 ResourceDesc.Name = "PostFXContext::PreviousDepth";
267 ResourceDesc.Type = RESOURCE_DIM_TEX_2D;
268 ResourceDesc.Width = m_FrameDesc.Width;
269 ResourceDesc.Height = m_FrameDesc.Height;
270 ResourceDesc.Format = (m_FeatureFlags & FEATURE_FLAG_HALF_PRECISION_DEPTH) ? TEX_FORMAT_R16_UNORM : TEX_FORMAT_R32_FLOAT;
271 ResourceDesc.BindFlags = BIND_SHADER_RESOURCE | BIND_RENDER_TARGET;
272 m_Resources.Insert(RESOURCE_IDENTIFIER_PREVIOUS_DEPTH, Device.CreateTexture(ResourceDesc));
273 }
274
275 {
276 TextureDesc ResourceDesc;
277 ResourceDesc.Name = "PostFXContext::ClosestMotion";
278 ResourceDesc.Type = RESOURCE_DIM_TEX_2D;
279 ResourceDesc.Width = m_FrameDesc.Width;
280 ResourceDesc.Height = m_FrameDesc.Height;
281 ResourceDesc.Format = TEX_FORMAT_RG16_FLOAT;
282 ResourceDesc.BindFlags = BIND_SHADER_RESOURCE | BIND_RENDER_TARGET;
283 m_Resources.Insert(RESOURCE_IDENTIFIER_CLOSEST_MOTION, Device.CreateTexture(ResourceDesc));
284 }
285}
286
287void PostFXContext::Execute(const RenderAttributes& RenderAttribs)
288{

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected