Age | Commit message (Collapse) | Author |
|
Change-Id: I29239348e36e4963d9708a22ac649b2b1d68bf02
Reviewed-on: https://gerrit.libreoffice.org/82207
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: Ice9a57eedb166672dbdfae6da2a172ab77566a19
Reviewed-on: https://gerrit.libreoffice.org/81983
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
...since 5926b22b5dc33490d23d594b129eb8a70b94ffb0 "The SystemEnvData passed into
the canvas factories appears to be unused". (And the user-provided SvpSalObject
ctor can be removed, at which point the use in SvpSalInstance::CreateObject
should be written without "()" to avoid loplugin:subtlezeroinit.
Change-Id: I4392fa2d697b29c814d7b577a7b1f8c984c05e70
Reviewed-on: https://gerrit.libreoffice.org/80298
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
because the canvas text drawing impl falls back to using an OutputDevice view
of the canvas to use the vcl text drawing apis to achieve vertical text
To get an OutputDevice view of the canvas there is a specific VirtualDevice
ctor available to create a VirtualDevice that, unlike the normal case, doesn't
have its own specific backing buffer, but instead draws to the underlying target
provided via the SystemGraphicsData arg
The svp/gtk impl missed that understanding and provided an ordinary
VirtualDevice with its own backing buffer, not a VirtualDevice that would draw
to the expected target surface of the canvas. So the vertical text was drawn to
a different surface than the intended one, and was just discarded.
The cairo use in the canvas long precedes the use of cairo in vcl itself.
Seeing as text is now rendered with cairo in all cases where the canvas uses
cairo its probably now pointless for canvas to have its own text rendering
path.
Change-Id: Ie3b0a43ca2b746cbfe25e2d0415315b3d5403cd2
Reviewed-on: https://gerrit.libreoffice.org/80162
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I77520b67b988f583dfd277e69d8181b9acdbd904
Reviewed-on: https://gerrit.libreoffice.org/80153
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: Ib9ca0173f3b5bb090ae71f8622fef717a47e8a2b
Reviewed-on: https://gerrit.libreoffice.org/78704
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Id4a0b460ba3c43e80b80ae6e2da9e40a6753e14c
Reviewed-on: https://gerrit.libreoffice.org/77965
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
I don't understand why WidgetDrawInterface, which is basically a
copy of the SalGraphics native controls interface, duplicated it,
instead of cleaning things up.
The whole commit message of commit 8fcfa3853a81, which added this
code, is just: "custom widgets: Custom Widget Themes". That's it.
So this patch does, what the original one skipped: replacing the
SalGraphics interface with the WidgetDrawInterface. One result is
the addition of handleDamage to SalGraphics to correctly handle
the damage done by a custom widget theme to the underlying
SalGraphics implementation.
Change-Id: I5fda1a64b28e6560fb3c62e02b6dcda827f698e2
Reviewed-on: https://gerrit.libreoffice.org/74118
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Platform-specific subdirs are left alone:
android, ios, osx, quartz, win
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.
Change-Id: Icbb906b7fbc960240c73c56d3dae2a78b06a0f53
Reviewed-on: https://gerrit.libreoffice.org/73754
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
We just need AcquireGraphics() to return a KDE5Graphics.
Otherwise the BufferDevice's SVP will use a SvpSalGraphics
instead of the KDE5Graphics, which knows about Qt's theming.
Change-Id: I0ea646df260f2067d61c753f03dee01a003f382a
Reviewed-on: https://gerrit.libreoffice.org/73673
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
The below commit message is relevant for the behaviour fixed by this
change in the Collabora branch cp-6.0 (or core) and collabora-online-4
(of online). The behaviour here in master is broken in different ways,
though, and I am not entirely sure whether this change fixes anything
here. But let's apply it here, too, for consistency.
Until recently we had managed without them on iOS, but that changed
with the recent "Unipoll" work, I think. (Without this change, the iOS
app now runs into assertion failures early on. But note that this
change is not enough to make it work fully again.)
Change-Id: I09d25326ba73ce897da5c91f30530f5b3d5fd272
|
|
An overloaded drawPolyPolygon for zero transparency case used to
exist and it used applyColor to fill cairo path. It was removed
by commit 7034311dce663c895577267110baadbec312d491 and the new
transparency-aware drawPolyPolygon missed cairo_set_operator call
that is present in applyColor. This works OK most of the time
but breaks sometimes when no transparency (~no antialiasing)
is involved.
To fix that add transparency argument to applyColor and use it
where applicable
Change-Id: Ib1b077e38e7f5d30778434d45be67284407a7d16
Reviewed-on: https://gerrit.libreoffice.org/71700
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: Iee7556ee52541ddbf1ef8f31e1ed4697f805a2ac
Reviewed-on: https://gerrit.libreoffice.org/70898
Tested-by: Jenkins
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
|
|
Change-Id: I0ab3055760d8be690bdfff560212db368a0fa261
Reviewed-on: https://gerrit.libreoffice.org/70240
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
This adds basic support for 32bit bitmaps for the SVP backend. For
other backends the support is disabled for now as we need to add it for
each backend separately and enable support.
When this patch is applied it is possible to a Bitmap with bit count
32, but currently no input filter uses this with the exception of the
new PngImageReader(libpng based), which is used only for the icons.
For a general support more things need to be implemented and tested:
- conversion back and fourth between 32-bit and 24-bit + 8bit alpha (or
other supported pairs)
- 'raw' export of the bitmap needs to be handeled properly (like in
SVM import/export) so it creates the correct image.
- input filters need to be checked and converted if this is necessary
- look for possible bugs when drawing transparent bitmaps
- check of UNO API
Change-Id: I7a7be0e6134dfdd9a7aeaef897131bb6e710ae7e
Reviewed-on: https://gerrit.libreoffice.org/69289
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: I1ed43bab00a5bc456032410ccf32b3fd64cc970c
Reviewed-on: https://gerrit.libreoffice.org/68419
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
after
commit 589ce33041df5ca1c3f6d914d5d33d0fffb69f8f
Date: Mon Feb 25 14:38:21 2019 +0200
sal_uIntPtr->sal_uInt64 in SalTimer::Start
Change-Id: I0091ac4750dfb2ca8a3f4b5a544f7ec4f0ee0957
|
|
sal_uInt32 seems reasonable given that this is the number of rectanges
in an image.
And then convert all of the other BeginSetClipRegion methods to use
sal_uInt32 too.
Change-Id: I85a712ec823662ac30f3859051e2b974fb99775e
Reviewed-on: https://gerrit.libreoffice.org/68343
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I58beedfee1a55df971e778ba2aa3b6989ba53663
Reviewed-on: https://gerrit.libreoffice.org/68341
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
* drop the unused ImplLayoutArgs argument
* return a std::unique_ptr<GenericSalLayout>
Change-Id: I150a2a46f67f1ffbbd3ba0ffa68f5bffb30206c8
Reviewed-on: https://gerrit.libreoffice.org/66884
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Change-Id: Icf1a952fbe190fd6c4efd89364136aa2b48050e3
Reviewed-on: https://gerrit.libreoffice.org/66767
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
it's still used on Mac. Revert it until XOL is removed
This reverts 258301879bcd20397c38bbd522dea2c923bd9fc2
Change-Id: I06548a590f370618ad640724a1b9c59a3faceec2
Reviewed-on: https://gerrit.libreoffice.org/64582
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I5d657fa4d6f63b93ad3775a5641d08c6e0f3a615
|
|
Change-Id: I89dcf5a102be19fd1bc314a89538a121522f4a43
|
|
Change-Id: Ic189aecf092b9cffd800e410d2d6e88016c43052
|
|
Some theme colors are set using the style settings, which are
implemented by each backend to correspond to the system theme.
For custom widgets these need to also be set by the library
itself. This commit adds the ground work and sets some of the
colors for windows backgrounds.
Change-Id: Ia65b1605b2b7bef7f01ff1feff2e7470479e626a
|
|
..and fallback the headless dawing also in gtk3 where needed
Change-Id: Ic5da8fa7a04089342db8e2f334ced69691a15217
|
|
Change-Id: I7ec57d18fe99f906aeb6dbb40d0d30c2ac8b51c4
|
|
We don't need the '#define SvpSalGraphics AquaSalGraphics' in
vcl/inc/headless/svpgdi.hxx. The actual AquaSalGraphics we use for iOS
is in vcl/inc/quartz/salgdi.h. I don't remember the details of the
convoluted history behind this.
Change-Id: Ie56c3c93acf7ad89e10a05e75aa4ca7fd596ba98
Reviewed-on: https://gerrit.libreoffice.org/63098
Tested-by: Jenkins
Reviewed-by: Tor Lillqvist <tml@collabora.com>
|
|
On window resize qt5 only redraws changed parts of widgets.
If resize is minor (i.e. height has increased by 1 pixel, for example),
qt5 may consider most parts of widget not changed and skip redrawing them
and redraw only certain widget elements.
But if cairo is used for drawing, on resize previously drawed image of widget
is discarded and new one of different size is created.
New image is empty, but qt5 doesn't issue redraw for whole widget.
To mitigate this issue, data from old image of widget should be copied over
to image of new widget, qt5 will redraw it partially or fully if necessary.
Change-Id: Id950074efece9072bbfc002dfcb6ead813d5aeff
Reviewed-on: https://gerrit.libreoffice.org/62698
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
Tested-by: Jenkins
|
|
Change-Id: Ib066b1d6df90f330f2f93ec639bd7bc59a08c024
Reviewed-on: https://gerrit.libreoffice.org/62507
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: Ia124a4af642e449dc05f5bae2d5ca766bd67bd68
Reviewed-on: https://gerrit.libreoffice.org/62388
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
As we already rely on the GlyphItem's font instance, consequently
this removes the SalGraphics GlyphItem based functions. Also
unifies the glyph bound rect cache handling.
An interesting aspect is the rotated glyph bounding box handling
moved from CairoTextRender to FreetypeFont. It doesn't look like
an implementation detail for Cairo, so it may have been a bug.
Change-Id: I81bbb5d8ee98fb77a1eee05568c456f9e4553023
Reviewed-on: https://gerrit.libreoffice.org/62503
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
I wonder why we have that iOS ifdef in SvpSalInstance::Wakeup()?
Elsewhere in this file we do compile code that uses those same fields
for iOS, too.
Change-Id: Ib801ea81fafcf2296181874018c1df2ceef144a1
|
|
Change-Id: I2fc713be404e68ea2fd0db43d0e93dfd62279da8
|
|
Change-Id: I1072642be4fdfa720e61f2d7bad3c2701eb81610
Reviewed-on: https://gerrit.libreoffice.org/60430
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>
|
|
Change-Id: Id435bb3289dcfd9a7aeca6a661e249085958cb7c
Reviewed-on: https://gerrit.libreoffice.org/60392
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
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: I7b0c737b84f4528a8fba01e2998f525046834b1c
|
|
instead of a FontSelectPattern with an associated LogicalFontInstance
use a LogicalFontInstance with owned FontSelectPatternAttributes
Change-Id: I939f84731fcb8db5ff6484dcfbd2f9199bb50d23
Reviewed-on: https://gerrit.libreoffice.org/59388
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: I8cab3c63ba4dcd08488d0fb34d689692d5cf97f9
Reviewed-on: https://gerrit.libreoffice.org/59347
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I1afae266a5308fa0dbf2488777ddb963e99199c7
|
|
Change-Id: Iff3ddfb4dd75088e39ea7675b085f1bbde2c2045
Reviewed-on: https://gerrit.libreoffice.org/56247
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I5e0d46fa863a9a74063063cc3d22ea15d2544d8b
Reviewed-on: https://gerrit.libreoffice.org/56208
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
since we hold it like that in Bitmap anyway
Change-Id: I6264dfaaae6210cb008df5db8a421fc80c508f5b
Reviewed-on: https://gerrit.libreoffice.org/55458
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
revert part of
commit d4d037619638e1915d15dba81c38a1c9b3157972
loplugin:unusedmethods
SvpSalGraphics::drawBitmap is used by KDE5 code
Change-Id: I2a935aa88d7301c35f3fedec13a9785c497b8eb0
Reviewed-on: https://gerrit.libreoffice.org/55673
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I26a0da1ec9cda9030371977596053a45303756a0
Reviewed-on: https://gerrit.libreoffice.org/55609
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Change-Id: I2ff0f1fff7302cbf884e35879c72df0dc09eede4
Reviewed-on: https://gerrit.libreoffice.org/55597
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|