summaryrefslogtreecommitdiff
path: root/vcl/osx/salgdiutils.cxx
AgeCommit message (Collapse)Author
2023-01-26tdf#147342 Notify Skia that the window's backing properties changedPatrick Luby
Change-Id: I4185a240a2ca6df1c92e86ff9950f86234d4ace8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146142 Tested-by: Jenkins Reviewed-by: Patrick Luby <plubius@neooffice.org>
2022-06-08VCL add vcl::WindowPosSize abstract classJan-Marek Glogowski
... and use it to remove a duplicate and simplify code. Should mostly be a refactoring, which was mainly done by some larger sed calls, except for the new API calls, which helped shrinking some LOC. All data is also now private. Originally two of the "replaced" "classes" had unsigned width and height and one had signed. Noel pointed out, that during calculations, the value might get negative temporarly, so this now settles with signed values. Still the set size should never be negative and this is enforced this way. Not sure that is what Noel had in mind. This also includes: - rename WindowState => WindowData - rename WindowStateMask => WindowDataMask - rename WindowStateState => WindowState - move WindowState and WindowDataMask to vcl/windowstate.hxx - move WindowData(Mask) and WindowState into vcl namespace - readability: replace or'ed WindowState enums with "meta" enums + add "meta" WindowState enums PosSize and PosSizeState Change-Id: Icd16cfb498531aa7238ddbde83fcb0ed6d9e4f77 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135426 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-11-16implement HiDPI support for Skia/Mac (tdf#144214)Luboš Luňák
The basic idea is the same as the 'aqua' backend, simply set up a scaling matrix for all drawing. That will take care of the basic drawing everything twice as large, which is twice the resolution. And then blit this data to the window, which expects data this way. Converting back from backing surface needs explicit coordinate conversions, and when converting to a bitmap the bitmap needs to be scaled down in order to appear normally sized. Fortunately I've already implemented delayed scaling, which means that if the bitmap is drawn later again without any modifications, no data would be lost (to be done in a follow-up commit). Unittests occassionally need special handling, as such scaling down to bitmap not being smoothed, because they expect exact color values. Change-Id: Ieadf2c3693f7c9676c31c7394d46299addf7880c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125060 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-08-23make SalGeometryProvider available for Aqua VCL backendsLuboš Luňák
This is needed for the Skia backend to know the geometry. The Mac Skia code now passes most VCL unittests. Change-Id: I6e35764d95ce821d8e11ed9979e5be75bcf6ff49 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120806 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-04-30vcl: iOS/macOS - move graphic render func. into AquaGraphicsBackendTomaž Vajngerl
This change moves graphic rendering function under AquaSalGraphics into a new AquaGraphicsBackend, which inherits from SalGraphicsImpl. This is part of the refactoring to make it mandatory that a SalGraphics always has a SalGraphicsImpl associated, which will make it possible to simplify the SalGraphics interface and enable the posibility to implement alernative graphic backends (Skia). Common variables and attributes are moved to AquaSharedAttributes and are shared between SalGraphics and SalGraphicsImpl. Change-Id: Ie48da87002ec8e4011ba92fdc9170f3a86761517 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114701 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-02-23tdf#138122 Detect window scaling for multi display configurations on macOSThorsten Wagner
(1) Activate window scaling when at least one retina display is connected (2) Remove environment variable VCL_MACOS_FORCE_WINDOW_SCALING (3) Disable related unit tests unless bitmap scaling has been implemented Change-Id: I218119a21e319e22bf17c609608724fce180f000 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111267 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-01-28Revert "tdf#138122 Detect window scaling for multi display configurations on ↵Stephan Bergmann
macOS" This reverts commit f318b856ed055f1952276355f811153f6b29c93e. It appears this reliably causes CppunitTest_vcl_backend_test to fail on macOS on at least tb69, see e.g. <https://ci.libreoffice.org/job/gerrit_mac/82587/ consoleFull#-500134232d893063f-7f3d-4b7e-b56f-4e0f225817cd> and <https://ci.libreoffice.org/job/gerrit_mac/82592/ consoleFull#-500134232d893063f-7f3d-4b7e-b56f-4e0f225817cd>, [_RUN_____] BackendTest::testDrawBlendExtended /Users/tdf/lode/jenkins/workspace/lo_gerrit/Config/macosx_clang_dbgutil/vcl/qa/cppunit/BackendTest.cxx:688:BackendTest::testDrawBlendExtended equality assertion failed - Expected: c[000080ff] - Actual : c[ffffffff] BackendTest::testDrawBlendExtended finished in: 1ms [_RUN_____] BackendTest::testDrawAlphaBitmapMirrored /Users/tdf/lode/jenkins/workspace/lo_gerrit/Config/macosx_clang_dbgutil/vcl/qa/cppunit/BackendTest.cxx:749:BackendTest::testDrawAlphaBitmapMirrored equality assertion failed - Expected: c[ff0000ff] - Actual : c[000000ff] BackendTest::testDrawAlphaBitmapMirrored finished in: 1ms [_RUN_____] BackendTest::testTdf124848 /Users/tdf/lode/jenkins/workspace/lo_gerrit/Config/macosx_clang_dbgutil/vcl/qa/cppunit/BackendTest.cxx:808:BackendTest::testTdf124848 equality assertion failed - Expected: c[000000ff] - Actual : c[ffffffff] And it also causes my local macOS 11.1 ARM64 build to consistently fail that way, both the original patch set 1 (with the older parent) and the submitted patch set 2 (with a newer parent). Change-Id: I2c36fada271e8bc300b6caa19370d8e8bb1e7599 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110055 Reviewed-by: Tor Lillqvist <tml@collabora.com> Tested-by: Jenkins
2021-01-27tdf#138122 Detect window scaling for multi display configurations on macOSThorsten Wagner
(1) Activate window scaling when at least one retina display is connected (2) Remove environment variable VCL_MACOS_FORCE_WINDOW_SCALING Change-Id: If6926ace7238f2be4ae91290872dbb3dbf658221 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110002 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
2021-01-17tdf#138122: Fix vcl for iOS after 1a167625314bf36b735176ed488e6ba9b5e9b675Tor Lillqvist
Make vcl compile again for iOS and make the Collabora Office iOS app work again when built against a master build of core. For now, keep the old versions of the functions touched by 1a167625314bf36b735176ed488e6ba9b5e9b675 in vcl/ios/salios.cxx, and move the modified versions to the new file vcl/osx/salmacos.cxx. Keep the functions as they were except that ifdefs for MACOSX or IOS are expanded. Keep the formatting as it was to make comparisons easier. Thus add the new files to the clang-format exclusion list. While at it, also move vcl/quartz/salgdiutils.cxx to vcl/osx as it is compiled only for macOS anyway. Change-Id: I990ef678f2263031d4a5af8cc547fffe185d17c4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109480 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>