[cairo] clipmask of multiple rects in different angles

Enrico Weigelt, metux IT consult enrico.weigelt at gr13.net
Wed Jul 20 11:37:27 UTC 2016


Hi folks,


for my widget toolkit (*1), I'd like to repaint only those screen
sections that are actually changed. Each widget can have subwidgets
(theoretically unlimited recursion), which can be mapped in arbitrary
angles.

The rendering currently goes like this:

* each widget has some paint() operation, which just renders into an
  prepared context
* it doesn't actually draw to screen, but instead recorded into a
  pattern (where also the already collected patterns of the subs
  are painted into)
* finally, the pattern of the root widget (which then aleady holds
  the complete scene) is painted onto screen

When individual widgets need to be repainted, their regions (in case
of moving, the corresponding regions in the parent) are invalidated.
These regions are then passed up the hierarchy with the corresponding
transfomations and finally collected in an list. (rects + matrices)

Now I'd like to create a clip, so only these rects are actually painted.

How can I achieve that ?


thx.

--mtx


More information about the cairo mailing list