public void InitDX() { m_PresentParameters = new PresentParameters() { Windowed = true, SwapEffect = SwapEffect.Discard }; Logger.WriteLine(Logger.Stage.INIT_GFX, "creating device..."); m_Device = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, m_PresentParameters); Logger.WriteLine(Logger.Stage.INIT_GFX, "device info :"); AdapterDetails devInfo = Manager.Adapters[0].Information; Caps devCaps = m_Device.DeviceCaps; Logger.WriteLine(Logger.Stage.INIT_GFX, String.Format("- device desc : {0}", devInfo.Description)); Logger.WriteLine(Logger.Stage.INIT_GFX, String.Format("- max texture size : {0}x{1}", devCaps.MaxTextureWidth, devCaps.MaxTextureHeight)); Logger.WriteLine(Logger.Stage.INIT_GFX, String.Format("- vertex shader version : {0}", devCaps.VertexShaderVersion.ToString())); Logger.WriteLine(Logger.Stage.INIT_GFX, String.Format("- pixel shader version : {0}", devCaps.PixelShaderVersion.ToString())); Logger.WriteLine(Logger.Stage.INIT_GFX, "device reset.."); m_Device_DeviceReset(m_Device, null); m_Device.DeviceLost += new EventHandler(m_Device_DeviceLost); m_Device.DeviceReset += new EventHandler(m_Device_DeviceReset); m_DXInitialized = true; }
/// <summary> /// Initializes a new instance of the <see cref="GraphicsAdapter" /> class. /// </summary> /// <param name="adapterOrdinal">The adapter ordinal.</param> private GraphicsAdapter(int adapterOrdinal) { this.adapterOrdinal = adapterOrdinal; SupportedDisplayModes = GetSupportedDisplayModes(); CurrentDisplayMode = D3D.GetAdapterDisplayMode(adapterOrdinal); m_adapterDetails = D3D.GetAdapterIdentifier(adapterOrdinal); this.Name = m_adapterDetails.Description + " (" + m_adapterDetails.DeviceName.Replace("\\", "").Replace(".", "") + ")"; }
public DeviceContext(IntPtr handle, int backBufferWidth, int backBufferHeight, bool fullScreen, bool verticalSync) { PerformanceMonitor = new PerformanceMonitor(); _formHandle = handle; PresentationParameters = new PresentParameters() { BackBufferFormat = Format.X8R8G8B8, BackBufferCount = 1, BackBufferWidth = backBufferWidth, BackBufferHeight = backBufferHeight, MultiSampleType = MultisampleType.None, SwapEffect = SwapEffect.Discard, EnableAutoDepthStencil = true, AutoDepthStencilFormat = Format.D24S8, PresentFlags = PresentFlags.DiscardDepthStencil, PresentationInterval = PresentInterval.Immediate, Windowed = !fullScreen, DeviceWindowHandle = _formHandle }; try { Direct3D library = new Direct3D(); if (library.AdapterCount == 0) { throw new Exception("Unable to find an appropriate Direct3D adapter."); } AdapterDetails adapterDetails = library.GetAdapterIdentifier(0); AdapterInformation adapterInformation = library.Adapters[0]; _device = new Device(library, 0, DeviceType.Hardware, _formHandle, CreateFlags.HardwareVertexProcessing, PresentationParameters); _viewport = _device.Viewport; _capabilities = _device.Capabilities; Tracer.Info("Adapter: {0}", adapterDetails.DeviceName); Tracer.Info("Driver: {0}, v{1}", adapterDetails.Driver, adapterDetails.DriverVersion); Tracer.Info("Max Texture Size: {0}x{1}", _capabilities.MaxTextureWidth, _capabilities.MaxTextureHeight); Tracer.Info("Max Texture Repeat: {0}", _capabilities.MaxTextureRepeat); Tracer.Info("Max Texture Aspect Ratio: {0}", _capabilities.MaxTextureAspectRatio); Tracer.Info("Texture Size Options: {0}", _capabilities.TextureCaps); } catch (Exception e) { Tracer.Error(e); return; } _vertexDeclarationBuilder = new VertexDeclarationBuilder(this); }
public DisplayAdapter(Microsoft.DirectX.Direct3D.AdapterInformation adapterInfo) { this.ordinal = adapterInfo.Adapter; this.details = adapterInfo.Information; // Get list of all display modes on this adapter. // Also build a temporary list of all display adapter formats. foreach (DisplayMode displayMode in adapterInfo.SupportedDisplayModes) this.displayModes.Add(displayMode); DisplayModeComparer dmc = new DisplayModeComparer(); this.displayModes.Sort(dmc); RefreshDisplayDevices(); }
internal override void MakeApiInfo() { AdapterDetails details = Direct3D.GetAdapterIdentifier(d3d, 0); string adapter = details.Description; uint memRaw = Device.GetAvailableTextureMemory(device); float texMem = Device.GetAvailableTextureMemory(device) / 1024f / 1024f; ApiInfo = new string[] { "-- Using Direct3D9 --", "Adapter: " + adapter, "Processing mode: " + createFlags, "Texture memory: " + texMem + " MB", "Max texture size: (" + MaxTexWidth + ", " + MaxTexHeight + ")", "Depth buffer format: " + depthFormat, "Back buffer format: " + viewFormat, }; }
/// <summary> /// Provede inicializaci /// </summary> private void Init() { int defaultAdapter = 0; DeviceType type = DeviceType.Hardware; for (int t = 0; t < Manager.Adapters.Count; t++) { AdapterDetails adapterInformation = Manager.Adapters[t].Information; if (adapterInformation.Description == "NVIDIA PerfHUD") { type = DeviceType.Reference; defaultAdapter = t; break; } } device = new Device(defaultAdapter, type, form, CreateFlags.HardwareVertexProcessing, presentParameters); }
public DisplayAdapter(Microsoft.DirectX.Direct3D.AdapterInformation adapterInfo) { this.ordinal = adapterInfo.Adapter; this.details = adapterInfo.Information; // Get list of all display modes on this adapter. // Also build a temporary list of all display adapter formats. foreach (DisplayMode displayMode in adapterInfo.SupportedDisplayModes) { this.displayModes.Add(displayMode); } DisplayModeComparer dmc = new DisplayModeComparer(); this.displayModes.Sort(dmc); RefreshDisplayDevices(); }
internal override void MakeApiInfo() { AdapterDetails details = Direct3D.GetAdapterIdentifier(d3d, 0); string adapter = details.Description; totalMem = VideoMemoryMB; ApiInfo = new string[] { "-- Using Direct3D9 --", "Adapter: " + adapter, "Processing mode: " + createFlags, null, "Max texture size: (" + MaxTexWidth + ", " + MaxTexHeight + ")", "Depth buffer format: " + depthFormat, "Back buffer format: " + viewFormat, }; UpdateApiInfo(); }
/*------------------------------------------------------------------------- * デバイス情報を得る * 単純に文字列とする * ---------------------------------------------------------------------------*/ private void get_device_information() { Caps caps = base.caps; AdapterDetails details = Manager.Adapters[base.adpter_index].Information; // 短い版 m_device_info_string_short = details.Description; // 通常 m_device_info_string = details.Description + "\n"; m_device_info_string += "VertexShader: " + caps.VertexShaderVersion.ToString() + " "; m_device_info_string += "PixelShader: " + caps.PixelShaderVersion.ToString() + "\n"; m_device_info_string += "頂点処理:"; if ((base.create_flags & CreateFlags.HardwareVertexProcessing) != 0) { // ハードウェアで頂点変換に対応している m_device_info_string += "HardwareVertexProcessing"; if ((base.create_flags & CreateFlags.PureDevice) != 0) { // ピュアデバイス m_device_info_string += "(PureDevice)\n"; } else { m_device_info_string += "\n"; } } else { // ハードウェアで頂点変換に対応していない if ((base.create_flags & CreateFlags.SoftwareVertexProcessing) != 0) { m_device_info_string += "SoftwareVertexProcessing\n"; } } m_device_info_string += "Vertex/Pixel Shader:"; m_device_info_string += (now_use_shader)? "有効": "無効"; }
/// <summary> /// Updates the string which describes the device /// </summary> private void UpdateDeviceStats(DeviceType deviceType, CreateFlags behaviorFlags, AdapterDetails info) { if (State.AreStatsHidden) return; // Do nothing if stats are hidden // Get the behavior flags BehaviorFlags flags = new BehaviorFlags(behaviorFlags); // Store device information System.Text.StringBuilder builder = new System.Text.StringBuilder(); // Append device type builder.Append(deviceType.ToString()); // Append other types based on flags if (flags.HardwareVertexProcessing && flags.PureDevice) { if (deviceType == DeviceType.Hardware) builder.Append(" (pure hw vp)"); else builder.Append(" (simulated pure hw vp)"); } else if (flags.HardwareVertexProcessing) { if (deviceType == DeviceType.Hardware) builder.Append(" (hw vp)"); else builder.Append(" (simulated hw vp)"); } else if (flags.MixedVertexProcessing) { if (deviceType == DeviceType.Hardware) builder.Append(" (mixed vp)"); else builder.Append(" (simulated mixed vp)"); } else if (flags.SoftwareVertexProcessing) { builder.Append(" (sw vp)"); } // now add the description builder.Append(": "); builder.Append(info.Description); // Store the device stats string State.DeviceStats = builder.ToString(); }
public DeviceEnumeration(Direct3D d3d) { InitializeComponent(); _displayModes = new List<DisplayMode>(); _settingsScript = new Script("DisplaySettings.txt"); _adapter = d3d.GetAdapterIdentifier(0); var allowedFormats = new[] { Format.X1R5G5B5, Format.A1R5G5B5, Format.R5G6B5, Format.X8R8G8B8, Format.A8R8G8B8, Format.A2R10G10B10, }; for (var af = 0; af < allowedFormats.Length; af++) { var format = allowedFormats[af]; var modes = d3d.GetAdapterModeCount(0, format); for (var m = 0; m < modes; m++) { var mode = d3d.EnumerateAdapterModes(0, format, m); if (mode.Height < 600) continue; var displayMode = new DisplayMode { Mode = mode, Bpp = af < 3 ? "16 bpp" : "32 bpp" }; _displayModes.Add(displayMode); } } txtAdapterName.Text = _adapter.Description; txtDriverVersion.Text = _adapter.DriverVersion.ToString(); if (_settingsScript.VariableCount == 0) { _windowed = true; rbWindowed.Checked = true; } else { if (_settingsScript.GetBool("windowed")) { _windowed = true; rbWindowed.Checked = true; } else { rbFullscreen.Checked = true; _windowed = false; } } if (!_windowed) { // enable fullscreen options chkVSync.Enabled = true; cbColorFormat.Enabled = true; cbResolution.Enabled = true; cbRefresh.Enabled = true; chkVSync.Checked = _settingsScript.GetBool("vsync"); ResetColorFormats(); long selectedRes = _settingsScript.GetNumber("resolution"); ResetResolution(selectedRes); long refresh = _settingsScript.GetNumber("refresh"); ResetRefresh(refresh); } }
public DeviceEnumeration(Direct3D d3d) { InitializeComponent(); _displayModes = new List <DisplayMode>(); _settingsScript = new Script("DisplaySettings.txt"); _adapter = d3d.GetAdapterIdentifier(0); var allowedFormats = new[] { Format.X1R5G5B5, Format.A1R5G5B5, Format.R5G6B5, Format.X8R8G8B8, Format.A8R8G8B8, Format.A2R10G10B10, }; for (var af = 0; af < allowedFormats.Length; af++) { var format = allowedFormats[af]; var modes = d3d.GetAdapterModeCount(0, format); for (var m = 0; m < modes; m++) { var mode = d3d.EnumerateAdapterModes(0, format, m); if (mode.Height < 600) { continue; } var displayMode = new DisplayMode { Mode = mode, Bpp = af < 3 ? "16 bpp" : "32 bpp" }; _displayModes.Add(displayMode); } } txtAdapterName.Text = _adapter.Description; txtDriverVersion.Text = _adapter.DriverVersion.ToString(); if (_settingsScript.VariableCount == 0) { _windowed = true; rbWindowed.Checked = true; } else { if (_settingsScript.GetBool("windowed")) { _windowed = true; rbWindowed.Checked = true; } else { rbFullscreen.Checked = true; _windowed = false; } } if (!_windowed) { // enable fullscreen options chkVSync.Enabled = true; cbColorFormat.Enabled = true; cbResolution.Enabled = true; cbRefresh.Enabled = true; chkVSync.Checked = _settingsScript.GetBool("vsync"); ResetColorFormats(); long selectedRes = _settingsScript.GetNumber("resolution"); ResetResolution(selectedRes); long refresh = _settingsScript.GetNumber("refresh"); ResetRefresh(refresh); } }