diff options
author | Jan-Marek Glogowski <jan-marek.glogowski@extern.cib.de> | 2019-10-10 14:48:22 +0200 |
---|---|---|
committer | Thorsten Behrens <Thorsten.Behrens@CIB.de> | 2019-10-12 21:53:39 +0200 |
commit | edcb363f5eeefcc2ce28a2ab7a57d61b744466cd (patch) | |
tree | 266f725ce659580c203a636cd995d10ffee3bf2a /sd | |
parent | aarch64 callVirtualFunction needs to be compiled w/o -fstack-clash-protection (diff) | |
download | core-edcb363f5eeefcc2ce28a2ab7a57d61b744466cd.tar.gz core-edcb363f5eeefcc2ce28a2ab7a57d61b744466cd.zip |
tdf#40534 correctly match page with memory slab
LO has a page manager to match system memory backbuffers with
graphics memory on DX accelerated Windows. Internally this uses
an other rectangle implementation, the SurfaceRect, which had
some great comments like:
// a size of [0,0] therefore denotes a one-by-one rectangle.
In commit 230dbe2e43f3ee2cd285f9cdfe0d57e1ca08b8fe ("#144866# Add
one pixel border around textures, a bunch of drivers clobber those
with dirt), the allocation was increased by a pixel border, but
this doesn't work correctly, because now an allocation of the
page size wouldn't fit anymore into a page, because the pages size
is decreased before comparison. In the end the mixup suffered from
hard to handle off-by-one problems.
This patch fixes the bug, but eventually SurfaceRect should be
replaced by an extended basegfx::B2IBox. But since B2IBox uses two
ranges, instead of a point and a size, it would need a lot of
conversations to I2Point and I2Size objects with the current
Page::insert algorithm.
Change-Id: Ia725b4f8ed4fb270f2eb3734e492062bc7f13793
Reviewed-on: https://gerrit.libreoffice.org/80628
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
(cherry picked from commit 194e7ce17ae7ca278c12d03bc25684b7437f9785)
Reviewed-on: https://gerrit.libreoffice.org/80669
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Diffstat (limited to 'sd')
0 files changed, 0 insertions, 0 deletions