Algae.Canvas

Visit the Github project page for source code.

Create the geometry once and render at any resolution—that is the idea behind Algae.Canvas. Suitable for a variety of real-time tasks, including video games and and user interfaces, Algae.Canvas manages to render entire scenes in one draw call.

Most notably, Algae.Canvas supports rendering ‘groups’ with tint and alpha, as well as 255 nested levels of clipping, without having to create extra framebuffers. This is a marked difference from HTML5 canvas, which does not support alpha on groups of objects (instead, objects will bleed through each other, rather than masking each other). Again, this support is ensured with minimal draw calls and state changing; groups are supported for free, although clipping requires multiple draw calls per clip level.

features

  • API similar to HTML5 canvas
  • Geometry only needs to be created once; later can be rendered at any size
  • Retained path creation
  • Multithreaded renderer
  • Support for rendering single paths, groups, and clipping between paths and groups

technical features

  • Makes use of Loop-Blinn ‘curves on GPU’ algorithm
  • Batches all geometry into one buffer and uses one shader, for minimal resource switching
  • Supports groups and group alpha via depth buffer and nested clipping via stencil buffer
  • Makes use of multithreading in order to pack all the data into one buffer

content