void Scene::Initialize(Graphics::Controller& graphicsController, Integration::DepthBufferAvailable depthBufferAvailable, Integration::StencilBufferAvailable stencilBufferAvailable)
{
+ mGraphicsController = &graphicsController;
+
+ // Create the render target for the surface. It should already have been sent via message.
+ mRenderTarget = mGraphicsController->CreateRenderTarget(mRenderTargetCreateInfo, std::move(mRenderTarget));
+
// Create the render pass for the surface
std::vector<Graphics::AttachmentDescription> attachmentDescriptions;
return mItemsDirtyRects;
}
+void Scene::SetSurfaceRenderTargetCreateInfo(const Graphics::RenderTargetCreateInfo& renderTargetCreateInfo)
+{
+ if(mRenderTarget != nullptr &&
+ mRenderTargetCreateInfo.surface != renderTargetCreateInfo.surface)
+ {
+ // Only recreate if the surface has changed.
+ mRenderTargetCreateInfo = renderTargetCreateInfo;
+ mRenderTarget = mGraphicsController->CreateRenderTarget(renderTargetCreateInfo, std::move(mRenderTarget));
+ }
+ else
+ {
+ // 2nd Stage initialization happens in RenderManager, not UpdateManager, so is delayed.
+ mRenderTargetCreateInfo = renderTargetCreateInfo;
+ }
+}
+
} // namespace SceneGraph
} // namespace Internal