Merge pull request #1349 from LukeUsher/fix-d3d9-compile
Fix compilation of D3D9 build
This commit is contained in:
commit
75c258e422
|
@ -179,9 +179,9 @@
|
|||
<AdditionalIncludeDirectories>Include\Win32\Cxbx;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>legacy_stdio_definitions.lib;d3d8.lib;dinput8.lib;dxguid.lib;odbc32.lib;odbccp32.lib;Shlwapi.lib;dxerr8.lib;ws2_32.lib;dsound.lib;winmm.lib;ddraw.lib;d3dx8.lib;dbghelp.lib;comctl32.lib;XINPUT9_1_0.LIB;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>legacy_stdio_definitions.lib;d3d9.lib;dinput8.lib;dxguid.lib;odbc32.lib;odbccp32.lib;Shlwapi.lib;dxerr9.lib;ws2_32.lib;dsound.lib;winmm.lib;ddraw.lib;d3dx9.lib;dbghelp.lib;comctl32.lib;XINPUT9_1_0.LIB;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<AdditionalLibraryDirectories>$(Configuration)\;..\..\import\distorm\lib\Win32\;..\..\import\glew-2.0.0\lib\Release\Win32\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>$(Configuration)\;..\..\import\distorm\lib\Win32\;..\..\import\glew-2.0.0\lib\Release\Win32\;..\..\import\DirectX9\lib\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<IgnoreSpecificDefaultLibraries>libcmt;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<GenerateMapFile>true</GenerateMapFile>
|
||||
|
@ -740,6 +740,9 @@
|
|||
<ClCompile Include="..\..\src\HighPerformanceGraphicsEnabler.c" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\import\XbSymbolDatabase\xbSymbolDatabase.vcxproj">
|
||||
<Project>{b8d9afc2-b38f-4714-846d-8a2754f076c9}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="subhook.vcxproj">
|
||||
<Project>{cd2dde93-b45e-4d11-876d-d0056c3dd407}</Project>
|
||||
</ProjectReference>
|
||||
|
|
|
@ -571,7 +571,6 @@
|
|||
<ClInclude Include="..\..\src\Common\Win32\XBPortMapping.h">
|
||||
<Filter>Emulator</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DlgXboxControllerPortMapping.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\..\resource\Splash.jpg">
|
||||
|
|
|
@ -0,0 +1,100 @@
|
|||
/*==========================================================================;
|
||||
*
|
||||
*
|
||||
* File: dxerr9.h
|
||||
* Content: DirectX Error Library Include File
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef _DXERR9_H_
|
||||
#define _DXERR9_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif //__cplusplus
|
||||
|
||||
//
|
||||
// DXGetErrorString9
|
||||
//
|
||||
// Desc: Converts a DirectX 9 or earlier HRESULT to a string
|
||||
//
|
||||
// Args: HRESULT hr Can be any error code from
|
||||
// D3D9 D3DX9 D3D8 D3DX8 DDRAW DPLAY8 DMUSIC DSOUND DINPUT DSHOW
|
||||
//
|
||||
// Return: Converted string
|
||||
//
|
||||
const char* WINAPI DXGetErrorString9A(HRESULT hr);
|
||||
const WCHAR* WINAPI DXGetErrorString9W(HRESULT hr);
|
||||
|
||||
#ifdef UNICODE
|
||||
#define DXGetErrorString9 DXGetErrorString9W
|
||||
#else
|
||||
#define DXGetErrorString9 DXGetErrorString9A
|
||||
#endif
|
||||
|
||||
|
||||
//
|
||||
// DXGetErrorDescription9
|
||||
//
|
||||
// Desc: Returns a string description of a DirectX 9 or earlier HRESULT
|
||||
//
|
||||
// Args: HRESULT hr Can be any error code from
|
||||
// D3D9 D3DX9 D3D8 D3DX8 DDRAW DPLAY8 DMUSIC DSOUND DINPUT DSHOW
|
||||
//
|
||||
// Return: String description
|
||||
//
|
||||
const char* WINAPI DXGetErrorDescription9A(HRESULT hr);
|
||||
const WCHAR* WINAPI DXGetErrorDescription9W(HRESULT hr);
|
||||
|
||||
#ifdef UNICODE
|
||||
#define DXGetErrorDescription9 DXGetErrorDescription9W
|
||||
#else
|
||||
#define DXGetErrorDescription9 DXGetErrorDescription9A
|
||||
#endif
|
||||
|
||||
|
||||
//
|
||||
// DXTrace
|
||||
//
|
||||
// Desc: Outputs a formatted error message to the debug stream
|
||||
//
|
||||
// Args: CHAR* strFile The current file, typically passed in using the
|
||||
// __FILE__ macro.
|
||||
// DWORD dwLine The current line number, typically passed in using the
|
||||
// __LINE__ macro.
|
||||
// HRESULT hr An HRESULT that will be traced to the debug stream.
|
||||
// CHAR* strMsg A string that will be traced to the debug stream (may be NULL)
|
||||
// BOOL bPopMsgBox If TRUE, then a message box will popup also containing the passed info.
|
||||
//
|
||||
// Return: The hr that was passed in.
|
||||
//
|
||||
HRESULT WINAPI DXTraceA( const char* strFile, DWORD dwLine, HRESULT hr, const char* strMsg, BOOL bPopMsgBox );
|
||||
HRESULT WINAPI DXTraceW( const char* strFile, DWORD dwLine, HRESULT hr, const WCHAR* strMsg, BOOL bPopMsgBox );
|
||||
|
||||
#ifdef UNICODE
|
||||
#define DXTrace DXTraceW
|
||||
#else
|
||||
#define DXTrace DXTraceA
|
||||
#endif
|
||||
|
||||
|
||||
//
|
||||
// Helper macros
|
||||
//
|
||||
#if defined(DEBUG) | defined(_DEBUG)
|
||||
#define DXTRACE_MSG(str) DXTrace( __FILE__, (DWORD)__LINE__, 0, str, FALSE )
|
||||
#define DXTRACE_ERR(str,hr) DXTrace( __FILE__, (DWORD)__LINE__, hr, str, FALSE )
|
||||
#define DXTRACE_ERR_MSGBOX(str,hr) DXTrace( __FILE__, (DWORD)__LINE__, hr, str, TRUE )
|
||||
#else
|
||||
#define DXTRACE_MSG(str) (0L)
|
||||
#define DXTRACE_ERR(str,hr) (hr)
|
||||
#define DXTRACE_ERR_MSGBOX(str,hr) (hr)
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif //__cplusplus
|
||||
|
||||
#endif // _DXERR9_H_
|
||||
|
Binary file not shown.
Binary file not shown.
|
@ -130,7 +130,7 @@ struct {
|
|||
// D3D based variables
|
||||
static GUID g_ddguid; // DirectDraw driver GUID
|
||||
static XTL::IDirect3D *g_pDirect3D = nullptr;
|
||||
static XTL::D3DCAPS g_D3DCaps = {}; // Direct3D Caps
|
||||
XTL::D3DCAPS g_D3DCaps = {}; // Direct3D Caps
|
||||
|
||||
// wireframe toggle
|
||||
static int g_iWireframe = 0;
|
||||
|
@ -1971,6 +1971,10 @@ static DWORD WINAPI EmuCreateDeviceProxy(LPVOID)
|
|||
// NOTE: It is possible to fix multisampling by having the host backbuffer normal size, the Xbox backbuffer being multisamples
|
||||
// and scaling that way, but that can be done as a future PR
|
||||
g_EmuCDPD.HostPresentationParameters.MultiSampleType = XTL::D3DMULTISAMPLE_NONE;
|
||||
#ifdef CXBX_USE_D3D9
|
||||
g_EmuCDPD.HostPresentationParameters.MultiSampleQuality = 0;
|
||||
#endif
|
||||
|
||||
/*
|
||||
if(g_EmuCDPD.XboxPresentationParameters.MultiSampleType != 0) {
|
||||
// TODO: Check card for multisampling abilities
|
||||
|
@ -2056,17 +2060,22 @@ static DWORD WINAPI EmuCreateDeviceProxy(LPVOID)
|
|||
// Dxbx addition : Prevent Direct3D from changing the FPU Control word :
|
||||
g_EmuCDPD.BehaviorFlags |= D3DCREATE_FPU_PRESERVE;
|
||||
|
||||
// Address debug DirectX runtime warning in _DEBUG builds
|
||||
// Direct3D8: (WARN) :Device that was created without D3DCREATE_MULTITHREADED is being used by a thread other than the creation thread.
|
||||
#ifdef _DEBUG
|
||||
g_EmuCDPD.BehaviorFlags |= D3DCREATE_MULTITHREADED;
|
||||
#endif
|
||||
g_EmuCDPD.BehaviorFlags |= D3DCREATE_MULTITHREADED;
|
||||
|
||||
// For some reason, D3DFMT_D16_LOCKABLE as the AudoDepthStencil causes CreateDevice to fail...
|
||||
g_EmuCDPD.HostPresentationParameters.EnableAutoDepthStencil = TRUE;
|
||||
if (g_EmuCDPD.HostPresentationParameters.AutoDepthStencilFormat == XTL::D3DFMT_D16_LOCKABLE) {
|
||||
g_EmuCDPD.HostPresentationParameters.AutoDepthStencilFormat = XTL::D3DFMT_D16;
|
||||
}
|
||||
|
||||
// DirectX9 doesn't support 0 as a swap effect
|
||||
#ifdef CXBX_USE_D3D9
|
||||
if (g_EmuCDPD.HostPresentationParameters.SwapEffect == 0) {
|
||||
g_EmuCDPD.HostPresentationParameters.SwapEffect = XTL::D3DSWAPEFFECT_DISCARD;
|
||||
}
|
||||
#endif
|
||||
|
||||
// redirect to windows Direct3D
|
||||
g_EmuCDPD.hRet = g_pDirect3D->CreateDevice(
|
||||
g_EmuCDPD.Adapter,
|
||||
|
@ -2968,9 +2977,15 @@ VOID WINAPI XTL::EMUPATCH(D3DDevice_SelectVertexShader)
|
|||
|
||||
if(VshHandleIsVertexShader(Handle))
|
||||
{
|
||||
#ifndef CXBX_USE_D3D9
|
||||
|
||||
CxbxVertexShader *pVertexShader = MapXboxVertexShaderHandleToCxbxVertexShader(Handle);
|
||||
hRet = g_pD3DDevice->SetVertexShader(pVertexShader->Handle);
|
||||
DEBUG_D3DRESULT(hRet, "g_pD3DDevice->SetVertexShader(VshHandleIsVertexShader)");
|
||||
#else
|
||||
hRet = D3D_OK;
|
||||
EmuWarning("SetVertexShader (non-FVF) unimplemented for D3D9");
|
||||
#endif
|
||||
}
|
||||
else if(Handle == NULL)
|
||||
{
|
||||
|
@ -2988,8 +3003,13 @@ VOID WINAPI XTL::EMUPATCH(D3DDevice_SelectVertexShader)
|
|||
|
||||
if(pVertexShader != NULL)
|
||||
{
|
||||
#ifndef CXBX_USE_D3D9
|
||||
hRet = g_pD3DDevice->SetVertexShader(((CxbxVertexShader *)((X_D3DVertexShader *)g_VertexShaderSlots[Address])->Handle)->Handle);
|
||||
DEBUG_D3DRESULT(hRet, "g_pD3DDevice->SetVertexShader(pVertexShader)");
|
||||
#else
|
||||
hRet = D3D_OK;
|
||||
EmuWarning("SetVertexShader (non-FVF) unimplemented for D3D9");
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -3471,6 +3491,7 @@ HRESULT WINAPI XTL::EMUPATCH(D3DDevice_CreateVertexShader)
|
|||
DWORD Usage
|
||||
)
|
||||
{
|
||||
#ifndef CXBX_USE_D3D9
|
||||
FUNC_EXPORTS
|
||||
|
||||
LOG_FUNC_BEGIN
|
||||
|
@ -3555,10 +3576,16 @@ HRESULT WINAPI XTL::EMUPATCH(D3DDevice_CreateVertexShader)
|
|||
{
|
||||
hRet = g_pD3DDevice->CreateVertexShader
|
||||
(
|
||||
#ifndef CXBX_USE_D3D9
|
||||
pRecompiledDeclaration,
|
||||
#endif
|
||||
pRecompiledFunction,
|
||||
&Handle,
|
||||
g_dwVertexShaderUsage // TODO: HACK: Xbox has extensions!
|
||||
#ifdef CXBX_USE_D3D9
|
||||
(IDirect3DVertexShader9**)&Handle
|
||||
#else
|
||||
&Handle,
|
||||
g_dwVertexShaderUsage // TODO: HACK: Xbox has extensions!
|
||||
#endif
|
||||
);
|
||||
DEBUG_D3DRESULT(hRet, "g_pD3DDevice->CreateVertexShader");
|
||||
|
||||
|
@ -3589,11 +3616,17 @@ HRESULT WINAPI XTL::EMUPATCH(D3DDevice_CreateVertexShader)
|
|||
|
||||
hRet = g_pD3DDevice->CreateVertexShader
|
||||
(
|
||||
pRecompiledDeclaration,
|
||||
(DWORD*)pRecompiledBuffer->GetBufferPointer(),
|
||||
&Handle,
|
||||
g_dwVertexShaderUsage
|
||||
);
|
||||
#ifndef CXBX_USE_D3D9
|
||||
pRecompiledDeclaration,
|
||||
#endif
|
||||
(DWORD*)pRecompiledBuffer->GetBufferPointer(),
|
||||
#ifdef CXBX_USE_D3D9
|
||||
(IDirect3DVertexShader9**)&Handle
|
||||
#else
|
||||
&Handle,
|
||||
g_dwVertexShaderUsage // TODO: HACK: Xbox has extensions!
|
||||
#endif
|
||||
);
|
||||
DEBUG_D3DRESULT(hRet, "g_pD3DDevice->CreateVertexShader(fallback)");
|
||||
}
|
||||
//*/
|
||||
|
@ -3661,6 +3694,9 @@ HRESULT WINAPI XTL::EMUPATCH(D3DDevice_CreateVertexShader)
|
|||
|
||||
|
||||
return hRet;
|
||||
#else
|
||||
return D3D_OK;
|
||||
#endif
|
||||
}
|
||||
|
||||
// LTCG specific D3DDevice_SetVertexShaderConstant function...
|
||||
|
@ -5044,7 +5080,7 @@ void CreateHostResource(XTL::X_D3DResource *pResource, DWORD D3DUsage, int iText
|
|||
true, // Lockable
|
||||
&pNewHostSurface
|
||||
#ifdef CXBX_USE_D3D9
|
||||
, nullptr, // pSharedHandle
|
||||
, nullptr // pSharedHandle
|
||||
#endif
|
||||
);
|
||||
DEBUG_D3DRESULT(hRet, "g_pD3DDevice->CreateRenderTarget");
|
||||
|
@ -6983,7 +7019,6 @@ VOID WINAPI XTL::EMUPATCH(D3DDevice_SetVertexShader)
|
|||
HRESULT hRet = D3D_OK;
|
||||
|
||||
g_CurrentXboxVertexShaderHandle = Handle;
|
||||
|
||||
// Store viewport offset and scale in constant registers 58 (c-38) and
|
||||
// 59 (c-37) used for screen space transformation.
|
||||
if(g_VertexShaderConstantMode != X_D3DSCM_NORESERVEDCONSTANTS)
|
||||
|
@ -7003,6 +7038,7 @@ VOID WINAPI XTL::EMUPATCH(D3DDevice_SetVertexShader)
|
|||
#endif
|
||||
}
|
||||
|
||||
#ifndef CXBX_USE_D3D9
|
||||
DWORD HostVertexShaderHandle;
|
||||
if(VshHandleIsVertexShader(Handle))
|
||||
{
|
||||
|
@ -7055,12 +7091,22 @@ VOID WINAPI XTL::EMUPATCH(D3DDevice_SetVertexShader)
|
|||
// TODO : Instead of changing the FVF here, see if (and which) users need to be updated.
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef CXBX_USE_D3D9
|
||||
hRet = g_pD3DDevice->SetVertexShader(nullptr);
|
||||
hRet = g_pD3DDevice->SetFVF(HostVertexShaderHandle);
|
||||
#else
|
||||
hRet = g_pD3DDevice->SetVertexShader(HostVertexShaderHandle);
|
||||
#else
|
||||
if (VshHandleIsVertexShader(Handle)) {
|
||||
#ifndef CXBX_USE_D3D9
|
||||
|
||||
CxbxVertexShader *pVertexShader = MapXboxVertexShaderHandleToCxbxVertexShader(Handle);
|
||||
hRet = g_pD3DDevice->SetVertexShader(pVertexShader->Handle);
|
||||
DEBUG_D3DRESULT(hRet, "g_pD3DDevice->SetVertexShader(VshHandleIsVertexShader)");
|
||||
#else
|
||||
hRet = D3D_OK;
|
||||
EmuWarning("SetVertexShader (non-FVF) unimplemented for D3D9");
|
||||
#endif
|
||||
} else {
|
||||
hRet = g_pD3DDevice->SetVertexShader(nullptr);
|
||||
hRet = g_pD3DDevice->SetFVF(Handle);
|
||||
}
|
||||
#endif
|
||||
DEBUG_D3DRESULT(hRet, "g_pD3DDevice->SetVertexShader");
|
||||
}
|
||||
|
@ -8354,6 +8400,7 @@ VOID WINAPI XTL::EMUPATCH(D3DDevice_DeleteVertexShader)
|
|||
DWORD Handle
|
||||
)
|
||||
{
|
||||
#ifndef CXBX_USE_D3D9
|
||||
FUNC_EXPORTS
|
||||
|
||||
LOG_FUNC_ONE_ARG(Handle);
|
||||
|
@ -8383,7 +8430,8 @@ VOID WINAPI XTL::EMUPATCH(D3DDevice_DeleteVertexShader)
|
|||
}
|
||||
|
||||
HRESULT hRet = g_pD3DDevice->DeleteVertexShader(HostVertexShaderHandle);
|
||||
DEBUG_D3DRESULT(hRet, "g_pD3DDevice->DeleteVertexShader");
|
||||
DEBUG_D3DRESULT(hRet, "g_pD3DDevice->DeleteVertexShader");
|
||||
#endif
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
|
@ -8451,6 +8499,7 @@ VOID WINAPI XTL::EMUPATCH(D3DDevice_GetVertexShaderConstant)
|
|||
DWORD ConstantCount
|
||||
)
|
||||
{
|
||||
#ifndef CXBX_USE_D3D9
|
||||
FUNC_EXPORTS
|
||||
|
||||
LOG_FUNC_BEGIN
|
||||
|
@ -8466,7 +8515,8 @@ VOID WINAPI XTL::EMUPATCH(D3DDevice_GetVertexShaderConstant)
|
|||
ConstantCount
|
||||
);
|
||||
|
||||
DEBUG_D3DRESULT(hRet, "g_pD3DDevice->GetVertexShaderConstant");
|
||||
DEBUG_D3DRESULT(hRet, "g_pD3DDevice->GetVertexShaderConstant");
|
||||
#endif
|
||||
}
|
||||
|
||||
// ******************************************************************
|
||||
|
|
|
@ -4220,7 +4220,11 @@ static const
|
|||
/*pDefines=*/nullptr,
|
||||
/*pInclude=*/nullptr,
|
||||
#endif
|
||||
/*Flags=*/D3DXASM_SKIPVALIDATION,
|
||||
#ifndef CXBX_USE_D3D9
|
||||
/*Flags=*/D3DXASM_SKIPVALIDATION,
|
||||
#else
|
||||
/*Flags=*/0,
|
||||
#endif
|
||||
#ifndef CXBX_USE_D3D9
|
||||
/*ppConstants=*/NULL,
|
||||
#endif
|
||||
|
|
|
@ -990,7 +990,11 @@ VOID XTL::EmuFlushIVB()
|
|||
|
||||
CxbxDrawPrimitiveUP(DrawContext);
|
||||
if (bFVF) {
|
||||
hRet = g_pD3DDevice->SetVertexShader(g_CurrentXboxVertexShaderHandle);
|
||||
#ifdef CXBX_USE_D3D9
|
||||
hRet = g_pD3DDevice->SetFVF(g_CurrentXboxVertexShaderHandle);
|
||||
#else
|
||||
hRet = g_pD3DDevice->SetVertexShader(g_CurrentXboxVertexShaderHandle);
|
||||
#endif
|
||||
//DEBUG_D3DRESULT(hRet, "g_pD3DDevice->SetVertexShader");
|
||||
}
|
||||
g_InlineVertexBuffer_TableOffset = 0; // Might not be needed (also cleared in D3DDevice_Begin)
|
||||
|
|
|
@ -2394,6 +2394,7 @@ extern HRESULT XTL::EmuRecompileVshFunction
|
|||
DWORD *pRecompiledDeclaration
|
||||
)
|
||||
{
|
||||
#ifndef CXBX_USE_D3D9
|
||||
VSH_SHADER_HEADER *pShaderHeader = (VSH_SHADER_HEADER*)pFunction;
|
||||
DWORD *pToken;
|
||||
boolean EOI = false;
|
||||
|
@ -2506,10 +2507,9 @@ extern HRESULT XTL::EmuRecompileVshFunction
|
|||
}
|
||||
else
|
||||
{
|
||||
|
||||
hRet = D3DXAssembleShader(pShaderDisassembly,
|
||||
strlen(pShaderDisassembly),
|
||||
D3DXASM_SKIPVALIDATION,
|
||||
D3DXASM_SKIPVALIDATION,
|
||||
NULL,
|
||||
ppRecompiled,
|
||||
&pErrors);
|
||||
|
@ -2530,6 +2530,9 @@ extern HRESULT XTL::EmuRecompileVshFunction
|
|||
free(pShader);
|
||||
|
||||
return hRet;
|
||||
#else
|
||||
return D3D_OK;
|
||||
#endif
|
||||
}
|
||||
|
||||
extern void XTL::FreeVertexDynamicPatch(CxbxVertexShader *pVertexShader)
|
||||
|
@ -2540,6 +2543,7 @@ extern void XTL::FreeVertexDynamicPatch(CxbxVertexShader *pVertexShader)
|
|||
// Checks for failed vertex shaders, and shaders that would need patching
|
||||
boolean VshHandleIsValidShader(DWORD Handle)
|
||||
{
|
||||
#ifndef CXBX_USE_D3D9
|
||||
//printf( "VS = 0x%.08X\n", Handle );
|
||||
|
||||
XTL::CxbxVertexShader *pVertexShader = XTL::MapXboxVertexShaderHandleToCxbxVertexShader(Handle);
|
||||
|
@ -2560,6 +2564,7 @@ boolean VshHandleIsValidShader(DWORD Handle)
|
|||
}
|
||||
*/
|
||||
}
|
||||
#endif
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
|
@ -48,8 +48,8 @@
|
|||
#include <d3dx9math.h> // for D3DXVECTOR4, etc
|
||||
#include <d3dx9tex.h>
|
||||
|
||||
#include <dxerr.h>
|
||||
#pragma comment(lib, "dxerr.lib") // See https://blogs.msdn.microsoft.com/chuckw/2012/04/24/wheres-dxerr-lib/
|
||||
#include <dxerr9.h>
|
||||
//#pragma comment(lib, "dxerr.lib") // See https://blogs.msdn.microsoft.com/chuckw/2012/04/24/wheres-dxerr-lib/
|
||||
|
||||
// If the above doesn't compile, install the June 2010 DirectX SDK
|
||||
// from https://www.microsoft.com/en-us/download/details.aspx?id=6812
|
||||
|
@ -66,8 +66,10 @@
|
|||
#define D3DENUM_NO_WHQL_LEVEL 0 // default in Direct3D 9
|
||||
|
||||
// Alias all host Direct3D 9 symbols to generic symbols
|
||||
#define DXGetErrorString DXGetErrorString9A
|
||||
#define DXGetErrorDescription DXGetErrorDescription9A
|
||||
#define Direct3DCreate Direct3DCreate9
|
||||
#define D3DXAssembleShader D3DXCompileShader
|
||||
#define D3DXAssembleShader D3DXAssembleShader
|
||||
#define FullScreen_PresentationInterval PresentationInterval // a field in D3DPRESENT_PARAMETERS
|
||||
#define D3DLockData void
|
||||
#define PixelShaderConstantType float
|
||||
|
|
Loading…
Reference in New Issue