renderers: Handle large viewports
authorBenjamin Otte <otte@redhat.com>
Fri, 25 Feb 2022 02:40:57 +0000 (03:40 +0100)
committerBenjamin Otte <otte@redhat.com>
Sat, 26 Feb 2022 19:35:44 +0000 (20:35 +0100)
commitb28c3ef3d96edb17e3c819895177bb4293ac4790
tree7e349b47263f1c64fbed819c6e2ae9c47c9cc1ec
parented5fb4bbfe1ee6b059bc31db03747e86bed33430
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