public void PopulateCommandBuffer(bool threaded, Rect rect, Matrix4x4 globalMatrix, IEnumerable <INode> nodes, CommandBuffer commandBuffer) { foreach (var node in nodes) { if (node is UIMasterNode masterNode) { commandBuffer.Clear(); try { ExecuteMasterNode(threaded, rect, globalMatrix, masterNode, commandBuffer); } finally { m_RenderBuffer.Clear(); m_MeshRepository.ClearCurrent(); } break; } } }
private void UpdateInternal() { GlobalProperties <float> .SetValue(m_HealthId, m_Health); Profiler.BeginSample("UIGraph"); Profiler.BeginSample("UIGraph Tick"); var nodes = m_Graph.graph.GetNodes(); foreach (var node in nodes) { (node as ITickableNode)?.Tick(); } Profiler.EndSample(); foreach (var node in nodes) { var masterNode = node as UIMasterNode; if (masterNode != null) { m_CommandBuffer.Clear(); try { masterNode.Execute(m_RenderBuffer, m_CommandBuffer); } finally { m_RenderBuffer.Clear(); } break; } } Profiler.EndSample(); foreach (var node in nodes) { (node as AbstractUINode)?.ClearDirty(); } }