aboutsummaryrefslogtreecommitdiff
path: root/samples/DX_APIUsage/DXUT/Optional/DXUTsettingsdlg.h
diff options
context:
space:
mode:
authorDave Clark <[email protected]>2018-02-28 17:22:22 -0500
committerDave Clark <[email protected]>2018-02-28 17:22:22 -0500
commit25528fd230f5f4298c35123a833cdb112675808e (patch)
treef5aca3f5ee5a7734df41e7b974a04c37ddff528e /samples/DX_APIUsage/DXUT/Optional/DXUTsettingsdlg.h
parentPush GfeSDK #173 (diff)
downloadgfesdk-25528fd230f5f4298c35123a833cdb112675808e.tar.xz
gfesdk-25528fd230f5f4298c35123a833cdb112675808e.zip
Push SDK # 1.1.186
Documentation updates.
Diffstat (limited to 'samples/DX_APIUsage/DXUT/Optional/DXUTsettingsdlg.h')
-rw-r--r--samples/DX_APIUsage/DXUT/Optional/DXUTsettingsdlg.h248
1 files changed, 248 insertions, 0 deletions
diff --git a/samples/DX_APIUsage/DXUT/Optional/DXUTsettingsdlg.h b/samples/DX_APIUsage/DXUT/Optional/DXUTsettingsdlg.h
new file mode 100644
index 0000000..5d4db4f
--- /dev/null
+++ b/samples/DX_APIUsage/DXUT/Optional/DXUTsettingsdlg.h
@@ -0,0 +1,248 @@
+//--------------------------------------------------------------------------------------
+// File: DXUTSettingsDlg.cpp
+//
+// Copyright (c) Microsoft Corporation. All rights reserved
+//--------------------------------------------------------------------------------------
+#pragma once
+#ifndef DXUT_SETTINGS_H
+#define DXUT_SETTINGS_H
+
+//--------------------------------------------------------------------------------------
+// Header Includes
+//--------------------------------------------------------------------------------------
+#include "DXUTgui.h"
+//--------------------------------------------------------------------------------------
+// Control IDs
+//--------------------------------------------------------------------------------------
+#define DXUTSETTINGSDLG_STATIC -1
+#define DXUTSETTINGSDLG_OK 1
+#define DXUTSETTINGSDLG_CANCEL 2
+#define DXUTSETTINGSDLG_ADAPTER 3
+#define DXUTSETTINGSDLG_DEVICE_TYPE 4
+#define DXUTSETTINGSDLG_WINDOWED 5
+#define DXUTSETTINGSDLG_FULLSCREEN 6
+#define DXUTSETTINGSDLG_ADAPTER_FORMAT 7
+#define DXUTSETTINGSDLG_ADAPTER_FORMAT_LABEL 8
+#define DXUTSETTINGSDLG_RESOLUTION 9
+#define DXUTSETTINGSDLG_RESOLUTION_LABEL 10
+#define DXUTSETTINGSDLG_REFRESH_RATE 11
+#define DXUTSETTINGSDLG_REFRESH_RATE_LABEL 12
+#define DXUTSETTINGSDLG_BACK_BUFFER_FORMAT 13
+#define DXUTSETTINGSDLG_BACK_BUFFER_FORMAT_LABEL 14
+#define DXUTSETTINGSDLG_DEPTH_STENCIL 15
+#define DXUTSETTINGSDLG_DEPTH_STENCIL_LABEL 16
+#define DXUTSETTINGSDLG_MULTISAMPLE_TYPE 17
+#define DXUTSETTINGSDLG_MULTISAMPLE_TYPE_LABEL 18
+#define DXUTSETTINGSDLG_MULTISAMPLE_QUALITY 19
+#define DXUTSETTINGSDLG_MULTISAMPLE_QUALITY_LABEL 20
+#define DXUTSETTINGSDLG_VERTEX_PROCESSING 21
+#define DXUTSETTINGSDLG_VERTEX_PROCESSING_LABEL 22
+#define DXUTSETTINGSDLG_PRESENT_INTERVAL 23
+#define DXUTSETTINGSDLG_PRESENT_INTERVAL_LABEL 24
+#define DXUTSETTINGSDLG_DEVICECLIP 25
+#define DXUTSETTINGSDLG_RESOLUTION_SHOW_ALL 26
+#define DXUTSETTINGSDLG_API_VERSION 27
+#define DXUTSETTINGSDLG_D3D11_ADAPTER_OUTPUT 28
+#define DXUTSETTINGSDLG_D3D11_ADAPTER_OUTPUT_LABEL 29
+#define DXUTSETTINGSDLG_D3D11_RESOLUTION 30
+#define DXUTSETTINGSDLG_D3D11_RESOLUTION_LABEL 31
+#define DXUTSETTINGSDLG_D3D11_REFRESH_RATE 32
+#define DXUTSETTINGSDLG_D3D11_REFRESH_RATE_LABEL 33
+#define DXUTSETTINGSDLG_D3D11_BACK_BUFFER_FORMAT 34
+#define DXUTSETTINGSDLG_D3D11_BACK_BUFFER_FORMAT_LABEL 35
+#define DXUTSETTINGSDLG_D3D11_MULTISAMPLE_COUNT 36
+#define DXUTSETTINGSDLG_D3D11_MULTISAMPLE_COUNT_LABEL 37
+#define DXUTSETTINGSDLG_D3D11_MULTISAMPLE_QUALITY 38
+#define DXUTSETTINGSDLG_D3D11_MULTISAMPLE_QUALITY_LABEL 39
+#define DXUTSETTINGSDLG_D3D11_PRESENT_INTERVAL 40
+#define DXUTSETTINGSDLG_D3D11_PRESENT_INTERVAL_LABEL 41
+#define DXUTSETTINGSDLG_D3D11_DEBUG_DEVICE 42
+#define DXUTSETTINGSDLG_D3D11_FEATURE_LEVEL 43
+#define DXUTSETTINGSDLG_D3D11_FEATURE_LEVEL_LABEL 44
+
+#define DXUTSETTINGSDLG_MODE_CHANGE_ACCEPT 58
+#define DXUTSETTINGSDLG_MODE_CHANGE_REVERT 59
+#define DXUTSETTINGSDLG_STATIC_MODE_CHANGE_TIMEOUT 60
+#define DXUTSETTINGSDLG_WINDOWED_GROUP 0x0100
+
+#define TOTAL_FEATURE_LEVLES 6
+//--------------------------------------------------------------------------------------
+// Dialog for selection of device settings
+// Use DXUTGetD3DSettingsDialog() to access global instance
+// To control the contents of the dialog, use the CD3D9Enumeration class.
+//--------------------------------------------------------------------------------------
+class CD3DSettingsDlg
+{
+public:
+ CD3DSettingsDlg();
+ ~CD3DSettingsDlg();
+
+ void Init( CDXUTDialogResourceManager* pManager );
+ void Init( CDXUTDialogResourceManager* pManager, LPCWSTR szControlTextureFileName );
+ void Init( CDXUTDialogResourceManager* pManager, LPCWSTR pszControlTextureResourcename,
+ HMODULE hModule );
+
+ HRESULT Refresh();
+ void OnRender( float fElapsedTime );
+ void OnRender9( float fElapsedTime );
+ void OnRender10( float fElapsedTime );
+ void OnRender11( float fElapsedTime );
+
+ HRESULT OnD3D9CreateDevice( IDirect3DDevice9* pd3dDevice );
+ HRESULT OnD3D9ResetDevice();
+ void OnD3D9LostDevice();
+ void OnD3D9DestroyDevice();
+
+ HRESULT OnD3D11CreateDevice( ID3D11Device* pd3dDevice );
+ HRESULT OnD3D11ResizedSwapChain( ID3D11Device* pd3dDevice,
+ const DXGI_SURFACE_DESC* pBackBufferSurfaceDesc );
+ void OnD3D11DestroyDevice();
+
+ CDXUTDialog* GetDialogControl()
+ {
+ return &m_Dialog;
+ }
+ bool IsActive()
+ {
+ return m_bActive;
+ }
+ void SetActive( bool bActive )
+ {
+ m_bActive = bActive; if( bActive ) Refresh();
+ }
+ void ShowControlSet( DXUTDeviceVersion ver );
+
+ LRESULT MsgProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
+
+protected:
+ friend CD3DSettingsDlg* WINAPI DXUTGetD3DSettingsDialog();
+
+ void CreateControls();
+ HRESULT SetDeviceSettingsFromUI();
+ void SetSelectedD3D11RefreshRate( DXGI_RATIONAL RefreshRate );
+ HRESULT UpdateD3D11Resolutions();
+
+ void OnEvent( UINT nEvent, int nControlID, CDXUTControl* pControl );
+ static void WINAPI StaticOnEvent( UINT nEvent, int nControlID, CDXUTControl* pControl, void* pUserData );
+ static void WINAPI StaticOnModeChangeTimer( UINT nIDEvent, void* pUserContext );
+
+ CD3D9EnumAdapterInfo* GetCurrentAdapterInfo();
+ CD3D9EnumDeviceInfo* GetCurrentDeviceInfo();
+ CD3D9EnumDeviceSettingsCombo* GetCurrentDeviceSettingsCombo();
+
+ CD3D11EnumAdapterInfo* GetCurrentD3D11AdapterInfo();
+ CD3D11EnumDeviceInfo* GetCurrentD3D11DeviceInfo();
+ CD3D11EnumOutputInfo* GetCurrentD3D11OutputInfo();
+ CD3D11EnumDeviceSettingsCombo* GetCurrentD3D11DeviceSettingsCombo();
+
+ void AddAPIVersion( DXUTDeviceVersion version );
+ DXUTDeviceVersion GetSelectedAPIVersion();
+
+ void AddAdapter( const WCHAR* strDescription, UINT iAdapter );
+ UINT GetSelectedAdapter();
+
+ void AddDeviceType( D3DDEVTYPE devType );
+ D3DDEVTYPE GetSelectedDeviceType();
+
+ void SetWindowed( bool bWindowed );
+ bool IsWindowed();
+
+ void AddAdapterFormat( D3DFORMAT format );
+ D3DFORMAT GetSelectedAdapterFormat();
+
+ void AddResolution( DWORD dwWidth, DWORD dwHeight );
+ void GetSelectedResolution( DWORD* pdwWidth, DWORD* pdwHeight );
+
+ void AddRefreshRate( DWORD dwRate );
+ DWORD GetSelectedRefreshRate();
+
+ void AddBackBufferFormat( D3DFORMAT format );
+ D3DFORMAT GetSelectedBackBufferFormat();
+
+ void AddDepthStencilBufferFormat( D3DFORMAT format );
+ D3DFORMAT GetSelectedDepthStencilBufferFormat();
+
+ void AddMultisampleType( D3DMULTISAMPLE_TYPE type );
+ D3DMULTISAMPLE_TYPE GetSelectedMultisampleType();
+
+ void AddMultisampleQuality( DWORD dwQuality );
+ DWORD GetSelectedMultisampleQuality();
+
+ void AddVertexProcessingType( DWORD dwType );
+ DWORD GetSelectedVertexProcessingType();
+
+ DWORD GetSelectedPresentInterval();
+
+ void SetDeviceClip( bool bDeviceClip );
+ bool IsDeviceClip();
+
+ // D3D11
+ void AddD3D11DeviceType( D3D_DRIVER_TYPE devType );
+ D3D_DRIVER_TYPE GetSelectedD3D11DeviceType();
+
+ void AddD3D11AdapterOutput( const WCHAR* strName, UINT nOutput );
+ UINT GetSelectedD3D11AdapterOutput();
+
+ void AddD3D11Resolution( DWORD dwWidth, DWORD dwHeight );
+ void GetSelectedD3D11Resolution( DWORD* pdwWidth, DWORD* pdwHeight );
+
+ void AddD3D11FeatureLevel(D3D_FEATURE_LEVEL);
+ D3D_FEATURE_LEVEL GetSelectedFeatureLevel();
+
+ void AddD3D11RefreshRate( DXGI_RATIONAL RefreshRate );
+ DXGI_RATIONAL GetSelectedD3D11RefreshRate();
+
+ void AddD3D11BackBufferFormat( DXGI_FORMAT format );
+ DXGI_FORMAT GetSelectedD3D11BackBufferFormat();
+
+ void AddD3D11MultisampleCount( UINT count );
+ UINT GetSelectedD3D11MultisampleCount();
+
+ void AddD3D11MultisampleQuality( UINT Quality );
+ UINT GetSelectedD3D11MultisampleQuality();
+
+ DWORD GetSelectedD3D11PresentInterval();
+ bool GetSelectedDebugDeviceValue();
+
+
+
+ HRESULT OnD3D11ResolutionChanged ();
+ HRESULT OnAPIVersionChanged( bool bRefresh=false );
+ HRESULT OnFeatureLevelChanged();
+ HRESULT OnAdapterChanged();
+ HRESULT OnDeviceTypeChanged();
+ HRESULT OnWindowedFullScreenChanged();
+ HRESULT OnAdapterOutputChanged();
+ HRESULT OnAdapterFormatChanged();
+ HRESULT OnResolutionChanged();
+ HRESULT OnRefreshRateChanged();
+ HRESULT OnBackBufferFormatChanged();
+ HRESULT OnDepthStencilBufferFormatChanged();
+ HRESULT OnMultisampleTypeChanged();
+ HRESULT OnMultisampleQualityChanged();
+ HRESULT OnVertexProcessingChanged();
+ HRESULT OnPresentIntervalChanged();
+ HRESULT OnDebugDeviceChanged();
+ HRESULT OnDeviceClipChanged();
+
+ void UpdateModeChangeTimeoutText( int nSecRemaining );
+
+ IDirect3DStateBlock9* m_pStateBlock;
+ CDXUTDialog* m_pActiveDialog;
+ CDXUTDialog m_Dialog;
+ CDXUTDialog m_RevertModeDialog;
+ int m_nRevertModeTimeout;
+ UINT m_nIDEvent;
+ bool m_bActive;
+
+ D3D_FEATURE_LEVEL m_Levels[TOTAL_FEATURE_LEVLES];
+
+};
+
+
+CD3DSettingsDlg* WINAPI DXUTGetD3DSettingsDialog();
+
+
+
+#endif
+