Age | Commit message (Collapse) | Author |
|
look for closed cycles of methods i.e. unused code that would not
otherwise be found by the unusedmethods loplugin
Change-Id: I3fb052132d97aabca573bb8e9fc424201b1e2042
Reviewed-on: https://gerrit.libreoffice.org/60875
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
In this step I have changed all calls that use a
B2DPolyPolygon and do filled graphics, added support for
providing needed transformation which will -if supported-
be used. Added buffering of SystemDependentData at
B2DPolyPolygon for that purpose, see comments describing
the current possibilities in the Gdiplus implementation.
Moved lifetime creation/cleanup of SystemDependentDataManager
to ImplSVData due to cleanup problems in the clang build
Tried to use a std::unique_ptr to hold the instance
of a SystemDependentDataBuffer at ImplSVData and cleanup
inside DeInitVCL() right before ::ImplDeInitScheduler. This
works in principle, but scheduler shutdown triggers
ProcessEventsToIdle which leads to repaints and re-creates
the buffer. Will now do exactly as was done with GdiPlusBuffer
before, a simple local static incarnation and a call to
SetStatic() in constructor
Splitted SystemDependentDataBuffer and Timer due to
different LifeTimes. Timer needs to be destructed
earlier than SystemDependentDataBuffer, before
Scheduler::ImplDeInitScheduler() is called from
DeInitVCL()
Change-Id: I2134e4346a183a4cee1be3428c51541cc8867c11
Reviewed-on: https://gerrit.libreoffice.org/60102
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de>
|
|
Number of GenericSalLayout::LayoutText() calls during "dt<F3>" in Writer: 105
-> 89.
Change-Id: I0f2bb241536209cfccc1d78bed6f54bf5c31e627
Reviewed-on: https://gerrit.libreoffice.org/60133
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins
|
|
Number of GenericSalLayout::LayoutText() calls during Writer startup: 2603 ->
1616 (18 -> 1 layouts / included number).
Change-Id: I9a1a1131707bb6bc31683bbf609319f4bc22de92
Reviewed-on: https://gerrit.libreoffice.org/60087
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins
|
|
Number of GenericSalLayout::LayoutText() calls for each & every menu
item till a Writer document is opened: 3 (before) -> 1 (after).
Change-Id: I08a3d174bf15bafbcbce612712f2ab773cd5e085
Reviewed-on: https://gerrit.libreoffice.org/60045
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins
|
|
Change-Id: I33f12f160ac5fea14c9a53c3846c6d31c7fd0084
Reviewed-on: https://gerrit.libreoffice.org/59954
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
This is a first step to allow buffering of system
dependent data, especially (but not only) for the
system-dependent implementations of graphic output.
For example, for B2DPolygon and Win output, it allows
buffering the Gdiplus::GraphicsPath instead of re-
creating it all the time.
To support that, the change includes forwarding the
current transformation to the renderers in SalGraphics.
The current state in VCL is to transform all and
everything to device coordinates at every single
paint.
I have currently started to do this for ::drawPolyLine
implementations. The fallbacks for all systems will
at the start of that method just transform the data
to device coordinates, so all works as before.
This may also be done for FilledPolygon paint in a later
step, but most urgent is FatLine painting.
An arrangement of shared_ptr/weak_ptr is used so that
either the instance buffering (in the example B2DPolygon)
or the instance managing it can delete it. The instance
managing it currently uses a 1s Timer and a cycle-lifetime
management, but that can be extended in the future
to e.g. include size hints, too.
The mechanism it designed to support multiple Data per
buffering element, e.g. for B2DPolygon at the same time
system-dependent instances of Gdiplus and Cairo can be
buffered, but also PDF-data.
This is achieved semi-automatic by using
typeid(class).hash_code() as key for organization.
The mechanism will be used for now at B2DPolygon, but
is not limited to. There is already a similar but less
general buffer (see GdiPlusBuffer) that can and will
be converted to use this new mechanism.
Added vcl/headless Cairo renderer to support given
ObjectToDevice transformation (not to transform given
B2DPolygon)
Added support for CairoPath buffered at B2DPolygon,
seems to work well. Need to do more tests
Moved usage to templates suggested by Noel Grandin
(Noel Grandin <noelgrandin@gmail.com>), thanks for
these suggestions. Adapted Win usage to that, too.
Converted Win-specific GdiPlus BitmapBuffer to new
mechanism, works well. Checked, the manager holds
now a mix of bitmap and path data under Win
Added a cleanup mechanism to flush all buffered data
at DeInitVCL() using flushAll() at
SystemDependentDataBuffer
Adapted Linux-versions of ::drawPolyLine to support
PixelSnapHairline, for now in a simplified version
that still allows buffering. This will also be used
(and use buffering) for the Cairo-fallback in
X11SalGraphics
Change-Id: I88d7e438a20b96ddab7707050893bdd590c098c7
Reviewed-on: https://gerrit.libreoffice.org/59555
Tested-by: Armin Le Grand <Armin.Le.Grand@cib.de>
Reviewed-by: Armin Le Grand <Armin.Le.Grand@cib.de>
|
|
Change-Id: I2c018e2e61707c0d89178b0cb38a0918906e23cb
Reviewed-on: https://gerrit.libreoffice.org/59390
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: Ie236f1dd88f21cf85130ab324787d7b9bd2ff81e
Reviewed-on: https://gerrit.libreoffice.org/59389
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I66fb1ff4b2fdcc211e0a9d5831f6dcc5e564e789
Reviewed-on: https://gerrit.libreoffice.org/59372
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: Ie125f1ac9c14a41e25c3e54beafca2f9e34e4c6f
Reviewed-on: https://gerrit.libreoffice.org/59310
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: Ia4499c2a1515aebaff9edf0e843fc66c7fb1414e
Reviewed-on: https://gerrit.libreoffice.org/59309
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
This means that the pre-computed glyph ids and positions are usable with
multiple dx array or draw base.
So the amount of cached data is smaller, but it can be used in more
situations, most importantly Writer's SwFntObj::DrawText() use-case
(which does GetTextArray() followed by a DrawTextArray(), with different
dx array arguments).
Change-Id: I3bcd1b7a015c2cf9921efa0f3f355f2c627fb652
Reviewed-on: https://gerrit.libreoffice.org/59207
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins
|
|
This allows using the SalLayoutGlyphs obtained from
GenericSalLayout::GetGlyphs() to return early in
GenericSalLayout::LayoutText().
Change-Id: If3a004f983f3578915786668bfcada00227d2eeb
Reviewed-on: https://gerrit.libreoffice.org/59169
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins
|
|
OutputDevice::ImplLayout() does a number of things: first it calls the
expensive SalLayout::LayoutText(), then it does a number of remaing
tweaks to the resulting SalLayout based on the rLogicalPos and pDXArray
parameters.
This means that the resulting layout is not easy to reuse for Writer
purposes, as it typically operates with the same text multiple times,
but with different LogicalPos/DXArray.
Add a new flag that returns the glyph items early, with the hope that
this way the result only depends on the output device state and the
string only, nothing else.
Change-Id: I7c4a23d0f230495c8ba0ebbd1cfc3421e4a6e43c
Reviewed-on: https://gerrit.libreoffice.org/59159
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins
|
|
I plan to use this in SwFntObj::DrawText().
Change-Id: Ic5e167d90a7e72452d8efa9fad06b8067675a225
Reviewed-on: https://gerrit.libreoffice.org/59108
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
|
|
This way SalLayout can be created separately (and potentially reused)
outside vcl as well. Don't reformat the moved code, so git blame keeps
working.
This is a first step towards the goal of
<https://wiki.documentfoundation.org/Development/Budget2017#Text_layout_performance>,
in the context of code outside vcl.
Change-Id: I8b40313b5fa531d3b56c153cbc4b5ca3cec8f8df
Reviewed-on: https://gerrit.libreoffice.org/58851
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins
|
|
Also make the functions constexpr.
Due to slight changes in floating-point arithmetics (90.0 instead of
180.0, M_PI2 instead of M_PI resp.), results might differ in last
digits (usually 17th decimal digit). This has lead to need to tweak
char2dump's PieChartTest unit test.
Change-Id: I20323dd7dab27e4deb408ea4181e390cc05e7cd3
Reviewed-on: https://gerrit.libreoffice.org/58583
Tested-by: Jenkins
Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
This adds the following:
- Retrieving of features using HarfBuzz
- Retrieving of feature definitions from graphite fonts
- Adds description texts of OpenType features
- Tests for retrieving features (Linux Libertine G graphite font)
and making sure the features and definitions are what we
expect.
Change-Id: I51573fe086e59c6228cb546bbfac95ac53824c47
Reviewed-on: https://gerrit.libreoffice.org/55892
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: Ia769b3176aea287cd57414d7ce8e88c6da43883e
Reviewed-on: https://gerrit.libreoffice.org/55622
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
instead of manual reference counting.
Also the releasing of not-currently-in-use LogicalFontInstance objects
from the cache is made less aggressive - we now only flush entries until
we have less than CACHE_SIZE instances, instead of flushing the whole
cache.
Change-Id: Ib235b132776b5f09ae8ae93a933c2eebe5fa9610
Reviewed-on: https://gerrit.libreoffice.org/55384
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I208cf42db4256bb7286222781cf2bf29f843c673
Reviewed-on: https://gerrit.libreoffice.org/55101
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I6f933b54c11a4939870c3a788a4928f2d6f12850
Reviewed-on: https://gerrit.libreoffice.org/53349
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I3d1b88dbd0ff73fddc08d52f50e0efb42daab89b
Reviewed-on: https://gerrit.libreoffice.org/52756
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
This reverts commit 8bc951daf79decbd8a599a409c6d33c5456710e0.
As discussed at
<https://lists.freedesktop.org/archives/libreoffice/2018-April/079955.html>
"long->sal_Int32 in tools/gen.hxx", that commit caused lots of problems with
signed integer overflow, and the original plan was to redo it to consistently
use sal_Int64 instead of sal_Int32. <https://gerrit.libreoffice.org/#/c/52471/>
"sal_Int32->sal_Int64 in tools/gen.hxx" tried that. However, it failed
miserably on Windows, causing odd failures like not writing out Pictures/*.svm
streams out into .odp during CppunitTest_sd_export_ooxml2. So the next best
approach is to just revert the original commit, at least for now.
Includes revert of follow-up 8c50aff2175e85c54957d98ce32af40a3a87e168 "Fix
Library_vclplug_qt5".
Change-Id: Ia8bf34272d1ed38aac00e5d07a9d13fb03f439ae
Reviewed-on: https://gerrit.libreoffice.org/52532
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
which triggered a lot of changes in sw/
Change-Id: Ia2aa22ea3f76463a85ea077a411246fcfed00bf6
Reviewed-on: https://gerrit.libreoffice.org/48806
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Iea173295b7bc5e7f8a5e0215dc13ab32190c6f8f
Reviewed-on: https://gerrit.libreoffice.org/51999
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
its the same across backends
Change-Id: I37c83cbf1139babcd014c7cfdee06a13bea845c7
Reviewed-on: https://gerrit.libreoffice.org/51423
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
which surely are a minority by now
Also drop the GetColorCount() method on OutputDevice and clean up the
remaining call sites to use GetBitCount()
Change-Id: I4e2c6f2523796f7df7f54eb005f1539e34d9ea40
Reviewed-on: https://gerrit.libreoffice.org/51389
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Jenkins <ci@libreoffice.org>
|
|
using
git grep -lwP "Color\s*\(\s*(COL_\w+)\s*\)"
| xargs perl -pi -e "s/Color\s*\(\s*(COL_\w+)\s*\)//g"
and then some manual fixup where the resulting expression no longer
compiled
Change-Id: I0e268d78611c3be40bba9f60ecfdc087a36c0df4
Reviewed-on: https://gerrit.libreoffice.org/50372
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I4f15a41b7a67abe9f2c45b6004948decd58a8360
Reviewed-on: https://gerrit.libreoffice.org/48832
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
|
|
Change-Id: I507320900a47f604d17ed7d402d531a7cbdf744e
Reviewed-on: https://gerrit.libreoffice.org/48331
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I99f703c487b87926bfd9cab5c8ace4c7509a72bf
Reviewed-on: https://gerrit.libreoffice.org/46807
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
...and fix the fallout
Change-Id: Ie514bd95d5a9f990a887566619031e9844c40b92
Reviewed-on: https://gerrit.libreoffice.org/45195
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
to make the ownership passing around more obvious
Change-Id: I147ec6d9cfe7566cf3600685e0730ed741c2d90d
Reviewed-on: https://gerrit.libreoffice.org/43454
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
+ replace list by vector for maFontSubstList
Change-Id: I4d5668611212358c759fa5cf26f5341311551298
Reviewed-on: https://gerrit.libreoffice.org/43855
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I36afe2107e07ffb9b73c0b76be600e3e999a0fd4
Reviewed-on: https://gerrit.libreoffice.org/40116
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Icdc9d009849f2a93f6e1dbba07b1042dbb1ff561
|
|
Change-Id: I67d176003f39992cd0ff9271a7d6ce26d2cb6619
Reviewed-on: https://gerrit.libreoffice.org/38828
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Create SalLayout in StatusBar instead of getting cache through output
parameter.
Pass cache as a constant to the output device afterwards.
Results in a more readable code, with more evident memory management.
Change-Id: I4f949ea8f390b31379f661d611a183ceb3d91c25
Reviewed-on: https://gerrit.libreoffice.org/38651
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tamás Bunth <btomi96@gmail.com>
|
|
Extend lifecycle of SalLayout created by the output device.
A layout is stored for each status bar item and used as a cache.
The layout may be updated through output device method parameters.
This way it's no longer necessary to calculate the layout again and again when
painting the status bar item multiple times, provided that its text does not
change.
Change-Id: I6494c2d6b676e8f4fdda2cde6165ff0755fd4fa2
Reviewed-on: https://gerrit.libreoffice.org/38578
Reviewed-by: Tamás Bunth <btomi96@gmail.com>
Tested-by: Tamás Bunth <btomi96@gmail.com>
|
|
Change-Id: I7d2a28ab5951fbdb5a427c84e9ac4c1e32ecf9f9
Reviewed-on: https://gerrit.libreoffice.org/37280
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I26661684e634aa15a18f78442de15c9db832f319
Reviewed-on: https://gerrit.libreoffice.org/36886
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I038711a0c4d440d452d5b2ae1bfcba5c9305815b
Reviewed-on: https://gerrit.libreoffice.org/36646
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Mostly generated using
make check COMPILER_EXTERNAL_TOOL=1 CCACHE_PREFIX=clang-rename-wrapper RENAME_ARGS="-qualified-name=Rectangle -new-name=tools::Rectangle"
Except some modules have their own foo::tools namespace, so there have
to use ::tools::Rectangle. This commit just moves the class from the
global namespace, it does not update pre/postwin.h yet.
Change-Id: I42b2de3c6f769fcf28cfe086f98eb31e42a305f2
Reviewed-on: https://gerrit.libreoffice.org/35923
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
|
|
improve the plugin to find fields which are only assigned to in the
constructor
Change-Id: I95b5be238ebba83d950ca15093abdd1849740359
Reviewed-on: https://gerrit.libreoffice.org/35613
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
So keeping just nIndex is enough.
Change-Id: I5d3a0e6b4a6ce1305a56cf50e7ff181a098f6412
Reviewed-on: https://gerrit.libreoffice.org/35336
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
|
|
Make sure the default is for kerning to be enable, and honor the setting
to disable it.
This also updates the expectations for chart2_xshape tests for file that
had kerning disabled and was previously ignored.
Change-Id: Icf6bb75e71cae43868fba323ca3c61e4a3e81523
Reviewed-on: https://gerrit.libreoffice.org/34169
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
|
|
The #include was introduced in
96c1ae1d8e78ae8b9bd7d4001645cad24d62b720 with an #if on
HAVE_FEATURE_OPENGL, but that #if was later removed.
Change-Id: I70f839d5224e0a77a1640a5e23cbe64656c9cb1b
|
|
After preinit stage the font list is empty
when creating documents.
Reviewed-on: https://gerrit.libreoffice.org/32108
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Michael Meeks <michael.meeks@collabora.com>
Conflicts:
sd/source/ui/docshell/docshel4.cxx
svtools/source/control/ctrltool.cxx
Change-Id: Ia6938d521626f4b4022f0f993e77c017e4932415
Reviewed-on: https://gerrit.libreoffice.org/32796
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Henry Castro <hcastro@collabora.com>
|