Mac / Win cairo is not built / used, this cairo code can be removed to
reduce code bloat.
4th Revised version with Android fixes
Change-Id: I6e56850f535ca13b77839b7d67e227c5f39d388e
Reviewed-on: https://gerrit.libreoffice.org/16218
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
like X11SalGraphicsImpl::drawRect does
now the focus borders in the layouts pane of impress update correctly
as the border is added/removed as you pass the mouse over them with
the gtk3 plugin
Change-Id: I1f03065049c2aee2e3c28e7a16777e9b06e34c6e
seeing as the clipping replaces the old clipping and doesn't
further subset the clipping
and presumably, the same must be true for "unclipping"
the device
This nearly killed me to debug and is a crucial bit to make the gtk3 thing work
right.
Change-Id: I21629ef7c8a19b720d05d4e4938f40d4776bee76
this solves the bug of icons in the standard toolbar
under gtk3 of getting rendered with a black background
on first render
Change-Id: I73bae4cd0b9f38c9e9caef8019d773d42b5e8f10
as it now works again after ancient emf import bug is fixed by
commit 5e5b90c128
Date: Thu Feb 26 13:47:58 2015 +0000
in BITFIELDS mode (3) there are *3* pal entries not 12
and two writer qa tests adapted to test for the actual pixel color vs the
underlying pixel data
This reverts commit 3c4f7704e0.
Change-Id: Id94f98f9c620c90fda097fa97fc34c9ee957c483
This reverts commit a785df6a5f plus follow-up
3594c9ce1c "presumably destroy flushes" and
b5b19508da "WaE: -Werror=unused-variable," as it
triggered the assert(nLen <= 8) in ColorMask::ImplCalcMaskShift
(include/vcl/salbtype.hxx) in various tests.
Change-Id: Ic5433522fcd9b8cc7c4e82704cebe7d9bbcea586
That way the conversion from basebmp to cairo becomes unnecessary on blitting
the thing onto a cairo surface for gtk3 and opens a route to using cairo, e.g.
especially for text, to render to basebmp surfaces.
Change-Id: I1d11f503410af9c92a97018e9ee20045412b157e
This was some staggering proportion of tiled rendering documents
with complex clipping; it seems 'clear' is not what memset is for
1bit clip masks.
Change-Id: I9142ffb7d7016603feb7782d6f03b9992b9494e3
Also remove the tools/solar.h included from tools/debug.hxx. The include of solar.h
header was necessary in some cases because of a macro or a typedef that was needed.
Change-Id: Ia6e15d5c2571c58c9e9138b0d0a7f08ae88053c9
Reviewed-on: https://gerrit.libreoffice.org/11075
Reviewed-by: Marcos Paulo de Souza <marcos.souza.org@gmail.com>
Tested-by: Marcos Paulo de Souza <marcos.souza.org@gmail.com>
Previously the clip region would end up being 1 pixel smaller in both
directions than the requested area -- B2IBox considers the bottom-right
point to NOT be included in its area, whereas Rectangle considers the
bottom-right point to be the last point WITHIN its area.
(This is equivalent to the Rectangle's getWidth/GetWidth differentiation.)
This is noticeable e.g. with tiled rendering, where images spanning
a tile boundary are clipped to paint only the region within a given
tile -- however previously they would be clipped by an additional pixel
in each direciton, resulting in an empty border along the bottom-right
edge.
Change-Id: I0ef3098959defc5c82719155c130aa904c04b6b1
No repeatable visible differences in TiledLibreOffice for my test
docs.
Probably we should unify the iOS vcl code even harder with the OS X
code, get rid of the last remains of the pre-tiled-rendering basebmp
bitmap-based stuff.
Change-Id: I2484585d3d0ef5ce758d0a654717d23464464c1a
We don't need the headless SvpSalBitmap code after all on iOS, so
bypass all of svpbmp.cxx for iOS.
I accidentally had left duplicates for some AquaSalGraphics methods in
headless/svpgdi.cxx in addition to the ones in
quartz/salgdicommon.cxx. This is obviously bogus, the linker just
picks the ones that come first in the archive.
(Remember the ugly "#define SvpSalGraphics AquaSalGraphics" trick, so
for instance SvpSalGraphics::setClipRegion actuall is
AquaSalGraphics::setClipRegion.)
It's the Quartz ones we want, as since the switch to tiled rendering
the iOS vcl code is supposed to work much more like the OS X
one. (There is still some significant refactoring to do
there. Possibly no "headless" code needs to be used at all for iOS.)
A couple of functions moved from salgdiutils.cxx (which isn't compiled
for iOS) to salgdicommon.cxx.
The SetState() function now gets used also on iOS, and to properly
undo its CG context stacking I pop it in SetVirDevGraphics() when the
virtual device is being destroyed.
This fixed the rendering of some simple shapes that use overlapping
and transparency, but not that of the "monster" SmartArts.
Change-Id: I2bfaa4129e3641dbdd1dd240c1d07f9bdcfea1b8
Attempt to make some more complex documents render OK.
Stop using SvpSalVirtualDevice on iOS. Use AquaSalVirtualDevice in all
cases. Do use a CGLayer (the AquaSalVirtualDevice::mxLayer field)
after all, like on OS X.
Change-Id: I7f7dc00c526453786cc871fd88dfb73517b15c39
to sal_uInt32
The old mixture of sal_uInt32, ULONG, sal_uLong, sal_uIntPtr gets
consolidated. 4e9 points are more than enough for a SalGraphics.
(cherry picked from commit 03f5dce97331acc1a5e832f956d711a5dc0aac0e)
Conflicts:
vcl/aqua/source/gdi/salgdi.cxx
vcl/generic/print/genpspgraphics.cxx
vcl/inc/os2/salgdi.h
vcl/inc/quartz/salgdi.h
vcl/inc/salgdi.hxx
vcl/os2/source/gdi/salgdi.cxx
vcl/os2/source/gdi/salgdi2.cxx
vcl/source/gdi/salgdilayout.cxx
vcl/unx/generic/gdi/salgdi.cxx
vcl/unx/headless/svpgdi.hxx
vcl/unx/headless/svppspgraphics.cxx
vcl/unx/headless/svppspgraphics.hxx
Change-Id: Iddf806256c7e5403158635e3f5f0049e9382500f
Possibly quite broken intermediate commit. But anyway, now it is
possible to render the tile diretly to a CGContext. Can be seen in
the MobileLibreOffice app when build in the Debug_tile_tester
configuration. See touch_lo_draw_tile() in viewsh.cxx. Unfortunately
the old plain LibreOffice test app is now broken, though, and
displays nothing at all.
This refactoring and hacking in vcl was done in a quite ugly fashion,
with ifdefs etc. But trust me, I did try, several times, for many
days, to get where I wanted in an elegant and clean fashion. But doing
it cleanly meant not being able to actually build it for days while
trying to figure ut which bits go where and which class should be
split into what base and derived class(es), and it was too much for my
limited brain capacity. I just couldn't juggle all the vcl class
structure in my head, especially as I don't have any good
understanding of the general design of it all.
Change-Id: Ia59d6a9cce15a63e63f94e8d8574bef21993fb1f
...with d8dbf1b5db "Turn basebmp::Format into a
proper enum" demonstrating that nDeviceFmt should only take on values enumerated
at basebmp::Format.
Change-Id: I9f5fe2b3d403a8fc50a286b40b9e1bc74079e2cb