コード例 #1
0
 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;
         }
     }
 }
コード例 #2
0
        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();
            }
        }