public void ReleaseDC(DxgiRect dirtyRect) { this.surface.ReleaseDC(ref dirtyRect); }
public void Present(uint syncInterval, DxgiPresentOptions options, DxgiRect[] dirtyRects, DxgiRect scrollRect, DxgiPoint scrollOffset) { if (dirtyRects == null) { throw new ArgumentNullException("dirtyRects"); } var dirtyRectsHandle = GCHandle.Alloc(dirtyRects[0], GCHandleType.Pinned); var scrollRectHandle = GCHandle.Alloc(scrollRect, GCHandleType.Pinned); var scrollOffsetHandle = GCHandle.Alloc(scrollOffset, GCHandleType.Pinned); DxgiPresentParameters parameters = new DxgiPresentParameters(); parameters.DirtyRectsCount = (uint)dirtyRects.Length; parameters.DirtyRects = dirtyRectsHandle.AddrOfPinnedObject(); parameters.ScrollRect = scrollRectHandle.AddrOfPinnedObject(); parameters.ScrollOffset = scrollOffsetHandle.AddrOfPinnedObject(); this.swapChain.Present1(syncInterval, options, ref parameters); dirtyRectsHandle.Free(); scrollRectHandle.Free(); scrollOffsetHandle.Free(); }