| 70 | } |
| 71 | |
| 72 | HnBeginFrameTask::HnBeginFrameTask(pxr::HdSceneDelegate* ParamsDelegate, const pxr::SdfPath& Id) : |
| 73 | HnTask{Id} |
| 74 | { |
| 75 | if (ParamsDelegate == nullptr) |
| 76 | { |
| 77 | UNEXPECTED("ParamsDelegate is null"); |
| 78 | return; |
| 79 | } |
| 80 | pxr::HdRenderIndex& RenderIndex = ParamsDelegate->GetRenderIndex(); |
| 81 | |
| 82 | // Insert empty Bprims for offscreen render targets into the render index. |
| 83 | // The render targets will be created when Prepare() is called and the |
| 84 | // dimensions of the final color target are known. |
| 85 | auto InitBrim = [&](const pxr::TfToken& Name) { |
| 86 | pxr::SdfPath Id = GetId().AppendChild(Name); |
| 87 | RenderIndex.InsertBprim(pxr::HdPrimTypeTokens->renderBuffer, ParamsDelegate, Id); |
| 88 | return Id; |
| 89 | }; |
| 90 | |
| 91 | m_GBufferTargetIds[HnFrameRenderTargets::GBUFFER_TARGET_SCENE_COLOR] = InitBrim(HnRenderResourceTokens->offscreenColorTarget); |
| 92 | m_GBufferTargetIds[HnFrameRenderTargets::GBUFFER_TARGET_MESH_ID] = InitBrim(HnRenderResourceTokens->meshIdTarget); |
| 93 | m_GBufferTargetIds[HnFrameRenderTargets::GBUFFER_TARGET_MOTION_VECTOR] = InitBrim(HnRenderResourceTokens->motionVectorsTarget); |
| 94 | m_GBufferTargetIds[HnFrameRenderTargets::GBUFFER_TARGET_NORMAL] = InitBrim(HnRenderResourceTokens->normalTarget); |
| 95 | m_GBufferTargetIds[HnFrameRenderTargets::GBUFFER_TARGET_BASE_COLOR] = InitBrim(HnRenderResourceTokens->baseColorTarget); |
| 96 | m_GBufferTargetIds[HnFrameRenderTargets::GBUFFER_TARGET_MATERIAL] = InitBrim(HnRenderResourceTokens->materialDataTarget); |
| 97 | m_GBufferTargetIds[HnFrameRenderTargets::GBUFFER_TARGET_IBL] = InitBrim(HnRenderResourceTokens->iblTarget); |
| 98 | static_assert(HnFrameRenderTargets::GBUFFER_TARGET_COUNT == 7, "Please initialize GBuffer BPrims."); |
| 99 | |
| 100 | m_SelectionDepthBufferId = InitBrim(HnRenderResourceTokens->selectionDepthBuffer); |
| 101 | m_DepthBufferId[0] = InitBrim(HnRenderResourceTokens->depthBuffer0); |
| 102 | m_DepthBufferId[1] = InitBrim(HnRenderResourceTokens->depthBuffer1); |
| 103 | m_ClosestSelLocnTargetId[0] = InitBrim(HnRenderResourceTokens->closestSelectedLocation0Target); |
| 104 | m_ClosestSelLocnTargetId[1] = InitBrim(HnRenderResourceTokens->closestSelectedLocation1Target); |
| 105 | m_JitteredFinalColorTargetId = InitBrim(HnRenderResourceTokens->jitteredFinalColorTarget); |
| 106 | } |
| 107 | |
| 108 | HnBeginFrameTask::~HnBeginFrameTask() |
| 109 | { |
nothing calls this directly
no outgoing calls
no test coverage detected