Age | Commit message (Collapse) | Author |
|
Change-Id: I7cae6b3f31b10efc72884bce4bda7bf6b380cbc2
Reviewed-on: https://gerrit.libreoffice.org/60597
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: I14040fd236d399bfce6c4e6e6927a00aabe5b2c5
Reviewed-on: https://gerrit.libreoffice.org/60595
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: I1072642be4fdfa720e61f2d7bad3c2701eb81610
Reviewed-on: https://gerrit.libreoffice.org/60430
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
to make the handling more explicit here
Change-Id: I934fcc7b0da8a160acd904440f18fc6c01ec1ad3
Reviewed-on: https://gerrit.libreoffice.org/60475
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
Revert 656bef6ce3626769bd59fc7c46d781af512dfe0e to use SAL_INFO again,
as there are few if any font related test failures now.
Change-Id: If91908b93394790eb5d0615508e1f64f83f2f9c6
Reviewed-on: https://gerrit.libreoffice.org/60438
Tested-by: Jenkins
Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
|
|
Change-Id: I1ee620200a285936159fed57d0cbbf5320e7d3ec
Reviewed-on: https://gerrit.libreoffice.org/60429
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
|
|
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: If20c05de5521ff2121da4b5973dcf15697bafe95
Reviewed-on: https://gerrit.libreoffice.org/60325
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
This is a regression from the commit 7cb3e475f2fb ("WIN add
SalGraphics* to WinFontInstance"). We need a sensible way to
compare the SalGraphics / HFONT. I'm not sure how to implement
this yet, so just assume unchanged, as the old code did.
Change-Id: I828a41e529976c500eedaef3afd40cf20287f746
Reviewed-on: https://gerrit.libreoffice.org/60256
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Change-Id: Ia530a5947ef5b0718c7076367317c661155c6691
Reviewed-on: https://gerrit.libreoffice.org/60226
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
|
|
Found by reviewing the output of and the code around
git grep -n "unique_ptr.*new.*\[.*\]" | grep -v "\[\]"
The onlineupdater code needs a little bit more attention.
Change-Id: I8b70c7da7db60af52bfac12314a21602ede8bfc0
Reviewed-on: https://gerrit.libreoffice.org/60162
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
|
|
HFONT lookup in ImplDoSetFont depends on the mbVirDev of the
WinSalGraphics. Since we need too look up HFONTs for SalLayout
without changing the corresponding SalGraphics, add a pointer
to the WinFontInstance.
Change-Id: Idb6573ce7267f0019c2183be47621d0eaef8e57b
Reviewed-on: https://gerrit.libreoffice.org/60093
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Everything now uses the HFONT from WinFontInstance, so there
is no need for the additional fallback array.
Change-Id: I15a197b262633569cb95c37689561db5323e1115
Reviewed-on: https://gerrit.libreoffice.org/60092
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Moves the scale factor into the LogicalFontInstance and uses the
Glyphs font fallback level to use the correct font and scale.
Probably the glyphs should be using a rtl::Reference to the
LogcalFontInstance instead of the fallback level. I don't know if
glyphs are evicted from the cache, if the fallback changes. There
is now an assert and all places will use 1.0 as the default
scaling factor, so LO should at least not crash.
Change-Id: I9dd4fc3a5b5924fc379b48a7f71c9eed26b4779d
Reviewed-on: https://gerrit.libreoffice.org/60091
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
After all the LogicalFontInstance refactoring, its FontSelectData
is now immutable, so the HFONT will never need to be changed.
Therefore we can skip the HFONT lookup in WinSalGraphics::SetFont,
if the WinFontInstance already has it set.
All the HFONT handling (basically WinSalGraphics::ImplDoSetFont)
should be moved to the WinFontInstance to further clean this up.
Change-Id: I1c9a9e3414677d77f0f007d7ace653bb53b8474d
Reviewed-on: https://gerrit.libreoffice.org/59988
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
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>
|
|
where used directly, since rtl_allocateMemory now just calls into std::malloc
Change-Id: I59f85bdb7efdf6baa30e8fcd2370c0f8e9c999ad
Reviewed-on: https://gerrit.libreoffice.org/59685
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
SetTimer is a continuous timer, but we want to use it as a
one-shot, so make sure we actually kill it when not needed.
Change-Id: If6f5374346dc530eb664545ade2c2955885941b5
Reviewed-on: https://gerrit.libreoffice.org/59589
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
Nobody else will handle our scheduler or WM_TIMER event, so
there is really no point to return any error value from the
handlers to some lower level function.
Change-Id: I33eac11076a30220cfa11cec8f352bd5c8b69209
Reviewed-on: https://gerrit.libreoffice.org/59588
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
This reminds me - again - that Jenkins doesn't run make check.
It turns out InSendMessage() also returns true, if you process a
nested SendMessage in the same thread. Therefore we have to
remove the SalComWndProc assert and just keep the one in the
Yield call.
Why? Because there seem to be no way to get the information
ReplyMessage has access to, so we could detect the caller /
origin of the send message and implement proper nested call
checks. The alternative would be to change all call sites of
SendMessage to:
if ( !pSalData->mpInstance->IsMainThread() )
SendMessage(...)
else
SalComWndProc(...)
which is the same SendMessage already does.
Change-Id: I991d68a64952dc5d47ba51edd8635c9e8c46614c
Reviewed-on: https://gerrit.libreoffice.org/59538
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: If33fb9d046ea7d54af16a14a77c76c2e173c0a63
Reviewed-on: https://gerrit.libreoffice.org/59499
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: Ifde85786e9e0b0d9c1bdb1163b7c4a0889005323
Reviewed-on: https://gerrit.libreoffice.org/59386
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
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>
|
|
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>
|
|
it remains to be seen if we need the the returned mpFontInstance
of the coretext impl
Change-Id: I48f73188250c3eb014f16ffe0a735191da5cb25b
Reviewed-on: https://gerrit.libreoffice.org/59322
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I1857afa0a9aff39118ba3c242134985f865e37c1
Reviewed-on: https://gerrit.libreoffice.org/59387
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: Id2677cdc386e51ae1549c548c06d095ad0f43b40
Reviewed-on: https://gerrit.libreoffice.org/59385
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>
|
|
i.e. the same pattern as CreateFontSubset and GetGlyphWidths
Change-Id: Ie90d7279c4debe47b4d2739e12cdae86f4e70517
Reviewed-on: https://gerrit.libreoffice.org/59403
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I101ebf470e3635815a445ef761afc62e9d4c70f0
Reviewed-on: https://gerrit.libreoffice.org/59383
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
According to the MSDN, lParam must be cast to DWORD when examining
WM_GETOBJECT messages on 64-bit Windows. The MSDN example also
casts wParam, so in this solution, lParam and wParam are cast to
the appropriate types sal_Int32 and sal_uInt32.
Change-Id: I1edc00778c7da91d2baf5784e4c3f8c441e42eab
Reviewed-on: https://gerrit.libreoffice.org/58312
Tested-by: Jenkins
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Andras Timar <andras.timar@collabora.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>
|
|
This bug trips "assert( !pInst->mbNoYieldLock )".
There is already a special case, introduced in commit 4baec725e0dc
("WIN run main thread redirects ignoring SolarMutex"), to prevent
tripping the assert for a nested SendMessage call.
So this implements a general solution for nested SendMessage calls.
We just have to prevent yielding in a call from an other thread,
as the sending thread still owns the SolarMutex.
This way we can also drop the special handling in
WinSalFrame::ReleaseFrameGraphicsDC.
Change-Id: I7024b081b26f3545af12a3a3a038fe5e5671af3c
Reviewed-on: https://gerrit.libreoffice.org/59275
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
|
|
rtl/string.hxx and rtl/ustring.hxx both unnecessarily #include <sal/log.hxx> (and don't make use of it themselves), but many other files happen to depend on it.
This is a continuation of commit 6ff2d84ade299cb3d14d4110e4cf1a4b8070c030 to be able to remove those unneeded includes.
This commit adds missing headers to every file found by:
grep -FwL sal/log.hxx $(git grep -Elw 'SAL_INFO|SAL_INFO_IF|SAL_WARN|SAL_WARN_IF|SAL_DETAIL_LOG_STREAM|SAL_WHERE|SAL_STREAM|SAL_DEBUG')
to directory vcl
Change-Id: I205fe0f4e80a66cd9c3b19f7e9716411da1d1cf5
Reviewed-on: https://gerrit.libreoffice.org/58221
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
|
|
Change-Id: Iea067e3529de9208bd0a00c276eb03858816bd00
Reviewed-on: https://gerrit.libreoffice.org/57996
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
...from 'int' to 'FLOAT' (aka 'float')
Change-Id: I999fc322d0ace0d32c675a22337077d7a95eed3c
Reviewed-on: https://gerrit.libreoffice.org/58006
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: Id3f41fe72487a1e38ead75c8df6307edd1c3ccab
Reviewed-on: https://gerrit.libreoffice.org/58005
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
Change-Id: Ia3e6f17217b837517faa588ea7f2e72dc5aff6aa
Reviewed-on: https://gerrit.libreoffice.org/57767
Tested-by: Jenkins
Reviewed-by: Jens Carl <j.carl43@gmx.de>
|
|
reorder members of GIFLZWDecompressor to ease initialization.
use rtl_allocateZeroMemory in ImplVectMap to avoid memset in ctor.
Change-Id: Icfcfe73ec7e52988036995d8dbc604361aee893b
Reviewed-on: https://gerrit.libreoffice.org/57481
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
Reviewed-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
|
|
This actually breaks the OpenGL glyph cache, which forced a full
redraw all the time working around the original problem, which
is now fixed with commit fad862e290d727fc9fefe206f6e4b807482c4175.
This reverts commit c5f8a296fcfc08f8ac441cb8300a7565caa50b53.
Change-Id: Ibfc5a24dfc157c42b4cf796b35101191e88a6d15
Reviewed-on: https://gerrit.libreoffice.org/57221
Tested-by: Jenkins
Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
|
|
so there should always be a valid mpWinFontEntry[nFallbackLevel].
Change-Id: I27f7a5a72c50d10a88538d02f1510f583ae6df35
Reviewed-on: https://gerrit.libreoffice.org/57192
Tested-by: Jenkins
Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
|
|
Instead of storing the never changing DC in the WinFontInstance
store the HFONT, which is Windows logical font instance.
Then set the correct HFONT instance from the layout when rendering
its text.
This also changes the HFONT ownership and lifecycle. The HFONT
is moved from the mhFonts to the WinFontInstance, if available,
so it has a proper referenced lifecycle. The mhFonts is still
needed, as embedded font just supply an HFONT and no
WinFontInstance.
Change-Id: Iba62281c710290276f004f0c0177e6d37c849d2c
Reviewed-on: https://gerrit.libreoffice.org/57101
Tested-by: Jenkins
Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
|
|
Change-Id: I7471299c1f0d4c0431e9b896cd2fbf5a056f31f8
Reviewed-on: https://gerrit.libreoffice.org/56892
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
|
|
Since nothing else is implementing the SolarMutex abstract class.
Change-Id: I2a41254af3e9c7534033cdd0bece9dd8e0258b9d
Reviewed-on: https://gerrit.libreoffice.org/56153
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
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>
|
|
since we are now holding these via reference counting, no need to clone
them
Change-Id: I7b0bd86f4a5bca428f7dcd989f838a9aa0c7e179
Reviewed-on: https://gerrit.libreoffice.org/55427
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
and simplify, most places can just leave it alone
Change-Id: Id938ec12d21ef244a15b5e5a72626c5ad0d0e124
Reviewed-on: https://gerrit.libreoffice.org/55499
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
and drop DestroyMenu, all the implementations just delete the object
Change-Id: I673997ea1a9c5216b100cafdc70a8f697732769b
Reviewed-on: https://gerrit.libreoffice.org/55501
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
and drop DestroyMenuItem, all the implementations were just deleting the
pointer
Change-Id: I058817b963988b1e399279f61f45716a2cdba023
Reviewed-on: https://gerrit.libreoffice.org/55500
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|
|
and remove DestroyPrinter, doesn't not anything beyond delete'ing the
object
Change-Id: I25e14b962e65a0e131fae3ff5771c82920a4e375
Reviewed-on: https://gerrit.libreoffice.org/55498
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
|