Open lancelet opened 2 years ago
Pathfinder is not actively maintained, but pdf_render relying on a fork of pathfinder does make it harder. It looks like the API issue is due to the pathfinder fork exposing a method that this repository does not: https://github.com/s3bk/pathfinder/commit/32497ee2d23eae8f3be46cdd4fadf562018ed524 .
What if you made a PR to update winit in pdf_render first? Would that be enough to allow updating the pdf_render dependency in this repository?
I'll give that a go.
Yes the points
method is a bit of a hack to get nested clip paths working. But I also can't really remove it without breaking clip paths in pdf_render.
@jdm is there a chance of merging #474 ? If not I have to figure out a way to keep clip paths working without it. Keeping the fork is quite annoying for everyone.
Yep, sorry about that!
This issue isn't fixed, despite merging #474, right? I'm still getting 'mismatched types' errors for winit
when trying to run the demo/native
example.
Sorry, I will test it now.
pdf_render does not have a fixed version of winit, so I would expect that a cargo update
should fix it?
It runs on linux.. until it crashes.
Just running cargo update
(either in demo/native
or in root) throws the same error for me:
Updating crates.io index
Updating git repository `https://github.com/pdf-rs/pdf`
Updating git repository `https://github.com/servo/surfman`
error: no matching package named `pdf_render` found
location searched: https://github.com/pdf-rs/pdf
required by package `pathfinder_demo v0.1.0 (/Users/leontepe/src/pathfinder/demo/common)`
Edit: running macOS, btw
well. I am a git "master". Turns out it helps to test in the correct repository ...
I am trying now with https://github.com/servo/pathfinder/pull/490
It compiles in https://github.com/servo/pathfinder/pull/491 .. but instantly crashes.
The application panicked (crashed).
Message: attempted to leave type `platform::platform::x11::util::input::PointerState` uninitialized, which is invalid
Location: /home/sebk/.cargo/registry/src/github.com-1ecc6299db9ec823/winit-0.19.3/src/platform/linux/x11/util/input.rs:94
Still getting the winit compilation errors. I mean, the version still seems to be on <0.19.4, right?
Maybe your x11 errors are unrelated?
Maybe. I will try updating winit to 0.26
Surfman needs updating too ....
Yeah. Just found the surfman dep as well.
We are using this commit it seems like: https://github.com/servo/surfman/blob/f3df871ac8c3926fe9106d86a3e51e20aa50d3cc/surfman/Cargo.toml
Seems to be the @pcwalton's last commit on the project. That explains it.
Updated to the latest surfman and got past the initial winit errors. Now I'm updating demo/native/src/main.rs
to use new winit changes.
shall I send you my changes so far? I guess not really worth it... and it isn't finished.
You could. I guess it's just a lot of winit changes to accommodate.
Not the winit expert myself. Don't really know which of these errors just need their names changed and which need complete overhaul. Can't tell how much winit has changed since then.
Same. But it is quite late here and I need to fix my font crate. Maybe it is useful. https://gist.github.com/s3bk/b4749790561b80778275cc4fde5873b8
BTW @s3bk, why are u trying to debug this? Are you interested in this crate because of glyph dilation as well? Or different reason?
I was just trying to get the demo back working for you.
I use pathfinder via https://github.com/s3bk/pathfinder_view which is working.
The font crate is used to render pdfs... and extract text from it.
Hello! Now that the servo project is being reactivated, are bugs like this one expected to be addressed moving forward?
No. Pathfinder is not used in Servo at this point in time,and I'm not aware of plans to integrate it.
Thank you. What does Servo currently use for vector graphics rasterization/rendering?
Servo does not perform vector graphic rasterization at this time.
@jdm Got it, thank you. How is Servo currently rendering text and vector-based graphics, such as svg? Is that CPU-based currently?
Servo does not support svg at this point. It uses font-kit for rendering text.
On an Apple M1 MacBook Pro, the
winit
dependency build fails with:This is fixed in
winit v0.24.x
(see https://github.com/rust-windowing/winit/issues/1782 where this was reported originally).So, I bumped
winit
and made a bunch of changes to catch up with its more recent API. After that, I was able to run some of the examples on an M1 Mac (eg.canvas_minimal
is working). See this diff for the changes required tocanvas_minimal/src/main.rs
: https://github.com/lancelet/pathfinder/commit/720785e5abee0a27759b9ebfbcfe3b4ecd3bff40#diff-53ffc830c4d0e3773cb67c3cedd3e24330ba22eccc7ccb66f731b9586fdf6584However, there's a circular dependency between both
pdf
andpathfinder
, which is making it difficult for me to complete the refactoring within pathfinder itself.pdf
andpdf_render
bring in a dependency onwinit
, and use a part of the pathfinder API that has been made private:To make things worse,
pdf
andpdf_render
seem to be using patches on top of pathfinder, so that confuses the matter still further.I don't know what the best way forward is. If
pdf
depends onpathfinder
, perhaps it's best not to usepdf
examples inpathfinder
itself, but rather put appropriate examples in thepdf
package instead? (Or in a third party repository which coordinates a minimum bound on the two?) Any suggestions? If I raised a PR to removepdf
andpdf_render
as dependencies for all of pathfinder (ie. removing those examples), would that be accepted?