renderers: Handle large viewports
authorBenjamin Otte <otte@redhat.com>
Fri, 25 Feb 2022 02:40:57 +0000 (03:40 +0100)
committerMatthias Clasen <mclasen@redhat.com>
Wed, 16 Mar 2022 02:00:39 +0000 (22:00 -0400)
commit50554bb92b165f9e331cc842ea4310baec0acfd8
treeeac2b838ef40421051e99ec7bda675c834239b08
parent0ea0fc9c7b9ee5f960cfc173008ceb2e2cb219f6
renderers: Handle large viewports

When large viewports are passed to gsk_renderer_render_texture(), don't
fail (or even return NULL).

Instead, draw multiple tiles and assemble them into a memory texture.

Tests added to the testsuite for this.
gsk/gl/gskglrenderer.c
gsk/gskcairorenderer.c
testsuite/gsk/compare/huge-height.node [new file with mode: 0644]
testsuite/gsk/compare/huge-height.png [new file with mode: 0644]
testsuite/gsk/compare/huge-width.node [new file with mode: 0644]
testsuite/gsk/compare/huge-width.png [new file with mode: 0644]
testsuite/gsk/meson.build