office-gobmx/vcl/workben
Mike Kaganski 8962141a12 tdf#160430: Fix glyph bounds calculation, and use basegfx::B2DRectangle
... instead of tools::Rectangle.

Several problems were there:
1. First, a horizontal bounding rectangle was calculated, with due
rounding; and then the result was rotated, and after that, rounded
again. That made the resulting rotated rectangle coordinates very
imprecise.
2. Also, ceil/floor was applied without normalization; and in case
of rotated font, that meant, that sometimes the range could be not
expanded to cover partially covered pixels, but instead collapsed.
3. The rotation to angles other than 90 degree multiples was done
incorrectly, resulting in cut off parts of characters.
4. For 90 degrees, the imprecise result of sin/cos converted 0.0
into values like 3e-16, which then could be ceil'ed up to 1.

Using B2DRectangle and its transform allows to simplify and fix
the calculations easily, and avoids premature rounding. Render of
rotated text of small size is more stable with this change.

Change-Id: Idffd74b9937feb2418ab76a8d325fdaf4ff841b7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165553
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-04-01 13:05:56 +02:00
..
cnttype
dtrans
win
602fuzzer.cxx
602fuzzer.options
bmpfuzzer.cxx
bmpfuzzer.options
cgmfuzzer.cxx
cgmfuzzer.options
commonfuzzer.hxx Create an UNO service to do the cui symbol lookup in vcl 2024-02-25 14:45:55 +01:00
dbffuzzer.cxx
dbffuzzer.options
diffuzzer.cxx
diffuzzer.options
docxfuzzer.cxx Create an UNO service to do the symbol lookup in sw 2024-03-06 12:34:10 +01:00
docxfuzzer.options
dxffuzzer.cxx
dxffuzzer.options
epsfuzzer.cxx
epsfuzzer.options
fftester.cxx add a sc-html fuzzer 2024-03-20 18:24:17 +01:00
fodpfuzzer.cxx
fodpfuzzer.options
fods2xlsfuzzer.cxx fods2xls fuzzer 2024-03-19 22:35:06 +01:00
fods2xlsfuzzer.options fods2xls fuzzer 2024-03-19 22:35:06 +01:00
fodsfuzzer.cxx
fodsfuzzer.options
fodt2pdffuzzer.cxx Create an UNO service to do the symbol lookup in sw 2024-03-06 12:34:10 +01:00
fodt2pdffuzzer.options bump odt2pdffuzzer max_len again 2024-03-17 23:05:13 +01:00
fodtfuzzer.cxx Create an UNO service to do the symbol lookup in sw 2024-03-06 12:34:10 +01:00
fodtfuzzer.options
giffuzzer.cxx
giffuzzer.options
htmlfuzzer.cxx Create an UNO service to do the symbol lookup in sw 2024-03-06 12:34:10 +01:00
htmlfuzzer.options
hwpfuzzer.cxx
hwpfuzzer.options
icontest.cxx
jpgfuzzer.cxx
jpgfuzzer.options
listfonts.cxx
listglyphs.cxx tdf#160430: Fix glyph bounds calculation, and use basegfx::B2DRectangle 2024-04-01 13:05:56 +02:00
lwpfuzzer.cxx
lwpfuzzer.options
metfuzzer.cxx
metfuzzer.options
minvcl.cxx
mmlfuzzer.cxx
mmlfuzzer.options
mtfdemo.cxx
mtpfuzzer.cxx
mtpfuzzer.options
olefuzzer.cxx
olefuzzer.options
pasteboard.mm
pcdfuzzer.cxx
pcdfuzzer.options
pctfuzzer.cxx
pctfuzzer.options
pcxfuzzer.cxx
pcxfuzzer.options
pngfuzzer.cxx
pngfuzzer.options
ppmfuzzer.cxx
ppmfuzzer.options
pptfuzzer.cxx
pptfuzzer.options
pptxfuzzer.cxx
pptxfuzzer.options
psdfuzzer.cxx
psdfuzzer.options
qpwfuzzer.cxx
qpwfuzzer.options
rasfuzzer.cxx
rasfuzzer.options
rtffuzzer.cxx Create an UNO service to do the symbol lookup in sw 2024-03-06 12:34:10 +01:00
rtffuzzer.options
schtmlfuzzer.cxx add a sc-html fuzzer 2024-03-20 18:24:17 +01:00
schtmlfuzzer.options add a sc-html fuzzer 2024-03-20 18:24:17 +01:00
scrtffuzzer.cxx
scrtffuzzer.options
sftfuzzer.cxx
sftfuzzer.options
slkfuzzer.cxx
slkfuzzer.options
svdem.cxx
svgfuzzer.cxx
svgfuzzer.options
svmfuzzer.cxx
svmfuzzer.options
svpclient.cxx
svptest.cxx
tgafuzzer.cxx
tgafuzzer.options
tiffuzzer.cxx
tiffuzzer.options
vcldemo.cxx
webpfuzzer.cxx
webpfuzzer.options
wksfuzzer.cxx
wksfuzzer.options
wmffuzzer.cxx
wmffuzzer.options
ww2fuzzer.cxx Create an UNO service to do the symbol lookup in sw 2024-03-06 12:34:10 +01:00
ww2fuzzer.options
ww6fuzzer.cxx Create an UNO service to do the symbol lookup in sw 2024-03-06 12:34:10 +01:00
ww6fuzzer.options
ww8fuzzer.cxx Create an UNO service to do the symbol lookup in sw 2024-03-06 12:34:10 +01:00
ww8fuzzer.options
xbmfuzzer.cxx
xbmfuzzer.options
xlsfuzzer.cxx
xlsfuzzer.options
xlsxfuzzer.cxx
xlsxfuzzer.options
xpmfuzzer.cxx
xpmfuzzer.options
zipfuzzer.cxx
zipfuzzer.options