public static IComObject <T> CreateDeviceContext <T>(this ID2D1Device device, D2D1_DEVICE_CONTEXT_OPTIONS options = 0) where T : ID2D1DeviceContext { if (device == null) { throw new ArgumentNullException(nameof(device)); } device.CreateDeviceContext(options, out var dc).ThrowOnError(); return(new ComObject <T>((T)dc)); }
public static ID2D1DeviceContext CreateRenderTarget( ID2D1Factory1 factory2d, ID3D11Device device3d) { var dxgiDevice = device3d.QueryInterface <IDXGIDevice>(); using (ID2D1Device device2d = factory2d.CreateDevice(dxgiDevice)) { return(device2d.CreateDeviceContext(DeviceContextOptions.None)); } }