summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorPtyl Dragon <ptyl@cloudon.com>2013-10-28 13:50:50 +0200
committerJan Holesovsky <kendy@collabora.com>2013-11-15 16:51:54 +0100
commit3ea4d26865c645fa76ea77bb94f084b2a435e20a (patch)
tree2e8ab3e7c37d3b49b28bcbffce15422bd7c90fcc /sw
parent896f76f5e1ef8d74a9bc4ee5810fdced7f359714 (diff)
in progress tile rendering
Change-Id: Ie49fc47700287c3c21f234e3fece2b3afd272d24
Diffstat (limited to 'sw')
-rw-r--r--sw/source/core/view/viewsh.cxx16
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,