}
}
}
-
- // Reset updated flag from the root
- Layer* sourceLayer = renderList->GetSourceLayer();
- if(sourceLayer)
- {
- sourceLayer->SetUpdatedTree(false);
- }
}
}
}
itemsDirtyRects.resize(j - itemsDirtyRects.begin());
damagedRectCleaner.SetCleanOnReturn(false);
+
+ // Reset updated flag from the root
+ Layer* root = sceneObject->GetRoot();
+ if(root)
+ {
+ root->SetUpdatedTree(false);
+ }
}
void RenderManager::RenderScene(Integration::RenderStatus& status, Integration::Scene& scene, bool renderToFbo)
#include <dali/internal/common/message.h>
#include <dali/internal/event/common/event-thread-services.h>
#include <dali/internal/render/common/render-instruction-container.h>
+#include <dali/internal/update/nodes/scene-graph-layer.h>
#include <dali/public-api/common/vector-wrapper.h>
namespace Dali
return mClearValues;
}
+ /**
+ * @brief Set a root of the Scene
+ *
+ * @param layer The root layer
+ */
+ void SetRoot(SceneGraph::Layer* layer)
+ {
+ mRoot = layer;
+ }
+
+ /**
+ * @brief Get a root of the Scene
+ * @return The root layer
+ */
+ SceneGraph::Layer* GetRoot() const
+ {
+ return mRoot;
+ }
+
private:
// Render instructions describe what should be rendered during RenderManager::RenderScene()
// Update manager updates instructions for the next frame while we render the current one
bool mSkipRendering; ///< A flag to skip rendering
- Rect<int32_t> mSurfaceRect; ///< The rectangle of surface which is related ot this scene.
- int32_t mSurfaceOrientation; ///< The orientation of surface which is related of this scene
- bool mSurfaceRectChanged; ///< The flag of surface's rectangle is changed when is resized, moved or rotated.
+ Rect<int32_t> mSurfaceRect; ///< The rectangle of surface which is related ot this scene.
+ int32_t mSurfaceOrientation; ///< The orientation of surface which is related of this scene
+ bool mSurfaceRectChanged; ///< The flag of surface's rectangle is changed when is resized, moved or rotated.
bool mRotationCompletedAcknowledgement; ///< The flag of sending the acknowledgement to complete window rotation.
// Render pass and render target
// clear colors
std::vector<Graphics::ClearValue> mClearValues{};
+
+ SceneGraph::Layer* mRoot{nullptr}; ///< Root node (root is a layer). The layer is not stored in the node memory pool.
};
/// Messages
{
mImpl->scenes.back()->scene = scene.Release();
+ // Set root to the Scene
+ mImpl->scenes.back()->scene->SetRoot(mImpl->scenes.back()->root);
+
// Initialize the context from render manager
typedef MessageValue1<RenderManager, SceneGraph::Scene*> DerivedType;
void Camera::RotateProjection(int rotationAngle)
{
- mProjectionRotation = rotationAngle;
- mUpdateViewFlag = UPDATE_COUNT;
+ mProjectionRotation = rotationAngle;
+ mUpdateProjectionFlag = UPDATE_COUNT;
}
const Matrix& Camera::GetProjectionMatrix(BufferIndex bufferIndex) const