Skip to content

Explicit framebuffer management (EFM) preparations

These are babysteps to the greater goal of EFM. Mostly, preparation work to make the more painful step (adding a CoglFramebuffer parameter to ClutterActor.pick() and ClutterActor.paint()) less painful.

This transition consists of replacing all cogl_rectangle() and family calls by cogl_framebufer_draw_*_rectangle(). The framebuffer that is used is usually the draw framebuffer, since it doesn't receive the framebuffer yet.

ClutterPaintNode was left out of this MR because it'll require a deeper, somewhat more dangerous surgery in it. That is because paint nodes are already slightly interwined with the drawing routines of ClutterActor, but store the framebuffer they're supposed to draw into (i.e. _clutter_paint_node_get_framebuffer() != cogl_get_draw_framebuffer()), and that causes a few graphical glytches.

Merge request reports