Skip to content

Render Pipeline #109

@techninja

Description

@techninja

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions