#define DALI_INTERNAL_SCENE_GRAPH_LAYER_H
/*
- * Copyright (c) 2022 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2024 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*/
struct Renderable
{
- Renderable()
- : mNode(nullptr),
- mRenderer(nullptr)
- {
- }
+ Renderable() = default;
- Renderable(Node* node, Renderer* renderer)
+ Renderable(Node* node, RendererKey renderer)
: mNode(node),
mRenderer(renderer)
{
}
- Node* mNode;
- Renderer* mRenderer;
+ Node* mNode{nullptr};
+ RendererKey mRenderer{};
+};
+
+} // namespace SceneGraph
+} // Namespace Internal
+
+/// Enable Renderable to be used as a trivial type in Dali::Vector.
+template<>
+struct TypeTraits<Internal::SceneGraph::Renderable> : public Dali::BasicTypes<Internal::SceneGraph::Renderable>
+{
+ enum
+ {
+ IS_TRIVIAL_TYPE = true
+ };
};
+namespace Internal
+{
+namespace SceneGraph
+{
using RenderableContainer = Dali::Vector<Renderable>;
/**
/**
* Enables the reuse of the model view matrices of all renderers for this layer
* @param[in] updateBufferIndex The current update buffer index.
- * @param value to set
+ * @param[in] value to set
*/
void SetReuseRenderers(BufferIndex updateBufferIndex, bool value)
{
}
/**
+ * Get the reuse of the model view matrices of all renderers for this layer is enabled.
+ * @param[in] updateBufferIndex The current update buffer index.
+ * @return Whether all child transform was clean or not.
+ */
+ bool GetReuseRenderers(BufferIndex updateBufferIndex) const
+ {
+ return mAllChildTransformsClean[updateBufferIndex];
+ }
+
+ /**
* Checks if it is ok to reuse renderers. Renderers can be reused if ModelView transform for all the renderers
* has not changed from previous use.
* @param[in] camera A pointer to the camera that we want to use to render the list.