Skip to content
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

missing method: "SKPathOps::AsWinding" #840

Closed
deakjahn opened this issue May 12, 2019 · 7 comments · Fixed by #1326
Closed

missing method: "SKPathOps::AsWinding" #840

deakjahn opened this issue May 12, 2019 · 7 comments · Fixed by #1326
Milestone

Comments

@deakjahn
Copy link

There is a newer method AsWinding() in:

https://github.com/google/skia/blob/master/include/pathops/SkPathOps.h

It's supposed to help with the even-odd vs. winding problems in Boolean path operations. It would really be needed from SkiaSharp as well...

@Gillibald
Copy link
Contributor

Gillibald commented May 12, 2019

This is not part of the m68 release so it will only be available if a newer release is targeted.

@deakjahn
Copy link
Author

Well, considering that the whole Path Ops subsytem is nearly unusable because of that (of course, it also depends on which filling rule you actually need), what are our hopes?

@deakjahn
Copy link
Author

deakjahn commented May 12, 2019

To put it into some perspective: it seems that no matter what kind of paths you send into the operations, it always comes out in even-odd. This is the function that they added to fix it if you need it in non-zero (winding). Without the function, you simply can't work in non-zero mode at all because you can input but you can't use the output at all. And a rather large part of the world (SVG, fonts, PostScript, PDF and so on) uses the non-zero mode; I'd venture to say most.

@mattleibow
Copy link
Contributor

Thanks for brining this out, I am hoping to update to the latest skia soon, so we will get this method. I can't say exactly when, but I hope before the end of this year.

@Gillibald
Copy link
Contributor

Gillibald commented Sep 9, 2019

SkiaSharp has only one maintainer so it is expected to take longer. How many people are working on Skia itself? This is open source so feel free to contribute something.

@Gillibald
Copy link
Contributor

Gillibald commented Sep 9, 2019

It is totally fine to start with all the Windows dependencies and add other platforms later. The build chain to compile everything is part of the repo so you only have to supply all dependencies that are needed to build for your target platform. On Windows this is mainly msbuild (VisualStudio).

The moment you create a pull request you can use DevOps to build for all platforms.

I am contributing to SkiaSharp myself and haven't had any issues building everything I need. This is all done in my free time.

The community can help bringing this project further.

It is not trivial to update Skia to a newer version because the code base changes a lot. There is no guarantee for backward compatibility.

Skia itself has no C API that we need for P/Invoke so we have to wrap everything with custom code. So it is not just pulling latest master and press build.

@mattleibow
Copy link
Contributor

At least m80 has this feature and it can be added.

mattleibow added a commit that referenced this issue Jun 9, 2020
@mattleibow mattleibow mentioned this issue Jun 9, 2020
4 tasks
mattleibow added a commit that referenced this issue Jun 10, 2020
@mattleibow mattleibow added this to the v2.80.0 milestone Jul 9, 2020
@ghost ghost locked as resolved and limited conversation to collaborators Aug 19, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants