Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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 #154

Merged
merged 6 commits into from
Jan 11, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading