Age | Commit message (Collapse) | Author |
|
The code didn't account for topdown bitmaps.
Change-Id: Ia326834cfd6d2d022579fdde24828f7e0a8d8b3e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94643
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
For backends that do the object-to-device coordinates transformation
directly, it's necessary to also convert the size of line width.
But simply multiplying it with the matrix can also rotate the line
width "vector", making it e.g. negative. So don't use just the X
coordinate, use vector length for the transformation, which is ok.
In fact it doesn't even make sense to treat width as a vector, because
a width simply is not a vector (and for this reason it's also not
actually used).
Change-Id: I1241c9cb29155df105170d568a879ebc32b11a5f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93203
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Jenkins
|
|
The cairo-based method on Unix and manual glyph handling way taken
from GL on Windows should be longer be needed, now that using Skia
itself for text rendering seems to work fine.
This reverts more or less reverts the following commits:
b1d3ef798a89d11b853c467fa9ce0fe6ed235735
5ac9a62f3a354db80837bdd1c95b763989b303bb
619959827003814053a5e9ec81acfd07b3aa270a
6f5c85daa0e5073d87d1d7699bfa59af159686ca
ad3580df085b3a3d66eb73cae997ea5ca178ccc1
f109a1ac6fdf0c878d53dfea6fceffd93248608f
59205c742c43b4c456b69c3fd94e7fa35ff3eec0
Change-Id: Ib28b2469c7d6471c227bb2aa08d5485bb24c2fe1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93428
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
Change-Id: I7f5201e2ea6c74329336e16bf219630e38ff92cf
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92264
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ibfb6206751126def10905bb22effbe1a947cd6d6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91968
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
The Windows code needed for Skia text rendering. Like with the X11
code, the font is slightly lighter than with Skia disabled, but
otherwise it seems to work.
And like the X11 code this also requires patching Skia to use
the font we want.
Change-Id: Ib5ba52e4ba51b6523617072b77ed5446e7343f46
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90582
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
I don't know why tdf#98380 explicitly forced ANTIALIASED_QUALITY,
for OpenGL, but with Skia this breaks subpixel AA on LCDs,
where the actual value should be CLEARTYPE_QUALITY. But
DEFAULT_QUALITY simply seems to do the job no matter what.
Maybe the problem with OpenGL was that our code there handles
glyphs as monochrome, but Skia can handle colors, which is
necessary for subpixel AA.
Change-Id: Id7081b120f8e754deb4793423d157a8837e959aa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90581
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
With the handover of transformations to line
draw calls it is no longer feasible to detect
and prepare LineWidth stuff when the old
office definition for hairlnes is used, a
line width of zero. It was managed in the
system-independent part, but now may have to
be prepared in logic and not discrete (pixel)
coordinates. To do so, find and cleanup all
places where 1/1.0 was used as hairline line
width. Adapt all seven graphic subsystems to
handle the line width == 0/0.0 cases
accordingly. Test as good as possible.
Change-Id: I2badc045474dcd51612e50597b8406a55d9dc863
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90057
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
|
|
...now that macOS builds are guaranteed to have std::optional since
358146bbbd1b9775c12770fb5e497b6ec5adfc51 "Bump macOS build baseline to
Xcode 11.3 and macOS 10.14.4".
The change is done mostly mechanically with
> for i in $(git grep -Fl optional); do
> sed -i -e 's:<o3tl/optional\.hxx>\|\"o3tl/optional\.hxx\":<optional>:' \
> -e 's/\<o3tl::optional\>/std::optional/g' \
> -e 's/\<o3tl::make_optional\>/std::make_optional/g' "$i"
> done
> for i in $(git grep -Flw o3tl::nullopt); do
> sed -i -e 's/\<o3tl::nullopt\>/std::nullopt/g' "$i"
> done
(though that causes some of the resulting
#include <optional>
to appear at different places relative to other includes than if they had been
added manually), plus a few manual modifications:
* adapt bin/find-unneeded-includes
* adapt desktop/IwyuFilter_desktop.yaml
* remove include/o3tl/optional.hxx
* quote resulting "<"/">" as "<"/">" in officecfg/registry/cppheader.xsl
* and then solenv/clang-format/reformat-formatted-files
Change-Id: I68833d9f7945e57aa2bc703349cbc5a56b342273
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89165
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Not as easy as hoped, see more info in the adapted
file vcl\win\gdi\gdiimpl.cxx itself.
Change-Id: I265888c65658d5e8a2a04b6f064d2baf3e1d9bad
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88463
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
|
|
and
cid#1458166 Dereference after null check
cid#1458167 Dereference after null check
Change-Id: I68dc7dc1bc78ed64795d353d5d0ffc15cc46b0c9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88347
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I931ac89553f5025d7729274c9e00a095ae65e7cc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88325
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
|
|
Change-Id: I99333fab507d9a7dc7583bfab20388afffd3ec20
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88249
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
|
|
For more info and explanation including state of process
information and discussion(s) see task please.
Adding corrections for gerrit build
Change-Id: Ie10fb8093a86459dee80db5ab4355b47e46c1f8c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88130
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
|
|
Change-Id: I0c786bf401e514f9d86e33d8ab6366fc5dd1f425
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87887
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: Icbf3b6f8f1259e7e50f64e2885b1604f1a98f485
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87894
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
OpenSymbol is crucial for Math; so it is not just some font that
could be used if present, but part of program resources. As such,
it must be available with other program resources, and not depend
on user preferences, like uninstallation of the font from system.
This patch puts it into program/resource/common/fonts, and adds
that path to the paths used for private fonts. This is in addition
to share/fonts/truetype, which is optional, and is usually absent
on most Linux and Windows installations (on Linux, it is usually
in a separate package installing it to system fonts; on Windows,
it is also installed to system by MSI).
Change-Id: Ibf5e12e70dacb62b965035645fc53e9d83cd8793
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86649
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Reviewed-by: Rene Engelhard <rene@debian.org>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
|
|
ColorScanlineConverter::meDestinationFormat was unused ever since the code was
introduced in 6b571ae4608ac15256eb7582f442ce69975370f3 "opengl: change from BGRA
to RGBA color arrangement on Windows".
Change-Id: Ieb530e291270d97613176250f126c223aee8faa9
Reviewed-on: https://gerrit.libreoffice.org/84863
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Jenkins
|
|
This will allow making it GPU-backed, as SkImage can be GPU-backed,
SkBitmap cannot.
Change-Id: I047eefe83741a036d372d39e5fc6a4fa400e6504
Reviewed-on: https://gerrit.libreoffice.org/84559
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
|
|
Change-Id: Ibba507b6c2986a529ae75ad84781825f161f2be5
Reviewed-on: https://gerrit.libreoffice.org/84511
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
...plus loplugin:consttobool and loplugin:fakebool fallout
Change-Id: Ie3d8121815c080b13bea6d9deca1eb138ca56138
Reviewed-on: https://gerrit.libreoffice.org/84515
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
...with a boost::optional fallback for Xcode < 10 (as std::optional is only
available starting with Xcode 10 according to
<https://en.cppreference.com/w/cpp/compiler_support>, and our baseline for iOS
and macOS is still Xcode 9.3 according to README.md). And mechanically rewrite
all code to use o3tl::optional instead of boost::optional.
One immediate benefit is that disabling -Wmaybe-uninitialized for GCC as per
fed7c3deb3f4ec81f78967c2d7f3c4554398cb9d "Slience bogus
-Werror=maybe-uninitialized" should no longer be necessary (and whose check
happened to no longer trigger for GCC 10 trunk, even though that compiler would
still emit bogus -Wmaybe-uninitialized for uses of boost::optional under
--enable-optimized, which made me ponder whether this switch from
boost::optional to std::optional would be a useful thing to do; I keep that
configure.ac check for now, though, and will only remove it in a follow up
commit).
Another longer-term benefit is that the code is now already in good shape for an
eventual switch to std::optional (a switch we would have done anyway once we no
longer need to support Xcode < 10).
Only desktop/qa/desktop_lib/test_desktop_lib.cxx heavily uses
boost::property_tree::ptree::get_child_optional returning boost::optional, so
let it keep using boost::optional for now.
After a number of preceding commits have paved the way for this change, this
commit is completely mechanical, done with
> git ls-files -z | grep -vz -e '^bin/find-unneeded-includes$' -e '^configure.ac$' -e '^desktop/qa/desktop_lib/test_desktop_lib.cxx$' -e '^dictionaries$' -e '^external/' -e '^helpcontent2$' -e '^include/IwyuFilter_include.yaml$' -e '^sc/IwyuFilter_sc.yaml$' -e '^solenv/gdb/boost/optional.py$' -e '^solenv/vs/LibreOffice.natvis$' -e '^translations$' -e '\.svg$' | xargs -0 sed -i -E -e 's|\<boost(/optional)?/optional\.hpp\>|o3tl/optional.hxx|g' -e 's/\<boost(\s*)::(\s*)(make_)?optional\>/o3tl\1::\2\3optional/g' -e 's/\<boost(\s*)::(\s*)none\>/o3tl\1::\2nullopt/g'
(before committing include/o3tl/optional.hxx, and relying on some GNU features).
It excludes some files where mention of boost::optional et al should apparently
not be changed (and the sub-repo directory stubs). It turned out that all uses
of boost::none across the code base were in combination with boost::optional, so
had all to be rewritten as o3tl::nullopt.
Change-Id: Ibfd9f4b3d5a8aee6e6eed310b988c4e5ffd8b11b
Reviewed-on: https://gerrit.libreoffice.org/84128
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
...in preparation for wholesale replacement of boost::optional with
o3tl::optional, which will be an alias for either std::optional or
boost::optional, and std::optional only has value_or.
boost::optional::value_or was added with <https://github.com/boostorg/optional/
commit/3984c9f9a157ef116cea69bc8bb20f433320eb61> "Added function value_or()",
which according to git-describe first appeared in tag boost-1.56.0. We appear
to have no strict Boost baseline (the closest we get is with
> [AC_MSG_ERROR(boost/spirit/include/classic_core.hpp not found. install boost >= 1.36)]
in configure.ac), and at least CentOS 7 TDF machine tb76 only has
boost-devel-1.53.0-27.el7.x86_64. However, any environment using Xcode < 10
that needs to make o3tl::optional fall back to boost::optional should use
--without-system-boost, and external/boost is currently at 1.69.0, so should be
safe.
ATTENTION: In isolation, this commit will break in any environment that uses
Boost older than 1.56.0. It requires the following commit introducing
o3tl::optional. (But doing these changes in individual commits was deemed more
valuable than supporting a hypothetical future git-bisect against an old Boost.)
Change-Id: Ib31affa3eebf0d0029d8620dc6abb7a60f6c7629
Reviewed-on: https://gerrit.libreoffice.org/84127
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: Ibf3142a88def08fd9b531b39bde5643aa8498f7f
Reviewed-on: https://gerrit.libreoffice.org/83908
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
|
|
At least the KF5/Qt5 VCL plugins passes fine.
Change-Id: I033ddf6ae9cc663729ca459cdc514dc0fa51ddc2
|
|
This actually fixes a number of drawing problems (e.g. highlight
in popup menus), it seems the other code path is buggy.
Change-Id: Iea697f577d08d20e338224d5ff5b3bf7b653f8d1
|
|
There are two cases in WinSalGraphics::DrawTextLayout(), with and
without cached glyphs:
- Cached case DeferredTextDraw() gets data as BGRA with the glyph
drawn in white, it just needs to be modulated to the proper color
and drawn.
- Uncached case DrawTextMask() gets data as BGRA with A invalid,
it must be used as mask for the color to drawn, but without
the inverse alpha VCL idiosyncracy that DrawMask() handles.
Change-Id: I05dcec994df68d5986cd85cffa42a8f9f23c42c4
|
|
If the rectangle is empty, there is nothing to draw. This also avoids
problems with WinSalVirtualDevice::ImplCreateVirDevBitmap() calling
CreateDIBSection() with zero dimensions.
Change-Id: I3a56e64fc32cfb855443f4ab665d53604d724d9b
|
|
The shared X11 implementation depends on XRender, which doesn't make
any sense.
Change-Id: I82f36e0835a993a8b226af211d8635336960d7ec
|
|
Currently based on identifying the SkBitmap's by their getPixels(),
but this may need changed later since it's probably going to be
more performant to use SkSurface.
Also move the cache pruning out of AllocateTexture(), as that may
possibly remove elements that would be used by DrawCachedGlyphs().
Change-Id: Ide2de752f634593b97573667af49b7aa9ec1f47f
|
|
Change-Id: If66e92aef04cd5bbeb22b8c5da65b7b9c77fed23
|
|
Basically just remove 'OpenGL' from names of most of the classes,
turn them into base classes that have OpenGL subclasses that
actually implement the functionality.
Change-Id: Idf1f347cebc2a417bda37d6955201c775ecb0890
|
|
Change-Id: I5106f13682963b81753f79c3203d4ef7387664fe
|
|
Change-Id: I1562bd2cfd1862947042bef3343aefd851a65002
|
|
I don't see why this should be OpenGL-only. For WinSalGraphicsImpl
it's a no-op anyway, and for other Impl's it may be useful to find
out that they have been in fact resized. For Skia this is necessary
because Init() the first time may get called with empty size.
Change-Id: I4a8fa0fc633b415735d3633e89f208ab1c1f1229
|
|
Change-Id: I81fea38cd737a8be74e6ece333ca37cc434a1c33
Reviewed-on: https://gerrit.libreoffice.org/83765
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
takes the load time from 24s to 21s for me.
The cache was determined experimentally for this document.
Change-Id: I34c78d1ff99cb8e72b274a201ded61d23e66941a
Reviewed-on: https://gerrit.libreoffice.org/83470
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
...plus follow-up loplugin:implicitboolconversion and loplugin:redundantcast
Change-Id: I9fc9c5cb46fbb50da87ff80af64cb0dfda3e5f90
Reviewed-on: https://gerrit.libreoffice.org/83207
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Replace them with default initialization or calloc
Change-Id: I747f53c2ced2d0473fd5a5ede4f8520a0633dcc1
Reviewed-on: https://gerrit.libreoffice.org/80805
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: Ib8b2bc1c5f7b27a646036ce23cae2b6a06edd038
Reviewed-on: https://gerrit.libreoffice.org/79922
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: I08da288a88c2bce1d4250ec77f17bd483e6bc09c
Reviewed-on: https://gerrit.libreoffice.org/79911
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
none of our supported hardware uses these any more
Change-Id: Ic95d6df619a05df0bec1f5870596cb2bb3bcc6cb
Reviewed-on: https://gerrit.libreoffice.org/79476
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Iad0bbbf1e2a522778fe4a88632bd7cbce4e2008c
Reviewed-on: https://gerrit.libreoffice.org/78661
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
the wollmux has change the dialogs form swing to the LO-Dialogs,
and when printig with MS-PDF then LO hang on this line.
The reason is wollmux run in it own thread, but this thread has
no win-message-pump, when the printer-driver would open the
FileSave-Dialog then it hangs, because the message-pump
is missing in this thread.
The swing has made it own win-message-pump for this
thread.
Change-Id: Ia5131464dcc5f166133a3302d29550e945dd1026
Reviewed-on: https://gerrit.libreoffice.org/78170
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
Reviewed-by: Juergen Funk (CIB) <juergen.funk_ml@cib.de>
Tested-by: Juergen Funk (CIB) <juergen.funk_ml@cib.de>
|
|
Move getting UPEM and font tables to the functions and use HarfBuzz API
to get them. In the future we might stop reading the tables ourselves
and use HarfBuzz metrics API instead.
Change-Id: I3f4511628fd33200bae94cdcd96479ba3e6d2fba
Reviewed-on: https://gerrit.libreoffice.org/78081
Tested-by: Jenkins
Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
|
|
Change-Id: Id4a0b460ba3c43e80b80ae6e2da9e40a6753e14c
Reviewed-on: https://gerrit.libreoffice.org/77965
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I7ca0f556164b6bc462cee3c5532733dbd6b68a2b
Reviewed-on: https://gerrit.libreoffice.org/77455
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I2e2093ac3c8c6833b70d4932bc12a82a4483bde5
Reviewed-on: https://gerrit.libreoffice.org/76499
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
Change-Id: Id8f72781d0338344bc96efb5cf62b67174aa80eb
Reviewed-on: https://gerrit.libreoffice.org/75152
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
|
|
This hides all the data, which shouldn't change after init. Real
const makes a lot of problems for copying, so this is the 2nd
option to just add getters for private data. While at it use
typed_flags for the GlyphItemFlags.
Change-Id: Ic1eeabe2398f6c30080fdd516285b72c620b11be
Reviewed-on: https://gerrit.libreoffice.org/75147
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|