📄 ddraw_headers.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 + -