diff options
author | Ptyl Dragon <ptyl@cloudon.com> | 2013-10-28 13:50:50 +0200 |
---|---|---|
committer | Jan Holesovsky <kendy@collabora.com> | 2013-11-15 16:51:54 +0100 |
commit | 3ea4d26865c645fa76ea77bb94f084b2a435e20a (patch) | |
tree | 2e8ab3e7c37d3b49b28bcbffce15422bd7c90fcc /sw/source | |
parent | 896f76f5e1ef8d74a9bc4ee5810fdced7f359714 (diff) |
in progress tile rendering
Change-Id: Ie49fc47700287c3c21f234e3fece2b3afd272d24
Diffstat (limited to 'sw/source')
-rw-r--r-- | sw/source/core/view/viewsh.cxx | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/sw/source/core/view/viewsh.cxx b/sw/source/core/view/viewsh.cxx index 845ffc501d57..eea74f3e3740 100644 --- a/sw/source/core/view/viewsh.cxx +++ b/sw/source/core/view/viewsh.cxx @@ -160,7 +160,9 @@ void SwViewShell::DLPrePaint2(const Region& rRegion) if(mpTargetPaintWindow->GetPreRenderDevice()) { mpBufferedOut = mpOut; +#ifndef IOS mpOut = &(mpTargetPaintWindow->GetTargetOutputDevice()); +#endif } // remember original paint MapMode for wrapped FlyFrame paints @@ -190,11 +192,13 @@ void SwViewShell::DLPostPaint2(bool bPaintFormLayer) mPrePostPaintRegions.pop(); // clear if(0 != mpTargetPaintWindow) { +#ifndef IOS // #i74769# restore buffered OutDev if(mpTargetPaintWindow->GetPreRenderDevice()) { mpOut = mpBufferedOut; } +#endif // #i74769# use SdrPaintWindow now direct Imp()->GetDrawView()->EndDrawLayers(*mpTargetPaintWindow, bPaintFormLayer); @@ -1786,16 +1790,22 @@ void touch_lo_draw_tile(void * context, int contextWidth, int contextHeight, int MapMode aMapMode(aDevice.GetMapMode()); aMapMode.SetMapUnit(MAP_TWIP); aMapMode.SetOrigin(Point(-tilePosX, -tilePosY)); + // scaling + Fraction scaleX(contextWidth,tileWidth); + Fraction scaleY(contextHeight,tileHeight); + aMapMode.SetScaleX(scaleX); + aMapMode.SetScaleY(scaleY); aDevice.SetMapMode(aMapMode); - aDevice.SetOutputSizePixel(aDevice.PixelToLogic(Size(contextWidth, contextHeight))); + // resizes the virtual device so to contain the entrie context + aDevice.SetOutputSizePixel(Size(contextWidth, contextHeight)); // draw pViewShell->PaintTile(&aDevice, Rectangle(Point(tilePosX, tilePosY), Size(tileWidth, tileHeight))); // copy the aDevice content to mpImage Bitmap aBitmap(aDevice.GetBitmap(aDevice.PixelToLogic(Point(0,0)), aDevice.PixelToLogic(Size(contextWidth, contextHeight)))); BitmapReadAccess * readAccess = aBitmap.AcquireReadAccess(); touch_lo_copy_buffer((void *) readAccess->GetBuffer(), - tileWidth, - tileHeight, + contextWidth, + contextHeight, readAccess-> GetScanlineSize(), context, contextWidth, |