public SkiaCanvasViewport(RootGraphic rootgfx, Size viewportSize, int cachedPageNum) : base(rootgfx, viewportSize, cachedPageNum) { this.CalculateCanvasPages(); mySkCanvas = new PixelFarm.Drawing.Skia.MySkiaCanvas(0, 0, 0, 0, internalSizeW, internalSizwH); memdc = new Win32.NativeWin32MemoryDc(internalSizeW, internalSizwH); }
static void UpdateAllArea(PixelFarm.Drawing.Skia.MySkiaCanvas mycanvas, IRenderElement topWindowRenderBox) { mycanvas.OffsetCanvasOrigin(-mycanvas.Left, -mycanvas.Top); Rectangle rect = mycanvas.Rect; topWindowRenderBox.DrawToThisCanvas(mycanvas, rect); #if DEBUG topWindowRenderBox.dbugShowRenderPart(mycanvas, rect); #endif mycanvas.IsContentReady = true; mycanvas.OffsetCanvasOrigin(mycanvas.Left, mycanvas.Top); }
public SkiaCanvasViewport(RootGraphic rootgfx, Size viewportSize, int cachedPageNum) : base(rootgfx, viewportSize, cachedPageNum) { this.CalculateCanvasPages(); mySkCanvas = new PixelFarm.Drawing.Skia.MySkiaCanvas(0, 0, 0, 0, internalSizeW, internalSizwH); //TODO: review performance here //review how to move data from unmanged(skia) to unmanaged(hdc's bitmap) tmpBmp = new System.Drawing.Bitmap(internalSizeW, internalSizwH); var bmpdata = tmpBmp.LockBits( new System.Drawing.Rectangle(0, 0, internalSizeW, internalSizwH), System.Drawing.Imaging.ImageLockMode.ReadOnly, tmpBmp.PixelFormat); tmpBuffer = new byte[bmpdata.Stride * bmpdata.Height]; tmpBmp.UnlockBits(bmpdata); }