<div dir="ltr">That's a very good question Ryan.<div><br></div><div>The short answer is this library draws everything each frame. It's meant for writing, games, physics simulations, or drawing animated demos. It runs as fast as you let it go, much like a game program.</div><div><br></div><div>BUT</div><div><br></div><div>It includes the ability to easily create and manage render buffers objects. These render buffers allow you to draw to a buffer, then just display the same buffer repeatedly, where you can change it only when needed. This is like the composting system you mention, but it's an opt in feature. The curtains demo linked in my OP is using a render buffer. If I didn't slow it down it would render instantly and there would be no fun watching it draw updates.</div><div><br></div><div>Additionally, there is a fixed step logic method meant for game or simulation logic that is always invoked at every 1/120 of a second. This ensures simulation logic returns the same results regardless of computing or video render speed.</div><div><br></div><div>And finally, regarding compositing, the Canvas interface has a set of modes determining how pixels are combined when new pixels are added. These modes can do things like produce a negative image, lighten or darken, multiply pixels, apply masks, and other things. They are like layer modes in Gimp or Photoshop.</div><div><br></div><div>Oh and I almost forget. You can adjust the vsync or turn it on/off in my library, allowing you more control over CPU / GPU resource usage.</div></div>