Interface to control a custom sprite object on a XSpriteCanvas.
Every change performed on XCustomSprite objects is only visible
after a XSpriteCanvas::updateScreen() call, to facilitate
synchronized screen updates.
TODO: Maybe more than alpha has to be overridden from render state.
TODO: Provide means to change the output area
Whatever is rendered to this canvas will become visible on the
screen only after a XSpriteCanvas::updateScreen() call at the
associated sprite canvas. This canvas is not equivalent to the
host canvas of the sprite. At the very least, all output
happens relative to the sprite's upper left corner, i.e. the
origin of the sprite's canvas device coordinate system will
move with the sprite across the screen.
@attention Everytime the XCustomSprite is updated, the content
canvas must be quried via this method. You are, on the other
hand, allowed to temporarily store the canvas while rendering
a single sprite update. You might even store the canvas
between subsequent calls to getContentCanvas(), but should be
aware of the fact that the returned interface might be a
different object everytime.
@attention Since changes to the sprite content will become
visible after a XSpriteCanvas::updateScreen(), calls to this
method must be synchronized externally. Otherwise, the sprite
content rendered to screen is undefined. This is nothing the
XCustomSprite can or will manage by itself.
Returns
the canvas the sprite content can be rendered into.