aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/PPC/Tango.PPC.UI/MainWindow.xaml.cs
blob: 42ea211239a1634b6e69de91022fd8ac88f3ab28 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Forms;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace Tango.PPC.UI
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public static MainWindow Instance { get; private set; }

        public MainWindow()
        {
            Instance = this;

            InitializeComponent();

            WindowStartupLocation = WindowStartupLocation.Manual;
            var lastMonitor = Screen.AllScreens.LastOrDefault();
            Left = lastMonitor.Bounds.Left;
            Top = lastMonitor.Bounds.Top;
            Width = lastMonitor.Bounds.Width;
            Height = lastMonitor.Bounds.Height;
        }
    }
}
an class="nf">SetProperties(Vector2[] polygonPoints, Vector2[] polygonPointsFill, System.Windows.Media.Brush stroke, double strokeWidth, bool fillGraph, System.Windows.Media.Brush fill, bool antialized) { _stroke = stroke; _fill = fill; _fillGraph = fillGraph; _strokeWidth = strokeWidth; _antialiazed = antialized; lock (lastPoints) { lastPoints = polygonPoints; lastPointsFill = polygonPointsFill; updated = true; } } /// <summary> /// Does the actual rendering. /// BeginDraw and EndDraw are already called by the caller. /// </summary> public override void Render(RenderTarget target) { if (lastPoints.Length > 0 && updated) { target.Clear(Color.Transparent); var stroke = _stroke.ToDxBrush(target); var fill = _fill.ToDxBrush(target); target.AntialiasMode = _antialiazed ? AntialiasMode.PerPrimitive : AntialiasMode.Aliased; lock (lastPoints) { target.DrawPolygon(m_d2dFactory, stroke, _strokeWidth, lastPoints); if (_fillGraph && _fill != null) { target.FillPolygon(m_d2dFactory, fill, lastPointsFill); } updated = false; GC.Collect(GC.MaxGeneration, GCCollectionMode.Optimized, blocking: false); } } DisableRendering(); } } }