[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.0' - 3 commits - desktop/source vcl/quartz
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Fri Mar 15 16:37:15 UTC 2019
desktop/source/lib/init.cxx | 7 +++++++
vcl/quartz/salgdicommon.cxx | 20 +++++---------------
2 files changed, 12 insertions(+), 15 deletions(-)
New commits:
commit c1f15b7a6511fd26502a2217c18c5f68ee928a31
Author: Tor Lillqvist <tml at collabora.com>
AuthorDate: Fri Mar 15 18:32:50 2019 +0200
Commit: Tor Lillqvist <tml at collabora.com>
CommitDate: Fri Mar 15 18:35:29 2019 +0200
tdf#124042: Remove unnecessary code for iOS
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
diff --git a/vcl/quartz/salgdicommon.cxx b/vcl/quartz/salgdicommon.cxx
index 011c4297095d..fbd49f60d459 100644
--- a/vcl/quartz/salgdicommon.cxx
+++ b/vcl/quartz/salgdicommon.cxx
@@ -2052,26 +2052,11 @@ void AquaSalGraphics::SetVirDevGraphics( CGLayerRef xLayer, CGContextRef xContex
mbPrinter = false;
mbVirDev = true;
-#ifdef IOS
- (void) nBitmapDepth;
-
- if( !xContext )
- {
- // We will return early a few lines lower.
- // Undo the "stack initialization" done at the initial call of
- // this method, see end.
- SAL_INFO( "vcl.cg", "CGContextRestoreGState(" << mrContext << ") " << mnContextStackDepth--);
- CGContextRestoreGState( mrContext );
- }
-#endif
-
// set graphics properties
mxLayer = xLayer;
mrContext = xContext;
-#ifndef IOS
mnBitmapDepth = nBitmapDepth;
-#endif
#ifdef IOS
mbForeignContext = xContext != NULL;
commit 7f0e669885fb1ac6efaceb5aea21c117825e3495
Author: Tor Lillqvist <tml at collabora.com>
AuthorDate: Fri Mar 15 18:18:38 2019 +0200
Commit: Tor Lillqvist <tml at collabora.com>
CommitDate: Fri Mar 15 18:31:55 2019 +0200
tdf#124042: If mrContext is zero, calling Core Graphics APIs on it is futile
If mrContext is zero, the CG calls using it won't do anything and will
cause "invalid context" warnings when running under Xcode. So just
return early. Such calls to drawPolyPolygon() are apparently not
essential but accidental and of no real use. Possibly related to bogus
"focus" indicator painting. Which does not make sense on iOS as we
aren't drawing to any actual "windows" with "focus".
Change-Id: Icc4a768d8b255c09a8972551443ce59f4ad56089
diff --git a/vcl/quartz/salgdicommon.cxx b/vcl/quartz/salgdicommon.cxx
index d1beb08c1a66..011c4297095d 100644
--- a/vcl/quartz/salgdicommon.cxx
+++ b/vcl/quartz/salgdicommon.cxx
@@ -951,6 +951,11 @@ bool AquaSalGraphics::drawPolyLineBezier( sal_uInt32, const SalPoint*, const Pol
bool AquaSalGraphics::drawPolyPolygon( const basegfx::B2DPolyPolygon& rPolyPoly,
double fTransparency )
{
+#ifdef IOS
+ if (!mrContext)
+ return true;
+#endif
+
// short circuit if there is nothing to do
const int nPolyCount = rPolyPoly.count();
if( nPolyCount <= 0 )
commit 8a244ee9b43dce6bdcd930473586a2d8452dfb12
Author: Tor Lillqvist <tml at collabora.com>
AuthorDate: Fri Mar 15 16:56:45 2019 +0200
Commit: Tor Lillqvist <tml at collabora.com>
CommitDate: Fri Mar 15 17:11:01 2019 +0200
tdf#124042: Add SAL_INFOs for iOS about the CGContext life cycle in LOKit
Use the same logging tag as in vcl for uniformity. Helps in tracing
the life cycle and usage of CGContexts.
Change-Id: I89c33ac63fa26e10a8866c2aacecce89ef9b5f6b
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 88970631ce48..d79d086b66f9 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -2380,11 +2380,15 @@ static void doc_paintTile(LibreOfficeKitDocument* pThis,
#if defined(IOS)
CGContextRef cgc = CGBitmapContextCreate(pBuffer, nCanvasWidth, nCanvasHeight, 8, nCanvasWidth*4, CGColorSpaceCreateDeviceRGB(), kCGImageAlphaNoneSkipFirst | kCGImageByteOrder32Little);
+ // Use the vcl.cg tag even if this code is not in vcl, to match all other SAL_INFO logging about Core Graphics, in vcl.
+ SAL_INFO( "vcl.cg", "CGBitmapContextCreate(" << nCanvasWidth << "x" << nCanvasHeight << "x32) = " << cgc );
+
CGContextTranslateCTM(cgc, 0, nCanvasHeight);
CGContextScaleCTM(cgc, fDPIScaleX, -fDPIScaleX);
doc_paintTileToCGContext(pThis, (void*) cgc, nCanvasWidth, nCanvasHeight, nTilePosX, nTilePosY, nTileWidth, nTileHeight);
+ SAL_INFO( "vcl.cg", "CGContextRelease(" << cgc << ")" );
CGContextRelease(cgc);
#else
ScopedVclPtrInstance< VirtualDevice > pDevice(nullptr, Size(1, 1), DeviceFormat::DEFAULT) ;
@@ -3968,6 +3972,8 @@ static void doc_paintWindowDPI(LibreOfficeKitDocument* /*pThis*/, unsigned nLOKW
CGContextRef cgc = CGBitmapContextCreate(pBuffer, nWidth, nHeight, 8, nWidth*4, CGColorSpaceCreateDeviceRGB(), kCGImageAlphaNoneSkipFirst | kCGImageByteOrder32Little);
+ SAL_INFO( "vcl.cg", "CGBitmapContextCreate(" << nWidth << "x" << nHeight << "x32) = " << cgc);
+
CGContextTranslateCTM(cgc, 0, nHeight);
CGContextScaleCTM(cgc, fDPIScale, -fDPIScale);
@@ -3987,6 +3993,7 @@ static void doc_paintWindowDPI(LibreOfficeKitDocument* /*pThis*/, unsigned nLOKW
pWindow->PaintToDevice(pDevice.get(), Point(0, 0), Size());
comphelper::LibreOfficeKit::setDialogPainting(false);
+ SAL_INFO( "vcl.cg", "CGContextRelease(" << cgc << ")" );
CGContextRelease(cgc);
#else
More information about the Libreoffice-commits
mailing list