public void CopyFromMemory(D2D1RectU destRect, IntPtr srcData, uint pitch) { GCHandle destRectHandle = GCHandle.Alloc(destRect, GCHandleType.Pinned); try { this.bitmap.CopyFromMemory(destRectHandle.AddrOfPinnedObject(), srcData, pitch); } finally { destRectHandle.Free(); } }
public void CopyFromRenderTarget(D2D1RenderTarget renderTarget, D2D1RectU srcRect) { if (renderTarget == null) { throw new ArgumentNullException("renderTarget"); } GCHandle srcRectHandle = GCHandle.Alloc(srcRect, GCHandleType.Pinned); try { this.bitmap.CopyFromRenderTarget(IntPtr.Zero, renderTarget.GetHandle <ID2D1RenderTarget>(), srcRectHandle.AddrOfPinnedObject()); } finally { srcRectHandle.Free(); } }
public void CopyFromBitmap(D2D1Bitmap srcBitmap, D2D1RectU srcRect) { if (srcBitmap == null) { throw new ArgumentNullException("srcBitmap"); } GCHandle srcRectHandle = GCHandle.Alloc(srcRect, GCHandleType.Pinned); try { this.bitmap.CopyFromBitmap(IntPtr.Zero, srcBitmap.bitmap, srcRectHandle.AddrOfPinnedObject()); } finally { srcRectHandle.Free(); } }