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

[Feature] Adding Win2d Path Mini Language Parser to WCT #3421

Closed
ratishphilip opened this issue Aug 11, 2020 · 5 comments · Fixed by #3503
Closed

[Feature] Adding Win2d Path Mini Language Parser to WCT #3421

ratishphilip opened this issue Aug 11, 2020 · 5 comments · Fixed by #3503
Labels
Milestone

Comments

@ratishphilip
Copy link
Contributor

ratishphilip commented Aug 11, 2020

Describe the problem this feature would solve

WPF has a Path Mini Language which is used to describe geometric paths and figures. Support for a similar language does not exist in Win2d library.

Describe the solution

In the CompositionProToolkit library, I have defined the Win2d Path Mini Language, which is a superset of the Path Language specification in SVG and can be used to define the following

  • CanvasGeometry
  • Color (in hex format or Vector4 format)
  • Various brushes deriving from ICanvasBrush
    • SolidColorBrush
    • LinearGradientBrush
    • LinearGradientBrush with GradientStopHdr
    • RadialGradientBrush
    • RadialGradientBrush with GradientStopHdr
  • CanvasStrokeStyle
  • CanvasStroke which derives from ICanvasStroke (an interface which encapsulates the attributes of a stroke - Width, Brush, Style and Transform)

Also in the CompositionProToolkit library, I have implemented a set of static helper methods which enable the parsing of Win2d Path Mini Language as string and convert them to appropriate CanvasGeometry, Color, ICanvasBrush or ICanvasStroke. Also I have added extension methods to Compositor, CanvasPathBuilder and CanvasDrawingSession to build upon the aforementioned helper methods.

My aim to integrate my library CompositionProToolkit into WCT in a series of phases.
So in the first phase I am porting the code related to Win2d Path Mini Language parsing into WCT.

Additional context

Win2d Path Mini Language Specification

@ratishphilip ratishphilip added the feature request 📬 A request for new changes to improve functionality label Aug 11, 2020
@ghost
Copy link

ghost commented Aug 11, 2020

Hello, 'ratishphilip! Thanks for submitting a new feature request. I've automatically added a vote 👍 reaction to help get things started. Other community members can vote to help us prioritize this feature in the future!

@Kyaa-dost
Copy link
Contributor

@ratishphilip Thanks for showcasing the work. Let's see what the community has to say whether this is something we want to move forward with or not.

@ratishphilip
Copy link
Contributor Author

@Kyaa-dost is it ok to submit the PR while this issue is still being discussed?

@Kyaa-dost
Copy link
Contributor

@ratishphilip yes, we can certainly do that and if the team wants to move forward we will merge the PR 😊 Thank you!

@Kyaa-dost Kyaa-dost added this to the 7.0 milestone Aug 13, 2020
@michael-hawker
Copy link
Member

Thanks @Kyaa-dost! I've been talking to @ratishphilip a bit in the Discord server about his toolkit already. 🙂 His work is really amazing, and I'm looking forward to seeing things come to the WCT and be centralized for our developers.

I think with the Animation improvements @Sergio0694's planning in #3108 we're going to have a lot of great graphical APIs and improvements for folks building amazing experiences with the Toolkit in 7.0. 🎉🎉🎉

@ghost ghost removed the In-PR 🚀 label Sep 16, 2020
@ghost ghost added the In-PR 🚀 label Sep 26, 2020
@ghost ghost added the in progress 🚧 label Dec 9, 2020
@ghost ghost added Completed 🔥 and removed In-PR 🚀 labels Feb 4, 2021
@ghost ghost locked as resolved and limited conversation to collaborators Apr 6, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
3 participants