A canvas should be introduced. This will contain a render target and will only be redrawn when the contents of the canvas are modified. This will improve performance of large, more complex shapes or compositions by a substantial amount. This will also allow tilesets to be drawn with little to no overhead.
Grounds for change/addition
This should be added as it allows much more flexibility and performance benefits. For example if you were drawing the terrain for a game, each chunk can be contained within a canvas, and only when the terrain was modified in that chunk would the canvas be redrawn. This would have immense performance benefits.
Trade-offs
There are no trade-offs for this feature if used correctly. It must be made clear that the redraw method, whatever it may be, should NOT be called unless the canvas is changed, not each frame. This would be done within the update loop, protected by an if statement of some description.
Alternatives
There are no alternatives to this idea, as this does not fix any existing issues, but introduces a completely new concept.
Proposed Features
A canvas should be introduced. This will contain a render target and will only be redrawn when the contents of the canvas are modified. This will improve performance of large, more complex shapes or compositions by a substantial amount. This will also allow tilesets to be drawn with little to no overhead.
Grounds for change/addition
This should be added as it allows much more flexibility and performance benefits. For example if you were drawing the terrain for a game, each chunk can be contained within a canvas, and only when the terrain was modified in that chunk would the canvas be redrawn. This would have immense performance benefits.
Trade-offs
There are no trade-offs for this feature if used correctly. It must be made clear that the redraw method, whatever it may be, should NOT be called unless the canvas is changed, not each frame. This would be done within the update loop, protected by an if statement of some description.
Alternatives
There are no alternatives to this idea, as this does not fix any existing issues, but introduces a completely new concept.