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

Render Pipeline #109

Open
5 tasks
techninja opened this issue Jul 3, 2020 · 0 comments
Open
5 tasks

Render Pipeline #109

techninja opened this issue Jul 3, 2020 · 0 comments

Comments

@techninja
Copy link
Owner

techninja commented Jul 3, 2020

What's the problem?

Rendering a source image into its final form for preview is computationally expensive and though you can just redo everything over, this naive solution wastes both CPU and user time doing the same work over again.

What's the solution?

For every piece of source content, and for each render type (fill, stroke, text, vectorize), we place this content grouped under its hash identified content group, with a repeatable hash of the settings JSON used to generate it. We can now compare settings JSON data and see if its changed based on the hash, and if it has, the sub-object can be deleted and new content rendered into its place.

Implementation

  • Make a hash data attached to each render target within the render grouping for the item.
  • With hash against each settings item on the final, (plus width/height), should prevent re-renders when needed
  • Allow moving of stage item (bounds change, but w/h don't) to move rendered group.
  • Raster: Get resolution size down working for big images (calculate DPI from bounds scale).
  • Pass cncserver specific tmp dir over as part of filler/vectorizer utils so we don't need that in implementors.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant