Repository navigation
RivePlayer: render through Uno's SKCanvasElement on Uno 7 - #825
Draft
MartinZikmund wants to merge 22 commits into
Draft
MartinZikmund wants to merge 22 commits into
MartinZikmund wants to merge 22 commits into
Conversation
Points the tooling submodule at the Uno 7 branch and updates global.json (.NET SDK 10.0.401, Uno.Sdk 7.0.0-dev.51, MSBuild.Sdk.Extras 3.0.44). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E8bkzyS24p8CYDWLUPsaPC
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E8bkzyS24p8CYDWLUPsaPC
Uno annotates TextPointer.GetPositionAtOffset as nullable, which fails the build with warnings as errors. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E8bkzyS24p8CYDWLUPsaPC
…is a stub Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E8bkzyS24p8CYDWLUPsaPC
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E8bkzyS24p8CYDWLUPsaPC
Resolves global.json and tooling: global.json follows the Uno 7 tooling branch (SDK 10.0.402, MSBuild.Sdk.Extras 3.0.44, Uno.Sdk 7.0.0-dev.89), tooling moves to its head (4e83b8a), which already contains main's tooling commit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TXMNu1EDpoRrpP3hnDukwz
The Uno 7 tooling renamed linuxgtk to linux and added the win32 desktop target; Filter-Supported-Components rejects the old name, failing every build job. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TXMNu1EDpoRrpP3hnDukwz
Ports the CommunityToolkit/Windows workflow changes for the Uno 7 tooling: the win32/linux matrix, the Uno.Sdk head on the WinUI 3 wasm job and wasm-linux becoming uno-linux, which builds that head for browserwasm and desktop. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TXMNu1EDpoRrpP3hnDukwz
Uno 5 generates a partial declaration for every DependencyObject (CS0260). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TXMNu1EDpoRrpP3hnDukwz
On Uno 5 Android, Android.Widget.TableRow is also in scope (CS0104). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TXMNu1EDpoRrpP3hnDukwz
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TXMNu1EDpoRrpP3hnDukwz
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TXMNu1EDpoRrpP3hnDukwz
1.33.1 installs Microsoft.Android.Sdk 36.1.2, under which the .NET 10.0.403 SDK adds the host RID to the Android head's RuntimeIdentifiers and restore looks for Microsoft.NETCore.App.Runtime.Mono.win-x64 (NU1102). Matches the Windows and tooling repos. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TXMNu1EDpoRrpP3hnDukwz
The ApiInformation probe names Windows.UI.Xaml.UIElement, which isn't trim-safe on Uno 7 (IL2122) and returns false on WinUI 3, so every WinUI 3 target fell back to the obsolete FocusManager.GetFocusedElement() (CS0618). XamlRoot always exists on WinUI 3, matching ApiInformationHelper in CommunityToolkit/Windows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TXMNu1EDpoRrpP3hnDukwz
uno-check leaves Microsoft.Android.Sdk 36.1.2 selected, where the .NET 10.0.403 SDK adds the host RID to the Uno 7 Android head and restore fails on Microsoft.NETCore.App.Runtime.Mono.win-x64 (NU1102). 36.1.118 doesn't. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TXMNu1EDpoRrpP3hnDukwz
ImplicitUsings pulls Android.App and Android.Widget into the Android builds, whose Application, Orientation and TableRow clash with the XAML and Markdig types (CS0104). Replaces the per-file TableRow alias. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TXMNu1EDpoRrpP3hnDukwz
On Uno 5 Android the sample pages are ViewGroups, whose Debug(int) method hides System.Diagnostics.Debug (CS0119). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TXMNu1EDpoRrpP3hnDukwz
uno-check already installs it, so install was a no-op; update moves the manifest past 36.1.2. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TXMNu1EDpoRrpP3hnDukwz
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TXMNu1EDpoRrpP3hnDukwz
MartinZikmund
force-pushed
the
mzikmund/rive-uno7
branch
from
November 4, 2026 00:13
406851d to
6559bc8
Compare
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TXMNu1EDpoRrpP3hnDukwz
SkiaSharp.Views.Uno.WinUI has no build for Uno 7 (every release, including the 4.156 previews, still ships the Uno 6 uno-runtime layout), so the Uno.Sdk head fails with UNOB0023 on net10.0-browserwasm. On WinUI 3 / Uno, draw through Uno.WinUI.Graphics2DSK's SKCanvasElement instead. Uno 7 already brings in SkiaSharp 4.151.1, and every SkiaSharp member RiveSharp references still exists there. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TXMNu1EDpoRrpP3hnDukwz
MartinZikmund
force-pushed
the
mzikmund/rive-uno7
branch
from
November 4, 2026 00:14
6559bc8 to
60ed6f5
Compare
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TXMNtyvCafb6Ej7cqotkAC
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
Stacked on #822 (the Uno 7 migration), so the diff includes those commits until it merges. The RivePlayer change is just the last commit, 60ed6f5.
Why
On Uno 7, the Uno.Sdk head fails for
net10.0-browserwasmwith UNOB0023:Bumping the package doesn't help. Every
SkiaSharp.Views.Uno.WinUIrelease, up to and including the 4.156 previews, still ships the Uno 6uno-runtime/<tfm>/skia|webassemblylayout.What
On WinUI 3 / Uno only, RivePlayer now draws through
SKCanvasElementfromUno.WinUI.Graphics2DSK, versioned with Uno itself:RiveCanvasElement: itsRenderOverrideforwards toPaintNextAnimationFrame.PaintNextAnimationFramenow takes anSKCanvasrather than anSKSurface. TheClear()call moved into the SkiaSharp.Views callbacks, becauseSKCanvasElementdraws on a canvas shared with the rest of the window.Uno 7 already brings in SkiaSharp 4.151.1. RiveSharp is built against 2.88.3, so I checked its member references: all 42 SkiaSharp members it uses still exist with the same signatures in 4.151.1.
Validation
Local builds of
CommunityToolkit.WinUI.Rive.RivePlayersucceed for both WinUI 3 wasm and WinUI 2 wasm. The WinUI 3 build restoresUno.WinUI.Graphics2DSKand SkiaSharp 4.151.1, and no longer referencesSKXamlCanvas.🤖 Generated with Claude Code
https://claude.ai/code/session_01TXMNu1EDpoRrpP3hnDukwz