-
-
Notifications
You must be signed in to change notification settings - Fork 3k
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鈥檒l occasionally send you account related emails.
Already on GitHub? Sign in to your account
POC: Initial tests regarding Skia #8558
base: master
Are you sure you want to change the base?
Conversation
|
Yep i think kivy is moving into that future |
Skia is also used by Flutter (and it makes sense since both are backed by Google). And Skia is not flutter-engine, but the 2D graphics library used by them. We're still evaluating it, but that looks like the best option at the moment. BTW Kivy will keep its core provider strategy, so Skia will be just one (and likely the default) core provider for specific scenarios. |
Just trying to bring some attention to some information... Flutter in its latest releases is moving away from Skia to their own rewritten graphics engine impeller due to several issues and performance constraints with Skia. So may be we need to take that into account too before having significant investment is Skia... though we can always have it as one of the supported core providers as suggested by @misl6 |
Do you mean by default we will be moving away from SDL2/3 and be on Skia or it will be SDL2/3 and angle and for some specific things like text the default will be Skia? |
As said on Discord, not for our (first) use case, cause:
And SkParagraph is the major reason that made us to test Skia |
ATM we do not have plans to move away from SDL2/SDL3 as a Window provider, as Skia (as a 2D graphics library) is not a replacement for that. |
Came here to say this is awesome road. Skia has been a lot used for inspiration at the starts, and always wanted to use it ! |
We shall have a lot of opportunities to incorporate in kivy. Great initiative. |
Maintainer merge checklist
Component: xxx
label.api-deprecation
orapi-break
label.release-highlight
label to be highlighted in release notes.versionadded
,versionchanged
as needed.Skia is a popular 2D graphics library which provides common APIs that work across a variety of hardware and software platforms.
As an example, it serves as the graphics engine for Google Chrome and many other products.
Even if the first tests solely focused on the
SkParagraph
feature, that will simplify and fix a ton of long-standing issues regarding text rendering (RTL, font fallback, BiDi, proper alignment, ...) if merged in Kivy, Skia could also be an opportunity to introduce other nice features (like a Lottie player, viaSKottie
).In simple words: From the first tests, Skia is what we were waiting for. A long restructuring and renaming for 3.0.0 series will be needed, and that's the proper time to introduce Skia in our codebase.
With Skia we can easily render into an OpenGL texture and OpenGL FBO (and looks ANGLE is supported for #8534).
This code is absolutely not intended to be merged as-is, but it's more like an handover to bi0noid, so I can focus on other things. (being an admin, Roadmap, ... etc).
IMPORTANT:
Sketchy example code:
Current output:
Screen.Recording.2024-01-11.at.13.37.36.mov