From 981cae24404e5555e45412fc85bfb49bd25bb24d Mon Sep 17 00:00:00 2001 From: Yan Maniez Date: Tue, 30 Apr 2019 13:56:52 +0200 Subject: [PATCH] Mumuse skia --- .../AideDeJeu.Android.csproj | 3 ++ AideDeJeu/AideDeJeu.GTK/AideDeJeu.GTK.csproj | 14 +++++ AideDeJeu/AideDeJeu.GTK/app.config | 4 ++ AideDeJeu/AideDeJeu.GTK/packages.config | 2 + AideDeJeu/AideDeJeu.iOS/AideDeJeu.iOS.csproj | 3 ++ AideDeJeu/AideDeJeu/AideDeJeu.csproj | 4 ++ AideDeJeu/AideDeJeu/ViewModels/Navigator.cs | 14 +++++ AideDeJeu/AideDeJeu/Views/DicesPage.xaml | 17 ++++++ AideDeJeu/AideDeJeu/Views/DicesPage.xaml.cs | 52 +++++++++++++++++++ 9 files changed, 113 insertions(+) create mode 100644 AideDeJeu/AideDeJeu/Views/DicesPage.xaml create mode 100644 AideDeJeu/AideDeJeu/Views/DicesPage.xaml.cs diff --git a/AideDeJeu/AideDeJeu.Android/AideDeJeu.Android.csproj b/AideDeJeu/AideDeJeu.Android/AideDeJeu.Android.csproj index de8ef7bd..aaf0d9cf 100644 --- a/AideDeJeu/AideDeJeu.Android/AideDeJeu.Android.csproj +++ b/AideDeJeu/AideDeJeu.Android/AideDeJeu.Android.csproj @@ -68,6 +68,9 @@ 1.60.0 + + 1.68.0 + 1.68.0 diff --git a/AideDeJeu/AideDeJeu.GTK/AideDeJeu.GTK.csproj b/AideDeJeu/AideDeJeu.GTK/AideDeJeu.GTK.csproj index b48de2a8..30f9aa62 100644 --- a/AideDeJeu/AideDeJeu.GTK/AideDeJeu.GTK.csproj +++ b/AideDeJeu/AideDeJeu.GTK/AideDeJeu.GTK.csproj @@ -135,6 +135,18 @@ ..\..\packages\Rg.Plugins.Popup.1.1.5.188\lib\netstandard1.0\Rg.Plugins.Popup.dll + + ..\..\packages\SkiaSharp.1.68.0\lib\net45\SkiaSharp.dll + + + ..\..\packages\SkiaSharp.Views.1.68.0\lib\net45\SkiaSharp.Views.Desktop.dll + + + ..\..\packages\SkiaSharp.Views.1.68.0\lib\net45\SkiaSharp.Views.Gtk.dll + + + ..\..\packages\SkiaSharp.Views.1.68.0\lib\net45\SkiaSharp.Views.WPF.dll + ..\..\packages\sqlite-net-pcl.1.6.258-beta\lib\netstandard1.1\SQLite-net.dll @@ -305,9 +317,11 @@ + + \ No newline at end of file diff --git a/AideDeJeu/AideDeJeu.GTK/app.config b/AideDeJeu/AideDeJeu.GTK/app.config index 6d26764c..24dd85c9 100644 --- a/AideDeJeu/AideDeJeu.GTK/app.config +++ b/AideDeJeu/AideDeJeu.GTK/app.config @@ -82,6 +82,10 @@ + + + + \ No newline at end of file diff --git a/AideDeJeu/AideDeJeu.GTK/packages.config b/AideDeJeu/AideDeJeu.GTK/packages.config index aaaac7b4..b901ec8a 100644 --- a/AideDeJeu/AideDeJeu.GTK/packages.config +++ b/AideDeJeu/AideDeJeu.GTK/packages.config @@ -24,6 +24,8 @@ + + diff --git a/AideDeJeu/AideDeJeu.iOS/AideDeJeu.iOS.csproj b/AideDeJeu/AideDeJeu.iOS/AideDeJeu.iOS.csproj index 9f16b902..194dd087 100644 --- a/AideDeJeu/AideDeJeu.iOS/AideDeJeu.iOS.csproj +++ b/AideDeJeu/AideDeJeu.iOS/AideDeJeu.iOS.csproj @@ -136,6 +136,9 @@ 1.60.0 + + 1.68.0 + 1.68.0 diff --git a/AideDeJeu/AideDeJeu/AideDeJeu.csproj b/AideDeJeu/AideDeJeu/AideDeJeu.csproj index 299823a6..333937bd 100644 --- a/AideDeJeu/AideDeJeu/AideDeJeu.csproj +++ b/AideDeJeu/AideDeJeu/AideDeJeu.csproj @@ -74,6 +74,7 @@ + @@ -131,6 +132,9 @@ PublicResXFileCodeGenerator Resource.Designer.cs + + MSBuild:UpdateDesignTimeXaml + MSBuild:UpdateDesignTimeXaml diff --git a/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs b/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs index 9baea729..f4d30722 100644 --- a/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs +++ b/AideDeJeu/AideDeJeu/ViewModels/Navigator.cs @@ -103,11 +103,25 @@ namespace AideDeJeu.ViewModels } } + private Command _DicesCommand = null; + public Command DicesCommand + { + get + { + return _DicesCommand ?? (_DicesCommand = new Command(async () => await GotoDicesPageAsync())); + } + } + public async Task GotoPlayerCharacterEditorPageAsync() { await Navigation.PushAsync(new Views.PlayerCharacter.PlayerCharacterEditorPage(), true); } + public async Task GotoDicesPageAsync() + { + await Navigation.PushAsync(new Views.DicesPage(), true); + } + private Command _DeepSearchCommand = null; public Command DeepSearchCommand { diff --git a/AideDeJeu/AideDeJeu/Views/DicesPage.xaml b/AideDeJeu/AideDeJeu/Views/DicesPage.xaml new file mode 100644 index 00000000..991eaab0 --- /dev/null +++ b/AideDeJeu/AideDeJeu/Views/DicesPage.xaml @@ -0,0 +1,17 @@ + + + + + + + \ No newline at end of file diff --git a/AideDeJeu/AideDeJeu/Views/DicesPage.xaml.cs b/AideDeJeu/AideDeJeu/Views/DicesPage.xaml.cs new file mode 100644 index 00000000..ab36f21c --- /dev/null +++ b/AideDeJeu/AideDeJeu/Views/DicesPage.xaml.cs @@ -0,0 +1,52 @@ +using AideDeJeu.ViewModels; +using SkiaSharp; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +using Xamarin.Forms; +using Xamarin.Forms.Xaml; + +namespace AideDeJeu.Views +{ + [XamlCompilation(XamlCompilationOptions.Compile)] + public partial class DicesPage : ContentPage + { + public DicesPage() + { + InitializeComponent(); + } + + private void SKCanvasView_PaintSurface(object sender, SkiaSharp.Views.Forms.SKPaintSurfaceEventArgs args) + { + var diceRoller = new DiceRollerViewModel(); + var diceRolls = diceRoller.DicesValues(6, 3); + foreach (var diceRoll in diceRolls) + { + Debug.WriteLine($"{diceRoll.Key} => {diceRoll.Value / 3}"); + } + + + SKImageInfo info = args.Info; + SKSurface surface = args.Surface; + SKCanvas canvas = surface.Canvas; + SKPaint strokePaint = new SKPaint() { Color = new SKColor(255,0,0,128) }; + canvas.Clear(); + + // Draw path with cubic Bezier curve + using (SKPath path = new SKPath()) + { + path.MoveTo(0, 0); + foreach (var diceRoll in diceRolls) + { + + path.LineTo(diceRoll.Key * 20, diceRoll.Value * 20); + } + canvas.DrawPath(path, strokePaint); + } + } + } +} \ No newline at end of file