https://github.com/coderline/alphaskia
A Skia based rendering backend for alphaTab.
https://github.com/coderline/alphaskia
Last synced: 9 months ago
JSON representation
A Skia based rendering backend for alphaTab.
- Host: GitHub
- URL: https://github.com/coderline/alphaskia
- Owner: CoderLine
- License: other
- Created: 2023-09-17T14:31:55.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-04-29T12:24:48.000Z (9 months ago)
- Last Synced: 2025-04-29T12:28:01.791Z (9 months ago)
- Language: C#
- Homepage:
- Size: 25.4 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# alphaSkia
alphaSkia is a special cross platform [Skia](https://skia.org/) wrapper used in [alphaTab](https://github.com/CoderLine/alphaTab) it aims to provide a HTML5 Canvas like API to alphaTab providing a consistent rendering experience across the alphaTab flavours like web, .net and Kotlin. Differences across operating systems might still apply.
## Versioning
alphaSkia a slightly adapted [Semantic Versioning](https://semver.org/) scheme where the `PATCH` part indicates
the Skia milestone version we have integrated.
Currently we are on [Skia m120](https://github.com/CoderLine/alphaSkia/blob/main/.gitmodules#L8)
Given a version number `MAJOR.MINOR.SKIA`:
1. `MAJOR` is incremented when we make incompatible API changes.
2. `MINOR` is incremented when we add functionality in a backward compatible manner
3. `SKIA` is aligned with the Skia milestone we have integrated. See [here](https://skia.org/docs/user/release/#release-process) and [here](https://chromiumdash.appspot.com/schedule)
The prerelease labels and tags we use:
* Pre-Release versions for builds which are in-development
* SemVer: `-alpha.` (NuGet and NPM)
* NPM Tag: `alpha`
* Maven: `-SNAPSHOT`
* Local Builds (not published anywhere)
* SemVer: `-local`
* Maven: `-LOCAL`
## Supported platforms
| Target | .net | Java | Node.js |
|---------------------|------|------|---------|
| win-x64 | ✅ | ✅ | ✅ |
| win-x86 | ✅ | ✅ | ✅ |
| win-arm64 | ✅ | ✅ | ✅ |
| linux-x64 | ✅ | ✅ | ✅ |
| linux-x86 | ✅ | ✅ | ✅ |
| linux-arm | ✅ | ✅ | ✅ |
| linux-arm64 | ✅ | ✅ | ✅ |
| macos-x64 | ✅ | ✅ | ✅ |
| macos-arm64 | ✅ | ✅ | ✅ |
| android-x64 | ✅ | ✅ | |
| android-x86 | ✅ | ✅ | |
| android-arm | ✅ | ✅ | |
| android-arm64 | ✅ | ✅ | |
| ios-arm64 | ✅ | | |
| iossimulator-x64 | ✅ | | |
| iossimulator-arm64 | ✅ | | |
We don't have a full automatic test matrix for all packages and platforms. If you encounter any platform problems please report them in this repository.
## Credits
A big **Thank you** to the following projects giving me good insights on how to build Skia in a cross platform fashion. These projects influenced heavily how the pipelines of alphaSkia are organized.
* [SkiaSharp](https://github.com/mono/SkiaSharp/)
* [Skija](https://github.com/HumbleUI/Skija/)