#endif
// Memory pool used to allocate new renderers. Memory used by this pool will be released when shutting down DALi
-MemoryPoolObjectAllocator<Renderer> gRendererMemoryPool;
+MemoryPoolObjectAllocator<Renderer>& GetRendererMemoryPool()
+{
+ static MemoryPoolObjectAllocator<Renderer> gRendererMemoryPool;
+ return gRendererMemoryPool;
+}
// Flags for re-sending data to renderer.
enum Flags
RendererKey Renderer::NewKey()
{
- void* ptr = gRendererMemoryPool.AllocateRawThreadSafe();
- auto key = gRendererMemoryPool.GetKeyFromPtr(static_cast<Renderer*>(ptr));
+ void* ptr = GetRendererMemoryPool().AllocateRawThreadSafe();
+ auto key = GetRendererMemoryPool().GetKeyFromPtr(static_cast<Renderer*>(ptr));
new(ptr) Renderer();
return RendererKey(key);
}
void Renderer::operator delete(void* ptr)
{
- gRendererMemoryPool.FreeThreadSafe(static_cast<Renderer*>(ptr));
+ GetRendererMemoryPool().FreeThreadSafe(static_cast<Renderer*>(ptr));
}
Renderer* Renderer::Get(RendererKey::KeyType rendererKey)
{
- return gRendererMemoryPool.GetPtrFromKey(rendererKey);
+ return GetRendererMemoryPool().GetPtrFromKey(rendererKey);
}
RendererKey Renderer::GetKey(const Renderer& renderer)
{
- return RendererKey(gRendererMemoryPool.GetKeyFromPtr(const_cast<Renderer*>(&renderer)));
+ return RendererKey(GetRendererMemoryPool().GetKeyFromPtr(const_cast<Renderer*>(&renderer)));
}
RendererKey Renderer::GetKey(Renderer* renderer)
{
- return RendererKey(gRendererMemoryPool.GetKeyFromPtr(renderer));
+ return RendererKey(GetRendererMemoryPool().GetKeyFromPtr(renderer));
}
bool Renderer::PrepareRender(BufferIndex updateBufferIndex)
mRegenerateUniformMap = false;
SetUpdated(true);
}
-
- uint64_t hash = 0xc70f6907UL;
- const SceneGraph::UniformMapDataProvider& uniformMapDataProvider = GetUniformMapDataProvider();
- const SceneGraph::CollectedUniformMap& collectedUniformMap = uniformMapDataProvider.GetCollectedUniformMap();
- for(uint32_t i = 0u, count = collectedUniformMap.Count(); i < count; ++i)
- {
- hash = collectedUniformMap.mUniformMap[i].propertyPtr->Hash(updateBufferIndex, hash);
- }
- if(mUniformsHash != hash)
- {
- mUniformsHash = hash;
- SetUpdated(true);
- }
}
void Renderer::SetDrawCommands(Dali::DevelRenderer::DrawCommand* pDrawCommands, uint32_t size)
uint32_t Renderer::GetMemoryPoolCapacity()
{
- return gRendererMemoryPool.GetCapacity();
+ return GetRendererMemoryPool().GetCapacity();
}
void Renderer::OnMappingChanged()
return mCollectedUniformMap;
}
+bool Renderer::IsUpdated() const
+{
+ if(Updated() || (mShader && mShader->Updated()))
+ {
+ return true;
+ }
+ return false;
+}
+
Vector4 Renderer::GetVisualTransformedUpdateArea(BufferIndex updateBufferIndex, const Vector4& originalUpdateArea) noexcept
{
if(mVisualProperties)