mutter/cogl
Daniel van Vugt 216bb7f960 cogl/clip-stack-gl: Set glStencilMask correctly for clip regions
Previously we were using a mask of 0x1 for the lifetime of the stencil.
This was wrong for two reasons:

  * The intersection algorithm needs to count up to a maximum 2, so a
    mask of 1 would clamp to 1 instead. Then decrementing all pixels
    resulted in all pixels being zero even though we want some to be 1.
    So the stencil then blocked some color buffer pixels being rendered.

  * The lifetime of the mask was too long. By leaving it non-zero at
    the end of the function we could accidentally end up modifying the
    stencil contents during our later color buffer paints.

This fixes faulty rendering of some actors seen in gnome-shell with
test case: `env COGL_DEBUG=stencilling`

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1873>
2021-06-01 15:44:01 +08:00
..
cogl cogl/clip-stack-gl: Set glStencilMask correctly for clip regions 2021-06-01 15:44:01 +08:00
cogl-pango cogl: Stop using GSlice 2021-02-22 13:51:30 +01:00
test-fixtures cogl/test-utils: Skip "showing" the onscreen 2021-01-30 09:11:46 +00:00
tests mutter-cogl.test: Use xvfb-run to run the cogl tests 2021-05-26 21:03:45 +02:00
.gitignore cogl: Remove CoglPath and the tesselator 2020-04-08 11:38:48 +02:00
cogl-config.h.meson *: Fix spelling mistakes found by codespell 2020-08-29 09:10:31 +00:00
cogl-mutter-config.h.in cogl: Make cogl-config.h include check explicit 2018-11-06 17:17:36 +01:00
config-custom.h move everything into a cogl/ directory 2016-04-22 16:44:31 +02:00
meson.build cogl/dma-buf: Add API to synchronize reading 2020-05-26 13:54:28 +00:00