Age | Commit message (Collapse) | Author | Files | Lines |
|
Change-Id: I3155b075b150f04d0dc93833ab9b6f57eefe71db
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165130
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
|
|
.. instead of a Primitive2DContainer.
The container very frequently contains only a single item, since
the decomposition method often sticks only a single top-level node
in there, so it turns out to be a net loss overall, memory
consumption-wise.
Also, if we return a single Primitive2DReference from
a BufferedDecomposition, that maximises the sharing of
data between the BufferedDecomposition objects at the
bottom of the decomposed tree, and objects higher up.
Change-Id: Iaf272e60e2997299cc35a1bd209c51b6b79e9a8b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162976
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
just use the wrapped officecfg methods instead of:
IsSolidDragCreate
IsRenderDecoratedTextDirect
IsRenderSimpleTextDirect
GetQuadratic3DRenderLimit
GetQuadraticFormControlRenderLimit
IsTransparentSelection
Change-Id: Ie0f3ec0f8fdbbf08facfff1a372c666c8a0c8979
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160654
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
|
|
There are the classes BufferedDecompositionPrimitive2D
and BufferedDecompositionGroupPrimitive2D that offer
a unified mechanism to preserve/buffer the decomposition
of a Primitive, independent of the complexity. This may
include e.g. the pixel representation of a 3D Scene,
for Charts/CustomShapes and others.
Until now these were refreshed when the objects change,
or when the buffered decomposition decides that it is
necessary, but there was no general mechanism in place
to clean these up while the Primitive owning them was
alive/used. This is not a big thing in Draw/Impress
since this would only be relevant when zooming deep into
a SdrPage, so the non-vislible parts would still hold
data that would not be needed. But for Calc and Writer
this is more relevant: A 3D Chart on the 1st page of a
Writer document would be held buffered all the time a
user would work on pages below that. This is good for
guaranteeing fast re-visualization when scrolling up
again, but until then would just block memory.
So I added this general mechanism that allows activating
flushing timer-based, on Seconds. The default is null
seconds, thus deactivated. It should only be used for
Primitives that can get expensive, not for all.
NOTE: I checked activating for all Primitives to be on
the safe side, works.
It is now (initially) activated for:
- GlowPrimitive2D
- GraphicPrimitive2D
- MetafilePrimitive2D
- ScenePrimitive2D
- ShadowPrimitive2D (softShadow)
- SoftEdgePrimitive2D
- SdrCustomShapePrimitive2D
- SdrGrafPrimitive2D
These are the usual suspects that may use some memory
to buffer their decomposition (for good reasons, each
repaint uses it). Other Primitives which may show need
to be treated this way can easily be added, just by
calling setCallbackSeconds(s) in their constructor. This
is true for all Primitives derived from the two classes
mentioned above.
NOTE: Too short buffering times are *not* useful - e.g.
for a expensive-to-be-recreated 3D chart representation
this may not pay out, so I chose times in a way that try
to respect this.
NOTE: This change needs
7397fa7cdfc33f5a079df42e4d6cfa59ae9e062d to work
correctly (thanks to sberg for this). Without this the
office hangs/does not terminate regularly in trying to
destroy the 'TimerManager'.
Change-Id: Id4802afcb6d12480bb2935cc1ef67fe443b3b788
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160926
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
|
|
Change-Id: I628574420b9ac84f6f249002236d8970e348f0b5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160590
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
|
|
For this purpose allow reduced 3D quality in some circumstances
and make a compromize between quality and speed. This is
balanced between those two targets, fine-tuning/experimenting
can be done with some static local values if needed.
Change-Id: Ib00b6e9c3c3ff165d82ff12d23bf15196f0a0ee0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160467
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
|
|
we no longer need to wrap it in the framework XBitmap
implemenation
Change-Id: I0dc56ad63364e2c5a4cedd5e70d4ae7ea7eae563
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142746
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ic593974a44d9e327e0385c7ffaaa6d42576ae01a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135911
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I8a3245c6a4d687edbc95cf28b2932d80c86a7b65
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135828
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ide40a08f70cbb30a4f18c496d986feb78e5dfa1c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135103
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Rather than make all the BasePrimitive2D classes bear the cost of being an UNO
object, we just wrap the top level BasePrimitive2D in this class when we need
to pass them over UNO.
This reduces the locking overhead when doing normal drawinglayer operations,
and reduces the size of drawinglayer objects and the cost of initialising
them, which shaves 5% off the load/display time of a large barchart.
Add new drawinglayer::convertPrimitive2DContainerToBitmapEx utility
method to avoid needing to convert to Sequence<XPrimitive2D>
Change-Id: I553eaa4c16ba016b098cb21f6c55f5008f0d9b53
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126487
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ie6594c9961aba5517c6ff61fb3bc1142081b1197
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127225
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
follow up to commit 1103727fb24b368419ea0cfd2382560ef6b82f43
Change-Id: I227042f4703f3f4c18a8dc0355f044d2ad7dfb2b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126838
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
Change-Id: I99e13b91afbf0d4d36b13e463fde2dec1c4d9e4e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122392
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
the default WeakComponentImplHelper wants to allocate two child objects
(osl::Mutex and BroadcastHelper).
So use a custom re-implemenation that does not need to allocate any
child objects.
Change-Id: I288e58558398e39daa0d4b11e0b60a924445240d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122381
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I95918275653714577e2d6728dd3947c7fbb66d8f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121360
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Idba40d9816f29c0e4bc4a468b8c0a2cbb74d09d3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119481
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
We can just implement the simple getPrimitive2DID method in all
primitives. The ImplPrimitive2DIDBlock macro doesn't save us
anything.
Change-Id: I02f44d4891d7b340220890bf52a7ebfc8e41850a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117509
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
to reduce the churn, we leave the existing constructor in place,
and add a clang plugin to detect when the value passed to the
existing constructor may contain transparency/alpha data.
i.e. we leave expressions like Color(0xffffff) alone, but
warn about any non-constant expression, and any expression
like Color(0xff000000)
Change-Id: Id2ce58e08882d9b7bd0b9f88eca97359dcdbcc8c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109362
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I631f4ca5a2bdcb8c7691a9a8c71d3de15377213b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109390
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
They are basically the same thing, but alpha is the preferred term
these days.
Also improve the mixing algorithm,
1 - opacity
is
255 - opacity
not
256 - opacity
since the range of sal_uInt8 is 0..255
Change-Id: I8788ac79285ab25c8d322b05817dffd3745fd699
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108963
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ieb5f682ec627c8d8ddfc286ec0e4422104b4d847
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92494
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
This reverts commit c71656f51a09e88ecae4f3423c96fee84778647d.
Reason for revert: I give up
Change-Id: I2a09c36c1f0d731f4d3f7d809364de7efa8d8a58
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92426
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Remove the following settings:
QuadraticFormControlRenderLimit
Quadratic3DRenderLimit
RenderSimpleTextDirect
RenderDecoratedTextDirect
SnapHorVerLinesToDiscrete
which have no way to be set from the user interface.
Change-Id: Ie96531425f5ba6021ade4f247b18b99092fd7e5f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92275
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
as preparation to have drawinglayer module
independent from vcl in the future
Change-Id: Iaa01370f27b51cba5114a54f37d1ec73d0719918
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92048
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
|
|
Change-Id: Iad5c414861eb807e6246b8a988b94d66ef5f687d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90776
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: If2644743ab0d9b78d42d1d2fe6fa22c83472d2c1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87065
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.
Change-Id: I0968cfd6a94c20e6b0d324f068ca658d7d5c0296
Reviewed-on: https://gerrit.libreoffice.org/83294
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
It seems this is not stable yet:
- https://dev-builds.libreoffice.org/crashtest/27e3ed0d25735603d2c82744e3a8f5f3e0a8d043/backtraces/task395-core.16181.backtrace.txt
- https://ci.libreoffice.org/job/gerrit_linux_gcc_release/35032/console
Go back to disabling that by default for now.
Change-Id: I6cd870d2661bfb99b8ed5008c2542fede05ae8c8
Reviewed-on: https://gerrit.libreoffice.org/74513
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
|
|
These areas are zero when you start to draw a 3D object with the mouse.
Change-Id: I003ec06b42351b5c4b2b59b9f908fb82ab6e9b35
Reviewed-on: https://gerrit.libreoffice.org/71373
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.
Change-Id: I8daf57df5b8f9c609d4f3ca44bae7366addceb6c
Reviewed-on: https://gerrit.libreoffice.org/69151
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
detect static variables that can be made const.
Thanks to mike kaganski for suggesting this.
Here I introduce a new plugin feature - using markers
in nearby comments to disable the plugin for specific
vars.
Some of this stuff was old debugging code. I removed the stuff
that was older than 5 years.
Change-Id: I6ec7742a7fdadf28fd128b592fcdf6da8257585c
Reviewed-on: https://gerrit.libreoffice.org/68807
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ic238bb5291539fd1b7e98cb4afc9b25f37e7d528
Reviewed-on: https://gerrit.libreoffice.org/64710
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I1df70b7dff5ebb6048f7fc618789faa15ca5d422
Reviewed-on: https://gerrit.libreoffice.org/61967
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ib6f7bfd2392daa5512d5fa68b69428ae9c8876f9
Reviewed-on: https://gerrit.libreoffice.org/57488
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
And fix leak in XclExpRowBuffer::Finalize, was not freeing the
synchronous task it creates
Change-Id: Id1e9ddb5d968e6b95d9d2b5ca0c9e50774580182
Reviewed-on: https://gerrit.libreoffice.org/56874
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I3b21b4438f5762aa9960a121ba5826f47d6e9c68
Reviewed-on: https://gerrit.libreoffice.org/53603
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
collection of heuristics to look for local variables that are never read
from i.e. do not contribute to the surrounding logic
This is an expensive plugin, since it walks up the parent tree,
so it is off by default.
Change-Id: Ib8ba292241bd16adf299e8bba4502cb473513a06
Reviewed-on: https://gerrit.libreoffice.org/52450
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
regression from
commit b10c7022f1be6e4825269bd5872575b5b53744ef
"use RawBitmap in BPixelRasterToBitmapEx"
fix attempt at fixing it in
commit 3d400321910ff0fe89ab8c70c59432e676cb1340
"tdf#116001 Incorrect Colors in Chart Wall Area"
was incomplete. the drawinglayer code was (a) not initialising the
background transparency on all pixels and (b) not calling the Color
constructor correctly.
Change-Id: I1cf7d7d5eb67ba472e17790b18c33d8e4b97ae4c
Reviewed-on: https://gerrit.libreoffice.org/50764
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
regression from
commit b10c7022f1be6e4825269bd5872575b5b53744ef
"use RawBitmap in BPixelRasterToBitmapEx"
we need to implement alpha support in vcl::bitmap::CreateFromData
Change-Id: I68bebbe1dd15e3bb04de312309c1631d6bb7fe2d
Reviewed-on: https://gerrit.libreoffice.org/50556
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
part of making BitmapWriteAccess an internal detail of vcl/
Change-Id: I28b9e0e0b414489c564fb2f23c4de2390ad175c1
Reviewed-on: https://gerrit.libreoffice.org/49964
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
by extracting out the Y scanline computation from the innermost
loop.
Inspired by commit 078d01c1b6cb9bbd80aeadc49a71cc817413164c.
Change-Id: Ic3c1827c01ed3aec629975749a551c7a68ae4a5e
Reviewed-on: https://gerrit.libreoffice.org/48926
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
auto-rewrite with <https://gerrit.libreoffice.org/#/c/47798/> "Enable
loplugin:cstylecast for some more cases" plus
solenv/clang-format/reformat-formatted-files
Change-Id: I38baea4d1dd354e48eb90fc2fc385ef60485b5e3
|
|
Insert constructor everywhere, except a couple places that apparently
want to compare GetMapUnit().
Change-Id: I1910deb60562e5e949203435e827057f70a3f988
|
|
Reduce potential confusion with the global tools namespace. Will
hopefully make it possible to remove the annoying initial :: when
referring to the global tools namespace. Unless we have even more
tools subnamespaces somewhere.
Thorsten said it was OK.
Change-Id: Id088dfe8f4244cb79df9aa988995b31a1758c996
Reviewed-on: https://gerrit.libreoffice.org/42644
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
|
|
Change-Id: Iae081567c4fa5b88edbd12cf2fbafd2b8f31b300
Reviewed-on: https://gerrit.libreoffice.org/41214
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
had to change the structure of the plugin considerably, was too messy to
structure it to do the calculations on a per-function basis
Change-Id: I4edee7735f726101105c607368124a08dba21086
Reviewed-on: https://gerrit.libreoffice.org/40516
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ib497b284a80fae69930f226d2e70368cb9e962ef
Reviewed-on: https://gerrit.libreoffice.org/37072
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I1ac11a2481c0f4d8be1e1fd7c7637ac0ece3d65c
Reviewed-on: https://gerrit.libreoffice.org/35558
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
which lets us avoid constructing the decomposition when we are only
interesting in the bounding box, e.g. for hit testing
Change-Id: Icd8d430b75d207063f1db70e5a0822d5d82a7d00
Reviewed-on: https://gerrit.libreoffice.org/30835
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
|