Esempio n. 1
0
/// <summary>
/// <c>wClear</c> 
/// </summary>
/// <remarks>
/// </remarks>
/// <param name="d3dDevice7"></param>
/// <param name="dwCount"></param>
/// <param name="lpRects"></param>
/// <param name="dwFlags"></param>
/// <param name="dwColor"></param>
/// <param name="dvZ"></param>
/// <param name="dwStencil"></param>
/// <returns></returns>
HRESULT __stdcall wClear(
	LPDIRECT3DDEVICE7 d3dDevice7, ULONG dwCount, LPD3DRECT lpRects, ULONG dwFlags, 
	ULONG dwColor, D3DVALUE dvZ, ULONG dwStencil)
{
	PSTR		pszClearArea;
	PSTR		pszErrorMessage;
	HRESULT		hResult;

	pszClearArea = GetClearArea(dwCount, lpRects, dwFlags);
	InternalFunctionSpew("GameOS_Direct3D", "Clear(%s)", pszClearArea);
	hResult = d3dDevice7->Clear(
		dwCount,
		lpRects,
		dwFlags,
		dwColor,
		dvZ,
		dwStencil);
	if (FAILED(hResult))
	{
		if ( hResult != DDERR_SURFACELOST)
		{
			pszClearArea = GetClearArea(dwCount, lpRects, dwFlags);
			pszErrorMessage = ErrorNumberToMessage(hResult);
			if ( InternalFunctionPause("FAILED (0x%x - %s) - Clear(%s)", hResult, pszErrorMessage, pszClearArea) )
				ENTER_DEBUGGER;
		}
	}

	return hResult;
}
Esempio n. 2
0
//////////////////////////////////////////////////////////////////////////////
//MAIN GAME LOOP
//////////////////////////////////////////////////////////////////////////////
void Prog_Loop()
{
	//set up the vertex positions
	vert[0].sx=(float) (cos(angle)*240.0+320.0);
	vert[0].sy=(float) (sin(angle)*240.0+240.0);
	vert[0].sz=(float) (sin(angle)*240.0+240.0);

	vert[1].sx=(float) (cos(angle+PI/2)*240.0+320.0);
	vert[1].sy=(float) (sin(angle+PI/2)*240.0+240.0);
	vert[1].sz=(float) (sin(angle+PI/2)*240.0+240.0);

	vert[2].sx=(float) (cos(angle-PI/2)*240.0+320.0);
	vert[2].sy=(float) (sin(angle-PI/2)*240.0+240.0);
	vert[2].sz=(float) (sin(angle-PI/2)*240.0+240.0);

	vert[3].sx=(float) (cos(angle-PI)*240.0+320.0);
	vert[3].sy=(float) (sin(angle-PI)*240.0+240.0);
	vert[3].sz=(float) (sin(angle-PI)*240.0+240.0);

	//add to the angle for next time
	angle+=PI/90;

	//clear the viewport to black
	lpd3ddev->Clear(0,NULL,D3DCLEAR_TARGET,0,0,0);

	//start the scene
	lpd3ddev->BeginScene();

	//draw the triangle
	lpd3ddev->DrawPrimitive(D3DPT_TRIANGLESTRIP,D3DFVF_TLVERTEX,vert,4,0);

	//end the scene
	lpd3ddev->EndScene();

	//flip 
	lpddsPrime->Flip(NULL,DDFLIP_WAIT);
}