+ /**
+ * @brief Set the internal flag to acknowledge surface rotation.
+ */
+ void SetRotationCompletedAcknowledgement();
+
+ /**
+ * @brief Query wheter is set to acknowledge for completing surface rotation.
+ * @return true it should be acknowledged.
+ */
+ bool IsRotationCompletedAcknowledgementSet();
+
+ /**
+ * Set the render target of the surface
+ *
+ * @param[in] renderTarget The render target.
+ */
+ void SetSurfaceRenderTargetCreateInfo(const Graphics::RenderTargetCreateInfo& renderTargetCreateInfo);
+
+ /**
+ * Get the render target created for the scene
+ *
+ * @return the render target
+ */
+ [[nodiscard]] Graphics::RenderTarget* GetSurfaceRenderTarget() const
+ {
+ return mRenderTarget.get();
+ }
+
+ /**
+ * Get the graphics render pass created for the scene
+ *
+ * @return the graphics render pass
+ */
+ [[nodiscard]] Graphics::RenderPass* GetGraphicsRenderPass(Graphics::AttachmentLoadOp loadOp, Graphics::AttachmentStoreOp storeOp) const
+ {
+ if(loadOp == Graphics::AttachmentLoadOp::CLEAR)
+ {
+ return mRenderPass.get();
+ }
+ else
+ {
+ return mRenderPassNoClear.get();
+ }
+ }
+
+ /**
+ * Get an initialized array of clear values which then can be modified and accessed to BeginRenderPass() command.
+ *
+ * @return the array of clear values
+ */
+ [[nodiscard]] auto& GetGraphicsRenderPassClearValues()
+ {
+ return mClearValues;
+ }
+
+ /**
+ * @brief Set a root of the Scene
+ *
+ * @param layer The root layer
+ */
+ void SetRoot(SceneGraph::Layer* layer)
+ {
+ mRoot = layer;
+ }