2006-07-13 19:00:05 +00:00
|
|
|
#include <windows.h>
|
|
|
|
#include <ddrawi.h>
|
|
|
|
#include <d3dhal.h>
|
|
|
|
|
|
|
|
|
|
|
|
int StartupHAL ();
|
|
|
|
extern HDC hdc;
|
|
|
|
extern DDRAWI_DIRECTDRAW_GBL mDDrawGlobal;
|
|
|
|
extern DDRAWI_DIRECTDRAW_LCL mDDrawLocal;
|
|
|
|
extern DDHALINFO mHALInfo;
|
|
|
|
|
|
|
|
extern DDHAL_CALLBACKS mCallbacks;
|
|
|
|
extern DDHAL_DDEXEBUFCALLBACKS mD3dBufferCallbacks;
|
|
|
|
extern D3DHAL_CALLBACKS mD3dCallbacks;
|
|
|
|
extern D3DHAL_GLOBALDRIVERDATA mD3dDriverData;
|
|
|
|
|
|
|
|
extern UINT mcModeInfos;
|
|
|
|
extern DDHALMODEINFO *mpModeInfos;
|
|
|
|
|
|
|
|
extern UINT mcvmList;
|
|
|
|
extern VIDMEM *mpvmList;
|
|
|
|
|
|
|
|
extern UINT mcFourCC;
|
|
|
|
extern DWORD *mpFourCC;
|
|
|
|
|
|
|
|
extern UINT mcTextures;
|
|
|
|
extern DDSURFACEDESC *mpTextures;
|
|
|
|
|
|
|
|
|
|
|
|
|
2007-10-19 23:01:40 +00:00
|
|
|
BOOL (APIENTRY *DdCreateDirectDrawObject) (
|
2006-07-13 19:00:05 +00:00
|
|
|
LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
|
|
|
|
HDC hdc
|
|
|
|
);
|
|
|
|
|
2007-10-19 23:01:40 +00:00
|
|
|
BOOL (APIENTRY *DdQueryDirectDrawObject) (
|
2006-07-13 19:00:05 +00:00
|
|
|
LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
|
|
|
|
LPDDHALINFO pHalInfo,
|
|
|
|
LPDDHAL_DDCALLBACKS pDDCallbacks,
|
|
|
|
LPDDHAL_DDSURFACECALLBACKS pDDSurfaceCallbacks,
|
|
|
|
LPDDHAL_DDPALETTECALLBACKS pDDPaletteCallbacks,
|
2007-10-19 23:01:40 +00:00
|
|
|
LPD3DHAL_CALLBACKS pD3dCallbacks,
|
|
|
|
LPD3DHAL_GLOBALDRIVERDATA pD3dDriverData,
|
2006-07-13 19:00:05 +00:00
|
|
|
LPDDHAL_DDEXEBUFCALLBACKS pD3dBufferCallbacks,
|
|
|
|
LPDDSURFACEDESC pD3dTextureFormats,
|
|
|
|
LPDWORD pdwFourCC,
|
|
|
|
LPVIDMEM pvmList
|
|
|
|
);
|
|
|
|
|
2007-10-19 23:01:40 +00:00
|
|
|
BOOL
|
|
|
|
APIENTRY
|
|
|
|
DdDeleteDirectDrawObject(
|
2006-07-13 19:00:05 +00:00
|
|
|
LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal
|
|
|
|
);
|
|
|
|
|
2007-10-19 23:01:40 +00:00
|
|
|
BOOL
|
|
|
|
APIENTRY
|
|
|
|
DdCreateSurfaceObject(
|
2006-07-13 19:00:05 +00:00
|
|
|
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal,
|
|
|
|
BOOL bPrimarySurface
|
|
|
|
);
|
|
|
|
|
2007-10-19 23:01:40 +00:00
|
|
|
BOOL
|
|
|
|
APIENTRY
|
|
|
|
DdDeleteSurfaceObject(
|
2006-07-13 19:00:05 +00:00
|
|
|
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal
|
|
|
|
);
|
|
|
|
|
2007-10-19 23:01:40 +00:00
|
|
|
//BOOL
|
|
|
|
//APIENTRY
|
|
|
|
//DdResetVisrgn(
|
2006-07-13 19:00:05 +00:00
|
|
|
// LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal,
|
|
|
|
// HWND hWnd
|
|
|
|
//);
|
2007-10-19 23:01:40 +00:00
|
|
|
BOOL (APIENTRY *DdResetVisrgn) (
|
2006-07-13 19:00:05 +00:00
|
|
|
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal,
|
|
|
|
HWND hWnd
|
|
|
|
);
|
|
|
|
|
2007-10-19 23:01:40 +00:00
|
|
|
HDC
|
|
|
|
APIENTRY
|
|
|
|
DdGetDC(
|
2006-07-13 19:00:05 +00:00
|
|
|
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal,
|
|
|
|
LPPALETTEENTRY pColorTable
|
|
|
|
);
|
|
|
|
|
2007-10-19 23:01:40 +00:00
|
|
|
BOOL
|
|
|
|
APIENTRY
|
|
|
|
DdReleaseDC(
|
2006-07-13 19:00:05 +00:00
|
|
|
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal
|
|
|
|
);
|
|
|
|
|
2007-10-19 23:01:40 +00:00
|
|
|
HBITMAP
|
|
|
|
APIENTRY
|
|
|
|
DdCreateDIBSection(
|
2006-07-13 19:00:05 +00:00
|
|
|
HDC hdc,
|
|
|
|
CONST BITMAPINFO *pbmi,
|
|
|
|
UINT iUsage,
|
|
|
|
VOID **ppvBits,
|
|
|
|
HANDLE hSectionApp,
|
|
|
|
DWORD dwOffset
|
|
|
|
);
|
|
|
|
|
2007-10-19 23:01:40 +00:00
|
|
|
BOOL
|
|
|
|
APIENTRY
|
|
|
|
DdReenableDirectDrawObject(
|
2006-07-13 19:00:05 +00:00
|
|
|
LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
|
|
|
|
BOOL *pbNewMode
|
|
|
|
);
|
|
|
|
|
2007-10-19 23:01:40 +00:00
|
|
|
//BOOL
|
|
|
|
//APIENTRY
|
|
|
|
//DdAttachSurface(
|
2006-07-13 19:00:05 +00:00
|
|
|
// LPDDRAWI_DDRAWSURFACE_LCL pSurfaceFrom,
|
|
|
|
// LPDDRAWI_DDRAWSURFACE_LCL pSurfaceTo
|
|
|
|
//);
|
|
|
|
|
2007-10-19 23:01:40 +00:00
|
|
|
BOOL (APIENTRY *DdAttachSurface) (
|
2006-07-13 19:00:05 +00:00
|
|
|
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceFrom,
|
|
|
|
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceTo
|
|
|
|
);
|
|
|
|
|
2007-10-19 23:01:40 +00:00
|
|
|
VOID
|
|
|
|
APIENTRY
|
|
|
|
DdUnattachSurface(
|
2006-07-13 19:00:05 +00:00
|
|
|
LPDDRAWI_DDRAWSURFACE_LCL pSurface,
|
|
|
|
LPDDRAWI_DDRAWSURFACE_LCL pSurfaceAttached
|
|
|
|
);
|
|
|
|
|
2007-10-19 23:01:40 +00:00
|
|
|
ULONG
|
|
|
|
APIENTRY
|
2006-07-13 19:00:05 +00:00
|
|
|
DdQueryDisplaySettingsUniqueness(VOID);
|
|
|
|
|
2007-10-19 23:01:40 +00:00
|
|
|
HANDLE
|
|
|
|
APIENTRY
|
|
|
|
DdGetDxHandle(
|
2006-07-13 19:00:05 +00:00
|
|
|
LPDDRAWI_DIRECTDRAW_LCL pDDraw,
|
|
|
|
LPDDRAWI_DDRAWSURFACE_LCL pSurface,
|
|
|
|
BOOL bRelease
|
|
|
|
);
|
|
|
|
|
2007-10-19 23:01:40 +00:00
|
|
|
BOOL
|
|
|
|
APIENTRY
|
|
|
|
DdSetGammaRamp(
|
2006-07-13 19:00:05 +00:00
|
|
|
LPDDRAWI_DIRECTDRAW_LCL pDDraw,
|
|
|
|
HDC hdc,
|
|
|
|
LPVOID lpGammaRamp
|
|
|
|
);
|
|
|
|
|
2007-10-19 23:01:40 +00:00
|
|
|
DWORD
|
|
|
|
APIENTRY
|
|
|
|
DdSwapTextureHandles(
|
2006-07-13 19:00:05 +00:00
|
|
|
LPDDRAWI_DIRECTDRAW_LCL pDDraw,
|
|
|
|
LPDDRAWI_DDRAWSURFACE_LCL pDDSLcl1,
|
|
|
|
LPDDRAWI_DDRAWSURFACE_LCL pDDSLcl2
|
|
|
|
);
|
|
|
|
|
|
|
|
char* DDErrorString (HRESULT hr)
|
2007-10-19 23:01:40 +00:00
|
|
|
{
|
2006-07-13 19:00:05 +00:00
|
|
|
switch (hr)
|
|
|
|
{
|
|
|
|
case DD_OK: return "DD_OK";
|
|
|
|
case DDERR_ALREADYINITIALIZED: return "DDERR_ALREADYINITIALIZED";
|
|
|
|
case DDERR_CANNOTATTACHSURFACE: return "DDERR_CANNOTATTACHSURFACE";
|
|
|
|
case DDERR_CANNOTDETACHSURFACE: return "DDERR_CANNOTDETACHSURFACE";
|
|
|
|
case DDERR_CURRENTLYNOTAVAIL: return "DDERR_CURRENTLYNOTAVAIL";
|
|
|
|
case DDERR_EXCEPTION: return "DDERR_EXCEPTION";
|
|
|
|
case DDERR_GENERIC: return "DDERR_GENERIC";
|
|
|
|
case DDERR_HEIGHTALIGN: return "DDERR_HEIGHTALIGN";
|
|
|
|
case DDERR_INCOMPATIBLEPRIMARY: return "DDERR_INCOMPATIBLEPRIMARY";
|
|
|
|
case DDERR_INVALIDCAPS: return "DDERR_INVALIDCAPS";
|
|
|
|
case DDERR_INVALIDCLIPLIST: return "DDERR_INVALIDCLIPLIST";
|
|
|
|
case DDERR_INVALIDMODE: return "DDERR_INVALIDMODE";
|
|
|
|
case DDERR_INVALIDOBJECT: return "DDERR_INVALIDOBJECT";
|
|
|
|
case DDERR_INVALIDPARAMS: return "DDERR_INVALIDPARAMS";
|
|
|
|
case DDERR_INVALIDPIXELFORMAT: return "DDERR_INVALIDPIXELFORMAT";
|
|
|
|
case DDERR_INVALIDRECT: return "DDERR_INVALIDRECT";
|
|
|
|
case DDERR_LOCKEDSURFACES: return "DDERR_LOCKEDSURFACES";
|
|
|
|
case DDERR_NO3D: return "DDERR_NO3D";
|
|
|
|
case DDERR_NOALPHAHW: return "DDERR_NOALPHAHW";
|
|
|
|
case DDERR_NOCLIPLIST: return "DDERR_NOCLIPLIST";
|
|
|
|
case DDERR_NOCOLORCONVHW: return "DDERR_NOCOLORCONVHW";
|
|
|
|
case DDERR_NOCOOPERATIVELEVELSET: return "DDERR_NOCOOPERATIVELEVELSET";
|
|
|
|
case DDERR_NOCOLORKEY: return "DDERR_NOCOLORKEY";
|
|
|
|
case DDERR_NOCOLORKEYHW: return "DDERR_NOCOLORKEYHW";
|
|
|
|
case DDERR_NODIRECTDRAWSUPPORT: return "DDERR_NODIRECTDRAWSUPPORT";
|
|
|
|
case DDERR_NOEXCLUSIVEMODE: return "DDERR_NOEXCLUSIVEMODE";
|
|
|
|
case DDERR_NOFLIPHW: return "DDERR_NOFLIPHW";
|
|
|
|
case DDERR_NOGDI: return "DDERR_NOGDI";
|
|
|
|
case DDERR_NOMIRRORHW: return "DDERR_NOMIRRORHW";
|
|
|
|
case DDERR_NOTFOUND: return "DDERR_NOTFOUND";
|
|
|
|
case DDERR_NOOVERLAYHW: return "DDERR_NOOVERLAYHW";
|
|
|
|
case DDERR_NORASTEROPHW: return "DDERR_NORASTEROPHW";
|
|
|
|
case DDERR_NOROTATIONHW: return "DDERR_NOROTATIONHW";
|
|
|
|
case DDERR_NOSTRETCHHW: return "DDERR_NOSTRETCHHW";
|
|
|
|
case DDERR_NOT4BITCOLOR: return "DDERR_NOT4BITCOLOR";
|
|
|
|
case DDERR_NOT4BITCOLORINDEX: return "DDERR_NOT4BITCOLORINDEX";
|
|
|
|
case DDERR_NOT8BITCOLOR: return "DDERR_NOT8BITCOLOR";
|
|
|
|
case DDERR_NOTEXTUREHW: return "DDERR_NOTEXTUREHW";
|
|
|
|
case DDERR_NOVSYNCHW: return "DDERR_NOVSYNCHW";
|
|
|
|
case DDERR_NOZBUFFERHW: return "DDERR_NOZBUFFERHW";
|
|
|
|
case DDERR_NOZOVERLAYHW: return "DDERR_NOZOVERLAYHW";
|
|
|
|
case DDERR_OUTOFCAPS: return "DDERR_OUTOFCAPS";
|
|
|
|
case DDERR_OUTOFMEMORY: return "DDERR_OUTOFMEMORY";
|
|
|
|
case DDERR_OUTOFVIDEOMEMORY: return "DDERR_OUTOFVIDEOMEMORY";
|
|
|
|
case DDERR_OVERLAYCANTCLIP: return "DDERR_OVERLAYCANTCLIP";
|
|
|
|
case DDERR_OVERLAYCOLORKEYONLYONEACTIVE: return "DDERR_OVERLAYCOLORKEYONLYONEACTIVE";
|
|
|
|
case DDERR_PALETTEBUSY: return "DDERR_PALETTEBUSY";
|
|
|
|
case DDERR_COLORKEYNOTSET: return "DDERR_COLORKEYNOTSET";
|
|
|
|
case DDERR_SURFACEALREADYATTACHED: return "DDERR_SURFACEALREADYATTACHED";
|
|
|
|
case DDERR_SURFACEALREADYDEPENDENT: return "DDERR_SURFACEALREADYDEPENDENT";
|
|
|
|
case DDERR_SURFACEBUSY: return "DDERR_SURFACEBUSY";
|
|
|
|
case DDERR_CANTLOCKSURFACE: return "DDERR_CANTLOCKSURFACE";
|
|
|
|
case DDERR_SURFACEISOBSCURED: return "DDERR_SURFACEISOBSCURED";
|
|
|
|
case DDERR_SURFACELOST: return "DDERR_SURFACELOST";
|
|
|
|
case DDERR_SURFACENOTATTACHED: return "DDERR_SURFACENOTATTACHED";
|
|
|
|
case DDERR_TOOBIGHEIGHT: return "DDERR_TOOBIGHEIGHT";
|
|
|
|
case DDERR_TOOBIGSIZE: return "DDERR_TOOBIGSIZE";
|
|
|
|
case DDERR_TOOBIGWIDTH: return "DDERR_TOOBIGWIDTH";
|
|
|
|
case DDERR_UNSUPPORTED: return "DDERR_UNSUPPORTED";
|
|
|
|
case DDERR_UNSUPPORTEDFORMAT: return "DDERR_UNSUPPORTEDFORMAT";
|
|
|
|
case DDERR_UNSUPPORTEDMASK: return "DDERR_UNSUPPORTEDMASK";
|
|
|
|
case DDERR_VERTICALBLANKINPROGRESS: return "DDERR_VERTICALBLANKINPROGRESS";
|
|
|
|
case DDERR_WASSTILLDRAWING: return "DDERR_WASSTILLDRAWING";
|
|
|
|
case DDERR_XALIGN: return "DDERR_XALIGN";
|
|
|
|
case DDERR_INVALIDDIRECTDRAWGUID: return "DDERR_INVALIDDIRECTDRAWGUID";
|
|
|
|
case DDERR_DIRECTDRAWALREADYCREATED: return "DDERR_DIRECTDRAWALREADYCREATED";
|
|
|
|
case DDERR_NODIRECTDRAWHW: return "DDERR_NODIRECTDRAWHW";
|
|
|
|
case DDERR_PRIMARYSURFACEALREADYEXISTS: return "DDERR_PRIMARYSURFACEALREADYEXISTS";
|
|
|
|
case DDERR_NOEMULATION: return "DDERR_NOEMULATION";
|
|
|
|
case DDERR_REGIONTOOSMALL: return "DDERR_REGIONTOOSMALL";
|
|
|
|
case DDERR_CLIPPERISUSINGHWND: return "DDERR_CLIPPERISUSINGHWND";
|
|
|
|
case DDERR_NOCLIPPERATTACHED: return "DDERR_NOCLIPPERATTACHED";
|
|
|
|
case DDERR_NOHWND: return "DDERR_NOHWND";
|
|
|
|
case DDERR_HWNDSUBCLASSED: return "DDERR_HWNDSUBCLASSED";
|
|
|
|
case DDERR_HWNDALREADYSET: return "DDERR_HWNDALREADYSET";
|
|
|
|
case DDERR_NOPALETTEATTACHED: return "DDERR_NOPALETTEATTACHED";
|
|
|
|
case DDERR_NOPALETTEHW: return "DDERR_NOPALETTEHW";
|
|
|
|
case DDERR_BLTFASTCANTCLIP: return "DDERR_BLTFASTCANTCLIP";
|
|
|
|
case DDERR_NOBLTHW: return "DDERR_NOBLTHW";
|
|
|
|
case DDERR_NODDROPSHW: return "DDERR_NODDROPSHW";
|
|
|
|
case DDERR_OVERLAYNOTVISIBLE: return "DDERR_OVERLAYNOTVISIBLE";
|
|
|
|
case DDERR_NOOVERLAYDEST: return "DDERR_NOOVERLAYDEST";
|
|
|
|
case DDERR_INVALIDPOSITION: return "DDERR_INVALIDPOSITION";
|
|
|
|
case DDERR_NOTAOVERLAYSURFACE: return "DDERR_NOTAOVERLAYSURFACE";
|
|
|
|
case DDERR_EXCLUSIVEMODEALREADYSET: return "DDERR_EXCLUSIVEMODEALREADYSET";
|
|
|
|
case DDERR_NOTFLIPPABLE: return "DDERR_NOTFLIPPABLE";
|
|
|
|
case DDERR_CANTDUPLICATE: return "DDERR_CANTDUPLICATE";
|
|
|
|
case DDERR_NOTLOCKED: return "DDERR_NOTLOCKED";
|
|
|
|
case DDERR_CANTCREATEDC: return "DDERR_CANTCREATEDC";
|
|
|
|
case DDERR_NODC: return "DDERR_NODC";
|
|
|
|
case DDERR_WRONGMODE: return "DDERR_WRONGMODE";
|
|
|
|
case DDERR_IMPLICITLYCREATED: return "DDERR_IMPLICITLYCREATED";
|
|
|
|
case DDERR_NOTPALETTIZED: return "DDERR_NOTPALETTIZED";
|
|
|
|
case DDERR_UNSUPPORTEDMODE: return "DDERR_UNSUPPORTEDMODE";
|
|
|
|
case DDERR_NOMIPMAPHW: return "DDERR_NOMIPMAPHW";
|
|
|
|
case DDERR_INVALIDSURFACETYPE: return "DDERR_INVALIDSURFACETYPE";
|
|
|
|
case DDERR_DCALREADYCREATED: return "DDERR_DCALREADYCREATED";
|
|
|
|
case DDERR_CANTPAGELOCK: return "DDERR_CANTPAGELOCK";
|
|
|
|
case DDERR_CANTPAGEUNLOCK: return "DDERR_CANTPAGEUNLOCK";
|
|
|
|
case DDERR_NOTPAGELOCKED: return "DDERR_NOTPAGELOCKED";
|
|
|
|
case DDERR_NOTINITIALIZED: return "DDERR_NOTINITIALIZED";
|
|
|
|
}
|
2007-10-19 23:01:40 +00:00
|
|
|
|
2006-07-13 19:00:05 +00:00
|
|
|
return "Unknown Error ";
|
|
|
|
}
|
|
|
|
|