From 37075c7e90457621eb251b4e3996d3c4b8f92a1c Mon Sep 17 00:00:00 2001 From: Glatzemann Date: Tue, 19 Mar 2013 15:26:37 +0000 Subject: [PATCH] added "CurrentDisplayMode" of DefaultAdapter for GL3, DX10 and DX11 (issue #1194) --- ANX.Framework/Graphics/GraphicsAdapter.cs | 30 +++---------------- RenderSystems/ANX.Framework.GL3/Creator.cs | 3 ++ .../ANX.RenderSystem.Windows.DX10/Creator.cs | 8 ++--- .../ANX.RenderSystem.Windows.DX11/Creator.cs | 8 ++--- 4 files changed, 15 insertions(+), 34 deletions(-) diff --git a/ANX.Framework/Graphics/GraphicsAdapter.cs b/ANX.Framework/Graphics/GraphicsAdapter.cs index 399ab6a0..85927a28 100644 --- a/ANX.Framework/Graphics/GraphicsAdapter.cs +++ b/ANX.Framework/Graphics/GraphicsAdapter.cs @@ -31,22 +31,10 @@ namespace ANX.Framework.Graphics public int Revision { get; set; } public int SubSystemId { get; set; } public int VendorId { get; set; } - - public DisplayMode CurrentDisplayMode - { - get - { - throw new NotImplementedException(); - } - } - - public string Description - { - get - { - throw new NotImplementedException(); - } - } + public string Description { get; set; } + public DisplayMode CurrentDisplayMode { get; set; } + public DisplayModeCollection SupportedDisplayModes { get; set; } + public IntPtr MonitorHandle { get; set; } public bool IsWideScreen { @@ -56,16 +44,6 @@ namespace ANX.Framework.Graphics } } - public IntPtr MonitorHandle - { - get - { - throw new NotImplementedException(); - } - } - - public DisplayModeCollection SupportedDisplayModes { get; set; } - static GraphicsAdapter() { var creator = AddInSystemFactory.Instance.GetDefaultCreator(); diff --git a/RenderSystems/ANX.Framework.GL3/Creator.cs b/RenderSystems/ANX.Framework.GL3/Creator.cs index 3b427747..873d0df6 100644 --- a/RenderSystems/ANX.Framework.GL3/Creator.cs +++ b/RenderSystems/ANX.Framework.GL3/Creator.cs @@ -271,6 +271,8 @@ namespace ANX.RenderSystem.GL3 resultingModes.Add(new DisplayMode(res.Width, res.Height, surfaceFormat)); } + DisplayDevice dev = DisplayDevice.GetDisplay(DisplayIndex.Default); + var newAdapter = new GraphicsAdapter { SupportedDisplayModes = new DisplayModeCollection(resultingModes), @@ -282,6 +284,7 @@ namespace ANX.RenderSystem.GL3 Revision = 0, SubSystemId = 0, VendorId = 0, + CurrentDisplayMode = new DisplayMode(dev.Width, dev.Height, SurfaceFormat.Color) }; result.Add(newAdapter); diff --git a/RenderSystems/ANX.RenderSystem.Windows.DX10/Creator.cs b/RenderSystems/ANX.RenderSystem.Windows.DX10/Creator.cs index f869cbfd..7cd45e6e 100644 --- a/RenderSystems/ANX.RenderSystem.Windows.DX10/Creator.cs +++ b/RenderSystems/ANX.RenderSystem.Windows.DX10/Creator.cs @@ -183,16 +183,13 @@ namespace ANX.RenderSystem.Windows.DX10 using (Adapter adapter = factory.GetAdapter(i)) { var ga = new GraphicsAdapter(); - //ga.CurrentDisplayMode = ; - //ga.Description = ; + ga.Description = adapter.Description.Description; ga.DeviceId = adapter.Description.DeviceId; ga.DeviceName = adapter.Description.Description; ga.IsDefaultAdapter = i == 0; //TODO: how to set default adapter? //ga.IsWideScreen = ; - //ga.MonitorHandle = ; ga.Revision = adapter.Description.Revision; ga.SubSystemId = adapter.Description.SubsystemId; - //ga.SupportedDisplayModes = ; ga.VendorId = adapter.Description.VendorId; resultingModes.Clear(); @@ -208,6 +205,9 @@ namespace ANX.RenderSystem.Windows.DX10 var displayMode = new DisplayMode(modeDescription.Width, modeDescription.Height, DxFormatConverter.Translate(modeDescription.Format)); resultingModes.Add(displayMode); } + + ga.CurrentDisplayMode = new DisplayMode(adapterOutput.Description.DesktopBounds.Width, adapterOutput.Description.DesktopBounds.Height, SurfaceFormat.Color); + ga.MonitorHandle = adapterOutput.Description.MonitorHandle; } } diff --git a/RenderSystems/ANX.RenderSystem.Windows.DX11/Creator.cs b/RenderSystems/ANX.RenderSystem.Windows.DX11/Creator.cs index d895d085..1914622c 100644 --- a/RenderSystems/ANX.RenderSystem.Windows.DX11/Creator.cs +++ b/RenderSystems/ANX.RenderSystem.Windows.DX11/Creator.cs @@ -189,16 +189,13 @@ namespace ANX.RenderSystem.Windows.DX11 using (Adapter adapter = factory.GetAdapter(i)) { GraphicsAdapter ga = new GraphicsAdapter(); - //ga.CurrentDisplayMode = ; - //ga.Description = ; + ga.Description = adapter.Description.Description; ga.DeviceId = adapter.Description.DeviceId; ga.DeviceName = adapter.Description.Description; ga.IsDefaultAdapter = i == 0; //TODO: how to set default adapter? //ga.IsWideScreen = ; - //ga.MonitorHandle = ; ga.Revision = adapter.Description.Revision; ga.SubSystemId = adapter.Description.SubsystemId; - //ga.SupportedDisplayModes = ; ga.VendorId = adapter.Description.VendorId; resultingModes.Clear(); @@ -214,6 +211,9 @@ namespace ANX.RenderSystem.Windows.DX11 var displayMode = new DisplayMode(modeDescription.Width, modeDescription.Height, DxFormatConverter.Translate(modeDescription.Format)); resultingModes.Add(displayMode); } + + ga.CurrentDisplayMode = new DisplayMode(adapterOutput.Description.DesktopBounds.Width, adapterOutput.Description.DesktopBounds.Height, SurfaceFormat.Color); + ga.MonitorHandle = adapterOutput.Description.MonitorHandle; } }