Skip to content

Commit

Permalink
Merge pull request #154 from taublast/2-A
Browse files Browse the repository at this point in the history
Nuget 1.3.60.1 for SkiaSharp 3.116.1 NET 9, Nuget 1.2.99.1 for SkiaSharp 2.88.9-preview.2.2 NET 8
  • Loading branch information
taublast authored Jan 11, 2025
2 parents 0467972 + 0c3f48c commit bc55bad
Show file tree
Hide file tree
Showing 82 changed files with 10,369 additions and 596 deletions.
12 changes: 12 additions & 0 deletions DrawnUi.Maui.sln
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,13 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DrawnUi.Maui.MapsUi", "Draw
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DrawnUi.Maui.MapsUi", "src\Addons\DrawnUi.Maui.MapsUi\src\DrawnUi.Maui.MapsUi.csproj", "{9DD2A9C8-E84C-4CD7-A9E3-C53F1CD1B56B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExtendedDataEntry", "..\MAUI_CustomEntry\ExtendedDataEntry.csproj", "{85D44C76-789E-419B-8C40-5CF30A9A9215}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{386EDAF8-4CCB-436C-BF31-CC1B2AA81E6E}"
ProjectSection(SolutionItems) = preProject
src\Directory.Build.props = src\Directory.Build.props
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -73,6 +80,10 @@ Global
{9DD2A9C8-E84C-4CD7-A9E3-C53F1CD1B56B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9DD2A9C8-E84C-4CD7-A9E3-C53F1CD1B56B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9DD2A9C8-E84C-4CD7-A9E3-C53F1CD1B56B}.Release|Any CPU.Build.0 = Release|Any CPU
{85D44C76-789E-419B-8C40-5CF30A9A9215}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{85D44C76-789E-419B-8C40-5CF30A9A9215}.Debug|Any CPU.Build.0 = Debug|Any CPU
{85D44C76-789E-419B-8C40-5CF30A9A9215}.Release|Any CPU.ActiveCfg = Release|Any CPU
{85D44C76-789E-419B-8C40-5CF30A9A9215}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand All @@ -91,6 +102,7 @@ Global
{1BECAEC0-5BCC-49FE-AB0B-0677D78C3D0B} = {8ED244C1-6F60-4954-BC7F-98D827EA31CC}
{A0568225-C0B6-4BFA-A65D-BB4E53BDCB99} = {5B1CDC4F-5ED6-4662-8EC6-3DE3FF0B05BE}
{9DD2A9C8-E84C-4CD7-A9E3-C53F1CD1B56B} = {A0568225-C0B6-4BFA-A65D-BB4E53BDCB99}
{85D44C76-789E-419B-8C40-5CF30A9A9215} = {68A72DAA-3C71-4D0E-8B86-9D7C2D853E2A}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {329E3D0C-A3F7-4A3E-B61C-6B2D1BD7F708}
Expand Down
48 changes: 35 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,20 +18,31 @@ _The current development state is __ALPHA__, features remain to be implemented,

## What's New

### Nuget 1.2.9.10
_for SkiaSharp 2.88.9-preview.2.2_

* Sub-pixel drawing/animations enabled
* Updating method made faster
* SkiaScroll panning made smoother
* Skialabel optimized faster measure/draw
* Using latest new gesture nuget
* Android rendering loop synched with choreographer
* Skiashell critical fixes and other
New nugets: for NET 9 you need version not lower than 1.3.x. For legacy NET 8 and SkiaSharp v2 versions use 1.2.x.

### Nuget 1.3.60.1
_for SkiaSharp 3.116.1 NET 9_
* Stable version for SkiaSharp v3, you get hardware acceleration on Windows, new SKSL and much more
* Compiled for NET 9
* Fix for items invisible from start coming to visible at runtime sometimes not being measured
* SkiaImage autosize fix when Margins are not 0
* Canvas auto-size fix for dynamic content by [Gummimundur](https://github.com/taublast/DrawnUi.Maui/pull/151)
* Canvas gestures cleanup
* Fix for animators and invalidation when IsVisible changing at runtime.
* Fix for SkiaShell animated pages occasional flickering when pushed

### Nuget 1.2.99.1
_for SkiaSharp 2.88.9-preview.2.2 NET 8_
* Fixed for items invisible from start coming to visible at runtime sometimes not being measured.
* SkiaImage autosize fix when Margins are not 0
* Canvas auto-size fix for dynamic content by [Gummimundur](https://github.com/taublast/DrawnUi.Maui/pull/151)
* Canvas gestures cleanup
* Fix for animators and invalidation when IsVisible changing at runtime.
* Fix for SkiaShell animated pages occasional flickering when pushed
* Might be the one of the last nugets for SkiaSharp v2 and NET 8
* Still using SkiaSharp 2.88.9-preview.2.2
until [scaling issue](https://github.com/taublast/DrawnUi.Maui/issues/130) is solved for Windows


https://github.com/taublast/DrawnUi.Maui/assets/25801194/3b360229-ce3b-4d33-a85b-554d1cca8408

___Please star ⭐ if you like it!___
Expand Down Expand Up @@ -123,13 +134,24 @@ V3 preview: subclassed `SkiaShaderEffect`, implementing `ISkiaGestureProcessor`,

## Development Notes

* To compile the v3 version that supports NEW SHADERS you must set `<UseSkiaSharp3>true</UseSkiaSharp3>` inside `Directory.Build.props` file.
* All files to be consumed (images etc) must be placed inside the MAUI app Resources/Raw folder, subfolders allowed. If you need to load from the native app folder use prefix "file://".
* By default the main branch should be targeting NET 9 and use SkiaSharp v3.
* To be able to use hardware accelerated Windows canvas with NET 9 you need to [pack your Windows project as MSIX](https://learn.microsoft.com/en-us/dotnet/maui/windows/setup?view=net-maui-9.0). In visua studio this might create a situation (until it's fixed) when you need to hit Build every time you change your code and only then hit Run, otherwise VS will run the previous package.
* The `<UseSkiaSharp3>true</UseSkiaSharp3>` inside `Directory.Build.props` file controls where we build for v3 net9 or v2 net8.
* Accessibility support is compatible and is on the roadmap.

## Installation

Install the package __AppoMobi.Maui.DrawnUi__ from NuGet, please install stable versions only, avoid -pre.
Install the package __AppoMobi.Maui.DrawnUi__ from NuGet, please install stable versions only. For NET 9 you need versions not lower than 1.3.x. For legacy NET 8 and SkiaSharp v2 versions use 1.2.x.

In case of NET 9 you might need at least the following maui versions inside your csproj:

```
<ItemGroup>
<PackageReference Include="Microsoft.Maui.Controls" Version="9.0.22" />
<PackageReference Include="Microsoft.Maui.Controls.Compatibility" Version="9.0.22" />
</ItemGroup>
```

After that initialize the library inside your MauiProgram.cs file:

Expand Down
28 changes: 0 additions & 28 deletions dev/ToDo.txt

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ REM Define the source directory for the packages
set "source_dir=E:\Nugets"

REM Define the list of file masks for the packages
set "mask[1]=DrawnUi.Maui*.1.2.9.10*.nupkg"
set "mask[2]=AppoMobi.Maui.DrawnUi.1.2.9.10*.*nupkg"
set "mask[1]=DrawnUi.Maui*.1.3.60.1*.nupkg"
set "mask[2]=AppoMobi.Maui.DrawnUi.1.3.60.1*.*nupkg"
set "mask_count=2"

REM Loop through each file mask
Expand Down
File renamed without changes.
4 changes: 2 additions & 2 deletions dev/nuget_uploadnugets.bat → nugets/nuget_uploadnugets.bat
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ REM Define the source directory for the packages
set "source_dir=E:\Nugets"

REM Define the list of file masks for the packages
set "mask[1]=DrawnUi.Maui*.1.2.9.10*.nupkg"
set "mask[2]=AppoMobi.Maui.DrawnUi.1.2.9.10*.*nupkg"
set "mask[1]=DrawnUi.Maui*.1.3.60.1*.nupkg"
set "mask[2]=AppoMobi.Maui.DrawnUi.1.3.60.1*.*nupkg"
set "mask_count=2"

REM Loop through each file mask
Expand Down
32 changes: 19 additions & 13 deletions src/Addons/DrawnUi.Maui.Camera/DrawnUi.Maui.Camera.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,18 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net8.0;net8.0-android34.0;net8.0-ios17.0;net8.0-maccatalyst17.0;</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net8.0-windows10.0.19041.0;</TargetFrameworks>

<PropertyGroup Condition="'$(UseSkiaSharp3)' == 'true'">
<TargetFrameworks>net9.0;net9.0-android;net9.0-ios;net9.0-maccatalyst;</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net9.0-windows10.0.19041.0;</TargetFrameworks>
<PackageReleaseNotes>Using SkiaSharp 3.xx. Checkout the DrawnUi demo repository for usage example. Currently only Android is implemented, iOS will be too when i have time.</PackageReleaseNotes>
</PropertyGroup>

<PropertyGroup Condition="'$(UseSkiaSharp3)' != 'true'">
<TargetFrameworks>net8.0;net8.0-android34.0;net8.0-ios17.0;net8.0-maccatalyst17.0;</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net8.0-windows10.0.19041.0;</TargetFrameworks>
<PackageReleaseNotes>Using SkiaSharp 2.xx. Checkout the DrawnUi demo repository for usage example. Currently only Android is implemented, iOS will be too when i have time.</PackageReleaseNotes>
</PropertyGroup>

<PropertyGroup>
<UseMaui>true</UseMaui>
<SingleProject>true</SingleProject>
<ImplicitUsings>enable</ImplicitUsings>
Expand All @@ -13,11 +24,11 @@
<TargetPlatformMinVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.19041.0</TargetPlatformMinVersion>
</PropertyGroup>

<Import Condition="'$(UseSkiaSharp3)' == 'true'" Project="..\..\Engine\skia3.props" />
<Import Condition="'$(UseSkiaSharp3)' != 'true'" Project="..\..\Engine\skia2.props" />

<PropertyGroup>

<UseNuget>false</UseNuget>

<PackageReleaseNotes>Using SkiaSharp 2.xx. Checkout the DrawnUi demo repository for usage example. Currently only Android is implemented, iOS will be too when i have time.</PackageReleaseNotes>
<Title>Camera addon to DrawnUI for .NET MAUI</Title>
<PackageId>DrawnUi.Maui.Camera</PackageId>
<Description>Camera implementation (temporarily Android only) and preview rendering with SkiaSharp in .NET MAUI</Description>
Expand All @@ -37,14 +48,9 @@
<WarningsAsErrors>$(WarningsAsErrors);CS0108</WarningsAsErrors>
</PropertyGroup>

<!--for development-->
<ItemGroup Condition="'$(UseNuget)' != 'true'">
<ProjectReference Include="..\..\Engine\DrawnUi.Maui.csproj" />
</ItemGroup>

<!--production-->
<ItemGroup Condition="'$(UseNuget)' == 'true'">
<PackageReference Include="AppoMobi.Maui.DrawnUi" Version="1.2.9.10" />
<ItemGroup>
<ProjectReference Include="..\..\Engine\DrawnUi.Maui.csproj" />
</ItemGroup>

</Project>
35 changes: 21 additions & 14 deletions src/Addons/DrawnUi.Maui.Game/DrawnUi.Maui.Game.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,18 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net8.0;net8.0-android34.0;net8.0-ios17.0;net8.0-maccatalyst17.0;</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net8.0-windows10.0.19041.0;</TargetFrameworks>

<PropertyGroup Condition="'$(UseSkiaSharp3)' == 'true'">
<TargetFrameworks>net9.0;net9.0-android;net9.0-ios;net9.0-maccatalyst;</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net9.0-windows10.0.19041.0;</TargetFrameworks>
<PackageReleaseNotes>Uses SkiaSharp 3.xx. Checkout the DrawnUi sandbox project or look for DrawnUI SpaceShooter for usage example.</PackageReleaseNotes>
</PropertyGroup>

<PropertyGroup Condition="'$(UseSkiaSharp3)' != 'true'">
<TargetFrameworks>net8.0;net8.0-android34.0;net8.0-ios17.0;net8.0-maccatalyst17.0;</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net8.0-windows10.0.19041.0;</TargetFrameworks>
<PackageReleaseNotes>Uses SkiaSharp 2.xx. Checkout the DrawnUi sandbox project or look for DrawnUI SpaceShooter for usage example.</PackageReleaseNotes>
</PropertyGroup>

<PropertyGroup>
<UseMaui>true</UseMaui>
<SingleProject>true</SingleProject>
<ImplicitUsings>enable</ImplicitUsings>
Expand All @@ -11,11 +22,13 @@
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">21.0</SupportedOSPlatformVersion>
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.19041.0</SupportedOSPlatformVersion>
<TargetPlatformMinVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.19041.0</TargetPlatformMinVersion>
</PropertyGroup>
</PropertyGroup>

<Import Condition="'$(UseSkiaSharp3)' == 'true'" Project="..\..\Engine\skia3.props" />
<Import Condition="'$(UseSkiaSharp3)' != 'true'" Project="..\..\Engine\skia2.props" />

<PropertyGroup>
<UseNuget>false</UseNuget>
<PackageReleaseNotes>Using SkiaSharp 2.xx. Checkout the DrawnUi sandbox project or look for DrawnUI SpaceShooter for usage example.</PackageReleaseNotes>

<PropertyGroup>
<Title>Game creation addon to DrawnUI for .NET MAUI</Title>
<PackageId>DrawnUi.Maui.Game</PackageId>
<Description>Base class for implementing a game with SkiaSharp in .NET MAUI</Description>
Expand All @@ -35,15 +48,9 @@
<WarningsAsErrors>$(WarningsAsErrors);CS0108</WarningsAsErrors>
</PropertyGroup>

<!--for development-->
<ItemGroup Condition="'$(UseNuget)' != 'true'">
<ItemGroup>
<ProjectReference Include="..\..\Engine\DrawnUi.Maui.csproj" />
</ItemGroup>

<!--production-->
<ItemGroup Condition="'$(UseNuget)' == 'true'">
<PackageReference Include="AppoMobi.Maui.DrawnUi" Version="1.2.9.10" />
</ItemGroup>


</Project>
27 changes: 17 additions & 10 deletions src/Addons/DrawnUi.Maui.MapsUi/src/DrawnUi.Maui.MapsUi.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,18 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>

<PropertyGroup Condition="'$(UseSkiaSharp3)' == 'true'" >
<TargetFrameworks>net9.0;net9.0-android;net9.0-ios;net9.0-maccatalyst;</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net9.0-windows10.0.19041.0;</TargetFrameworks>
<PackageReleaseNotes>Uses SkiaSharp 3.xx. Checkout the DrawnUi demo project for usage example. Temporarily Windows only is supported.</PackageReleaseNotes>
</PropertyGroup>

<PropertyGroup Condition="'$(UseSkiaSharp3)' != 'true'" >
<TargetFrameworks>net8.0;net8.0-android34.0;net8.0-ios17.0;net8.0-maccatalyst17.0;</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net8.0-windows10.0.19041.0;</TargetFrameworks>
<PackageReleaseNotes>Uses SkiaSharp 2.xx. Checkout the DrawnUi demo project for usage example. Temporarily Windows only is supported.</PackageReleaseNotes>
</PropertyGroup>

<PropertyGroup>
<UseMaui>true</UseMaui>
<SingleProject>true</SingleProject>
<ImplicitUsings>enable</ImplicitUsings>
Expand All @@ -17,7 +28,10 @@
<DefineConstants>$(DefineConstants);ONPLATFORM</DefineConstants>
</PropertyGroup>

<ItemGroup>
<Import Condition="'$(UseSkiaSharp3)' == 'true'" Project="..\..\..\Engine\skia3.props" />
<Import Condition="'$(UseSkiaSharp3)' != 'true'" Project="..\..\..\Engine\skia2.props" />

<ItemGroup>
<!--<PackageReference Include="BruTile" Version="5.0.6" />-->
<PackageReference Include="BruTile.MbTiles" Version="6.0.0-beta.3" />
<PackageReference Include="Mapsui.ArcGIS" Version="5.0.0-beta.4" />
Expand All @@ -26,8 +40,6 @@
</ItemGroup>

<PropertyGroup>
<UseNuget>false</UseNuget>
<PackageReleaseNotes>Using SkiaSharp 2.xx. Checkout the DrawnUi sandbox project on how to use SkiaMapsUi control.</PackageReleaseNotes>
<Title>MapsUi addon to DrawnUI for .NET MAUI</Title>
<PackageId>DrawnUi.Maui.MapsUi</PackageId>
<Description>SkiaMapsUi DrawnUi control for .NET MAUI</Description>
Expand All @@ -47,14 +59,9 @@
<WarningsAsErrors>$(WarningsAsErrors);CS0108</WarningsAsErrors>
</PropertyGroup>

<!--for development-->
<ItemGroup Condition="'$(UseNuget)' != 'true'">
<ItemGroup>
<ProjectReference Include="..\..\..\Engine\DrawnUi.Maui.csproj" />
</ItemGroup>

<!--production-->
<ItemGroup Condition="'$(UseNuget)' == 'true'">
<PackageReference Include="AppoMobi.Maui.DrawnUi" Version="1.2.9.10" />
</ItemGroup>

</Project>
33 changes: 19 additions & 14 deletions src/Addons/DrawnUi.Maui.Rive/DrawnUi.Maui.Rive.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,18 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net8.0;net8.0-android34.0;net8.0-ios17.0;net8.0-maccatalyst17.0;</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net8.0-windows10.0.19041.0;</TargetFrameworks>

<PropertyGroup Condition="'$(UseSkiaSharp3)' == 'true'" >
<TargetFrameworks>net9.0;net9.0-android;net9.0-ios;net9.0-maccatalyst;</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net9.0-windows10.0.19041.0;</TargetFrameworks>
<PackageReleaseNotes>Uses SkiaSharp 3.xx. Checkout the DrawnUi demo project for usage example. Temporarily Windows only is supported.</PackageReleaseNotes>
</PropertyGroup>

<PropertyGroup Condition="'$(UseSkiaSharp3)' != 'true'" >
<TargetFrameworks>net8.0;net8.0-android34.0;net8.0-ios17.0;net8.0-maccatalyst17.0;</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net8.0-windows10.0.19041.0;</TargetFrameworks>
<PackageReleaseNotes>Uses SkiaSharp 2.xx. Checkout the DrawnUi demo project for usage example. Temporarily Windows only is supported.</PackageReleaseNotes>
</PropertyGroup>

<PropertyGroup>
<UseMaui>true</UseMaui>
<SingleProject>true</SingleProject>
<ImplicitUsings>enable</ImplicitUsings>
Expand All @@ -13,14 +24,15 @@
<TargetPlatformMinVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'windows'">10.0.19041.0</TargetPlatformMinVersion>
</PropertyGroup>

<!--WINDOWS-->
<Import Condition="'$(UseSkiaSharp3)' == 'true'" Project="..\..\Engine\skia3.props" />
<Import Condition="'$(UseSkiaSharp3)' != 'true'" Project="..\..\Engine\skia2.props" />

<!--WINDOWS-->
<ItemGroup Condition="$(TargetFramework.Contains('windows')) == true">
<PackageReference Include="AppoMobi.Maui.Rive" Version="1.0.1.2-pre" />
</ItemGroup>

<PropertyGroup>
<UseNuget>false</UseNuget>
<PackageReleaseNotes>Using SkiaSharp 2.xx. Checkout the DrawnUi demo project for usage example. Temporarily Windows only is supported.</PackageReleaseNotes>
<Title>Rive addon to DrawnUI for .NET MAUI</Title>
<PackageId>DrawnUi.Maui.Rive</PackageId>
<Description>SkiaRive DrawnUi control for .NET MAUI (temporarily Windows only is supported)</Description>
Expand All @@ -40,17 +52,10 @@
<WarningsAsErrors>$(WarningsAsErrors);CS0108</WarningsAsErrors>
</PropertyGroup>

<!--for development-->
<ItemGroup Condition="'$(UseNuget)' != 'true'">
<ItemGroup>
<ProjectReference Include="..\..\Engine\DrawnUi.Maui.csproj" />
</ItemGroup>

<!--production-->
<ItemGroup Condition="'$(UseNuget)' == 'true'">
<PackageReference Include="AppoMobi.Maui.DrawnUi" Version="1.2.9.10" />
</ItemGroup>




</Project>
Loading

0 comments on commit bc55bad

Please sign in to comment.