Conversation
…tching Co-authored-by: mattleibow <1096616+mattleibow@users.noreply.github.com>
|
@copilot let's drop the gl selection stuff. We can add it later. Let's focus on the animation view and get that ready. |
|
@copilot look at the Maui animated view and add the debug overlay and fps. You may need to move some utils out of the Maui lib into the base lib. |
…tion loop Co-authored-by: mattleibow <1096616+mattleibow@users.noreply.github.com>
…unter to base lib Co-authored-by: mattleibow <1096616+mattleibow@users.noreply.github.com>
Done in c779d11. |


Extracts the animated surface view concept into its own focused PR, introducing
SkiaSharp.Extended.UI.Blazor— a new Blazor library withSKAnimatedSurfaceView, the Blazor equivalent of the MAUISKAnimatedSurfaceViewpattern.New library:
SkiaSharp.Extended.UI.BlazorSKAnimatedSurfaceView— ~60fpsPeriodicTimerrender loop component built onSKCanvasView. ExposesIsAnimationEnabled,OnUpdate, andOnPaintSurfacecallbacks for frame-by-frame animation.UpdateAsync(TimeSpan)for reusable animated components;OnUpdate/OnPaintSurfacecallbacks cover the delegate use-case without subclassing.PeriodicTimerloop viaIAsyncDisposable.SKAnimatedSurfaceViewpattern: a#if DEBUGoverlay draws the current frame rate in the top-left corner of the canvas after the user's paint callback, usingSKFrameCounterfor a rolling-average FPS calculation.Base lib:
SkiaSharp.ExtendedSKFrameCountermoved fromSkiaSharp.Extended.UI.Mauiinto the baseSkiaSharp.Extendedlibrary (Internals/SKFrameCounter.cs), shared viaInternalsVisibleTowith both the MAUI and Blazor libraries.Blazor sample
New
/animatedsurfacedemo page showing pause/resume and speed control, with the FPS overlay visible in debug builds:Other
tests/SkiaSharp.Extended.UI.Blazor.Tests/— unit tests for default params,IsAnimationEnabledtoggle, andOnUpdatecallbackdocs/docs/animated-surface-blazor.md— API reference and usage guideOriginal prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.