Skia-Canvas integration, along with additional benchmarks#31
Open
ayush-badola wants to merge 3 commits intocytoscape:masterfrom
Open
Skia-Canvas integration, along with additional benchmarks#31ayush-badola wants to merge 3 commits intocytoscape:masterfrom
ayush-badola wants to merge 3 commits intocytoscape:masterfrom
Conversation
Member
|
You're welcome to post and update a PR like this one, but we won't be going forward with next steps until if and when a GSOC student is selected. While PRs like this can provide some additional information with your application, each application will be evaluated individually to be fair to all applicants. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
In this PR, I have created a new branch for integrating Skia-Canvas and have also added one test case in a new test. The test file is named "skia-canvas.js".
Now, user can specify the 'engine' he wants to use. The 3 options for 'engine' are puppeteer, playwright and Skia-Canvas.
The main difficulty was to isolate parts of the code for puppeteer and playwright and then write an entirely new code for the functions of Skia-Canvas as the working of Skia is entirely different.
One major problem which I faced was the centering of the graph. The graph Skia generated was not centered and neither was zoomed. To solve this, I had to re-write the whole implementation of Skia to make sure to draw the graph manually, from center.
Using this method, the workaround for Skia-Canvas was made successful.
Also, I encountered some issue with playwright's grid layout, which now has been resolved.
I have also added benchmarks in every test, which clearly shows the extra ordinary performance of playwright and Skia-Canvas regarding the rendering time and memory used.