summaryrefslogtreecommitdiff
path: root/vcl/quartz
AgeCommit message (Collapse)Author
2020-10-18tdf#137468: Add debug output function for CGColorSpaceRefTor Lillqvist
Change-Id: I6fdb00652bf3dd892b531b80c2bb621ff22e8717 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104475 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
2020-09-29disentangle AA and B2D use in VCL drawingLuboš Luňák
A number of powerful functions using B2D polygons such as OutputDevice::DrawPolyLineDirect() were used only if AA was enabled. So e.g. dashing for an AA-ed polyline could be drawn directly using the function, but with AA disabled had to be done manually by a number of polygon operations. Which doesn't make much sense, surely these powerful functions can also draw without AA if set so (and indeed that's mostly the case). And DrawPolyLineDirect() even had a flag to bypass the check. So simply try to use B2D-based drawing whenever possible, AA or not. The previous commit had already changed the naming of the AA option to not include B2D in the name. This seems to come from https://bz.apache.org/ooo/show_bug.cgi?id=88795, which doesn't explain why AA only. There are other bugreports such as https://bz.apache.org/ooo/show_bug.cgi?id=101491 and https://bz.apache.org/ooo/show_bug.cgi?id=98289 that are related, but there I cannot see any difference with this patch. And all unit tests pass. Change-Id: Ibb5938e8fff9b7452bac4bf12ed3e42fd3e5d645 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103354 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-09-28rename for disentangling AA and B2D use in VCL drawingLuboš Luňák
This renames AntialiasingFlags::EnableB2dDraw to just Enable, and the AntiAliasB2DDraw names to just AntiAlias. This is in preparation for a second commit that will actually separate the AA and B2D functionality of these flags. Change-Id: I9cc215c5752dfabce41e00e19d9074fc8dc3d4de Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103416 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2020-09-26Fix typo in codeAndrea Gelmini
It passed "make check" on Linux Change-Id: I5e2b4f37296b521b5e942a8e9f9caf2137e39172 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103456 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2020-09-15WIN OSX Qt5 unify CreateFontSubset codeJan-Marek Glogowski
This is basically just some refactoring. Most interestingly the MacOS used to work with 257 glyphs. I couldn't find any explaination for the 256 glyph limit. Sadly the PrintFontManager is out of scope. That needs more inspection. Change-Id: Ibfa0e905f5efeb7d4a609884d64b4ed2615a9d3d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102688 Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> Tested-by: Jenkins
2020-09-15Forward existing FontCharMap from PhysicalFontFaceJan-Marek Glogowski
Since removed code in the previous commit is primary used in CreateFontSubset and GetGlyphWidths, you have a high chance, that the CMAP was already used for displaying a font, so it's already decoded and can be forwarded. Also the lookup should be faster in general this way. Change-Id: Icf4d8a1a84ff6ccdaccb7e870abe5df3837f9541 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102686 Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> Tested-by: Jenkins
2020-09-15WIN OSX unify GetGlyphWidths codeJan-Marek Glogowski
Now that GetFontChatMap is a member of PhysicalFontFace, we can copy the common part of both architectures into a SalGraphics helper function. Change-Id: Iad379ea690a1c5346b69b5042188506ccf575cc2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102684 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2020-08-15Refactor vcl::TrueTypeFont class member accessJan-Marek Glogowski
This hides all members, which are needed to create a new TTF font by calling vcl::CreateTTFromTTGlyphs, and adds an abstraction to access individual font tables. This is needed, because Qt5 just allows access to the raw font based on font tables. Change-Id: I74e34cf1aa2529a06ec5ec53aa2be751e58982ad Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100717 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2020-07-22This file is used for macOS onlyTor Lillqvist
Change-Id: I9500453c8964b774e4b0be41a7b2f1a8c28040b2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99138 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Tor Lillqvist <tml@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99183 Tested-by: Jenkins
2020-07-21Improved oplugin:staticanonymous -> redundantstatic redux, macOSStephan Bergmann
Change-Id: I221351bdc43b48e714acca89bc84db007258299e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99115 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-06-30differentiate between 8bit and any-bit grey palette (tdf#121120)Luboš Luňák
Only the grey palette with 256 colors means that pixel values map directly to color values. Tdf#121120 has an image with 2-bit palette where color index 1 is (255,255,255), but that means the pixel value 1 cannot be just treated as color. Change-Id: Ifbd953af7f291e4fb8032ea0f4c33c0514770856 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97283 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-06-11loplugin:simplifybool (macOS)Stephan Bergmann
Change-Id: Iae0a2966aa6394e16c2ba3d4155d90bac373472f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96118 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-06-11loplugin:simplifypointertobool (macOS)Stephan Bergmann
Change-Id: I414eaf0e61be09ccf12d04577c89dbcdb845f85f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96117 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-05-28loplugin:simplifypointertobool (macOS)Stephan Bergmann
Change-Id: Ie26580277fa6d0734b8af1eb029e0883a3c6f886 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95064 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-05-05fix line width in DrawPolyLine() with matrix (tdf#132498)Luboš Luňák
For backends that do the object-to-device coordinates transformation directly, it's necessary to also convert the size of line width. But simply multiplying it with the matrix can also rotate the line width "vector", making it e.g. negative. So don't use just the X coordinate, use vector length for the transformation, which is ok. In fact it doesn't even make sense to treat width as a vector, because a width simply is not a vector (and for this reason it's also not actually used). Change-Id: I1241c9cb29155df105170d568a879ebc32b11a5f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93203 Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Jenkins
2020-04-28Fix typosAndrea Gelmini
Change-Id: I50a80014addf5fb6a3974139249f45f6a2e67d92 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92939 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins
2020-03-25Avoid CGContextSetLineWidth warning about negative line widthTor Lillqvist
Change-Id: I82d37d0277e324e269674ed40592026e0097fa33 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91027 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Tor Lillqvist <tml@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91031 Tested-by: Jenkins
2020-03-21tdf#128276 Font names are not localized on macOS CatalinaTomofumi Yagi
1. We would like to call CTFontDescriptorCopyLocalizedAttribute function simply. We don't need to compare language settings of LibreOffice UI to OS lang- uage settings. This comparison was a way to save users from confusion, but it was bad idea. Because CTFontDescriptorCopyLocalizedAttribute function before macOS Catalina returns RFC 3066 bis as a language tag, but LibreOffice and macOS Catalina uses BCP 47 as a language tag. CTFontDescriptorCopyLocalizedAttribute function use the language setting for the operating system, therefore Users will change it if needed. 2. Fix font aliases on macOS Catalina I added some entries because I notice that those doesn't working with a Hiragino Sans font alias. Change-Id: Ie05a96f45cba13a19fcc1b855bd908f397e585a1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/81145 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-03-06tdf#124848 partial refactor hairline logicArmin Le Grand
With the handover of transformations to line draw calls it is no longer feasible to detect and prepare LineWidth stuff when the old office definition for hairlnes is used, a line width of zero. It was managed in the system-independent part, but now may have to be prepared in logic and not discrete (pixel) coordinates. To do so, find and cleanup all places where 1/1.0 was used as hairline line width. Adapt all seven graphic subsystems to handle the line width == 0/0.0 cases accordingly. Test as good as possible. Change-Id: I2badc045474dcd51612e50597b8406a55d9dc863 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90057 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2020-02-10cid#1458168 silence bogus Dereference after null checkCaolán McNamara
and cid#1458166 Dereference after null check cid#1458167 Dereference after null check Change-Id: I68dc7dc1bc78ed64795d353d5d0ffc15cc46b0c9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88347 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-02-08Fix typoAndrea Gelmini
Change-Id: I0dd153d1766d1f6a6da974a847e937edcd3399f0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88246 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2020-02-07tdf#130478 Enhance Dashed line drawing on all systemsArmin Le Grand (Collabora)
For more info and explanation including state of process information and discussion(s) see task please. Adding corrections for gerrit build Change-Id: Ie10fb8093a86459dee80db5ab4355b47e46c1f8c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88130 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2020-01-14tdf#128226: make OpenSymbol font an internal resourceMike Kaganski
OpenSymbol is crucial for Math; so it is not just some font that could be used if present, but part of program resources. As such, it must be available with other program resources, and not depend on user preferences, like uninstallation of the font from system. This patch puts it into program/resource/common/fonts, and adds that path to the paths used for private fonts. This is in addition to share/fonts/truetype, which is optional, and is usually absent on most Linux and Windows installations (on Linux, it is usually in a separate package installing it to system fonts; on Windows, it is also installed to system by MSI). Change-Id: Ibf5e12e70dacb62b965035645fc53e9d83cd8793 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86649 Reviewed-by: Andras Timar <andras.timar@collabora.com> Reviewed-by: Rene Engelhard <rene@debian.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2020-01-03Avoid -Werror,-Wdeprecated-enum-float-conversionStephan Bergmann
...with Clang 10 trunk: > vcl/quartz/ctfonts.cxx:414:35: error: arithmetic between enumeration type 'FontWeight' and floating-point type 'double' is deprecated [-Werror,-Wdeprecated-enum-float-conversion] > nInt = rint(WEIGHT_NORMAL + fWeight * ((WEIGHT_BLACK - WEIGHT_NORMAL)/0.68)); > ~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ etc. These computations had been introduced with ea8422d42e838e7ddfeb8d9f77f3ecedecb29ce8 "Cherry-pick Core Text port from AOO", and it looks like they indeed want to compute a suitable value in the WEIGHT_THIN (=1), ..., WEIGHT_BLACK (=10) range of enum FontWeight, resp. the WIDTH_ULRA_CONDENSED (=1), ..., WIDTH_ULTRA_EXPANDED (=9) range of enum FontWidth (rather than, say, float values in the THIN = 50.0, ..., BLACK = 200.0 constants range of css.awt.FontWeight, resp. the ULTRACONDENSED = 50.0, ..., ULTRAEXPANDED = 200.0 constants range of css.awt.FontWidth). Change-Id: I054e4e215331f84cea03de681aa4b0fb7c12eef5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86176 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-01-03Avoid -Werror,-Wdeprecated-anon-enum-enum-conversionStephan Bergmann
...with Clang 10 trunk: > vcl/quartz/salgdicommon.cxx:1299:59: error: bitwise operation between different enumeration types ('CGImageAlphaInfo' and '(anonymous enum at /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGImage.h:51:9)') is deprecated [-Werror,-Wdeprecated-anon-enum-enum-conversion] > kCGImageAlphaNoneSkipFirst | kCGBitmapByteOrder32Big ); > ~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~ <https://developer.apple.com/documentation/coregraphics/ 1455939-cgbitmapcontextcreate> documents the "uint32_t bitmapInfo" parameter of CGBitmapContextCreate as: "The constants for specifying the alpha channel information are declared with the CGImageAlphaInfo type but can be passed to this parameter safely. You can also pass the other constants associated with the CGBitmapInfo type." Change-Id: Idee410c65bd022a125a2f5a34cda007a8ca07580 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86175 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-06loplugin:redundantcast (macOS)Stephan Bergmann
Change-Id: Ia514e105d913b8cf77d4fe931deb6b559b3525d3 Reviewed-on: https://gerrit.libreoffice.org/84655 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-06loplugin:external (macOS)Stephan Bergmann
* OldEntry in fpicker/source/aqua/resourceprovider.mm was apparently unused ever since it got introduced with 00657aef09d854c74fb426a935a3e8b1fc390bb0 "migrate to boost::gettext" * impl_throwError is used from multiple TU, connectivity/source/drivers/macab/MacabStatement.cxx just missed the relevant #include Change-Id: Iba131da57aa20085bb1c634ba9a3a59566070abd Reviewed-on: https://gerrit.libreoffice.org/84653 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-11-19tdf#128434 correctly release fonts in destructorsJan-Marek Glogowski
This adds ReleaseFonts() calls to all destructors of SalGraphics and TextRenderImpl derivated classes, which implement SetFont. During destruction a base class can't call into derivated classes, as these are already destructed, so we have to spread these calls manually. Change-Id: Ia57db04f7df665e5205212ce512119e2f60e3379 Reviewed-on: https://gerrit.libreoffice.org/82967 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-11-15loplugin:fakebool and loplugin:consttobool (macOS)Stephan Bergmann
Change-Id: I42d6546a9a400d8edb9ecef82614c6c88d4e6e83 Reviewed-on: https://gerrit.libreoffice.org/82806 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-14Fix method name origin in SAL_WARN_IF(vcl/quartz/salgdi)Julien Nabet
Change-Id: I7fff6af5e521318324df63b32d4be7b0e0f12771 Reviewed-on: https://gerrit.libreoffice.org/80803 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-09-26remove internal use of 16-bit packed formatsNoel Grandin
none of our supported hardware uses these any more Change-Id: Ic95d6df619a05df0bec1f5870596cb2bb3bcc6cb Reviewed-on: https://gerrit.libreoffice.org/79476 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-09-23loplugin:fragiledestructor (macOS)Stephan Bergmann
Change-Id: I8ac1f67999ccbb6c411359ac6fd4c473dc339d44 Reviewed-on: https://gerrit.libreoffice.org/79398 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-09-07remove some unnecessary castsNoel Grandin
Change-Id: I16aa2cdc3e92c3ea2661ebf0a528f72cbe193df9 Reviewed-on: https://gerrit.libreoffice.org/78716 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-08-28loplugin:returnconstval (macOS)Stephan Bergmann
Remove the spurious "const" that dates back to a poor change in 9177329a425cf70b515d1f266132838894fe54c6 "vcl: FontCharMap to use intrusive_ptr ImplFontCharMap": > --- a/vcl/inc/quartz/salgdi.h > +++ b/vcl/inc/quartz/salgdi.h > @@ -73,7 +73,7 @@ public: > CoreTextStyle* CreateTextStyle( const FontSelectPattern& ) const; > int GetFontTable( const char pTagName[5], unsigned char* ) const; > > - const ImplFontCharMap* GetImplFontCharMap() const; > + const ImplFontCharMapPtr GetImplFontCharMap() const; > bool GetFontCapabilities(vcl::FontCapabilities &rFontCapabilities) > const; > bool HasChar( sal_uInt32 cChar ) const; > Change-Id: I6a533a917ec42513b0783332c35e0a6803504324 Reviewed-on: https://gerrit.libreoffice.org/78235 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-08-27Consolidate ImplCalcLineSpacing()Khaled Hosny
Move getting UPEM and font tables to the functions and use HarfBuzz API to get them. In the future we might stop reading the tables ourselves and use HarfBuzz metrics API instead. Change-Id: I3f4511628fd33200bae94cdcd96479ba3e6d2fba Reviewed-on: https://gerrit.libreoffice.org/78081 Tested-by: Jenkins Reviewed-by: Khaled Hosny <khaledhosny@eglug.org>
2019-08-23loplugin:returnconstval in vclNoel Grandin
Change-Id: Id4a0b460ba3c43e80b80ae6e2da9e40a6753e14c Reviewed-on: https://gerrit.libreoffice.org/77965 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-07-30tdf#62699 Drop (now) pass-through header include/vcl/salbtype.hxxGabor Kelemen
Change-Id: I2e2093ac3c8c6833b70d4932bc12a82a4483bde5 Reviewed-on: https://gerrit.libreoffice.org/76499 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-07-25tdf#124042: Remove unnecessary code for iOSTor Lillqvist
We don't need to pop the Core Graphics context state stack completely before releasing the context. The code that tried to do that failed anyway when the context was a "foreign" one (from doc_paintWindowDPI() in core's init.cxx) thad had already been released there. Also removed another apparently unnecessary ifndef for iOS. Change-Id: Idcd1e6edd06ab259ec850fd66fcbabc3df0ae3af Reviewed-on: https://gerrit.libreoffice.org/76263 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-07-16loplugin:simplifyconstruct (macOS)Stephan Bergmann
Change-Id: Ifad405b05142ce61673f22ec3160f50314419ce7 Reviewed-on: https://gerrit.libreoffice.org/75680 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-07-06Constify GlyphItemJan-Marek Glogowski
This hides all the data, which shouldn't change after init. Real const makes a lot of problems for copying, so this is the 2nd option to just add getters for private data. While at it use typed_flags for the GlyphItemFlags. Change-Id: Ic1eeabe2398f6c30080fdd516285b72c620b11be Reviewed-on: https://gerrit.libreoffice.org/75147 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-06-07Bin the much too verbose SAL_INFO() calls for the "vcl.cg" tagTor Lillqvist
Quikee agreed that they aren't really useful. Doing even the simplest things causes such a huge amount of logging that it is questionable whether anybody could have any use of it. Parts of it might be useful to restore later, if need arises. Like the mnContextStackDepth logging in vcl/inc/quartz/CGHelpers.hxx. Change-Id: If635e6492a50e5955c56c54fa310e7c0ab2986ae Reviewed-on: https://gerrit.libreoffice.org/73639 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
2019-06-06loplugin:data (macOS)Stephan Bergmann
Change-Id: I404a8364a4c7f8d48533fb3c7757a5b7798de9d8 Reviewed-on: https://gerrit.libreoffice.org/73588 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-06-04tdf#122221: Bin apparently unnecessary early returnTor Lillqvist
Removing these few lines of code fixes the problem on iOS, and has no apparent ill effect on macOS. But sure, I didn't check that thoroughly on macOS, so in case this has a bad effect on macOS after all, need to reinstate the few lines but make them #ifndef IOS. (Still passes make check.) Change-Id: I2380d010ba223a698acfe916fca4580a1502be98
2019-06-02tdf#125506: use rObjectToDevice if neededXisco Fauli
Use same logic as in vcl/unx/generic/gdi/gdiimpl.cxx Regression from 16091ff88aaab9ba9103c4e369bf79b97f431f40 See https://bugs.documentfoundation.org/show_bug.cgi?id=125506#c13 Thanks to Thorsten Wagner for pinpointing Change-Id: I7a7a8c4b3355f5621ba1603939a3757cd03e7777 Reviewed-on: https://gerrit.libreoffice.org/73319 Tested-by: Jenkins Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
2019-05-31tdf#125506 tdf#121241: No need to transform to DeviceCoordinatesXisco Fauli
Regression from b9fa01a8d1137a95af9865a3e47995734c40da6e Change-Id: Ie4ab65966e274bff4d699b7cd4dc0fd47d26c558 Reviewed-on: https://gerrit.libreoffice.org/73249 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
2019-05-22tdf#124271 use the bitmap context, handle scalingTomaž Vajngerl
The problem with latest macOS versions is that creating a graphic context with window (NSGraphicsContext graphicsContextWithWindow:) only works when actually drawing and otherwise it returns null. This caused problems before in AquaVrtualDevice, but we also use this when creating a device backing storage. This interestingly caused slowdowns and eventual crash, but the backtrace looked very misterious as it didn't crash because of a nullptr, but it halted all drawing commands and it crashed because of that. This changes the graphic context with a bitmap context, as it was already done in VirtualDevice and use that instead. The problem with a bitmap context is that we need to handle HiDPI scaling by ourselves now. LayerHolder was extended to store the scaling information of the layer (and its underlaying bitmap context) and provides methods that get the size of the layer in pixels or in scaling independent points (which is just size in pixels multiplied by the scaling factor). An known issue is that VirtualDevice also needs to take scaling into account, which it currently doesn't, so the text is still blurry on a HiDPI screen, but that was already true previously and is something that will be done in a different change. Change-Id: I8e10c518ecba285125746bd20525c4cb5ca67279 Reviewed-on: https://gerrit.libreoffice.org/72663 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2019-05-18use CGContextHolder in AquaSalBitmapTomaž Vajngerl
Change-Id: I87f5a1bc2c41c58cff747bbad82867d53ea92ce7 Reviewed-on: https://gerrit.libreoffice.org/72442 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2019-05-18use CGContextHolder in copyBitsTomaž Vajngerl
Change-Id: I98f1723da170712e2f2c2a846e02954381376c7e Reviewed-on: https://gerrit.libreoffice.org/72441 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2019-05-18use CGContextHolder in AquaVirtualDeviceTomaž Vajngerl
Change-Id: If5e27ea4049a76e560dd9823f335b86e2599d4cc Reviewed-on: https://gerrit.libreoffice.org/72440 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2019-05-18Wrap CGLayer into a CGLayerHolder class and move code to use itTomaž Vajngerl
Change-Id: I52539f6582d099ef80048d9a25266c88e1f6d783 Reviewed-on: https://gerrit.libreoffice.org/72439 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>