Fix crash in DOA2 and GTA
This commit is contained in:
parent
fe1285dc50
commit
3ccc02b7f4
|
@ -158,7 +158,7 @@ static XTL::INDEX16 *pQuadToTriangleIndexBuffer = nullptr;
|
|||
static UINT QuadToTriangleIndexBuffer_Size = 0; // = NrOfQuadVertices
|
||||
|
||||
static XTL::IDirect3DSurface *g_DefaultHostDepthBufferSuface = NULL;
|
||||
static XTL::X_D3DSurface *g_XboxBackBufferSurface = NULL;
|
||||
XTL::X_D3DSurface *g_XboxBackBufferSurface = NULL;
|
||||
static XTL::X_D3DSurface *g_XboxDefaultDepthStencilSurface = NULL;
|
||||
XTL::X_D3DSurface *g_pXboxRenderTarget = NULL;
|
||||
static XTL::X_D3DSurface *g_pXboxDepthStencil = NULL;
|
||||
|
|
|
@ -55,7 +55,8 @@ extern XTL::X_D3DVertexBuffer *g_pVertexBuffer = NULL;
|
|||
extern DWORD XTL::g_dwPrimPerFrame = 0;
|
||||
extern XTL::X_D3DVertexBuffer*g_D3DStreams[16];
|
||||
extern UINT g_D3DStreamStrides[16];
|
||||
extern XTL::X_D3DSurface* g_pXboxRenderTarget;
|
||||
extern XTL::X_D3DSurface* g_pXboxRenderTarget;
|
||||
extern XTL::X_D3DSurface* g_XboxBackBufferSurface;
|
||||
void *GetDataFromXboxResource(XTL::X_D3DResource *pXboxResource);
|
||||
bool GetHostRenderTargetDimensions(DWORD* pHostWidth, DWORD* pHostHeight, XTL::IDirect3DSurface* pHostRenderTarget = nullptr);
|
||||
uint32_t GetPixelContainerWidth(XTL::X_D3DPixelContainer* pPixelContainer);
|
||||
|
@ -682,6 +683,12 @@ void XTL::CxbxVertexBufferConverter::ConvertStream
|
|||
// the uiTextureCoordinatesByteOffsetInVertex on host will match Xbox
|
||||
}
|
||||
|
||||
// If for some reason the Xbox Render Target is not set, fallback to the backbuffer
|
||||
if (g_pXboxRenderTarget == xbnullptr) {
|
||||
LOG_TEST_CASE("SetRenderTarget fallback to backbuffer");
|
||||
g_pXboxRenderTarget = g_XboxBackBufferSurface;
|
||||
}
|
||||
|
||||
DWORD HostRenderTarget_Width, HostRenderTarget_Height;
|
||||
DWORD XboxRenderTarget_Width = GetPixelContainerWidth(g_pXboxRenderTarget);
|
||||
DWORD XboxRenderTarget_Height = GetPixelContainerHeight(g_pXboxRenderTarget);
|
||||
|
|
Loading…
Reference in New Issue