⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ddraw_headers.h

📁 Lido PXA270平台开发板的最新BSP,包括源代码
💻 H
字号:
/******************************************************************************
<module>
* Name         : ddraw_headers.h
* Title        : ddraw header files
* Author(s)    : Imagination Technologies
* Created      : 26 May 2004
*
* Copyright    : 2004 by Imagination Technologies Limited.
*                All rights reserved.  No part of this software, either
*                material or conceptual may be copied or distributed,
*                transmitted, transcribed, stored in a retrieval system
*                or translated into any human or computer language in any
*                form by any means, electronic, mechanical, manual or
*                other-wise, or disclosed to third parties without the
*                express written permission of Imagination Technologies
*                Limited, Unit 8, HomePark Industrial Estate,
*                King's Langley, Hertfordshire, WD4 8LZ, U.K.
*
* Description  : ddraw header files
*
* Platform     : Windows CE
*
 $Log: ddraw_headers.h $
********************************************************************************/
#if !defined(_DDRAW_HEADERS_H_)
#define _DDRAW_HEADERS_H_

#define PVR_KERNEL

#include <windows.h>
#include <windowsx.h>
#include <ddraw.h>
#include <ddrawi.h>
#include "img_defs.h"
#include "services_headers.h"
#include "pdpal.h"
#include "hostfunc.h"
#include "pvr_debug.h"
#include "dispinfo.h"
#include "rect.h"
#include "pvrdd.h"
#include "debug.h"
#include "winsys.h"
#include "halutils.h"
#include "halservcalls.h"
#include "drvescape.h"

/* include all function prototypes here */
DWORD HALGetDriverInfo(LPDDHAL_GETDRIVERINFODATA Param);
DWORD WINAPI HALGetBltStatus(LPDDHAL_GETBLTSTATUSDATA pd);
DWORD WINAPI HALBlt(LPDDHAL_BLTDATA psBlitData);
DWORD WINAPI HALDestroyDriver(LPDDHAL_DESTROYDRIVERDATA psDestroyData);
DWORD WINAPI HALWaitForVerticalBlank(LPDDHAL_WAITFORVERTICALBLANKDATA pd);
DWORD WINAPI HALGetScanLine(LPDDHAL_GETSCANLINEDATA pd);
DWORD WINAPI HALSetExclusiveMode(LPDDHAL_SETEXCLUSIVEMODEDATA pd);
DWORD WINAPI HalFlipToGDISurface(LPDDHAL_FLIPTOGDISURFACEDATA pd);
DWORD WINAPI HALCreateSurface(LPDDHAL_CREATESURFACEDATA psData);
DWORD WINAPI HALCanCreateSurface(LPDDHAL_CANCREATESURFACEDATA psData);
DWORD WINAPI HALLock(LPDDHAL_LOCKDATA psData);
DWORD WINAPI HALUnlock(LPDDHAL_UNLOCKDATA psData);
DWORD WINAPI HALDestroySurface(LPDDHAL_DESTROYSURFACEDATA psData);
DWORD WINAPI HALFlip(LPDDHAL_FLIPDATA psFlipData);
DWORD WINAPI HALSetColorKey(LPDDHAL_SETCOLORKEYDATA psColorKeyData);
DWORD WINAPI HALGetFlipStatus(LPDDHAL_GETFLIPSTATUSDATA pd);

#include "halcaps.h"

extern PDXHALDATA gpsDriverData;

/* FIXME sort out this debug printf mess */

	#define HAL_DPF / ## /
	#define DPF     / ## /
	#define DPFL1   / ## /
	#define DPFL2   / ## /
	#define DPFL3   / ## /
	#define DPFL4   / ## /
	#define DPFL5   / ## /
	#define DPFL6   / ## /
	#define DPFL7   / ## /
	#define DPFL8   / ## /
	#define DPFLX   / ## /
	#define DPFLXV  / ## /

__forceinline IMG_VOID PVRHALWriteSlavePort(PPVRSRV_DEV_SLAVE_PORT psSlavePort, IMG_UINT32 ui32Value)
{
	volatile IMG_UINT32 *pui32LinPortAddr;
	IMG_UINT32 ui32Offset = *psSlavePort->pui32Offset;

	pui32LinPortAddr = (IMG_UINT32*)((IMG_UINT32)psSlavePort->pvData + ui32Offset);
	*pui32LinPortAddr = ui32Value;
}
__forceinline PVRSRV_ERROR PVRHALWriteSlavePortBatch (PPVRSRV_DEV_SLAVE_PORT psSlavePort,
													  IMG_PVOID pvLinDataAddr,
													  IMG_UINT32 ui32Bytes)
{
	IMG_INT32 i;
	IMG_UINT32			   *pui32LinDataAddr = (IMG_UINT32*) pvLinDataAddr;
	IMG_UINT32			   *pui32LinPortAddrBase = (IMG_UINT32*) psSlavePort->pvData;
	IMG_UINT32			   *pui32LinPortAddr;
	IMG_UINT32 				ui32DWORDs = ui32Bytes>>2;

	for (i = ui32DWORDs; i != 0 ; i -= ui32DWORDs)
	{
		ui32DWORDs = (i < 32) ? i : 32;
		pui32LinPortAddr = pui32LinPortAddrBase;

		switch(ui32DWORDs)
		{
			case 32:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 31:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 30:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 29:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 28:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 27:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 26:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 25:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 24:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 23:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 22:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 21:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 20:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 19:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 18:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 17:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 16:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 15:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 14:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 13:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 12:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 11:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 10:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 9:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 8:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 7:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 6:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 5:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 4:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 3:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 2:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
			case 1:
			*pui32LinPortAddr++ = *pui32LinDataAddr++;
		}
	}

	return PVRSRV_OK;
}

__inline __int64 GetTicks()
{
	LARGE_INTEGER Count;

	QueryPerformanceCounter(&Count);
	return Count.QuadPart;
}

#endif /* (_DDRAW_HEADERS_H_) */
/*****************************************************************************
  End of file (ddraw_headers.h)
*****************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -