EraseUsingDiscardQueue(mImpl->shaders, shader, mImpl->discardQueue, mSceneGraphBuffers.GetUpdateBufferIndex());
}
-void UpdateManager::SetShaderProgram(Shader* shader,
- Internal::ShaderDataPtr shaderData,
- bool modifiesGeometry)
-{
- if(shaderData)
- {
- using DerivedType = MessageValue3<Shader, Internal::ShaderDataPtr, ProgramCache*, bool>;
-
- // Reserve some memory inside the render queue
- uint32_t* slot = mImpl->renderQueue.ReserveMessageSlot(mSceneGraphBuffers.GetUpdateBufferIndex(), sizeof(DerivedType));
-
- // Construct message in the render queue memory; note that delete should not be called on the return value
- new(slot) DerivedType(shader, &Shader::SetProgram, shaderData, mImpl->renderManager.GetProgramCache(), modifiesGeometry);
- }
-}
-
void UpdateManager::SaveBinary(Internal::ShaderDataPtr shaderData)
{
DALI_ASSERT_DEBUG(shaderData && "No NULL shader data pointers please.");
renderer->ConnectToSceneGraph(*mImpl->sceneController, mSceneGraphBuffers.GetUpdateBufferIndex());
mImpl->renderers.PushBack(renderer.Release());
- mImpl->renderersAdded = true;
}
void UpdateManager::RemoveRenderer(Renderer* renderer)
renderer->DisconnectFromSceneGraph(*mImpl->sceneController, mSceneGraphBuffers.GetUpdateBufferIndex());
}
+void UpdateManager::AttachRenderer(Node* node, Renderer* renderer)
+{
+ node->AddRenderer(renderer);
+ mImpl->renderersAdded = true;
+}
+
void UpdateManager::SetPanGestureProcessor(PanGesture* panGestureProcessor)
{
DALI_ASSERT_DEBUG(NULL != panGestureProcessor);