summaryrefslogtreecommitdiff
path: root/vcl/headless
AgeCommit message (Collapse)Author
2014-07-10svp clipping again: Rectangle dimensions don't map directly to B2IBox.Andrzej Hunt
This is the same as in 80f3211a7aeff221718703c445be4c753e0a1067. Change-Id: Ibb981da064b4fc97fd865be2decabd8798de7380 Reviewed-on: https://gerrit.libreoffice.org/10186 Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Tomaž Vajngerl <quikee@gmail.com>
2014-07-07svp clipping: Rectangle dimensions don't map directly to B2IBox.Andrzej Hunt
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
2014-06-25Fill the alpha channel by default for vcl 32-bit bitmaps too.Andrzej Hunt
Otherwise the alpha channel for bitmaps created directly is empty, indicating a transparent bitmap (although we don't actually handle transparency). This complements hardcoding of the alpha channel in basebmp. VCL bitmaps can be copied bit-for-bit directly into a basebmp bitmap, hence it's important to make sure we fill the alpha channel in vcl too. Conflicts: include/vcl/salbtype.hxx Change-Id: Icb2fa417db6625a6ffa6bd82eb5773ff75be5a3c
2014-06-25Allow passing in external buffers to svp's VirtualDevice.Andrzej Hunt
We also want to be able to set whether or not the buffers should be painted to top down, so add that parameter as necessary (default seems to be false, however e.g. gtk requires this to be true, i.e. needed for tiled rendering). Change-Id: Id98882e4c7f62508ae5a976c0d8df743460a4ab2
2014-06-25svp: deduplicate bitcount->colourspace mapping and allow overriding.Andrzej Hunt
Although svp defaults to BGR, we might want to use alternative formats (e.g. for tiled rendering to bitmap buffers which are to be used in e.g. gtk), it is probably safest to keep the current defaults but allow the user to change to whatever format they may require. (This currently only makes sense for the 32-bit RGBA/ARGB/etc. formats. However the 23 bit formats could potentially be expanded to allow a similar RGB/BGR choice.) Change-Id: I70bd3d6e7d297faef163b910f576655efee4cb3f
2014-04-22With tiled rendering for iOS there is no need for a "frame buffer"Tor Lillqvist
The resulting dropping of the basebmp code reduces app size by 0.7 MB. Change-Id: Id263873ed5c4bb2435d929a1319fedeedb6daa14
2014-04-10Avoid pointless ifdef for iOS inside code not compiled for iOS anywayTor Lillqvist
The whole of svpbmp.cxx and svpvd.cxx are nowadays ifdeffed out for iOS. Change-Id: Iac1f66457dc315ea86f86d12e1f6eb5bf4bcbb8c
2014-04-08Clean up function declarations and some unused functionsStephan Bergmann
Change-Id: I382289c7188dfdc9839ff9e6362b6e039ffc5f9e
2014-04-02Kill superfluous vertical whitespaceTor Lillqvist
Change-Id: I81ce8fd7022bf283db668705efdfb0666f87bde9
2014-03-26First batch of adding SAL_OVERRRIDE to overriding function declarationsStephan Bergmann
...mostly done with a rewriting Clang plugin, with just some manual tweaking necessary to fix poor macro usage. Change-Id: I71fa20213e86be10de332ece0aa273239df7b61a
2014-03-26Seems we don't need any basebmp stuff in AquaSalGraphics on iOSTor Lillqvist
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
2014-03-26Bin DestroyVirtualDevice(): Just use delete directly at call sitesTor Lillqvist
Change-Id: I47c67d3d89ab22b07b3ec6fe7ea6e035d21e85b6
2014-03-24Fix a few problems in the iOS vcl codeTor Lillqvist
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
2014-03-20cosmetic: split PhysicalFontFamily/Collection out of outdev3.cxxNorbert Thiebaud
Change-Id: Iae8eb15413c0c069c14edd92c94ecb0113d9d371
2014-03-20cosmetic: split PhysicalFontFace class it its own source/headerNorbert Thiebaud
oudev,2,3,4,5,6 are a dumping ground for a lot of things chipping at it one class at the time... organize the #include of the impacted source while at it. Change-Id: I57bbb1f9e3c6b2ac6b3ca127e5976bf16f3e3cf8
2014-03-20rename ImplDevFontList to PhysicalFontCollectionNorbert Thiebaud
again, convergence of teh naming with what is normally used in the underlying native API, where FontFace ) FontFamily ) FontCollection Change-Id: Ieb098b782ea828a3365f00d07914b9566278caba
2014-03-20Remove unnecessary vcl::SolarMutexObjectStephan Bergmann
Change-Id: I6dfdd7d5d211b66019dfbe364101140e28a3584d
2014-03-10Hack on the iOS vcl codeTor Lillqvist
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
2014-02-28Rename GetGraphics to AcquireGraphicsChris Sherlock
Currently there are a number of classes that have a function called GetGraphics(). It returns a SalGraphics instance if one is available for the sole use of the caller. Some variants keep a pool of available SalGraphics and return one not currently in use by anyone, creating extra ones on demand, sometimes up to a set limit and returning NULL on reaching that limit of simultaneously in use SalGraphics. This is confusing. What is really happening from the perspective of the calling is that is that we are attempting to *acquire* ownership of a SalGraphics instance. Therefore, rename GetGraphics to AcquireGraphics() which returns a handle to a SalGraphics if we can acquire a free graphics instance, and NULL if we cannot, which makes it cleared that ReleaseGraphics should be called on the result of AcquireGraphics. The classes that were changed to include the new acquire function are: * SalFrame * SalVirtualDevice * SalInfoPrinter * PspSalInfoPrinter * X11SalFrame * X11SalVirtualDevice * GtkSalFrame * KDESalFrame * TDESalFrame * WinSalFrame * WinSalInfoPrinter * WinSalVirtualDevice * SvpSalFrame * SvpSalVirtualDevice * AquaSalFrame * AquaSalInfoPrinter * AquaSalVirtualDevice Change-Id: Ic39c08a4bcaf665ae08ba2808cd03b0e80790c46 Reviewed-on: https://gerrit.libreoffice.org/8070 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2014-02-28sal_Bool -> bool in mostly vcl moduleChris Sherlock
Conflicts: include/vcl/settings.hxx svtools/source/table/tablecontrol_impl.cxx sw/source/core/frmedt/fecopy.cxx vcl/inc/canvasbitmap.hxx vcl/inc/headless/svpframe.hxx vcl/inc/unx/salframe.h vcl/inc/win/salframe.h vcl/inc/win/salprn.h vcl/inc/win/salvd.h vcl/osx/DragSource.cxx vcl/osx/DragSource.hxx vcl/osx/DropTarget.cxx vcl/osx/DropTarget.hxx vcl/osx/OSXTransferable.cxx vcl/osx/OSXTransferable.hxx vcl/osx/clipboard.cxx vcl/osx/clipboard.hxx vcl/osx/salprn.cxx vcl/qa/cppunit/canvasbitmaptest.cxx vcl/source/components/fontident.cxx vcl/source/control/edit.cxx vcl/source/control/spinfld.cxx vcl/source/gdi/gdimtf.cxx vcl/source/gdi/virdev.cxx vcl/source/helper/canvasbitmap.cxx vcl/source/window/dockwin.cxx vcl/unx/generic/dtrans/X11_selection.hxx vcl/unx/kde/UnxFilePicker.cxx vcl/unx/kde/UnxFilePicker.hxx vcl/unx/kde4/KDE4FilePicker.cxx vcl/unx/kde4/KDE4FilePicker.hxx vcl/unx/kde4/KDESalFrame.hxx Change-Id: I9866d985da86dea2a56feff23f91c1467a1636b0 Reviewed-on: https://gerrit.libreoffice.org/8219 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2014-02-26Removed unnecessary comment decorations from VCL sourcesChris Sherlock
Conflicts: vcl/headless/svpgdi.cxx vcl/source/app/dbggui.cxx vcl/source/app/help.cxx vcl/source/app/idlemgr.cxx vcl/source/app/settings.cxx vcl/source/app/stdtext.cxx vcl/source/app/svdata.cxx vcl/source/app/svmain.cxx vcl/source/control/fixed.cxx vcl/source/control/ilstbox.cxx vcl/source/control/spinbtn.cxx vcl/source/filter/sgfbram.cxx vcl/source/filter/sgvmain.cxx vcl/source/filter/sgvtext.cxx vcl/source/filter/wmf/emfwr.hxx vcl/source/filter/wmf/winmtf.hxx vcl/source/filter/wmf/wmfwr.hxx vcl/source/fontsubset/cff.cxx vcl/source/fontsubset/fontsubset.cxx vcl/source/fontsubset/xlat.cxx Change-Id: Ifc4fa21e552a8b031645eb883bdc23563eebb602 Reviewed-on: https://gerrit.libreoffice.org/8357 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2014-02-26Remove visual noise from vclAlexander Wilms
Conflicts: vcl/source/app/settings.cxx vcl/source/window/dockmgr.cxx vcl/source/window/dockwin.cxx vcl/source/window/floatwin.cxx vcl/source/window/toolbox2.cxx Change-Id: Ie67681549a76e77064b09d4b5bf80fe4c6010341 Reviewed-on: https://gerrit.libreoffice.org/8339 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2014-02-23Remove unneccessary commentsAlexander Wilms
Change-Id: I939160ae72fecbe3d4a60ce755730bd4c38497fb Reviewed-on: https://gerrit.libreoffice.org/8182 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2014-02-21Adapt vcl to various loplugin warnings on Mac OS XStephan Bergmann
Change-Id: I4553ce218fbcf2ac681b284c71e7d558a451511c
2014-02-21vcl: sal_Bool -> boolStephan Bergmann
Change-Id: I2a3e3d3e3266ea0f0fafdd91362076a4aa160f0e
2014-02-14fix duplicated symbols on ios salgraphicstsahi glik
2014-01-28bool improvementsStephan Bergmann
Change-Id: Iede12ed1e35581cf48d64b898f22949d0c1aa6de
2014-01-17Move SvpSalGraphics::SetVirDevGraphics() for iOS out of the header for clarityTor Lillqvist
Change-Id: I88c0ed27a492b57a0258a7ec211109a9e2552b99
2014-01-06Resolves: #i123840# add and use the sal_GlyphId typeHerbert Dürr
Using the central definition adds consistency and cleans up many ad hoc declarations. The type sal_GlyphId will become a class in the future so that its bitfield operations etc. can then be isolated into nice methods. (cherry picked from commit c0a84ad10964fb7a65b6239cbe1cef8698b5d17b) Conflicts: vcl/aqua/source/gdi/salatslayout.cxx vcl/aqua/source/gdi/salgdi.cxx vcl/generic/glyphs/gcach_ftyp.cxx vcl/generic/print/genpspgraphics.cxx vcl/generic/print/glyphset.cxx vcl/generic/print/glyphset.hxx vcl/headless/svptext.cxx vcl/inc/generic/genpspgraphics.h vcl/inc/generic/glyphcache.hxx vcl/inc/os2/salgdi.h vcl/inc/quartz/salgdi.h vcl/inc/salgdi.hxx vcl/inc/sallayout.hxx vcl/inc/unx/salgdi.h vcl/inc/vcl/fontmanager.hxx vcl/inc/win/salgdi.h vcl/os2/source/gdi/os2layout.cxx vcl/os2/source/gdi/salgdi3.cxx vcl/source/gdi/pdfwriter_impl.cxx vcl/source/gdi/sallayout.cxx vcl/source/glyphs/gcach_ftyp.hxx vcl/source/glyphs/gcach_layout.cxx vcl/source/glyphs/glyphcache.cxx vcl/source/glyphs/graphite_layout.cxx vcl/unx/generic/fontmanager/fontmanager.cxx vcl/unx/generic/gdi/gcach_xpeer.cxx vcl/unx/generic/gdi/gcach_xpeer.hxx vcl/unx/generic/gdi/salgdi3.cxx vcl/unx/generic/gdi/xrender_peer.hxx vcl/unx/headless/svpgdi.hxx vcl/unx/headless/svppspgraphics.cxx vcl/unx/headless/svppspgraphics.hxx vcl/win/source/gdi/salgdi3.cxx vcl/win/source/gdi/winlayout.cxx Change-Id: Ic629131950360e2df4c15db30d6a5362193c6330
2013-12-31Resolves: #i123840# normalize SalGraphics point count argument types...Herbert Dürr
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
2013-12-14iOS tiled rendering workTor Lillqvist
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
2013-12-04No more uses of printer built in fontsKhaled Hosny
Less parsing of AFM files at startup. Change-Id: I62d4c81d6e892f2356df22b53bb35c0f9f7bc344 Reviewed-on: https://gerrit.libreoffice.org/6860 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2013-12-04Device-specific font substitution is not usedKhaled Hosny
This was only used for printer built in fonts, which was dropped in the previous commit. Change-Id: Iff62786284470ff3873c8d4b0aae0614bf69c7f3 Reviewed-on: https://gerrit.libreoffice.org/6859 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2013-10-28Add some (commented out) SAL_DEBUG() callsTor Lillqvist
2013-10-28Shortcut when the SvpSalFrame already has the "focus"Tor Lillqvist
2013-10-21Remove GetKernPairs() with no implementationKhaled Hosny
I left only the Windows one because it being called (as GetKernPairs(0, NULL), but may be it does something, who knows). Change-Id: Iec05d61c8f0cd311a1158bb1cb07e4ee977f32fe Reviewed-on: https://gerrit.libreoffice.org/6260 Reviewed-by: Tor Lillqvist <tml@collabora.com> Tested-by: Tor Lillqvist <tml@collabora.com>
2013-10-21Removed unused kerning stuffKhaled Hosny
Kerning is just another font feature and is already handled by the layout engine, there is nothing special about it. Non of this seems to be used anywhere, anyway. Change-Id: Ia40c66ec186d11ab46d5d5256b09307a319318c0 Reviewed-on: https://gerrit.libreoffice.org/6259 Reviewed-by: Tor Lillqvist <tml@collabora.com> Tested-by: Tor Lillqvist <tml@collabora.com>
2013-09-04Remove unnecessary SystemChildData -> SystemEnvData defineStephan Bergmann
Change-Id: Ifd6763617b9aef45c7301085033b6bbaf9d52e02
2013-08-21finish deprecation of O(U)String::valueOf()Luboš Luňák
Compiler plugin to replace with matching number(), boolean() or OUString ctor, ran it, few manual tweaks, mark as really deprecated. Change-Id: I4a79bdbcf4c460d21e73b635d2bd3725c22876b2
2013-08-12convert String to OUString in VCLNoel Grandin
Change-Id: Ie5c6874298641dc6fc1b6b4e2206a704acd7cc10
2013-08-12convert vcl/ppdparser.hxx from String to OUStringNoel Grandin
Change-Id: I8a95a98e5cc92e5bedb4813411afc86cc438fdad
2013-08-12Assert has become somewhat redundantStephan Bergmann
...with d8dbf1b5dbfa0db2d765063a1d848d031835398a "Turn basebmp::Format into a proper enum" demonstrating that nDeviceFmt should only take on values enumerated at basebmp::Format. Change-Id: I9f5fe2b3d403a8fc50a286b40b9e1bc74079e2cb
2013-07-28Make AddToRecentDocumentList aware of the DocumentServiceFridrich Štrba
This information helps to map a document with an application ID needed for Windows 7 shell integration. Change-Id: I1224f566037ab7597a29b16f310f93d9f5441cce
2013-07-19remove Application::GetWorkAreaPosSizePixelNoel Grandin
This internal API has always been problematic because we cannot support it under the Linux toolkits, where it has in fact always just returned the size of the screen. Change-Id: I406bcbca8a4161b4261ef46940823bb07c6ad18b Reviewed-on: https://gerrit.libreoffice.org/4976 Tested-by: LibreOffice gerrit bot <gerrit@libreoffice.org> Reviewed-by: Michael Meeks <michael.meeks@suse.com> Tested-by: Michael Meeks <michael.meeks@suse.com>
2013-07-12Fix headless mode glyph cache memory handlingStephan Bergmann
...the original code was riddled with errors. It leaked memory, which if it didn't it would have deleted multiple times. Change-Id: Ic70b425fac02ef894e35b3dc15039d217f8870f5
2013-07-12Turn basebmp::Format into a proper enumStephan Bergmann
Change-Id: I4067c5039c7b5c74a1c144721dd7260de54dd2bf
2013-07-12THIRTYTWO_BIT_TC_MASK is the same as THIRTYTWO_BIT_TC_MASK_BGRAStephan Bergmann
Change-Id: I917c4136614664a1816769300707f170312c885d
2013-06-14Resolves: #i121534# Reintegrating changes for rotated bitmap supportArmin Le Grand
(cherry picked from commit b2cc0de3fc9adee90787ca760e86869f9255b380) Conflicts: canvas/source/vcl/spritecanvashelper.cxx drawinglayer/Library_drawinglayer.mk drawinglayer/source/processor2d/vclhelperbitmaprender.cxx drawinglayer/source/processor2d/vclhelperbitmaprender.hxx drawinglayer/source/processor2d/vclhelperbitmaptransform.cxx drawinglayer/source/processor2d/vclhelperbitmaptransform.hxx drawinglayer/source/processor2d/vclprocessor2d.cxx officecfg/registry/schema/org/openoffice/Office/Draw.xcs svx/source/svdraw/svdograf.cxx vcl/aqua/source/gdi/salgdi.cxx vcl/inc/aqua/salgdi.h vcl/inc/os2/salgdi.h vcl/inc/salgdi.hxx vcl/inc/unx/pspgraphics.h vcl/inc/vcl/bitmapex.hxx vcl/inc/vcl/outdev.hxx vcl/inc/vcl/salbtype.hxx vcl/os2/source/gdi/salgdi2.cxx vcl/source/gdi/bitmapex.cxx vcl/source/gdi/outdev2.cxx vcl/source/gdi/salgdilayout.cxx vcl/source/gdi/salmisc.cxx vcl/unx/generic/gdi/pspgraphics.cxx vcl/unx/generic/gdi/salgdi2.cxx vcl/unx/headless/svpgdi.cxx vcl/unx/headless/svpgdi.hxx vcl/unx/headless/svppspgraphics.cxx vcl/unx/headless/svppspgraphics.hxx vcl/win/source/gdi/salbmp.cxx vcl/win/source/gdi/salgdi.cxx vcl/win/source/gdi/salgdi3.cxx vcl/win/source/gdi/salgdi_gdiplus.cxx vcl/win/source/gdi/winlayout.cxx Change-Id: I871d1d107b019758f3913e5eb63bc9bc0ba403fd Do not name unused arguments to prevent compiler warnings. (cherry picked from commit f3118889a0cd941f193e9b6557c0792015d77a34) Change-Id: I482d1f96d695c7bf9912ec464bb39e7fdd14adef Related: #i121534# fix graphite-enabled windows build (cherry picked from commit c90a6ca92b1239d01a2892e15488e4a183a88b1a) Conflicts: vcl/win/source/gdi/winlayout.cxx Change-Id: I95fd41ad6f7187f34ba9474674a471fb4fc65314
2013-06-13cppcheck: fix several Prefer prefix ++/-- operatorsJulien Nabet
Change-Id: Ie8ce0ebb9ec979575657a89ebbfe4d01142b04e5
2013-06-13Remove dead code related to unused WITH_SVP_LISTENINGStephan Bergmann
Change-Id: I8a12d0ea18a60541d9a11db26cc417a190443ff4