public DX11RenderContext(Factory1 factory, DXGIScreen screen, DeviceCreationFlags flags = DeviceCreationFlags.None) { this.Factory = factory; this.Screen = screen; this.Device = new Device(screen.Adapter, flags); this.immediatecontext = this.Device.ImmediateContext; this.CurrentDeviceContext = this.immediatecontext; }
public void Refresh() { foreach (DXGIScreen scr in this.screens) { scr.Adapter.Dispose(); scr.Monitor.Dispose(); } screens.Clear(); for (int i = 0; i < this.Factory.GetAdapterCount1(); i++) { Adapter1 adapter = this.Factory.GetAdapter1(i); for (int j = 0; j < adapter.GetOutputCount(); j++) { Output output = adapter.GetOutput(j); DXGIScreen screen = new DXGIScreen(); screen.Adapter = adapter; screen.AdapterId = i; screen.Monitor = output; screen.MonitorId = j; screens.Add(screen); } } }