{\r
D3DPRESENT_PARAMETERS d3dpp; \r
D3DDISPLAYMODE mode;\r
- int i=0,ret=0;\r
+ D3DDEVTYPE dt = D3DDEVTYPE_HAL;\r
+ int i,u,ret=0;\r
\r
memset(&d3dpp,0,sizeof(d3dpp));\r
memset(&mode,0,sizeof(mode));\r
#endif\r
\r
// Try to create a device with hardware vertex processing:\r
- for (i=0;i<4;i++)\r
+ for (u=0;u<2;u++)\r
{\r
- int behave=D3DCREATE_HARDWARE_VERTEXPROCESSING;\r
-\r
-#ifdef _XBOX\r
- if (i==1)\r
+ for (i=0;i<4;i++)\r
{\r
- // If 60Hz didn't work, try PAL 50Hz instead:\r
- d3dpp.FullScreen_RefreshRateInHz=0;\r
- d3dpp.BackBufferHeight=MainHeight=576;\r
- }\r
-#endif\r
+ int behave=D3DCREATE_HARDWARE_VERTEXPROCESSING;\r
\r
- // Try software vertex processing:\r
- if (i==2) behave=D3DCREATE_MIXED_VERTEXPROCESSING;\r
- if (i==3) behave=D3DCREATE_SOFTWARE_VERTEXPROCESSING;\r
+ // Try software vertex processing:\r
+ if (i==1) behave=D3DCREATE_MIXED_VERTEXPROCESSING;\r
+ if (i==2) behave=D3DCREATE_SOFTWARE_VERTEXPROCESSING;\r
\r
- Direct3D->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,FrameWnd,behave,&d3dpp,&Device);\r
+ Direct3D->CreateDevice(D3DADAPTER_DEFAULT,dt,FrameWnd,behave,&d3dpp,&Device);\r
+ if (Device) break;\r
+ }\r
if (Device) break;\r
+ dt = D3DDEVTYPE_REF;\r
}\r
\r
if (Device==NULL) return 1;\r
int DirectScreen()\r
{\r
unsigned char *lock=NULL;\r
+ int ret;\r
\r
// Copy the screen to the screen texture:\r
#ifdef _XBOX\r
TexScreenSwizzle();\r
#else\r
- TexScreenLinear();\r
+ ret=TexScreenLinear();\r
+ if (ret) dprintf2("TexScreenLinear failed\n");\r
#endif\r
\r
SetupMatrices();\r
MakeVertexList();\r
\r
// Copy vertices in:\r
- VertexBuffer->Lock(0,sizeof(VertexList),&lock,0); if (lock==NULL) return 1;\r
+ VertexBuffer->Lock(0,sizeof(VertexList),&lock,0);\r
+ if (lock==NULL) { dprintf2("VertexBuffer->Lock failed\n"); return 1; }\r
memcpy(lock,VertexList,sizeof(VertexList));\r
VertexBuffer->Unlock();\r
\r
- Device->SetTexture(0,TexScreen);\r
- Device->SetStreamSource(0,VertexBuffer,sizeof(CustomVertex));\r
- Device->SetVertexShader(D3DFVF_CUSTOMVERTEX);\r
- Device->DrawPrimitive(D3DPT_TRIANGLESTRIP,0,2);\r
- \r
+ ret=Device->SetTexture(0,TexScreen);\r
+ if (ret) dprintf2("SetTexture failed\n");\r
+ ret=Device->SetStreamSource(0,VertexBuffer,sizeof(CustomVertex));\r
+ if (ret) dprintf2("SetStreamSource failed\n");\r
+ ret=Device->SetVertexShader(D3DFVF_CUSTOMVERTEX);\r
+ if (ret) dprintf2("SetVertexShader failed\n");\r
+ ret=Device->DrawPrimitive(D3DPT_TRIANGLESTRIP,0,2);\r
+ if (ret) dprintf2("DrawPrimitive failed\n");\r
+\r
return 0;\r
}\r