st-theme-node: Update corner textures on allocation size changes
Commit 318283fc70
optimized box-shadow rendering by not recreating
shadow materials on every allocation change. Other handles cannot
be reused and are updated regularly, however the patch missed the
cached corner materials - while those can be reused, we still need
to ensure that the currently used paint state references them.
https://bugzilla.gnome.org/show_bug.cgi?id=703909
This commit is contained in:
parent
f9b32474b0
commit
e031a5d28b
@ -1537,6 +1537,15 @@ st_theme_node_update_resources (StThemeNodePaintState *state,
|
|||||||
state->prerendered_texture = st_theme_node_prerender_background (node, width, height);
|
state->prerendered_texture = st_theme_node_prerender_background (node, width, height);
|
||||||
state->prerendered_material = _st_create_texture_material (state->prerendered_texture);
|
state->prerendered_material = _st_create_texture_material (state->prerendered_texture);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int corner_id;
|
||||||
|
|
||||||
|
for (corner_id = 0; corner_id < 4; corner_id++)
|
||||||
|
if (state->corner_material[corner_id] == COGL_INVALID_HANDLE)
|
||||||
|
state->corner_material[corner_id] =
|
||||||
|
st_theme_node_lookup_corner (node, width, height, corner_id);
|
||||||
|
}
|
||||||
|
|
||||||
if (had_box_shadow)
|
if (had_box_shadow)
|
||||||
state->box_shadow_material = _st_create_shadow_material (box_shadow_spec,
|
state->box_shadow_material = _st_create_shadow_material (box_shadow_spec,
|
||||||
|
Loading…
Reference in New Issue
Block a user