Esempio n. 1
0
        private void OnReciveReportPerfCounter(string reporterName, List <EngineNS.Profiler.PerfViewer.PfValue_PerfCounter> scopes, List <EngineNS.Profiler.PerfViewer.PfValue_Data> datas)
        {
            if (TargetAccount != reporterName)
            {
                return;
            }
            if (scopes == null)
            {
                return;
            }

            var now   = DateTime.Now;
            var delta = now - mStartTime;

            for (int i = 0; i < scopes.Count; i++)
            {
                var perf = FindPerf(scopes[i].NameHash);
                if (perf == null)
                {
                    continue;
                }
                perf.UpdateData((UInt64)delta.TotalSeconds, scopes[i]);
            }
            if (datas == null)
            {
                return;
            }
            for (int i = 0; i < datas.Count; i++)
            {
                var perf = FindData(datas[i].Name);
                if (perf == null)
                {
                    continue;
                }
                EngineNS.Profiler.PerfViewer.Viewer viewer = null;
                foreach (var j in EngineNS.CEngine.Instance.Stat.PViewer.Datas)
                {
                    if (j.Name == datas[i].Name)
                    {
                        viewer = j;
                        break;
                    }
                }
                if (viewer == null)
                {
                    continue;
                }

                datas[i].ValueNames = new List <string>(viewer.GetValueNameAction());
                perf.UpdateData((UInt64)delta.TotalSeconds, datas[i]);
            }
        }
Esempio n. 2
0
        public void UpdateData(UInt64 time, EngineNS.Profiler.PerfViewer.Viewer value)
        {
            if (value == null)
            {
                return;
            }

            var names  = value.GetValueNameAction();
            var values = value.GetValueAction();

            if (names.Length != values.Length)
            {
                return;
            }

            EngineNS.CEngine.Instance.EventPoster.RunOn(() =>
            {
                if (names.Length != DataValues.Count)
                {
                    DataValues.Clear();
                    for (int i = 0; i < names.Length; i++)
                    {
                        var vd       = new ValueData(this);
                        vd.ValueName = names[i];
                        vd.Value     = values[i];
                        DataValues.Add(vd);
                    }
                }

                for (int i = 0; i < DataValues.Count; i++)
                {
                    DataValues[i].ValueName = names[i];
                    DataValues[i].Value     = values[i];
                    if (DataValues[i].ShowInGraphButtonVisible == Visibility.Visible)
                    {
                        DataValues[i].GraphDataSource.AppendAsync(Application.Current.MainWindow.Dispatcher, new Point(time, System.Convert.ToDouble(values[i])));
                    }
                }
                return(true);
            }, EngineNS.Thread.Async.EAsyncTarget.Editor);
        }