clutter/paint-nodes: Make ClutterLayerNode always push/pop
ClutterLayerNode currently skips pushing the offscreen framebuffer when no operations are set. This was added at the time because pushing and popping was a synchronization point in Cogl, slow enough to force the layer node to have this protective measure. Nowadays, pushing and popping on the paint context is free. Make ClutterLayerNode always push and pop in pre and post paint. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1355>
This commit is contained in:
parent
533e6768da
commit
6654053250
@ -1364,10 +1364,6 @@ clutter_layer_node_pre_draw (ClutterPaintNode *node,
|
||||
if (lnode->offscreen == NULL)
|
||||
return FALSE;
|
||||
|
||||
/* if no geometry was submitted for this node then we simply ignore it */
|
||||
if (node->operations == NULL)
|
||||
return FALSE;
|
||||
|
||||
if (lnode->needs_fbo_setup)
|
||||
{
|
||||
/* copy the same modelview from the current framebuffer to the one we
|
||||
@ -1415,6 +1411,9 @@ clutter_layer_node_post_draw (ClutterPaintNode *node,
|
||||
cogl_framebuffer_pop_matrix (lnode->offscreen);
|
||||
clutter_paint_context_pop_framebuffer (paint_context);
|
||||
|
||||
if (!node->operations)
|
||||
return;
|
||||
|
||||
fb = clutter_paint_context_get_framebuffer (paint_context);
|
||||
|
||||
for (i = 0; i < node->operations->len; i++)
|
||||
|
Loading…
Reference in New Issue
Block a user