-
Notifications
You must be signed in to change notification settings - Fork 215
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’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support latest skia #293
Comments
Recommend https://github.com/rust-skia/rust-skia, we will always sync with the latest skia |
It's a very heavy dependency. It requires 100 dependencies on linux. This is no go for me. |
Oh, that's weird, we should have no extra dependencies if our prebuild script worked fine. Shouldn't we ? @pragmatrix |
The set of dependencies is statically determined by cargo, which means that as long we support a fallback to the full Skia build, the dependencies include all the crates that are needed for that. To mitigate that, we could add a feature for the full build to rust-skia, set this as the default to keep the compatilibity, and resvg could then specify the an empty feature set by default to keep the dependencies to a minimum (excluding dev-deps ~39 vs. ~100 on Windows for CPU rendering). If needed, users of resvg may re-enable the full build by patching the skia-safe dependency. Besides of that, the API differs from the Skia backend that is used by resvg (which AFAIK is based on the C API), so we need to port the backend drawing code to skia-safe and test it before even considering the integration. I could offer to do that and, also test a bit, and also keep it updated to the latest Skia milestones if needed, but in return I would need a strong commitment from the community around resvg that the rust-skia backend is kept updated in terms of resvg features in the foreseeable future. |
@pragmatrix The current resvg skia bindings has just a single dependency - So the only way for me to use |
@RazrFalcon What do you mean by "select a prebuilt skia" exactly? Does that mean that your build script or a manual process provides a suitable platform binary from https://github.com/rust-skia/skia-binaries/releases extracts them and sets up an environment variable so that - say a build.rs - can be used to inform cargo about how and what to link? This way, I think we can get the dependencies down to 3 ( |
Right now, resvg simply requires setting a path to a prebuilt skia. How you built it or where you get it in the first place, we don't care. Anyway, the skia backend future is a bit vague. So for me, this more about maintaining the current setup rather than finding new solutions. |
I see, but just to be clear, given that the discussed preconditions are met, you are open to add a second skia backend as an option if someone is driving demand for that? |
The current direction is to remove all backends altogether in favor of raqote. |
@RazrFalcon Well, that aged well. Skia is a pain in the ass. |
@Luxxxxy Well, raqote is basically alpha-quality. And Skia is the best 2D library in existence. So the choice was obvious. |
@RazrFalcon problem is it's impossible to compile |
@Luxxxxy Again, there are no other choice. |
@RazrFalcon at least provide semi-useful documentation on how the hell to make it compile properly. I couldn't figure it out on either Windows or Linux. Skia isn't even in the fuckin' AUR (well, skia-git is, but that just errors out) or Homebrew. |
https://github.com/RazrFalcon/tiny-skia#build-with-embedded-skia ?
This is up to Google. |
@RazrFalcon Huh, this works now, even though I remember it not working earlier. |
@RazrFalcon I'm not sure that Skia works on platforms such as RISC-V, though. |
@Luxxxxy I don't care about those platforms. |
Sorry if this comes off as rude, but only caring about x86 is a very quick way to ensure your library never sees any big use. |
Well, you can always port Skia to Rust. This would help a lot. But you won't. Because you're not Google. End of story. Anyway, resvg is still the most cross-platform one. The next closest one feature-wise is librsvg, and it supports only Linux+Gnome. So... make your choice. |
I mean, you ditched a fully Rust-based backend... |
Raqote? It supports like 1% of Skia features and very buggy and slow. Again, you can spend your time making it better. I can't. That's why I'm using Skia. |
No description provided.
The text was updated successfully, but these errors were encountered: