diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-11-13 14:45:22 +0200 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-11-13 14:45:22 +0200 |
| commit | d0faa49dc04de0ceb5e9854e965bb32473bc5b85 (patch) | |
| tree | 208cded75a11ffe5e49bbb5fcd76e665ed83fbd6 /Software/Visual_Studio/SideChains | |
| parent | dbfcaf1951add6694a8c6a1572b52af4208e1d0f (diff) | |
| download | Tango-d0faa49dc04de0ceb5e9854e965bb32473bc5b85.tar.gz Tango-d0faa49dc04de0ceb5e9854e965bb32473bc5b85.zip | |
Machine Studio v3.5.68
Prevent graph crashing on OnRender.
Differed SynchronizeColorSpaces with timer.
Implemented color calibration for Research module.
Diffstat (limited to 'Software/Visual_Studio/SideChains')
| -rw-r--r-- | Software/Visual_Studio/SideChains/RealTimeGraphX/Renderers/GraphScrollingRenderer.cs | 71 |
1 files changed, 37 insertions, 34 deletions
diff --git a/Software/Visual_Studio/SideChains/RealTimeGraphX/Renderers/GraphScrollingRenderer.cs b/Software/Visual_Studio/SideChains/RealTimeGraphX/Renderers/GraphScrollingRenderer.cs index e3bf6182e..3d127c448 100644 --- a/Software/Visual_Studio/SideChains/RealTimeGraphX/Renderers/GraphScrollingRenderer.cs +++ b/Software/Visual_Studio/SideChains/RealTimeGraphX/Renderers/GraphScrollingRenderer.cs @@ -27,52 +27,55 @@ namespace RealTimeGraphX.Renderers /// <returns></returns> protected override List<GraphPoint> OnRender(IEnumerable<PendingSeries> seriesCollection, TDataSeries series, PendingSeries toRender) { - XDataPoint min_x = toRender.XX.First(); - XDataPoint max_x = toRender.XX.Last(); - - YDataPoint min_y = Input.Range.MinimumY; - YDataPoint max_y = Input.Range.MaximumY; + List<GraphPoint> points = new List<GraphPoint>(); - if (Input.Range.AutoY) + if (toRender.XX.Count > 0 && toRender.YY.Count > 0) { - min_y = _current_min_y; - max_y = _current_max_y; - } + XDataPoint min_x = toRender.XX.First(); + XDataPoint max_x = toRender.XX.Last(); + + YDataPoint min_y = Input.Range.MinimumY; + YDataPoint max_y = Input.Range.MaximumY; - OnEffectiveRangeXChanged(min_x, max_x); - OnEffectiveRangeYChanged(min_y, max_y); + if (Input.Range.AutoY) + { + min_y = _current_min_y; + max_y = _current_max_y; + } - var dxList = toRender.XX.Select(x => x.ComputeRelativePosition(min_x, max_x)).ToList(); - var dyList = toRender.YY.Select(x => x.ComputeRelativePosition(min_y, max_y)).ToList(); + OnEffectiveRangeXChanged(min_x, max_x); + OnEffectiveRangeYChanged(min_y, max_y); - if (max_x - min_x > Input.Range.MaximumX) - { - var offset = ((max_x - min_x) - Input.Range.MaximumX) + min_x; + var dxList = toRender.XX.Select(x => x.ComputeRelativePosition(min_x, max_x)).ToList(); + var dyList = toRender.YY.Select(x => x.ComputeRelativePosition(min_y, max_y)).ToList(); - for (int i = 0; i < toRender.XX.Count; i++) + if (max_x - min_x > Input.Range.MaximumX) { - if (toRender.XX[i] < offset) - { - toRender.XX.RemoveAt(i); - toRender.YY.RemoveAt(i); - i--; - } - else + var offset = ((max_x - min_x) - Input.Range.MaximumX) + min_x; + + for (int i = 0; i < toRender.XX.Count; i++) { - break; + if (toRender.XX[i] < offset) + { + toRender.XX.RemoveAt(i); + toRender.YY.RemoveAt(i); + i--; + } + else + { + break; + } } } - } - - List<GraphPoint> points = new List<GraphPoint>(); - for (int i = 0; i < dxList.Count; i++) - { - float image_x = ConvertXValueToRendererValue(dxList[i]); - float image_y = (float)Math.Min(ConvertYValueToRendererValue(dyList[i]), Output.SurfaceHeight - 2); + for (int i = 0; i < dxList.Count; i++) + { + float image_x = ConvertXValueToRendererValue(dxList[i]); + float image_y = (float)Math.Min(ConvertYValueToRendererValue(dyList[i]), Output.SurfaceHeight - 2); - GraphPoint point = new GraphPoint(image_x, image_y); - points.Add(point); + GraphPoint point = new GraphPoint(image_x, image_y); + points.Add(point); + } } return points; |
