This code compiles fine but when ran the screen is just black. Is there anything wrong with the render function?
Note: the surfaces are valid
Code:
int Render()
{
HRESULT r;
LPDIRECT3DSURFACE8 pBackSurf = 0;
if( !g_pDevice )
{
SetError( "Cannot render because there is no device" );
return E_FAIL;
}
g_pDevice->Clear( 0, 0, D3DCLEAR_TARGET, D3DCOLOR_XRGB( 0, 0, 0 ), 1.0f, 0 );
r = g_pDevice->GetBackBuffer( 0, D3DBACKBUFFER_TYPE_MONO, &pBackSurf );
if ( FAILED( r ) )
{
SetError( "Couldn't get backbuffer" );
}
POINT DestPoint;
RECT rect;
switch (GameState)
{
case 1:
DestPoint.x = 0;
DestPoint.y = 0;
rect.bottom = 0;
rect.left = 0;
rect.right = d3dsdMenu.Width;
rect.top = d3dsdMenu.Height;
g_pDevice->CopyRects( pSurfaceMenu, &rect, 1, pBackSurf, &DestPoint );
break;
case 2:
DestPoint.x = 0;
DestPoint.y = 0;
rect.bottom = 0;
rect.left = 0;
rect.right = d3dsdRandomMap.Width;
rect.top = d3dsdRandomMap.Height;
g_pDevice->CopyRects( pSurfaceRandomMap, &rect, 1, pBackSurf, &DestPoint );
break;
case 3:
DestPoint.x = 0;
DestPoint.y = 0;
rect.bottom = 0;
rect.left = 0;
rect.right = d3dsdMultiplayer.Width;
rect.top = d3dsdMultiplayer.Height;
g_pDevice->CopyRects( pSurfaceMultiplayer, &rect, 1, pBackSurf, &DestPoint );
break;
case 4:
DestPoint.x = 0;
DestPoint.y = 0;
rect.bottom = 0;
rect.left = 0;
rect.right = d3dsdCampaign.Width;
rect.top = d3dsdCampaign.Height;
g_pDevice->CopyRects( pSurfaceCampaign, &rect, 1, pBackSurf, &DestPoint );
break;
case 5:
DestPoint.x = 0;
DestPoint.y = 0;
rect.bottom = 0;
rect.left = 0;
rect.right = d3dsdScenario.Width;
rect.top = d3dsdScenario.Height;
g_pDevice->CopyRects( pSurfaceScenario, &rect, 1, pBackSurf, &DestPoint );
break;
case 6:
DestPoint.x = 0;
DestPoint.y = 0;
rect.bottom = 0;
rect.left = 0;
rect.right = d3dsdOptions.Width;
rect.top = d3dsdOptions.Height;
g_pDevice->CopyRects( pSurfaceOptions, &rect, 1, pBackSurf, &DestPoint );
break;
default: //note: this is unneeded as getting a gametype other then 1-6 is impossible
break;
}
pBackSurf->Release();
pBackSurf = 0;
g_pDevice->Present( NULL, NULL, NULL, NULL );
return S_OK;
}
Thanks for any help