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 #include +#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 @@ - StaticLibrary + DynamicLibrary Unicode v140 - StaticLibrary + DynamicLibrary Unicode v140 - StaticLibrary + DynamicLibrary true Unicode v140 - StaticLibrary + DynamicLibrary true Unicode v140 - StaticLibrary + DynamicLibrary true Unicode v140 - StaticLibrary + DynamicLibrary true Unicode v140 @@ -147,7 +147,7 @@ StreamingSIMDExtensions2 Sync %(AdditionalOptions) - WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;USE_DIRECT3D11_2;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions) + DXUT_EXPORT;WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;USE_DIRECT3D11_2;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions) EditAndContinue EnableFastChecks $(IntDir)$(TargetName).pdb @@ -156,7 +156,7 @@ %(AdditionalOptions) - %(AdditionalDependencies) + comctl32.lib;%(AdditionalDependencies) Windows true true @@ -188,7 +188,7 @@ Fast Sync %(AdditionalOptions) - WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;USE_DIRECT3D11_2;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions) + DXUT_EXPORT;WIN32;_DEBUG;DEBUG;PROFILE;_WINDOWS;_LIB;USE_DIRECT3D11_2;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions) EnableFastChecks $(IntDir)$(TargetName).pdb Use @@ -196,7 +196,7 @@ %(AdditionalOptions) - %(AdditionalDependencies) + comctl32.lib;%(AdditionalDependencies) Windows true true @@ -230,14 +230,14 @@ StreamingSIMDExtensions2 Sync %(AdditionalOptions) - WIN32;NDEBUG;_WINDOWS;_LIB;USE_DIRECT3D11_2;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions) + DXUT_EXPORT;WIN32;NDEBUG;_WINDOWS;_LIB;USE_DIRECT3D11_2;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions) $(IntDir)$(TargetName).pdb Use DXUT.h %(AdditionalOptions) - %(AdditionalDependencies) + comctl32.lib;%(AdditionalDependencies) true Windows true @@ -272,14 +272,14 @@ Fast Sync %(AdditionalOptions) - WIN32;NDEBUG;_WINDOWS;_LIB;USE_DIRECT3D11_2;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions) + DXUT_EXPORT;WIN32;NDEBUG;_WINDOWS;_LIB;USE_DIRECT3D11_2;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions) $(IntDir)$(TargetName).pdb Use DXUT.h %(AdditionalOptions) - %(AdditionalDependencies) + comctl32.lib;%(AdditionalDependencies) true Windows true @@ -315,14 +315,14 @@ StreamingSIMDExtensions2 Sync %(AdditionalOptions) - WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;USE_DIRECT3D11_2;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions) + DXUT_EXPORT;WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;USE_DIRECT3D11_2;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions) $(IntDir)$(TargetName).pdb Use DXUT.h %(AdditionalOptions) - %(AdditionalDependencies) + comctl32.lib;%(AdditionalDependencies) true Windows true @@ -357,14 +357,14 @@ Fast Sync %(AdditionalOptions) - WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;USE_DIRECT3D11_2;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions) + DXUT_EXPORT;WIN32;NDEBUG;PROFILE;_WINDOWS;_LIB;USE_DIRECT3D11_2;_WIN32_WINNT=0x0600;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions) $(IntDir)$(TargetName).pdb Use DXUT.h %(AdditionalOptions) - %(AdditionalDependencies) + comctl32.lib;%(AdditionalDependencies) true Windows true 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 #include +#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 #include +#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