Skia and SKSL motion surfaces
Composition & Shader Animation
Own the render loop when packaged animation assets are not enough.
Explore source ↗Capability
CompositionAnimatedControl supplies stretch-aware Skia rendering, elapsed normalization, repeat counts, per-frame updates, and static redraw; ShaderAnimatedControl adds URI-loaded SKSL runtime effects and uniform binding.
- 01
Composition scheduler integration
- 02
Animated and static redraw modes
- 03
Stretch and repeat control
- 04
SKSL assets and custom uniforms
How it composes
From intent
to working system.
Measure
Logical source size and stretch define destination geometry.
Normalize
Elapsed time maps to loops and repeat policy.
Update
Frame state or shader uniforms evolve with delta time.
Render
Skia or SKSL draws directly into the composition-backed surface.
Quick start
Adopt this
capability.
Start with the primary module, then add the related packages only when the application needs those layers. Replace VERSION with the current NuGet version.
dotnet add package CompositionAnimatedControldotnet add package ShaderAnimatedControl<PackageReference Include="CompositionAnimatedControl" Version="VERSION" /><PackageVersion Include="CompositionAnimatedControl" Version="VERSION" /><ShaderAnimatedControl ShaderUri="/Assets/Gradient.sksl" ShaderWidth="512" ShaderHeight="512" IsShaderFillCanvas="True" />Modules in this capability
Use one layer.
Compose the rest.
Source of truth
Read the module beside the complete system.
The implementation, samples, issues, and release notes stay in the parent repository so module details remain connected to the product architecture.