diff options
| author | sdcb <sdflysha@qq.com> | 2016-10-20 16:50:35 +0800 |
|---|---|---|
| committer | sdcb <sdflysha@qq.com> | 2016-10-20 16:50:35 +0800 |
| commit | c5d487ecd75a4e474c91fa6114470c9ce1adf67c (patch) | |
| tree | 2902be0fcf935dfec2d3107e10f238a649287eb2 | |
| parent | cb0d924ec3fcc4fa6ee7db75a522c697ee5035e1 (diff) | |
| download | vcpkg-c5d487ecd75a4e474c91fa6114470c9ce1adf67c.tar.gz vcpkg-c5d487ecd75a4e474c91fa6114470c9ce1adf67c.zip | |
Add dxut
| -rw-r--r-- | ports/dxut/CONTROL | 3 | ||||
| -rw-r--r-- | ports/dxut/dll.patch | 834 | ||||
| -rw-r--r-- | ports/dxut/portfile.cmake | 56 |
3 files changed, 893 insertions, 0 deletions
diff --git a/ports/dxut/CONTROL b/ports/dxut/CONTROL new file mode 100644 index 000000000..ee632dfab --- /dev/null +++ b/ports/dxut/CONTROL @@ -0,0 +1,3 @@ +Source: dxut +Version: 11.14 +Description: A "GLUT"-like framework for Direct3D 11.x Win32 desktop applications
\ No newline at end of file diff --git a/ports/dxut/dll.patch b/ports/dxut/dll.patch new file mode 100644 index 000000000..4557ab88a --- /dev/null +++ b/ports/dxut/dll.patch @@ -0,0 +1,834 @@ +diff --git a/Core/DDSTextureLoader.h b/Core/DDSTextureLoader.h +index 122df9f..8af6c62 100644 +--- a/Core/DDSTextureLoader.h ++++ b/Core/DDSTextureLoader.h +@@ -23,6 +23,11 @@ + #include <d3d11_1.h> + #include <stdint.h> + ++#ifdef DXUT_EXPORT ++ #define DXUT_API __declspec(dllexport) ++#else ++ #define DXUT_API __declspec(dllimport) ++#endif + + namespace DirectX + { +@@ -34,9 +39,9 @@ namespace DirectX + DDS_ALPHA_MODE_OPAQUE = 3, + DDS_ALPHA_MODE_CUSTOM = 4, + }; +- ++ + // Standard version +- HRESULT CreateDDSTextureFromMemory( _In_ ID3D11Device* d3dDevice, ++ HRESULT DXUT_API CreateDDSTextureFromMemory( _In_ ID3D11Device* d3dDevice, + _In_reads_bytes_(ddsDataSize) const uint8_t* ddsData, + _In_ size_t ddsDataSize, + _Outptr_opt_ ID3D11Resource** texture, +@@ -45,7 +50,7 @@ namespace DirectX + _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr + ); + +- HRESULT CreateDDSTextureFromFile( _In_ ID3D11Device* d3dDevice, ++ HRESULT DXUT_API CreateDDSTextureFromFile( _In_ ID3D11Device* d3dDevice, + _In_z_ const wchar_t* szFileName, + _Outptr_opt_ ID3D11Resource** texture, + _Outptr_opt_ ID3D11ShaderResourceView** textureView, +@@ -54,7 +59,7 @@ namespace DirectX + ); + + // Standard version with optional auto-gen mipmap support +- HRESULT CreateDDSTextureFromMemory( _In_ ID3D11Device* d3dDevice, ++ HRESULT DXUT_API CreateDDSTextureFromMemory( _In_ ID3D11Device* d3dDevice, + _In_opt_ ID3D11DeviceContext* d3dContext, + _In_reads_bytes_(ddsDataSize) const uint8_t* ddsData, + _In_ size_t ddsDataSize, +@@ -64,7 +69,7 @@ namespace DirectX + _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr + ); + +- HRESULT CreateDDSTextureFromFile( _In_ ID3D11Device* d3dDevice, ++ HRESULT DXUT_API CreateDDSTextureFromFile( _In_ ID3D11Device* d3dDevice, + _In_opt_ ID3D11DeviceContext* d3dContext, + _In_z_ const wchar_t* szFileName, + _Outptr_opt_ ID3D11Resource** texture, +@@ -74,7 +79,7 @@ namespace DirectX + ); + + // Extended version +- HRESULT CreateDDSTextureFromMemoryEx( _In_ ID3D11Device* d3dDevice, ++ HRESULT DXUT_API CreateDDSTextureFromMemoryEx( _In_ ID3D11Device* d3dDevice, + _In_reads_bytes_(ddsDataSize) const uint8_t* ddsData, + _In_ size_t ddsDataSize, + _In_ size_t maxsize, +@@ -88,7 +93,7 @@ namespace DirectX + _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr + ); + +- HRESULT CreateDDSTextureFromFileEx( _In_ ID3D11Device* d3dDevice, ++ HRESULT DXUT_API CreateDDSTextureFromFileEx( _In_ ID3D11Device* d3dDevice, + _In_z_ const wchar_t* szFileName, + _In_ size_t maxsize, + _In_ D3D11_USAGE usage, +@@ -102,7 +107,7 @@ namespace DirectX + ); + + // Extended version with optional auto-gen mipmap support +- HRESULT CreateDDSTextureFromMemoryEx( _In_ ID3D11Device* d3dDevice, ++ HRESULT DXUT_API CreateDDSTextureFromMemoryEx( _In_ ID3D11Device* d3dDevice, + _In_opt_ ID3D11DeviceContext* d3dContext, + _In_reads_bytes_(ddsDataSize) const uint8_t* ddsData, + _In_ size_t ddsDataSize, +@@ -117,7 +122,7 @@ namespace DirectX + _Out_opt_ DDS_ALPHA_MODE* alphaMode = nullptr + ); + +- HRESULT CreateDDSTextureFromFileEx( _In_ ID3D11Device* d3dDevice, ++ HRESULT DXUT_API CreateDDSTextureFromFileEx( _In_ ID3D11Device* d3dDevice, + _In_opt_ ID3D11DeviceContext* d3dContext, + _In_z_ const wchar_t* szFileName, + _In_ size_t maxsize, +diff --git a/Core/DXUT.h b/Core/DXUT.h +index fc6247e..a0e06fa 100644 +--- a/Core/DXUT.h ++++ b/Core/DXUT.h +@@ -12,6 +12,12 @@ + //-------------------------------------------------------------------------------------- + #pragma once + ++#ifdef DXUT_EXPORT ++ #define DXUT_API __declspec(dllexport) ++#else ++ #define DXUT_API __declspec(dllimport) ++#endif ++ + #ifndef UNICODE + #error "DXUT requires a Unicode build." + #endif +@@ -207,68 +213,68 @@ typedef void (CALLBACK *LPDXUTCALLBACKD3D11SWAPCHAINRELEASING)( _In_opt_ void + typedef void (CALLBACK *LPDXUTCALLBACKD3D11DEVICEDESTROYED)( _In_opt_ void* pUserContext ); + + // General callbacks +-void WINAPI DXUTSetCallbackFrameMove( _In_ LPDXUTCALLBACKFRAMEMOVE pCallback, _In_opt_ void* pUserContext = nullptr ); +-void WINAPI DXUTSetCallbackKeyboard( _In_ LPDXUTCALLBACKKEYBOARD pCallback, _In_opt_ void* pUserContext = nullptr ); +-void WINAPI DXUTSetCallbackMouse( _In_ LPDXUTCALLBACKMOUSE pCallback, bool bIncludeMouseMove = false, _In_opt_ void* pUserContext = nullptr ); +-void WINAPI DXUTSetCallbackMsgProc( _In_ LPDXUTCALLBACKMSGPROC pCallback, _In_opt_ void* pUserContext = nullptr ); +-void WINAPI DXUTSetCallbackDeviceChanging( _In_ LPDXUTCALLBACKMODIFYDEVICESETTINGS pCallback, _In_opt_ void* pUserContext = nullptr ); +-void WINAPI DXUTSetCallbackDeviceRemoved( _In_ LPDXUTCALLBACKDEVICEREMOVED pCallback, _In_opt_ void* pUserContext = nullptr ); ++void DXUT_API WINAPI DXUTSetCallbackFrameMove( _In_ LPDXUTCALLBACKFRAMEMOVE pCallback, _In_opt_ void* pUserContext = nullptr ); ++void DXUT_API WINAPI DXUTSetCallbackKeyboard( _In_ LPDXUTCALLBACKKEYBOARD pCallback, _In_opt_ void* pUserContext = nullptr ); ++void DXUT_API WINAPI DXUTSetCallbackMouse( _In_ LPDXUTCALLBACKMOUSE pCallback, bool bIncludeMouseMove = false, _In_opt_ void* pUserContext = nullptr ); ++void DXUT_API WINAPI DXUTSetCallbackMsgProc( _In_ LPDXUTCALLBACKMSGPROC pCallback, _In_opt_ void* pUserContext = nullptr ); ++void DXUT_API WINAPI DXUTSetCallbackDeviceChanging( _In_ LPDXUTCALLBACKMODIFYDEVICESETTINGS pCallback, _In_opt_ void* pUserContext = nullptr ); ++void DXUT_API WINAPI DXUTSetCallbackDeviceRemoved( _In_ LPDXUTCALLBACKDEVICEREMOVED pCallback, _In_opt_ void* pUserContext = nullptr ); + + // Direct3D 11 callbacks +-void WINAPI DXUTSetCallbackD3D11DeviceAcceptable( _In_ LPDXUTCALLBACKISD3D11DEVICEACCEPTABLE pCallback, _In_opt_ void* pUserContext = nullptr ); +-void WINAPI DXUTSetCallbackD3D11DeviceCreated( _In_ LPDXUTCALLBACKD3D11DEVICECREATED pCallback, _In_opt_ void* pUserContext = nullptr ); +-void WINAPI DXUTSetCallbackD3D11SwapChainResized( _In_ LPDXUTCALLBACKD3D11SWAPCHAINRESIZED pCallback, _In_opt_ void* pUserContext = nullptr ); +-void WINAPI DXUTSetCallbackD3D11FrameRender( _In_ LPDXUTCALLBACKD3D11FRAMERENDER pCallback, _In_opt_ void* pUserContext = nullptr ); +-void WINAPI DXUTSetCallbackD3D11SwapChainReleasing( _In_ LPDXUTCALLBACKD3D11SWAPCHAINRELEASING pCallback, _In_opt_ void* pUserContext = nullptr ); +-void WINAPI DXUTSetCallbackD3D11DeviceDestroyed( _In_ LPDXUTCALLBACKD3D11DEVICEDESTROYED pCallback, _In_opt_ void* pUserContext = nullptr ); ++void DXUT_API WINAPI DXUTSetCallbackD3D11DeviceAcceptable( _In_ LPDXUTCALLBACKISD3D11DEVICEACCEPTABLE pCallback, _In_opt_ void* pUserContext = nullptr ); ++void DXUT_API WINAPI DXUTSetCallbackD3D11DeviceCreated( _In_ LPDXUTCALLBACKD3D11DEVICECREATED pCallback, _In_opt_ void* pUserContext = nullptr ); ++void DXUT_API WINAPI DXUTSetCallbackD3D11SwapChainResized( _In_ LPDXUTCALLBACKD3D11SWAPCHAINRESIZED pCallback, _In_opt_ void* pUserContext = nullptr ); ++void DXUT_API WINAPI DXUTSetCallbackD3D11FrameRender( _In_ LPDXUTCALLBACKD3D11FRAMERENDER pCallback, _In_opt_ void* pUserContext = nullptr ); ++void DXUT_API WINAPI DXUTSetCallbackD3D11SwapChainReleasing( _In_ LPDXUTCALLBACKD3D11SWAPCHAINRELEASING pCallback, _In_opt_ void* pUserContext = nullptr ); ++void DXUT_API WINAPI DXUTSetCallbackD3D11DeviceDestroyed( _In_ LPDXUTCALLBACKD3D11DEVICEDESTROYED pCallback, _In_opt_ void* pUserContext = nullptr ); + + + //-------------------------------------------------------------------------------------- + // Initialization + //-------------------------------------------------------------------------------------- +-HRESULT WINAPI DXUTInit( _In_ bool bParseCommandLine = true, ++HRESULT DXUT_API WINAPI DXUTInit( _In_ bool bParseCommandLine = true, + _In_ bool bShowMsgBoxOnError = true, + _In_opt_ WCHAR* strExtraCommandLineParams = nullptr, + _In_ bool bThreadSafeDXUT = false ); + + // Choose either DXUTCreateWindow or DXUTSetWindow. If using DXUTSetWindow, consider using DXUTStaticWndProc +-HRESULT WINAPI DXUTCreateWindow( _In_z_ const WCHAR* strWindowTitle = L"Direct3D Window", ++HRESULT DXUT_API WINAPI DXUTCreateWindow( _In_z_ const WCHAR* strWindowTitle = L"Direct3D Window", + _In_opt_ HINSTANCE hInstance = nullptr, _In_opt_ HICON hIcon = nullptr, _In_opt_ HMENU hMenu = nullptr, + _In_ int x = CW_USEDEFAULT, _In_ int y = CW_USEDEFAULT ); +-HRESULT WINAPI DXUTSetWindow( _In_ HWND hWndFocus, _In_ HWND hWndDeviceFullScreen, _In_ HWND hWndDeviceWindowed, _In_ bool bHandleMessages = true ); +-LRESULT CALLBACK DXUTStaticWndProc( _In_ HWND hWnd, _In_ UINT uMsg, _In_ WPARAM wParam, _In_ LPARAM lParam ); ++HRESULT DXUT_API WINAPI DXUTSetWindow( _In_ HWND hWndFocus, _In_ HWND hWndDeviceFullScreen, _In_ HWND hWndDeviceWindowed, _In_ bool bHandleMessages = true ); ++LRESULT DXUT_API CALLBACK DXUTStaticWndProc( _In_ HWND hWnd, _In_ UINT uMsg, _In_ WPARAM wParam, _In_ LPARAM lParam ); + + // Choose either DXUTCreateDevice or DXUTCreateD3DDeviceFromSettings + +-HRESULT WINAPI DXUTCreateDevice(_In_ D3D_FEATURE_LEVEL reqFL, _In_ bool bWindowed= true, _In_ int nSuggestedWidth =0,_In_ int nSuggestedHeight =0 ); +-HRESULT WINAPI DXUTCreateDeviceFromSettings( _In_ DXUTDeviceSettings* pDeviceSettings, _In_ bool bClipWindowToSingleAdapter = true ); ++HRESULT DXUT_API WINAPI DXUTCreateDevice(_In_ D3D_FEATURE_LEVEL reqFL, _In_ bool bWindowed= true, _In_ int nSuggestedWidth =0,_In_ int nSuggestedHeight =0 ); ++HRESULT DXUT_API WINAPI DXUTCreateDeviceFromSettings( _In_ DXUTDeviceSettings* pDeviceSettings, _In_ bool bClipWindowToSingleAdapter = true ); + + // Choose either DXUTMainLoop or implement your own main loop +-HRESULT WINAPI DXUTMainLoop( _In_opt_ HACCEL hAccel = nullptr ); ++HRESULT DXUT_API WINAPI DXUTMainLoop( _In_opt_ HACCEL hAccel = nullptr ); + + // If not using DXUTMainLoop consider using DXUTRender3DEnvironment +-void WINAPI DXUTRender3DEnvironment(); ++void DXUT_API WINAPI DXUTRender3DEnvironment(); + + + //-------------------------------------------------------------------------------------- + // Common Tasks + //-------------------------------------------------------------------------------------- +-HRESULT WINAPI DXUTToggleFullScreen(); +-HRESULT WINAPI DXUTToggleREF(); +-HRESULT WINAPI DXUTToggleWARP(); +-void WINAPI DXUTPause( _In_ bool bPauseTime, _In_ bool bPauseRendering ); +-void WINAPI DXUTSetConstantFrameTime( _In_ bool bConstantFrameTime, _In_ float fTimePerFrame = 0.0333f ); +-void WINAPI DXUTSetCursorSettings( _In_ bool bShowCursorWhenFullScreen = false, _In_ bool bClipCursorWhenFullScreen = false ); +-void WINAPI DXUTSetHotkeyHandling( _In_ bool bAltEnterToToggleFullscreen = true, _In_ bool bEscapeToQuit = true, _In_ bool bPauseToToggleTimePause = true ); +-void WINAPI DXUTSetMultimonSettings( _In_ bool bAutoChangeAdapter = true ); +-void WINAPI DXUTSetShortcutKeySettings( _In_ bool bAllowWhenFullscreen = false, _In_ bool bAllowWhenWindowed = true ); // Controls the Windows key, and accessibility shortcut keys +-void WINAPI DXUTSetWindowSettings( _In_ bool bCallDefWindowProc = true ); +-HRESULT WINAPI DXUTSetTimer( _In_ LPDXUTCALLBACKTIMER pCallbackTimer, _In_ float fTimeoutInSecs = 1.0f, _Out_opt_ UINT* pnIDEvent = nullptr, _In_opt_ void* pCallbackUserContext = nullptr ); +-HRESULT WINAPI DXUTKillTimer( _In_ UINT nIDEvent ); +-void WINAPI DXUTResetFrameworkState(); +-void WINAPI DXUTShutdown( _In_ int nExitCode = 0 ); +-void WINAPI DXUTSetIsInGammaCorrectMode( _In_ bool bGammaCorrect ); +-bool WINAPI DXUTGetMSAASwapChainCreated(); ++HRESULT DXUT_API WINAPI DXUTToggleFullScreen(); ++HRESULT DXUT_API WINAPI DXUTToggleREF(); ++HRESULT DXUT_API WINAPI DXUTToggleWARP(); ++void DXUT_API WINAPI DXUTPause( _In_ bool bPauseTime, _In_ bool bPauseRendering ); ++void DXUT_API WINAPI DXUTSetConstantFrameTime( _In_ bool bConstantFrameTime, _In_ float fTimePerFrame = 0.0333f ); ++void DXUT_API WINAPI DXUTSetCursorSettings( _In_ bool bShowCursorWhenFullScreen = false, _In_ bool bClipCursorWhenFullScreen = false ); ++void DXUT_API WINAPI DXUTSetHotkeyHandling( _In_ bool bAltEnterToToggleFullscreen = true, _In_ bool bEscapeToQuit = true, _In_ bool bPauseToToggleTimePause = true ); ++void DXUT_API WINAPI DXUTSetMultimonSettings( _In_ bool bAutoChangeAdapter = true ); ++void DXUT_API WINAPI DXUTSetShortcutKeySettings( _In_ bool bAllowWhenFullscreen = false, _In_ bool bAllowWhenWindowed = true ); // Controls the Windows key, and accessibility shortcut keys ++void DXUT_API WINAPI DXUTSetWindowSettings( _In_ bool bCallDefWindowProc = true ); ++HRESULT DXUT_API WINAPI DXUTSetTimer( _In_ LPDXUTCALLBACKTIMER pCallbackTimer, _In_ float fTimeoutInSecs = 1.0f, _Out_opt_ UINT* pnIDEvent = nullptr, _In_opt_ void* pCallbackUserContext = nullptr ); ++HRESULT DXUT_API WINAPI DXUTKillTimer( _In_ UINT nIDEvent ); ++void DXUT_API WINAPI DXUTResetFrameworkState(); ++void DXUT_API WINAPI DXUTShutdown( _In_ int nExitCode = 0 ); ++void DXUT_API WINAPI DXUTSetIsInGammaCorrectMode( _In_ bool bGammaCorrect ); ++bool DXUT_API WINAPI DXUTGetMSAASwapChainCreated(); + + + //-------------------------------------------------------------------------------------- +@@ -276,63 +282,63 @@ bool WINAPI DXUTGetMSAASwapChainCreated(); + //-------------------------------------------------------------------------------------- + + // Direct3D 11.x (These do not addref unlike typical Get* APIs) +-IDXGIFactory1* WINAPI DXUTGetDXGIFactory(); +-IDXGISwapChain* WINAPI DXUTGetDXGISwapChain(); +-const DXGI_SURFACE_DESC* WINAPI DXUTGetDXGIBackBufferSurfaceDesc(); +-HRESULT WINAPI DXUTSetupD3D11Views( _In_ ID3D11DeviceContext* pd3dDeviceContext ); // Supports immediate or deferred context +-D3D_FEATURE_LEVEL WINAPI DXUTGetD3D11DeviceFeatureLevel(); // Returns the D3D11 devices current feature level +-ID3D11RenderTargetView* WINAPI DXUTGetD3D11RenderTargetView(); +-ID3D11DepthStencilView* WINAPI DXUTGetD3D11DepthStencilView(); ++DXUT_API IDXGIFactory1* WINAPI DXUTGetDXGIFactory(); ++DXUT_API IDXGISwapChain* WINAPI DXUTGetDXGISwapChain(); ++DXUT_API const DXGI_SURFACE_DESC* WINAPI DXUTGetDXGIBackBufferSurfaceDesc(); ++DXUT_API HRESULT WINAPI DXUTSetupD3D11Views(_In_ ID3D11DeviceContext* pd3dDeviceContext); // Supports immediate or deferred context ++DXUT_API D3D_FEATURE_LEVEL WINAPI DXUTGetD3D11DeviceFeatureLevel(); // Returns the D3D11 devices current feature level ++DXUT_API ID3D11RenderTargetView* WINAPI DXUTGetD3D11RenderTargetView(); ++DXUT_API ID3D11DepthStencilView* WINAPI DXUTGetD3D11DepthStencilView(); + +-ID3D11Device* WINAPI DXUTGetD3D11Device(); +-ID3D11DeviceContext* WINAPI DXUTGetD3D11DeviceContext(); ++DXUT_API ID3D11Device* WINAPI DXUTGetD3D11Device(); ++DXUT_API ID3D11DeviceContext* WINAPI DXUTGetD3D11DeviceContext(); + +-ID3D11Device1* WINAPI DXUTGetD3D11Device1(); +-ID3D11DeviceContext1* WINAPI DXUTGetD3D11DeviceContext1(); ++DXUT_API ID3D11Device1* WINAPI DXUTGetD3D11Device1(); ++DXUT_API ID3D11DeviceContext1* WINAPI DXUTGetD3D11DeviceContext1(); + + #ifdef USE_DIRECT3D11_2 +-ID3D11Device2* WINAPI DXUTGetD3D11Device2(); +-ID3D11DeviceContext2* WINAPI DXUTGetD3D11DeviceContext2(); ++DXUT_API ID3D11Device2* WINAPI DXUTGetD3D11Device2(); ++DXUT_API ID3D11DeviceContext2* WINAPI DXUTGetD3D11DeviceContext2(); + #endif + + #ifdef USE_DIRECT3D11_3 +-ID3D11Device3* WINAPI DXUTGetD3D11Device3(); +-ID3D11DeviceContext3* WINAPI DXUTGetD3D11DeviceContext3(); ++DXUT_API ID3D11Device3* WINAPI DXUTGetD3D11Device3(); ++DXUT_API ID3D11DeviceContext3* WINAPI DXUTGetD3D11DeviceContext3(); + #endif + + // General +-DXUTDeviceSettings WINAPI DXUTGetDeviceSettings(); +-HINSTANCE WINAPI DXUTGetHINSTANCE(); +-HWND WINAPI DXUTGetHWND(); +-HWND WINAPI DXUTGetHWNDFocus(); +-HWND WINAPI DXUTGetHWNDDeviceFullScreen(); +-HWND WINAPI DXUTGetHWNDDeviceWindowed(); +-RECT WINAPI DXUTGetWindowClientRect(); +-LONG WINAPI DXUTGetWindowWidth(); +-LONG WINAPI DXUTGetWindowHeight(); +-RECT WINAPI DXUTGetWindowClientRectAtModeChange(); // Useful for returning to windowed mode with the same resolution as before toggle to full screen mode +-RECT WINAPI DXUTGetFullsceenClientRectAtModeChange(); // Useful for returning to full screen mode with the same resolution as before toggle to windowed mode +-double WINAPI DXUTGetTime(); +-float WINAPI DXUTGetElapsedTime(); +-bool WINAPI DXUTIsWindowed(); +-bool WINAPI DXUTIsInGammaCorrectMode(); +-float WINAPI DXUTGetFPS(); +-LPCWSTR WINAPI DXUTGetWindowTitle(); +-LPCWSTR WINAPI DXUTGetFrameStats( _In_ bool bIncludeFPS = false ); +-LPCWSTR WINAPI DXUTGetDeviceStats(); +- +-bool WINAPI DXUTIsVsyncEnabled(); +-bool WINAPI DXUTIsRenderingPaused(); +-bool WINAPI DXUTIsTimePaused(); +-bool WINAPI DXUTIsActive(); +-int WINAPI DXUTGetExitCode(); +-bool WINAPI DXUTGetShowMsgBoxOnError(); +-bool WINAPI DXUTGetAutomation(); // Returns true if -automation parameter is used to launch the app +-bool WINAPI DXUTIsKeyDown( _In_ BYTE vKey ); // Pass a virtual-key code, ex. VK_F1, 'A', VK_RETURN, VK_LSHIFT, etc +-bool WINAPI DXUTWasKeyPressed( _In_ BYTE vKey ); // Like DXUTIsKeyDown() but return true only if the key was just pressed +-bool WINAPI DXUTIsMouseButtonDown( _In_ BYTE vButton ); // Pass a virtual-key code: VK_LBUTTON, VK_RBUTTON, VK_MBUTTON, VK_XBUTTON1, VK_XBUTTON2 +-HRESULT WINAPI DXUTCreateState(); // Optional method to create DXUT's memory. If its not called by the application it will be automatically called when needed +-void WINAPI DXUTDestroyState(); // Optional method to destroy DXUT's memory. If its not called by the application it will be automatically called after the application exits WinMain ++DXUTDeviceSettings DXUT_API WINAPI DXUTGetDeviceSettings(); ++HINSTANCE DXUT_API WINAPI DXUTGetHINSTANCE(); ++HWND DXUT_API WINAPI DXUTGetHWND(); ++HWND DXUT_API WINAPI DXUTGetHWNDFocus(); ++HWND DXUT_API WINAPI DXUTGetHWNDDeviceFullScreen(); ++HWND DXUT_API WINAPI DXUTGetHWNDDeviceWindowed(); ++RECT DXUT_API WINAPI DXUTGetWindowClientRect(); ++LONG DXUT_API WINAPI DXUTGetWindowWidth(); ++LONG DXUT_API WINAPI DXUTGetWindowHeight(); ++RECT DXUT_API WINAPI DXUTGetWindowClientRectAtModeChange(); // Useful for returning to windowed mode with the same resolution as before toggle to full screen mode ++RECT DXUT_API WINAPI DXUTGetFullsceenClientRectAtModeChange(); // Useful for returning to full screen mode with the same resolution as before toggle to windowed mode ++double DXUT_API WINAPI DXUTGetTime(); ++float DXUT_API WINAPI DXUTGetElapsedTime(); ++bool DXUT_API WINAPI DXUTIsWindowed(); ++bool DXUT_API WINAPI DXUTIsInGammaCorrectMode(); ++float DXUT_API WINAPI DXUTGetFPS(); ++LPCWSTR DXUT_API WINAPI DXUTGetWindowTitle(); ++LPCWSTR DXUT_API WINAPI DXUTGetFrameStats( _In_ bool bIncludeFPS = false ); ++LPCWSTR DXUT_API WINAPI DXUTGetDeviceStats(); ++ ++bool DXUT_API WINAPI DXUTIsVsyncEnabled(); ++bool DXUT_API WINAPI DXUTIsRenderingPaused(); ++bool DXUT_API WINAPI DXUTIsTimePaused(); ++bool DXUT_API WINAPI DXUTIsActive(); ++int DXUT_API WINAPI DXUTGetExitCode(); ++bool DXUT_API WINAPI DXUTGetShowMsgBoxOnError(); ++bool DXUT_API WINAPI DXUTGetAutomation(); // Returns true if -automation parameter is used to launch the app ++bool DXUT_API WINAPI DXUTIsKeyDown( _In_ BYTE vKey ); // Pass a virtual-key code, ex. VK_F1, 'A', VK_RETURN, VK_LSHIFT, etc ++bool DXUT_API WINAPI DXUTWasKeyPressed( _In_ BYTE vKey ); // Like DXUTIsKeyDown() but return true only if the key was just pressed ++bool DXUT_API WINAPI DXUTIsMouseButtonDown( _In_ BYTE vButton ); // Pass a virtual-key code: VK_LBUTTON, VK_RBUTTON, VK_MBUTTON, VK_XBUTTON1, VK_XBUTTON2 ++HRESULT DXUT_API WINAPI DXUTCreateState(); // Optional method to create DXUT's memory. If its not called by the application it will be automatically called when needed ++void DXUT_API WINAPI DXUTDestroyState(); // Optional method to destroy DXUT's memory. If its not called by the application it will be automatically called after the application exits WinMain + + //-------------------------------------------------------------------------------------- + // DXUT core layer includes +diff --git a/Core/DXUTDevice11.h b/Core/DXUTDevice11.h +index 1e38a63..e607463 100644 +--- a/Core/DXUTDevice11.h ++++ b/Core/DXUTDevice11.h +@@ -14,12 +14,14 @@ + //-------------------------------------------------------------------------------------- + #pragma once + +-void DXUTApplyDefaultDeviceSettings(DXUTDeviceSettings *modifySettings); ++#pragma warning(disable: 4251) ++ ++DXUT_API void DXUTApplyDefaultDeviceSettings(DXUTDeviceSettings *modifySettings); + + //-------------------------------------------------------------------------------------- + // Functions to get bit depth from formats + //-------------------------------------------------------------------------------------- +-HRESULT WINAPI DXUTGetD3D11AdapterDisplayMode( _In_ UINT AdapterOrdinal, _In_ UINT Output, _Out_ DXGI_MODE_DESC* pModeDesc ); ++DXUT_API HRESULT WINAPI DXUTGetD3D11AdapterDisplayMode( _In_ UINT AdapterOrdinal, _In_ UINT Output, _Out_ DXGI_MODE_DESC* pModeDesc ); + + + +@@ -28,7 +30,7 @@ HRESULT WINAPI DXUTGetD3D11AdapterDisplayMode( _In_ UINT AdapterOrdinal, _In_ UI + // Optional memory create/destory functions. If not call, these will be called automatically + //-------------------------------------------------------------------------------------- + HRESULT WINAPI DXUTCreateD3D11Enumeration(); +-void WINAPI DXUTDestroyD3D11Enumeration(); ++DXUT_API void WINAPI DXUTDestroyD3D11Enumeration(); + + + +@@ -46,7 +48,7 @@ struct CD3D11EnumDeviceSettingsCombo; + //-------------------------------------------------------------------------------------- + // Enumerates available Direct3D11 adapters, devices, modes, etc. + //-------------------------------------------------------------------------------------- +-class CD3D11Enumeration ++class DXUT_API CD3D11Enumeration + { + public: + // These should be called before Enumerate(). +@@ -106,7 +108,7 @@ private: + void ClearAdapterInfoList(); + }; + +-CD3D11Enumeration* WINAPI DXUTGetD3D11Enumeration(_In_ bool bForceEnumerate = false, _In_ bool EnumerateAllAdapterFormats = true, _In_ D3D_FEATURE_LEVEL forceFL = ((D3D_FEATURE_LEVEL )0) ); ++DXUT_API CD3D11Enumeration* WINAPI DXUTGetD3D11Enumeration(_In_ bool bForceEnumerate = false, _In_ bool EnumerateAllAdapterFormats = true, _In_ D3D_FEATURE_LEVEL forceFL = ((D3D_FEATURE_LEVEL )0) ); + + + #define DXGI_MAX_DEVICE_IDENTIFIER_STRING 128 +@@ -115,7 +117,7 @@ CD3D11Enumeration* WINAPI DXUTGetD3D11Enumeration(_In_ bool bForceEnumerate = fa + // A class describing an adapter which contains a unique adapter ordinal + // that is installed on the system + //-------------------------------------------------------------------------------------- +-class CD3D11EnumAdapterInfo ++class DXUT_API CD3D11EnumAdapterInfo + { + const CD3D11EnumAdapterInfo &operator = ( const CD3D11EnumAdapterInfo &rhs ); + +@@ -144,7 +146,7 @@ public: + }; + + +-class CD3D11EnumOutputInfo ++class DXUT_API CD3D11EnumOutputInfo + { + const CD3D11EnumOutputInfo &operator = ( const CD3D11EnumOutputInfo &rhs ); + +@@ -167,7 +169,7 @@ public: + //-------------------------------------------------------------------------------------- + // A class describing a Direct3D11 device that contains a unique supported driver type + //-------------------------------------------------------------------------------------- +-class CD3D11EnumDeviceInfo ++class DXUT_API CD3D11EnumDeviceInfo + { + const CD3D11EnumDeviceInfo& operator =( const CD3D11EnumDeviceInfo& rhs ); + +@@ -187,7 +189,7 @@ public: + // adapter format, back buffer format, and windowed that is compatible with a + // particular Direct3D device and the app. + //-------------------------------------------------------------------------------------- +-struct CD3D11EnumDeviceSettingsCombo ++struct DXUT_API CD3D11EnumDeviceSettingsCombo + { + UINT AdapterOrdinal; + D3D_DRIVER_TYPE DeviceType; +@@ -203,7 +205,7 @@ struct CD3D11EnumDeviceSettingsCombo + CD3D11EnumOutputInfo* pOutputInfo; + }; + +-float DXUTRankD3D11DeviceCombo( _In_ CD3D11EnumDeviceSettingsCombo* pDeviceSettingsCombo, ++float DXUT_API DXUTRankD3D11DeviceCombo( _In_ CD3D11EnumDeviceSettingsCombo* pDeviceSettingsCombo, + _In_ DXUTD3D11DeviceSettings* pOptimalDeviceSettings, + _Out_ int &bestModeIndex, + _Out_ int &bestMSAAIndex +diff --git a/Core/DXUT_2015.vcxproj b/Core/DXUT_2015.vcxproj +index 6d6c522..62b0708 100644 +--- a/Core/DXUT_2015.vcxproj ++++ b/Core/DXUT_2015.vcxproj +@@ -34,35 +34,35 @@ + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> +- <ConfigurationType>StaticLibrary</ConfigurationType> ++ <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v140</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|X64'" Label="Configuration"> +- <ConfigurationType>StaticLibrary</ConfigurationType> ++ <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v140</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> +- <ConfigurationType>StaticLibrary</ConfigurationType> ++ <ConfigurationType>DynamicLibrary</ConfigurationType> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v140</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|X64'" Label="Configuration"> +- <ConfigurationType>StaticLibrary</ConfigurationType> ++ <ConfigurationType>DynamicLibrary</ConfigurationType> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v140</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration"> +- <ConfigurationType>StaticLibrary</ConfigurationType> ++ <ConfigurationType>DynamicLibrary</ConfigurationType> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v140</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|X64'" Label="Configuration"> +- <ConfigurationType>StaticLibrary</ConfigurationType> ++ <ConfigurationType>DynamicLibrary</ConfigurationType> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v140</PlatformToolset> +@@ -147,7 +147,7 @@ + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> + <ExceptionHandling>Sync</ExceptionHandling> + <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions> +- <PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;USE_DIRECT3D11_2;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>DXUT_EXPORT;WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;USE_DIRECT3D11_2;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <DebugInformationFormat>EditAndContinue</DebugInformationFormat> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> +@@ -156,7 +156,7 @@ + </ClCompile> + <Link> + <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions> +- <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <LargeAddressAware>true</LargeAddressAware> +@@ -188,7 +188,7 @@ + <FloatingPointModel>Fast</FloatingPointModel> + <ExceptionHandling>Sync</ExceptionHandling> + <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions> +- <PreprocessorDefinitions>WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;USE_DIRECT3D11_2;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>DXUT_EXPORT;WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;USE_DIRECT3D11_2;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> + <PrecompiledHeader>Use</PrecompiledHeader> +@@ -196,7 +196,7 @@ + </ClCompile> + <Link> + <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions> +- <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <LargeAddressAware>true</LargeAddressAware> +@@ -230,14 +230,14 @@ + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> + <ExceptionHandling>Sync</ExceptionHandling> + <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions> +- <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_LIB;USE_DIRECT3D11_2;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>DXUT_EXPORT;WIN32;NDEBUG;_WINDOWS;_LIB;USE_DIRECT3D11_2;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> + <PrecompiledHeader>Use</PrecompiledHeader> + <PrecompiledHeaderFile>DXUT.h</PrecompiledHeaderFile> + </ClCompile> + <Link> + <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions> +- <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> +@@ -272,14 +272,14 @@ + <FloatingPointModel>Fast</FloatingPointModel> + <ExceptionHandling>Sync</ExceptionHandling> + <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions> +- <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_LIB;USE_DIRECT3D11_2;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>DXUT_EXPORT;WIN32;NDEBUG;_WINDOWS;_LIB;USE_DIRECT3D11_2;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> + <PrecompiledHeader>Use</PrecompiledHeader> + <PrecompiledHeaderFile>DXUT.h</PrecompiledHeaderFile> + </ClCompile> + <Link> + <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions> +- <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> +@@ -315,14 +315,14 @@ + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> + <ExceptionHandling>Sync</ExceptionHandling> + <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions> +- <PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;USE_DIRECT3D11_2;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>DXUT_EXPORT;WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;USE_DIRECT3D11_2;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> + <PrecompiledHeader>Use</PrecompiledHeader> + <PrecompiledHeaderFile>DXUT.h</PrecompiledHeaderFile> + </ClCompile> + <Link> + <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions> +- <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> +@@ -357,14 +357,14 @@ + <FloatingPointModel>Fast</FloatingPointModel> + <ExceptionHandling>Sync</ExceptionHandling> + <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions> +- <PreprocessorDefinitions>WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;USE_DIRECT3D11_2;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <PreprocessorDefinitions>DXUT_EXPORT;WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;USE_DIRECT3D11_2;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName> + <PrecompiledHeader>Use</PrecompiledHeader> + <PrecompiledHeaderFile>DXUT.h</PrecompiledHeaderFile> + </ClCompile> + <Link> + <AdditionalOptions> %(AdditionalOptions)</AdditionalOptions> +- <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> ++ <AdditionalDependencies>comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> +diff --git a/Core/DXUTmisc.h b/Core/DXUTmisc.h +index 9706ccc..74ab666 100644 +--- a/Core/DXUTmisc.h ++++ b/Core/DXUTmisc.h +@@ -62,23 +62,23 @@ struct DXUT_GAMEPAD + bool bLastRightTrigger; + }; + +-HRESULT DXUTGetGamepadState( _In_ DWORD dwPort, _In_ DXUT_GAMEPAD* pGamePad, _In_ bool bThumbstickDeadZone = true, ++HRESULT DXUT_API DXUTGetGamepadState( _In_ DWORD dwPort, _In_ DXUT_GAMEPAD* pGamePad, _In_ bool bThumbstickDeadZone = true, + _In_ bool bSnapThumbstickToCardinals = true ); +-HRESULT DXUTStopRumbleOnAllControllers(); +-void DXUTEnableXInput( _In_ bool bEnable ); ++HRESULT DXUT_API DXUTStopRumbleOnAllControllers(); ++void DXUT_API DXUTEnableXInput( _In_ bool bEnable ); + + + //-------------------------------------------------------------------------------------- + // Takes a screen shot of a 32bit D3D11 back buffer and saves the images to a BMP or DDS file + //-------------------------------------------------------------------------------------- + +-HRESULT DXUTSnapD3D11Screenshot( _In_z_ LPCWSTR szFileName, _In_ bool usedds = true ); ++HRESULT DXUT_API DXUTSnapD3D11Screenshot( _In_z_ LPCWSTR szFileName, _In_ bool usedds = true ); + + //-------------------------------------------------------------------------------------- + // Performs timer operations + // Use DXUTGetGlobalTimer() to get the global instance + //-------------------------------------------------------------------------------------- +-class CDXUTTimer ++class DXUT_API CDXUTTimer + { + public: + CDXUTTimer(); +@@ -109,24 +109,24 @@ protected: + LONGLONG m_llBaseTime; + }; + +-CDXUTTimer* WINAPI DXUTGetGlobalTimer(); ++DXUT_API CDXUTTimer* WINAPI DXUTGetGlobalTimer(); + + + //-------------------------------------------------------------------------------------- + // Returns the string for the given DXGI_FORMAT. + // bWithPrefix determines whether the string should include the "DXGI_FORMAT_" + //-------------------------------------------------------------------------------------- +-LPCWSTR WINAPI DXUTDXGIFormatToString( _In_ DXGI_FORMAT format, _In_ bool bWithPrefix ); ++DXUT_API LPCWSTR WINAPI DXUTDXGIFormatToString( _In_ DXGI_FORMAT format, _In_ bool bWithPrefix ); + + + //-------------------------------------------------------------------------------------- + // Debug printing support + // See dxerr.h for more debug printing support + //-------------------------------------------------------------------------------------- +-void WINAPI DXUTOutputDebugStringW( _In_z_ LPCWSTR strMsg, ... ); +-void WINAPI DXUTOutputDebugStringA( _In_z_ LPCSTR strMsg, ... ); +-HRESULT WINAPI DXUTTrace( _In_z_ const CHAR* strFile, _In_ DWORD dwLine, _In_ HRESULT hr, _In_z_ const WCHAR* strMsg, _In_ bool bPopMsgBox ); +-const WCHAR* WINAPI DXUTTraceWindowsMessage( _In_ UINT uMsg ); ++DXUT_API void WINAPI DXUTOutputDebugStringW( _In_z_ LPCWSTR strMsg, ... ); ++DXUT_API void WINAPI DXUTOutputDebugStringA( _In_z_ LPCSTR strMsg, ... ); ++DXUT_API HRESULT WINAPI DXUTTrace( _In_z_ const CHAR* strFile, _In_ DWORD dwLine, _In_ HRESULT hr, _In_z_ const WCHAR* strMsg, _In_ bool bPopMsgBox ); ++DXUT_API const WCHAR* WINAPI DXUTTraceWindowsMessage( _In_ UINT uMsg ); + + #ifdef UNICODE + #define DXUTOutputDebugString DXUTOutputDebugStringW +@@ -152,17 +152,17 @@ const WCHAR* WINAPI DXUTTraceWindowsMessage( _In_ UINT uMsg ); + // failure if APIs are not present. + //-------------------------------------------------------------------------------------- + +-int WINAPI DXUT_Dynamic_D3DPERF_BeginEvent( _In_ DWORD col, _In_z_ LPCWSTR wszName ); +-int WINAPI DXUT_Dynamic_D3DPERF_EndEvent( void ); +-void WINAPI DXUT_Dynamic_D3DPERF_SetMarker( _In_ DWORD col, _In_z_ LPCWSTR wszName ); +-void WINAPI DXUT_Dynamic_D3DPERF_SetRegion( _In_ DWORD col, _In_z_ LPCWSTR wszName ); +-BOOL WINAPI DXUT_Dynamic_D3DPERF_QueryRepeatFrame( void ); +-void WINAPI DXUT_Dynamic_D3DPERF_SetOptions( _In_ DWORD dwOptions ); +-DWORD WINAPI DXUT_Dynamic_D3DPERF_GetStatus(); +-HRESULT WINAPI DXUT_Dynamic_CreateDXGIFactory1( _In_ REFIID rInterface, _Out_ void** ppOut ); +-HRESULT WINAPI DXUT_Dynamic_DXGIGetDebugInterface( _In_ REFIID rInterface, _Out_ void** ppOut ); +- +-HRESULT WINAPI DXUT_Dynamic_D3D11CreateDevice( _In_opt_ IDXGIAdapter* pAdapter, ++DXUT_API int WINAPI DXUT_Dynamic_D3DPERF_BeginEvent( _In_ DWORD col, _In_z_ LPCWSTR wszName ); ++DXUT_API int WINAPI DXUT_Dynamic_D3DPERF_EndEvent( void ); ++DXUT_API void WINAPI DXUT_Dynamic_D3DPERF_SetMarker( _In_ DWORD col, _In_z_ LPCWSTR wszName ); ++DXUT_API void WINAPI DXUT_Dynamic_D3DPERF_SetRegion( _In_ DWORD col, _In_z_ LPCWSTR wszName ); ++DXUT_API BOOL WINAPI DXUT_Dynamic_D3DPERF_QueryRepeatFrame( void ); ++DXUT_API void WINAPI DXUT_Dynamic_D3DPERF_SetOptions( _In_ DWORD dwOptions ); ++DXUT_API DWORD WINAPI DXUT_Dynamic_D3DPERF_GetStatus(); ++DXUT_API HRESULT WINAPI DXUT_Dynamic_CreateDXGIFactory1( _In_ REFIID rInterface, _Out_ void** ppOut ); ++DXUT_API HRESULT WINAPI DXUT_Dynamic_DXGIGetDebugInterface( _In_ REFIID rInterface, _Out_ void** ppOut ); ++ ++DXUT_API HRESULT WINAPI DXUT_Dynamic_D3D11CreateDevice( _In_opt_ IDXGIAdapter* pAdapter, + _In_ D3D_DRIVER_TYPE DriverType, + _In_opt_ HMODULE Software, + _In_ UINT32 Flags, +@@ -173,7 +173,7 @@ HRESULT WINAPI DXUT_Dynamic_D3D11CreateDevice( _In_opt_ IDXGIAdapter* pAdapter, + _Out_opt_ D3D_FEATURE_LEVEL* pFeatureLevel, + _Out_opt_ ID3D11DeviceContext** ppImmediateContext ); + +-bool DXUT_EnsureD3D11APIs(); ++DXUT_API bool DXUT_EnsureD3D11APIs(); + + + //-------------------------------------------------------------------------------------- +@@ -285,14 +285,14 @@ typedef MONITORINFOEXW MONITORINFOEX; + typedef LPMONITORINFOEXW LPMONITORINFOEX; + #endif + +-HMONITOR WINAPI DXUTMonitorFromWindow( _In_ HWND hWnd, _In_ DWORD dwFlags ); +-HMONITOR WINAPI DXUTMonitorFromRect( _In_ LPCRECT lprcScreenCoords, _In_ DWORD dwFlags ); +-BOOL WINAPI DXUTGetMonitorInfo( _In_ HMONITOR hMonitor, _Out_ LPMONITORINFO lpMonitorInfo ); +-void WINAPI DXUTGetDesktopResolution( _In_ UINT AdapterOrdinal, _Out_ UINT* pWidth, _Out_ UINT* pHeight ); ++DXUT_API HMONITOR WINAPI DXUTMonitorFromWindow( _In_ HWND hWnd, _In_ DWORD dwFlags ); ++DXUT_API HMONITOR WINAPI DXUTMonitorFromRect( _In_ LPCRECT lprcScreenCoords, _In_ DWORD dwFlags ); ++DXUT_API BOOL WINAPI DXUTGetMonitorInfo( _In_ HMONITOR hMonitor, _Out_ LPMONITORINFO lpMonitorInfo ); ++DXUT_API void WINAPI DXUTGetDesktopResolution( _In_ UINT AdapterOrdinal, _Out_ UINT* pWidth, _Out_ UINT* pHeight ); + + + //-------------------------------------------------------------------------------------- + // Helper functions to create SRGB formats from typeless formats and vice versa + //-------------------------------------------------------------------------------------- +-DXGI_FORMAT MAKE_SRGB( _In_ DXGI_FORMAT format ); +-DXGI_FORMAT MAKE_TYPELESS( _In_ DXGI_FORMAT format ); ++DXUT_API DXGI_FORMAT MAKE_SRGB( _In_ DXGI_FORMAT format ); ++DXUT_API DXGI_FORMAT MAKE_TYPELESS( _In_ DXGI_FORMAT format ); +diff --git a/Core/ScreenGrab.h b/Core/ScreenGrab.h +index d643073..cf4eba6 100644 +--- a/Core/ScreenGrab.h ++++ b/Core/ScreenGrab.h +@@ -27,14 +27,20 @@ + #include <stdint.h> + #include <functional> + ++#ifdef DXUT_EXPORT ++ #define DXUT_API __declspec(dllexport) ++#else ++ #define DXUT_API __declspec(dllimport) ++#endif ++ + + namespace DirectX + { +- HRESULT SaveDDSTextureToFile( _In_ ID3D11DeviceContext* pContext, ++ DXUT_API HRESULT SaveDDSTextureToFile( _In_ ID3D11DeviceContext* pContext, + _In_ ID3D11Resource* pSource, + _In_z_ LPCWSTR fileName ); + +- HRESULT SaveWICTextureToFile( _In_ ID3D11DeviceContext* pContext, ++ DXUT_API HRESULT SaveWICTextureToFile( _In_ ID3D11DeviceContext* pContext, + _In_ ID3D11Resource* pSource, + _In_ REFGUID guidContainerFormat, + _In_z_ LPCWSTR fileName, +diff --git a/Core/WICTextureLoader.h b/Core/WICTextureLoader.h +index 2b0340c..f2edacf 100644 +--- a/Core/WICTextureLoader.h ++++ b/Core/WICTextureLoader.h +@@ -30,11 +30,17 @@ + #include <d3d11_1.h> + #include <stdint.h> + ++#ifdef DXUT_EXPORT ++ #define DXUT_API __declspec(dllexport) ++#else ++ #define DXUT_API __declspec(dllimport) ++#endif ++ + + namespace DirectX + { + // Standard version +- HRESULT CreateWICTextureFromMemory( _In_ ID3D11Device* d3dDevice, ++ DXUT_API HRESULT CreateWICTextureFromMemory( _In_ ID3D11Device* d3dDevice, + _In_reads_bytes_(wicDataSize) const uint8_t* wicData, + _In_ size_t wicDataSize, + _Out_opt_ ID3D11Resource** texture, +@@ -42,7 +48,7 @@ namespace DirectX + _In_ size_t maxsize = 0 + ); + +- HRESULT CreateWICTextureFromFile( _In_ ID3D11Device* d3dDevice, ++ DXUT_API HRESULT CreateWICTextureFromFile( _In_ ID3D11Device* d3dDevice, + _In_z_ const wchar_t* szFileName, + _Out_opt_ ID3D11Resource** texture, + _Out_opt_ ID3D11ShaderResourceView** textureView, +@@ -50,7 +56,7 @@ namespace DirectX + ); + + // Standard version with optional auto-gen mipmap support +- HRESULT CreateWICTextureFromMemory( _In_ ID3D11Device* d3dDevice, ++ DXUT_API HRESULT CreateWICTextureFromMemory( _In_ ID3D11Device* d3dDevice, + _In_opt_ ID3D11DeviceContext* d3dContext, + _In_reads_bytes_(wicDataSize) const uint8_t* wicData, + _In_ size_t wicDataSize, +@@ -59,7 +65,7 @@ namespace DirectX + _In_ size_t maxsize = 0 + ); + +- HRESULT CreateWICTextureFromFile( _In_ ID3D11Device* d3dDevice, ++ DXUT_API HRESULT CreateWICTextureFromFile( _In_ ID3D11Device* d3dDevice, + _In_opt_ ID3D11DeviceContext* d3dContext, + _In_z_ const wchar_t* szFileName, + _Out_opt_ ID3D11Resource** texture, +@@ -68,7 +74,7 @@ namespace DirectX + ); + + // Extended version +- HRESULT CreateWICTextureFromMemoryEx( _In_ ID3D11Device* d3dDevice, ++ DXUT_API HRESULT CreateWICTextureFromMemoryEx( _In_ ID3D11Device* d3dDevice, + _In_reads_bytes_(wicDataSize) const uint8_t* wicData, + _In_ size_t wicDataSize, + _In_ size_t maxsize, +@@ -81,7 +87,7 @@ namespace DirectX + _Out_opt_ ID3D11ShaderResourceView** textureView + ); + +- HRESULT CreateWICTextureFromFileEx( _In_ ID3D11Device* d3dDevice, ++ DXUT_API HRESULT CreateWICTextureFromFileEx( _In_ ID3D11Device* d3dDevice, + _In_z_ const wchar_t* szFileName, + _In_ size_t maxsize, + _In_ D3D11_USAGE usage, +@@ -94,7 +100,7 @@ namespace DirectX + ); + + // Extended version with optional auto-gen mipmap support +- HRESULT CreateWICTextureFromMemoryEx( _In_ ID3D11Device* d3dDevice, ++ DXUT_API HRESULT CreateWICTextureFromMemoryEx( _In_ ID3D11Device* d3dDevice, + _In_opt_ ID3D11DeviceContext* d3dContext, + _In_reads_bytes_(wicDataSize) const uint8_t* wicData, + _In_ size_t wicDataSize, +@@ -108,7 +114,7 @@ namespace DirectX + _Out_opt_ ID3D11ShaderResourceView** textureView + ); + +- HRESULT CreateWICTextureFromFileEx( _In_ ID3D11Device* d3dDevice, ++ DXUT_API HRESULT CreateWICTextureFromFileEx( _In_ ID3D11Device* d3dDevice, + _In_opt_ ID3D11DeviceContext* d3dContext, + _In_z_ const wchar_t* szFileName, + _In_ size_t maxsize, +diff --git a/Core/dxerr.h b/Core/dxerr.h +index 39e348d..9616dea 100644 +--- a/Core/dxerr.h ++++ b/Core/dxerr.h +@@ -25,7 +25,7 @@ extern "C" { + //-------------------------------------------------------------------------------------- + // DXGetErrorString + //-------------------------------------------------------------------------------------- +-const WCHAR* WINAPI DXGetErrorStringW( _In_ HRESULT hr ); ++DXUT_API const WCHAR* WINAPI DXGetErrorStringW( _In_ HRESULT hr ); + + #define DXGetErrorString DXGetErrorStringW + +@@ -33,7 +33,7 @@ const WCHAR* WINAPI DXGetErrorStringW( _In_ HRESULT hr ); + // DXGetErrorDescription has to be modified to return a copy in a buffer rather than + // the original static string. + //-------------------------------------------------------------------------------------- +-void WINAPI DXGetErrorDescriptionW( _In_ HRESULT hr, _Out_cap_(count) WCHAR* desc, _In_ size_t count ); ++void DXUT_API WINAPI DXGetErrorDescriptionW( _In_ HRESULT hr, _Out_cap_(count) WCHAR* desc, _In_ size_t count ); + + #define DXGetErrorDescription DXGetErrorDescriptionW + +@@ -52,7 +52,7 @@ void WINAPI DXGetErrorDescriptionW( _In_ HRESULT hr, _Out_cap_(count) WCHAR* des + // + // Return: The hr that was passed in. + //-------------------------------------------------------------------------------------- +-HRESULT WINAPI DXTraceW( _In_z_ const WCHAR* strFile, _In_ DWORD dwLine, _In_ HRESULT hr, _In_opt_ const WCHAR* strMsg, _In_ bool bPopMsgBox ); ++HRESULT DXUT_API WINAPI DXTraceW( _In_z_ const WCHAR* strFile, _In_ DWORD dwLine, _In_ HRESULT hr, _In_opt_ const WCHAR* strMsg, _In_ bool bPopMsgBox ); + + #define DXTrace DXTraceW + diff --git a/ports/dxut/portfile.cmake b/ports/dxut/portfile.cmake new file mode 100644 index 000000000..d69a6e147 --- /dev/null +++ b/ports/dxut/portfile.cmake @@ -0,0 +1,56 @@ +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/DXUT-sept2016) +vcpkg_download_distfile(ARCHIVE_FILE + URLS "https://github.com/Microsoft/DXUT/archive/sept2016.tar.gz" + FILENAME "DXUT-sept2016.tar.gz" + SHA512 190006c194284a1f5d614477896b0469a59ece05dff37477dadbe98808a5c33e274c0c1bb1390f22d1b5e06c9f534f4b50d6002157b2a391e01c2192b8e08869 +) +vcpkg_extract_source_archive(${ARCHIVE_FILE}) + +vcpkg_apply_patches( + SOURCE_PATH ${SOURCE_PATH} + PATCHES ${CMAKE_CURRENT_LIST_DIR}/dll.patch +) + +vcpkg_build_msbuild( + PROJECT_PATH ${SOURCE_PATH}/Core/DXUT_2015.vcxproj +) + +IF (TRIPLET_SYSTEM_ARCH MATCHES "x86") + SET(BUILD_ARCH "Win32") +ELSE() + SET(BUILD_ARCH ${TRIPLET_SYSTEM_ARCH}) +ENDIF() + +file(INSTALL + ${SOURCE_PATH}/Core/DDSTextureLoader.h + ${SOURCE_PATH}/Core/DXErr.h + ${SOURCE_PATH}/Core/DXUT.h + ${SOURCE_PATH}/Core/DXUTDevice11.h + ${SOURCE_PATH}/Core/DXUTmisc.h + ${SOURCE_PATH}/Core/Screengrab.h + ${SOURCE_PATH}/Core/WICTextureLoader.h + DESTINATION ${CURRENT_PACKAGES_DIR}/include +) + +file(INSTALL + ${SOURCE_PATH}/Core/Bin/Desktop_2015/${BUILD_ARCH}/Release/DXUT.dll + DESTINATION ${CURRENT_PACKAGES_DIR}/bin) + +file(INSTALL + ${SOURCE_PATH}/Core/Bin/Desktop_2015/${BUILD_ARCH}/Release/DXUT.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/lib) + +file(INSTALL + ${SOURCE_PATH}/Core/Bin/Desktop_2015/${BUILD_ARCH}/Debug/DXUT.dll + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) + +file(INSTALL + ${SOURCE_PATH}/Core/Bin/Desktop_2015/${BUILD_ARCH}/Debug/DXUT.lib + DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) + +vcpkg_copy_pdbs() + +file(INSTALL ${SOURCE_PATH}/MIT.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/dxut RENAME copyright) + +message(STATUS "Installing done") |
