public WinformsDevice(WinformsEye eye, Direct3D direct3D, CAdapter adapter, ControlWindow primaryWindow, SwapChainDescription implicitSwapChainDesc, DeviceInitializationFlags flags, IFileSystem fileSystem) { this.eye = eye; this.adapter = adapter; this.primaryWindow = primaryWindow; this.implicitSwapChainDesc = implicitSwapChainDesc; this.flags = flags; caps = adapter.Info.GetCaps(DeviceType.Hardware); devicePresentParams = new PresentParameters(); FillDevicePresentParams(); d3dDevice = new Device(direct3D, adapter.Index, DeviceType.Hardware, primaryWindow.Handle, CreateFlags.FpuPreserve | CreateFlags.HardwareVertexProcessing, devicePresentParams); CreateBackBufferAndDepthStencil(); additionalSwapChains = new List<CAdditionalSwapChain>(); creator = new CDeviceChildCreator(this); immediateContext = new CDeviceContext(this); lastSwapChainSize = new IntSize(primaryWindow.SwapChainWidth, primaryWindow.SwapChainHeight); fullscreenState = FullscreenState.Windowed; fullscreenDisplayMode = adapter.GetSupportedDisplayModes().First(); }
public DefaultDevice(DefaultEye eye, CAdapter adapter, DeviceInitializationFlags flags, WindowHandle windowHandle, ref SwapChainDescription implicitSwapChainDescription, IFileSystem fileSystem) { this.eye = eye; this.adapter = adapter; this.flags = flags; primaryWindow = new DefaultWindow(this, windowHandle.ClientWidth, windowHandle.ClientHeight, ref implicitSwapChainDescription, windowHandle.Title, GameWindowFlags.Default, ((COutput)adapter.Outputs[0]).GLDisplayDevice, ref glContext); creator = new CDeviceChildCreator(this); immediateContext = new CDeviceContext(this, glContext); }
public WinformsDevice(Factory1 dxgiFactory, WinformsEye eye, CAdapter adapter, ControlWindow primaryWindow, SwapChainDescription primarySwapChainDesc, DeviceInitializationFlags flags, IFileSystem fileSystem) { this.flags = flags; this.eye = eye; this.dxgiFactory = dxgiFactory; this.adapter = adapter; d3dDevice = new Device(adapter.DXGIAdapter, CtSharpDX11.DeviceCreationFlags(flags)); primarySwapChain = new CSwapChain(this, primaryWindow, ref primarySwapChainDesc, pswc => { }, () => !primaryWindow.IsVisible && additionalSwapChains.All(aswc => !aswc.Window.IsVisible)); creator = new CDeviceChildCreator(this); immediateContext = new CDeviceContext(this, d3dDevice.ImmediateContext); additionalSwapChains = new List<CSwapChain>(); }
public void Initialize( IAdapter adapter, IWindowHandle windowHandle, SwapChainDescription primarySwapChainDescription, DeviceInitializationFlags initializationFlags, IFileSystem fileSystem) { var cAdapter = (CAdapter)adapter; var primaryWindow = (ControlWindow)windowHandle; device = new WinformsDevice(this, direct3D, cAdapter, primaryWindow, primarySwapChainDescription, initializationFlags, fileSystem); primaryWindow.SetSwapChain(device); primaryWindow.Control.Show(); windows.Add(primaryWindow); IsInitialized = true; }
public void Initialize( IAdapter adapter, IWindowHandle windowHandle, BSwapChainDescription primarySwapChainDesc, DeviceInitializationFlags initializationFlags, IFileSystem fileSystem) { var cAdapter = (CAdapter)adapter; var window = (ControlWindow)windowHandle; device = new WinformsDevice(factory, this, cAdapter, window, primarySwapChainDesc, initializationFlags, fileSystem); window.SetSwapChain(device.PrimarySwapChain); windows.Add(window); window.Control.Show(); IsInitialized = true; }
public void Initialize(IAdapter adapter, IWindowHandle windowHandle, SwapChainDescription primarySwapChainDesc, DeviceInitializationFlags initializationFlags, IFileSystem fileSystem) { if (adapter != adapters[0]) throw new ArgumentException("Provided adapter is not on of this eye's adapters"); device = new DefaultDevice(this, (CAdapter)adapter, initializationFlags, (WindowHandle)windowHandle, ref primarySwapChainDesc, fileSystem); initialized = true; }
public static OpenTK.Graphics.GraphicsContextFlags GraphicsContextFlags(DeviceInitializationFlags bFlags) { var glFlags = OpenTK.Graphics.GraphicsContextFlags.ForwardCompatible; if ((bFlags & DeviceInitializationFlags.Debug) != 0) glFlags |= OpenTK.Graphics.GraphicsContextFlags.Debug; return glFlags; }