On Apr 16, 2010, at 8:12 AM, bulia byak wrote:
- Caching. Initially, no caching of rasterized graphics will be
done, but the new NRArena classes will be written in a way that doesn't preclude introducing it later. Caching rasterized data is unlikely to give any performance boost when using hardware acceleration.
I think caching, if done properly, will give a huge interactivity gain. Right now, when you move a canvas item such as a handle or node, objects underneath it have to be redrawn (within the touched 16x16 tiles) starting from scratch - tesselating, stroking, filling, etc., even if they didn't change, which is one of the major contributors to the "feeling of slow". If these redraws can be pulled from a cache, it will feel much more responsive I think.
This is one area where a different implementation can be included to help significantly with the responsiveness of the program. That is, many applications will switch to some form of proxy representation during user interaction. For example, they might render a vector item into a bitmap cache and switch to drawing that bitmap during drags, then switch back to normal rendering once the user releases an item.
So we probably should keep a look out for opportunities to leverage caching and alternative rendering for interactivity.