Skia-Canvas integration, along with additional benchmarks #31
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.