public static D3d.Device CreateDevice( Settings deviceSettings, System.Windows.Forms.Control renderWindow) { EnumerateAdapters(); // First try full hardware acceleration. D3d.PresentParameters presentParams = deviceSettings.GetPresentParameters( renderWindow ); D3d.CreateFlags createFlags = deviceSettings.GetCreateFlags(true,true); D3d.Device d3dDevice = CreateDevice( renderWindow,presentParams,createFlags,deviceSettings ); if (d3dDevice == null) { log.Warning("Pure device not available."); createFlags = deviceSettings.GetCreateFlags(false,true); d3dDevice = CreateDevice( renderWindow,presentParams,createFlags,deviceSettings ); if (d3dDevice == null) { log.Warning("Hardware vertex processing not available."); createFlags = deviceSettings.GetCreateFlags( false,false ); d3dDevice = CreateDevice( renderWindow,presentParams,createFlags,deviceSettings ); } } return d3dDevice; }
private static D3d.Device CreateDevice(System.Windows.Forms.Control renderWindow, D3d.PresentParameters presentParams, D3d.CreateFlags createFlags, Settings deviceSettings) { try { D3d.Device d3dDevice = new D3d.Device(deviceSettings.adapterIndex, deviceSettings.deviceType, renderWindow, createFlags, presentParams); return d3dDevice; } catch (D3d.DeviceLostException e) { log.Warning("Unable to create Direct3D device: {0}", e.Message); } catch (D3d.InvalidCallException e) { log.Warning("Unable to create Direct3D device: {0}", e.Message); } catch (D3d.NotAvailableException e) { log.Warning("Unable to create Direct3D device: {0}", e.Message); } catch (D3d.OutOfVideoMemoryException e) { log.Warning("Unable to create Direct3D device: {0}", e.Message); } return null; }
public static FrameBuffer Create(Settings settings, D3d.Device device, System.Windows.Forms.Control renderWindow) { D3d.SwapChain swapChain = new D3d.SwapChain( device,settings.GetPresentParameters(renderWindow) ); return null; }
private bool Initialize(System.Windows.Forms.Control renderWindow ) { d3dSettings = new Settings(); d3dDevice = DeviceUtility.CreateDevice( d3dSettings,renderWindow ); if (d3dDevice != null) { d3dCapabilities = new Capabilities(this); // Create subsystems. d3dPrimaryFrameBuffer = FrameBuffer.Create( this ); d3dGeometryManager = GeometryManager.Create( this ); d3dTextureManager = TextureManager.Create(this); d3dQueryManager = QueryManager.Create(this); d3dCompiler = Compiler.Create(this); return true; } return false; }