mirror of
https://github.com/reactos/reactos.git
synced 2024-11-20 06:15:26 +00:00
Add : started port in intEnableDriver from reactos 0.3.2 and rename it to intEnableReactXDriver. it is the part activate the graphic card directx support.
Add : more debug data for ReactX it is need it to fill all edd_ struct right, allot of the debug functions will go away after we got up stable interface. BugFix : EDD_DIRECTDRAW_LOCAL the struct did miss one member. svn path=/trunk/; revision=33152
This commit is contained in:
parent
da69013f65
commit
cd73d524b9
3 changed files with 670 additions and 18 deletions
|
@ -13,7 +13,8 @@ typedef struct _EDD_DIRECTDRAW_LOCAL
|
|||
//
|
||||
DD_BASEOBJECT pobj;
|
||||
/* 0x10 */ struct _EDD_DIRECTDRAW_GLOBAL * peDirectDrawGlobal; // verify it match windows xp
|
||||
/* 0x1C */ struct _EDD_SURFACE * peSurface_DdList;
|
||||
/* 0x14 */ struct _EDD_SURFACE * peSurface_DdList;
|
||||
/* 0x18 */ ULONG unk_018;
|
||||
/* 0x1C */ ULONG unk_01c;
|
||||
/* 0x20 */ ULONG unk_020;
|
||||
/* 0x24 */ struct _EDD_DIRECTDRAW_GLOBAL * peDirectDrawGlobal2; // verify it match windows xp
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include <reactos/drivers/directx/dxeng.h>
|
||||
|
||||
/* From ddraw.c */
|
||||
BOOL intEnableReactXDriver(PEDD_DIRECTDRAW_GLOBAL pEddgbl, PDC pDC);
|
||||
extern DRVFN gpDxFuncs[];
|
||||
|
||||
typedef BOOL (NTAPI* PGD_DDSETGAMMARAMP)(HANDLE, HDC, LPVOID);
|
||||
|
@ -125,5 +126,26 @@ BOOL FASTCALL IntSetDeviceGammaRamp(HDEV hPDev, PGAMMARAMP Ramp, BOOL);
|
|||
/* Debug function oly for win32k dx */
|
||||
void dump_edd_directdraw_global(EDD_DIRECTDRAW_GLOBAL *pEddgbl);
|
||||
void dump_edd_directdraw_local(PEDD_DIRECTDRAW_LOCAL pEddlcl);
|
||||
void dump_halinfo(DD_HALINFO *pHalInfo);
|
||||
|
||||
#define checkflag(dwflag,dwvalue,text) \
|
||||
if (dwflag & dwvalue) \
|
||||
{ \
|
||||
if (count!=0) \
|
||||
{ \
|
||||
DPRINT1("| "); \
|
||||
} \
|
||||
dwflag = (ULONG)dwflag - (ULONG)dwvalue; \
|
||||
DPRINT1("%s ",text); \
|
||||
count++; \
|
||||
}
|
||||
|
||||
#define endcheckflag(dwflag,text) \
|
||||
if (count==0) \
|
||||
DPRINT1("0x%08lx\n", (ULONG) dwflag);\
|
||||
else \
|
||||
DPRINT1("\n");\
|
||||
if (flag != 0) \
|
||||
DPRINT1("undoc value in %s flags value %08lx\n",text, (ULONG) dwflag);
|
||||
|
||||
#endif /* _INT_W32k_DDRAW */
|
||||
|
|
|
@ -26,6 +26,177 @@ ULONG gdwDirectDrawContext;
|
|||
EDD_DIRECTDRAW_GLOBAL edd_DdirectDraw_Global;
|
||||
|
||||
|
||||
/************************************************************************/
|
||||
/* DirectX graphic/video driver enable start here */
|
||||
/************************************************************************/
|
||||
BOOL
|
||||
intEnableReactXDriver(PEDD_DIRECTDRAW_GLOBAL pEddgbl, PDC pDC)
|
||||
{
|
||||
PGDIDEVICE pDev = (PGDIDEVICE)pDC->pPDev;
|
||||
BOOLEAN success = FALSE;
|
||||
//DD_HALINFO HalInfo;
|
||||
|
||||
|
||||
// ddHalInfo.dwSize = sizeof(DD_HALINFO);
|
||||
// VIDEOMEMORYINFO vmiData;
|
||||
// DDNTCORECAPS ddCaps;
|
||||
// PDD_GETDRIVERINFO GetDriverInfo;
|
||||
// DWORD dwFlags;
|
||||
// PVOID lpD3DGlobalDriverData;
|
||||
// PVOID lpD3DHALCallbacks;
|
||||
// PDD_D3DBUFCALLBACKS lpD3DBufCallbacks;
|
||||
|
||||
/*clean up some of the cache entry */
|
||||
RtlZeroMemory(pEddgbl,sizeof(EDD_DIRECTDRAW_GLOBAL));
|
||||
|
||||
/* setup hdev for edd_DdirectDraw_Global xp */
|
||||
edd_DdirectDraw_Global.hDev = pDC->pPDev;
|
||||
//edd_DdirectDraw_Global.dhpdev = (PVOID)pDC->PDev;
|
||||
|
||||
|
||||
/* setup EDD_DIRECTDRAW_GLOBAL for pDev xp */
|
||||
pDev->pEDDgpl = pEddgbl;
|
||||
|
||||
// pEddgbl->GetDriverInfo = pDC->DriverFunctions.GetDirectDrawInfo;
|
||||
|
||||
|
||||
/* test see if drv got a dx interface or not */
|
||||
if ( ( pDev->DriverFunctions.DisableDirectDraw == NULL) ||
|
||||
( pDev->DriverFunctions.EnableDirectDraw == NULL))
|
||||
{
|
||||
DPRINT1("Waring : DisableDirectDraw and EnableDirectDraw are NULL, no dx driver \n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* Get DirectDraw infomations form the driver
|
||||
* DDK say pvmList, pdwFourCC is always NULL in frist call here
|
||||
* but we get back how many pvmList it whant we should alloc, same
|
||||
* with pdwFourCC.
|
||||
*/
|
||||
|
||||
if (pDev->DriverFunctions.GetDirectDrawInfo)
|
||||
{
|
||||
// DPRINT1("if u are using vmware driver and see this msg, please repot this\n");
|
||||
DPRINT1("at DrvGetDirectDrawInfo \n");
|
||||
success = pDev->DriverFunctions.GetDirectDrawInfo( pDC->PDev,
|
||||
&pEddgbl->ddHalInfo,
|
||||
&pEddgbl->dwNumHeaps,
|
||||
NULL,
|
||||
&pEddgbl->dwNumFourCC,
|
||||
NULL);
|
||||
if (!success)
|
||||
{
|
||||
DPRINT1("DrvGetDirectDrawInfo frist call fail\n");
|
||||
return FALSE;
|
||||
}
|
||||
DPRINT1(" DrvGetDirectDrawInfo OK\n");
|
||||
|
||||
// /* The driver are not respnose to alloc the memory for pvmList
|
||||
// * but it is win32k responsible todo, Windows 9x it is gdi32.dll
|
||||
// */
|
||||
// if (pDirectDraw->dwNumHeaps != 0)
|
||||
// {
|
||||
// DPRINT1("Setup pvmList\n");
|
||||
// pDirectDraw->pvmList = (PVIDEOMEMORY) ExAllocatePoolWithTag(PagedPool, pDirectDraw->dwNumHeaps * sizeof(VIDEOMEMORY), TAG_DXPVMLIST);
|
||||
// if (pDirectDraw->pvmList == NULL)
|
||||
// {
|
||||
// DPRINT1("pvmList memmery alloc fail\n");
|
||||
// return FALSE;
|
||||
// }
|
||||
// }
|
||||
|
||||
// /* The driver are not respnose to alloc the memory for pdwFourCC
|
||||
// * but it is win32k responsible todo, Windows 9x it is gdi32.dll
|
||||
// */
|
||||
|
||||
// if (pDirectDraw->dwNumFourCC != 0)
|
||||
// {
|
||||
// DPRINT1("Setup pdwFourCC\n");
|
||||
// pDirectDraw->pdwFourCC = (LPDWORD) ExAllocatePoolWithTag(PagedPool, pDirectDraw->dwNumFourCC * sizeof(DWORD), TAG_DXFOURCC);
|
||||
|
||||
// if (pDirectDraw->pdwFourCC == NULL)
|
||||
// {
|
||||
// DPRINT1("pdwFourCC memmery alloc fail\n");
|
||||
// return FALSE;
|
||||
// }
|
||||
// }
|
||||
// success = pDirectDraw->DrvGetDirectDrawInfo( pDirectDraw->Global.dhpdev,
|
||||
// &HalInfo,
|
||||
// &pDirectDraw->dwNumHeaps,
|
||||
// pDirectDraw->pvmList,
|
||||
// &pDirectDraw->dwNumFourCC,
|
||||
// pDirectDraw->pdwFourCC);
|
||||
// if (!success)
|
||||
// {
|
||||
// DPRINT1("DrvGetDirectDrawInfo second call fail\n");
|
||||
// GDIOBJ_UnlockObjByPtr(DdHandleTable, pDirectDraw);
|
||||
// return FALSE;
|
||||
// }
|
||||
|
||||
|
||||
// /* We need now convert the DD_HALINFO we got, it can be NT4 driver we
|
||||
// * loading ReactOS supporting NT4 and higher to be loading.so we make
|
||||
// * the HALInfo compatible here so we can easy pass it to gdi32.dll
|
||||
// * without converting it later
|
||||
// */
|
||||
|
||||
// if ((HalInfo.dwSize != sizeof(DD_HALINFO)) &&
|
||||
// (HalInfo.dwSize != sizeof(DD_HALINFO_V4)))
|
||||
// {
|
||||
// DPRINT1(" Fail not vaild driver DD_HALINFO struct found\n");
|
||||
// GDIOBJ_UnlockObjByPtr(DdHandleTable, pDirectDraw);
|
||||
// return FALSE;
|
||||
// }
|
||||
|
||||
// if (HalInfo.dwSize != sizeof(DD_HALINFO))
|
||||
// {
|
||||
// if (HalInfo.dwSize == sizeof(DD_HALINFO_V4))
|
||||
// {
|
||||
// /* NT4 Compatible */
|
||||
// DPRINT1("Got DD_HALINFO_V4 sturct we convert it to DD_HALINFO \n");
|
||||
// HalInfo.dwSize = sizeof(DD_HALINFO);
|
||||
// HalInfo.lpD3DGlobalDriverData = NULL;
|
||||
// HalInfo.lpD3DHALCallbacks = NULL;
|
||||
// HalInfo.lpD3DBufCallbacks = NULL;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// /* Unknown version found */
|
||||
// DPRINT1(" Fail : did not get DD_HALINFO size \n");
|
||||
// GDIOBJ_UnlockObjByPtr(DdHandleTable, pDirectDraw);
|
||||
// return FALSE;
|
||||
// }
|
||||
// }
|
||||
// /* Copy it to user mode pointer the data */
|
||||
// RtlCopyMemory(&pDirectDraw->Hal, &HalInfo, sizeof(DD_HALINFO));
|
||||
}
|
||||
|
||||
//DPRINT1("Trying EnableDirectDraw the driver\n");
|
||||
|
||||
//success = pDirectDraw->EnableDirectDraw( pDirectDraw->Global.dhpdev,
|
||||
// &pDirectDraw->DD,
|
||||
// &pDirectDraw->Surf,
|
||||
// &pDirectDraw->Pal);
|
||||
|
||||
//if (!success)
|
||||
//{
|
||||
// DPRINT1("EnableDirectDraw call fail\n");
|
||||
// GDIOBJ_UnlockObjByPtr(DdHandleTable, pDirectDraw);
|
||||
// return FALSE;
|
||||
//}
|
||||
|
||||
// hack for now
|
||||
//RtlZeroMemory(&pEddgbl->ddHalInfo,sizeof(DD_HALINFO));
|
||||
dump_edd_directdraw_global(pEddgbl);
|
||||
dump_halinfo(&pEddgbl->ddHalInfo);
|
||||
pEddgbl->dwNumHeaps = 0;
|
||||
pEddgbl->dwNumFourCC = 0;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/************************************************************************/
|
||||
/* DirectX graphic/video driver enable ends here */
|
||||
/************************************************************************/
|
||||
|
||||
/************************************************************************/
|
||||
/* DirectX graphic/video driver loading and cleanup start here */
|
||||
|
@ -142,7 +313,6 @@ NtGdiDdCreateDirectDrawObject(HDC hdc)
|
|||
NTSTATUS Status;
|
||||
PEPROCESS Proc = NULL;
|
||||
PDC pDC;
|
||||
HANDLE DxHandle;
|
||||
|
||||
if (hdc == NULL)
|
||||
{
|
||||
|
@ -150,15 +320,6 @@ NtGdiDdCreateDirectDrawObject(HDC hdc)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* FIXME get the process data */
|
||||
/* FIXME this code should be add where the driver being load */
|
||||
Status = DxDdStartupDxGraphics(0,NULL,0,NULL,NULL, Proc);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
DPRINT1("Warning : Failed to create the directx interface\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* FIXME this code should be add where the driver being load */
|
||||
pDC = DC_LockDc(hdc);
|
||||
if (pDC == NULL)
|
||||
|
@ -166,15 +327,26 @@ NtGdiDdCreateDirectDrawObject(HDC hdc)
|
|||
DPRINT1("Warning : Failed to lock hdc\n");
|
||||
return 0;
|
||||
}
|
||||
/* FIXME This should be alloc for each drv and use it from each drv, not global for whole win32k */
|
||||
((PGDIDEVICE)pDC->pPDev)->pEDDgpl = &edd_DdirectDraw_Global;
|
||||
RtlZeroMemory(&edd_DdirectDraw_Global,sizeof(EDD_DIRECTDRAW_GLOBAL));
|
||||
|
||||
/* setup hdev for edd_DdirectDraw_Global xp */
|
||||
edd_DdirectDraw_Global.hDev = (PVOID)pDC->pPDev;
|
||||
/* FIXME This should be alloc for each drv and use it from each drv, not global for whole win32k */
|
||||
if (intEnableReactXDriver(&edd_DdirectDraw_Global, pDC) == FALSE)
|
||||
{
|
||||
DC_UnlockDc(pDC);
|
||||
DPRINT1("Warning : Failed to start the directx interface from the graphic driver\n");
|
||||
return DDHAL_DRIVER_NOTHANDLED;
|
||||
}
|
||||
|
||||
DC_UnlockDc(pDC);
|
||||
|
||||
/* FIXME get the process data */
|
||||
/* FIXME this code should be add where the driver being load */
|
||||
Status = DxDdStartupDxGraphics(0,NULL,0,NULL,NULL, Proc);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
DPRINT1("Warning : Failed to create the directx interface\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* get the pfnDdCreateDirectDrawObject after we load the drv */
|
||||
pfnDdCreateDirectDrawObject = (PGD_DDCREATEDIRECTDRAWOBJECT)gpDxFuncs[DXG_INDEX_DxDdCreateDirectDrawObject].pfn;
|
||||
|
||||
|
@ -185,9 +357,8 @@ NtGdiDdCreateDirectDrawObject(HDC hdc)
|
|||
}
|
||||
|
||||
DPRINT1("Calling dxg.sys DdCreateDirectDrawObject\n");
|
||||
DxHandle = pfnDdCreateDirectDrawObject(hdc);
|
||||
|
||||
return DxHandle;
|
||||
return pfnDdCreateDirectDrawObject(hdc);
|
||||
}
|
||||
|
||||
/*++
|
||||
|
@ -899,6 +1070,7 @@ void dump_edd_directdraw_local(PEDD_DIRECTDRAW_LOCAL pEddlcl)
|
|||
DPRINT1("0x%08lx PEDD_DIRECTDRAW_LOCAL->pobj : 0x%08lx\n",(((DWORD)&pEddlcl->pobj) - (DWORD)pEddlcl), pEddlcl->pobj);
|
||||
DPRINT1("0x%08lx PEDD_DIRECTDRAW_LOCAL->peDirectDrawGlobal : 0x%08lx\n",(((DWORD)&pEddlcl->peDirectDrawGlobal) - (DWORD)pEddlcl), pEddlcl->peDirectDrawGlobal);
|
||||
DPRINT1("0x%08lx PEDD_DIRECTDRAW_LOCAL->peSurface_DdList : 0x%08lx\n",(((DWORD)&pEddlcl->peSurface_DdList) - (DWORD)pEddlcl), pEddlcl->peSurface_DdList);
|
||||
DPRINT1("0x%08lx PEDD_DIRECTDRAW_LOCAL->unk_018 : 0x%08lx\n",(((DWORD)&pEddlcl->unk_018) - (DWORD)pEddlcl), pEddlcl->unk_018);
|
||||
DPRINT1("0x%08lx PEDD_DIRECTDRAW_LOCAL->unk_01c : 0x%08lx\n",(((DWORD)&pEddlcl->unk_01c) - (DWORD)pEddlcl), pEddlcl->unk_01c);
|
||||
DPRINT1("0x%08lx PEDD_DIRECTDRAW_LOCAL->unk_020 : 0x%08lx\n",(((DWORD)&pEddlcl->unk_020) - (DWORD)pEddlcl), pEddlcl->unk_020);
|
||||
DPRINT1("0x%08lx PEDD_DIRECTDRAW_LOCAL->peDirectDrawGlobal2 : 0x%08lx\n",(((DWORD)&pEddlcl->peDirectDrawGlobal2) - (DWORD)pEddlcl), pEddlcl->peDirectDrawGlobal2);
|
||||
|
@ -916,4 +1088,461 @@ void dump_edd_directdraw_local(PEDD_DIRECTDRAW_LOCAL pEddlcl)
|
|||
DPRINT1("0x%08lx PEDD_DIRECTDRAW_LOCAL->unk_050 : 0x%08lx\n",(((DWORD)&pEddlcl->unk_050) - (DWORD)pEddlcl), pEddlcl->unk_050);
|
||||
}
|
||||
|
||||
void
|
||||
dump_halinfo(DD_HALINFO *pHalInfo)
|
||||
{
|
||||
if (pHalInfo->dwSize == sizeof(DD_HALINFO_V4))
|
||||
{
|
||||
DD_HALINFO_V4 *pHalInfo4 = (DD_HALINFO_V4 *) pHalInfo;
|
||||
int t;
|
||||
|
||||
DPRINT1("DD_HALINFO Version NT4 found \n");
|
||||
DPRINT1(" pHalInfo4->dwSize : 0x%08lx\n",(long)pHalInfo4->dwSize);
|
||||
DPRINT1(" pHalInfo4->vmiData->fpPrimary : 0x%08lx\n",(long)pHalInfo4->vmiData.fpPrimary);
|
||||
DPRINT1(" pHalInfo4->vmiData->dwFlags : 0x%08lx\n",(long)pHalInfo4->vmiData.dwFlags);
|
||||
DPRINT1(" pHalInfo4->vmiData->dwDisplayWidth : 0x%08lx\n",(long)pHalInfo4->vmiData.dwDisplayWidth);
|
||||
DPRINT1(" pHalInfo4->vmiData->dwDisplayHeight : 0x%08lx\n",(long)pHalInfo4->vmiData.dwDisplayHeight);
|
||||
DPRINT1(" pHalInfo4->vmiData->lDisplayPitch : 0x%08lx\n",(long)pHalInfo4->vmiData.lDisplayPitch);
|
||||
|
||||
DPRINT1(" pHalInfo4->vmiData->ddpfDisplay.dwSize : 0x%08lx\n",(long)pHalInfo4->vmiData.ddpfDisplay.dwSize);
|
||||
DPRINT1(" pHalInfo4->vmiData->ddpfDisplay.dwFlags : 0x%08lx\n",(long)pHalInfo4->vmiData.ddpfDisplay.dwFlags);
|
||||
DPRINT1(" pHalInfo4->vmiData->ddpfDisplay.dwFourCC : 0x%08lx\n",(long)pHalInfo4->vmiData.ddpfDisplay.dwFourCC);
|
||||
DPRINT1(" pHalInfo4->vmiData->ddpfDisplay.dwRGBBitCount : 0x%08lx\n",(long)pHalInfo4->vmiData.ddpfDisplay.dwRGBBitCount);
|
||||
DPRINT1(" pHalInfo4->vmiData->ddpfDisplay.dwRBitMask : 0x%08lx\n",(long)pHalInfo4->vmiData.ddpfDisplay.dwRBitMask);
|
||||
DPRINT1(" pHalInfo4->vmiData->ddpfDisplay.dwGBitMask : 0x%08lx\n",(long)pHalInfo4->vmiData.ddpfDisplay.dwGBitMask);
|
||||
DPRINT1(" pHalInfo4->vmiData->ddpfDisplay.dwBBitMask : 0x%08lx\n",(long)pHalInfo4->vmiData.ddpfDisplay.dwBBitMask);
|
||||
DPRINT1(" pHalInfo4->vmiData->ddpfDisplay.dwRGBAlphaBitMask : 0x%08lx\n",(long)pHalInfo4->vmiData.ddpfDisplay.dwRGBAlphaBitMask);
|
||||
|
||||
DPRINT1(" pHalInfo4->vmiData->dwOffscreenAlign : 0x%08lx\n",(long)pHalInfo4->vmiData.dwOffscreenAlign);
|
||||
DPRINT1(" pHalInfo4->vmiData->dwOverlayAlign : 0x%08lx\n",(long)pHalInfo4->vmiData.dwOverlayAlign);
|
||||
DPRINT1(" pHalInfo4->vmiData->dwTextureAlign : 0x%08lx\n",(long)pHalInfo4->vmiData.dwTextureAlign);
|
||||
DPRINT1(" pHalInfo4->vmiData->dwZBufferAlign : 0x%08lx\n",(long)pHalInfo4->vmiData.dwZBufferAlign);
|
||||
DPRINT1(" pHalInfo4->vmiData->dwAlphaAlign : 0x%08lx\n",(long)pHalInfo4->vmiData.dwAlphaAlign);
|
||||
DPRINT1(" pHalInfo4->vmiData->pvPrimary : 0x%08lx\n",(long)pHalInfo4->vmiData.pvPrimary);
|
||||
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwSize : 0x%08lx\n",pHalInfo4->ddCaps.dwSize);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwCaps : 0x%08lx\n",pHalInfo4->ddCaps.dwCaps);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwCaps2 : 0x%08lx\n",pHalInfo4->ddCaps.dwCaps2);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwCKeyCaps : 0x%08lx\n",pHalInfo4->ddCaps.dwCKeyCaps);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwFXCaps : 0x%08lx\n",pHalInfo4->ddCaps.dwFXCaps);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwFXAlphaCaps : 0x%08lx\n",pHalInfo4->ddCaps.dwFXAlphaCaps);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwPalCaps : 0x%08lx\n",pHalInfo4->ddCaps.dwPalCaps);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwSVCaps : 0x%08lx\n",pHalInfo4->ddCaps.dwSVCaps);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwAlphaBltConstBitDepths : 0x%08lx\n",pHalInfo4->ddCaps.dwAlphaBltConstBitDepths);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwAlphaBltPixelBitDepths : 0x%08lx\n",pHalInfo4->ddCaps.dwAlphaBltPixelBitDepths);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwAlphaBltSurfaceBitDepths : 0x%08lx\n",pHalInfo4->ddCaps.dwAlphaBltSurfaceBitDepths);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwAlphaOverlayConstBitDepths : 0x%08lx\n",pHalInfo4->ddCaps.dwAlphaOverlayConstBitDepths);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwAlphaOverlayPixelBitDepths : 0x%08lx\n",pHalInfo4->ddCaps.dwAlphaOverlayPixelBitDepths);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwAlphaOverlaySurfaceBitDepths : 0x%08lx\n",pHalInfo4->ddCaps.dwAlphaOverlaySurfaceBitDepths);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwZBufferBitDepths : 0x%08lx\n",pHalInfo4->ddCaps.dwZBufferBitDepths);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwVidMemTotal : 0x%08lx\n",pHalInfo4->ddCaps.dwVidMemTotal);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwVidMemFree : 0x%08lx\n",pHalInfo4->ddCaps.dwVidMemFree);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwMaxVisibleOverlays : 0x%08lx\n",pHalInfo4->ddCaps.dwMaxVisibleOverlays);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwCurrVisibleOverlays : 0x%08lx\n",pHalInfo4->ddCaps.dwCurrVisibleOverlays);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwNumFourCCCodes : 0x%08lx\n",pHalInfo4->ddCaps.dwNumFourCCCodes);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwAlignBoundarySrc : 0x%08lx\n",pHalInfo4->ddCaps.dwAlignBoundarySrc);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwAlignSizeSrc : 0x%08lx\n",pHalInfo4->ddCaps.dwAlignSizeSrc);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwAlignBoundaryDes : 0x%08lx\n",pHalInfo4->ddCaps.dwAlignBoundaryDest);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwAlignSizeDest : 0x%08lx\n",pHalInfo4->ddCaps.dwAlignSizeDest);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwAlignStrideAlign : 0x%08lx\n",pHalInfo4->ddCaps.dwAlignStrideAlign);
|
||||
for (t=0;t<DD_ROP_SPACE;t++)
|
||||
{
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwRops[0x%04x] : 0x%08lx\n",t,pHalInfo4->ddCaps.dwRops[t]);
|
||||
}
|
||||
DPRINT1(" pHalInfo4->ddCaps.ddsCaps.dwCaps : 0x%08lx\n",pHalInfo4->ddCaps.ddsCaps.dwCaps);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwMinOverlayStretch : 0x%08lx\n",pHalInfo4->ddCaps.dwMinOverlayStretch);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwMaxOverlayStretch : 0x%08lx\n",pHalInfo4->ddCaps.dwMaxOverlayStretch);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwMinLiveVideoStretch : 0x%08lx\n",pHalInfo4->ddCaps.dwMinLiveVideoStretch);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwMaxLiveVideoStretch : 0x%08lx\n",pHalInfo4->ddCaps.dwMaxLiveVideoStretch);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwMinHwCodecStretch : 0x%08lx\n",pHalInfo4->ddCaps.dwMinHwCodecStretch);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwMaxHwCodecStretch : 0x%08lx\n",pHalInfo4->ddCaps.dwMaxHwCodecStretch);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwReserved1 : 0x%08lx\n",pHalInfo4->ddCaps.dwReserved1);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwReserved2 : 0x%08lx\n",pHalInfo4->ddCaps.dwReserved2);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwReserved3 : 0x%08lx\n",pHalInfo4->ddCaps.dwReserved3);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwSVBCaps : 0x%08lx\n",pHalInfo4->ddCaps.dwSVBCaps);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwSVBCKeyCaps : 0x%08lx\n",pHalInfo4->ddCaps.dwSVBCKeyCaps);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwSVBFXCaps : 0x%08lx\n",pHalInfo4->ddCaps.dwSVBFXCaps);
|
||||
for (t=0;t<DD_ROP_SPACE;t++)
|
||||
{
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwSVBRops[0x%04x] : 0x%08lx\n",t,pHalInfo4->ddCaps.dwSVBRops[t]);
|
||||
}
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwVSBCaps : 0x%08lx\n",pHalInfo4->ddCaps.dwVSBCaps);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwVSBCKeyCaps : 0x%08lx\n",pHalInfo4->ddCaps.dwVSBCKeyCaps);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwVSBFXCaps : 0x%08lx\n",pHalInfo4->ddCaps.dwVSBFXCaps);
|
||||
for (t=0;t<DD_ROP_SPACE;t++)
|
||||
{
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwVSBRops[0x%04x] : 0x%08lx\n",t,pHalInfo4->ddCaps.dwVSBRops[t]);
|
||||
}
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwSSBCaps : 0x%08lx\n",pHalInfo4->ddCaps.dwSSBCaps);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwSSBCKeyCa : 0x%08lx\n",pHalInfo4->ddCaps.dwSSBCKeyCaps);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwSSBFXCaps : 0x%08lx\n",pHalInfo4->ddCaps.dwSSBFXCaps);
|
||||
for (t=0;t<DD_ROP_SPACE;t++)
|
||||
{
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwSSBRops[0x%04x] : 0x%08lx\n",t,pHalInfo4->ddCaps.dwSSBRops[t]);
|
||||
}
|
||||
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwMaxVideoPorts : 0x%08lx\n",pHalInfo4->ddCaps.dwMaxVideoPorts);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwCurrVideoPorts : 0x%08lx\n",pHalInfo4->ddCaps.dwCurrVideoPorts);
|
||||
DPRINT1(" pHalInfo4->ddCaps.dwSVBCaps2 : 0x%08lx\n",pHalInfo4->ddCaps.dwSVBCaps2);
|
||||
|
||||
|
||||
DPRINT1(" pHalInfo4->GetDriverInfo : 0x%08lx\n",(long)pHalInfo4->GetDriverInfo);
|
||||
DPRINT1(" pHalInfo4->dwFlags : 0x%08lx\n",(long)pHalInfo4->dwFlags);
|
||||
|
||||
}
|
||||
else if (pHalInfo->dwSize == sizeof(DD_HALINFO))
|
||||
{
|
||||
int t;
|
||||
UINT flag;
|
||||
INT count=0;
|
||||
|
||||
DPRINT1("DD_HALINFO Version NT 2000/XP/2003 found \n");
|
||||
DPRINT1(" pHalInfo->dwSize : 0x%08lx\n",(long)pHalInfo->dwSize);
|
||||
|
||||
DPRINT1(" pHalInfo->vmiData->fpPrimary : 0x%08lx\n",(long)pHalInfo->vmiData.fpPrimary);
|
||||
DPRINT1(" pHalInfo->vmiData->dwFlags : 0x%08lx\n",(long)pHalInfo->vmiData.dwFlags);
|
||||
DPRINT1(" pHalInfo->vmiData->dwDisplayWidth : 0x%08lx\n",(long)pHalInfo->vmiData.dwDisplayWidth);
|
||||
DPRINT1(" pHalInfo->vmiData->dwDisplayHeight : 0x%08lx\n",(long)pHalInfo->vmiData.dwDisplayHeight);
|
||||
DPRINT1(" pHalInfo->vmiData->lDisplayPitch : 0x%08lx\n",(long)pHalInfo->vmiData.lDisplayPitch);
|
||||
|
||||
DPRINT1(" pHalInfo->vmiData->ddpfDisplay.dwSize : 0x%08lx\n",(long)pHalInfo->vmiData.ddpfDisplay.dwSize);
|
||||
DPRINT1(" pHalInfo->vmiData->ddpfDisplay.dwFlags : 0x%08lx\n",(long)pHalInfo->vmiData.ddpfDisplay.dwFlags);
|
||||
DPRINT1(" pHalInfo->vmiData->ddpfDisplay.dwFourCC : 0x%08lx\n",(long)pHalInfo->vmiData.ddpfDisplay.dwFourCC);
|
||||
DPRINT1(" pHalInfo->vmiData->ddpfDisplay.dwRGBBitCount : 0x%08lx\n",(long)pHalInfo->vmiData.ddpfDisplay.dwRGBBitCount);
|
||||
DPRINT1(" pHalInfo->vmiData->ddpfDisplay.dwRBitMask : 0x%08lx\n",(long)pHalInfo->vmiData.ddpfDisplay.dwRBitMask);
|
||||
DPRINT1(" pHalInfo->vmiData->ddpfDisplay.dwGBitMask : 0x%08lx\n",(long)pHalInfo->vmiData.ddpfDisplay.dwGBitMask);
|
||||
DPRINT1(" pHalInfo->vmiData->ddpfDisplay.dwBBitMask : 0x%08lx\n",(long)pHalInfo->vmiData.ddpfDisplay.dwBBitMask);
|
||||
DPRINT1(" pHalInfo->vmiData->ddpfDisplay.dwRGBAlphaBitMask : 0x%08lx\n",(long)pHalInfo->vmiData.ddpfDisplay.dwRGBAlphaBitMask);
|
||||
|
||||
|
||||
DPRINT1(" pHalInfo->vmiData->dwOffscreenAlign : 0x%08lx\n",(long)pHalInfo->vmiData.dwOffscreenAlign);
|
||||
DPRINT1(" pHalInfo->vmiData->dwOverlayAlign : 0x%08lx\n",(long)pHalInfo->vmiData.dwOverlayAlign);
|
||||
DPRINT1(" pHalInfo->vmiData->dwTextureAlign : 0x%08lx\n",(long)pHalInfo->vmiData.dwTextureAlign);
|
||||
DPRINT1(" pHalInfo->vmiData->dwZBufferAlign : 0x%08lx\n",(long)pHalInfo->vmiData.dwZBufferAlign);
|
||||
DPRINT1(" pHalInfo->vmiData->dwAlphaAlign : 0x%08lx\n",(long)pHalInfo->vmiData.dwAlphaAlign);
|
||||
DPRINT1(" pHalInfo->vmiData->pvPrimary : 0x%08lx\n",(long)pHalInfo->vmiData.pvPrimary);
|
||||
|
||||
DPRINT1(" pHalInfo->ddCaps.dwSize : 0x%08lx\n",pHalInfo->ddCaps.dwSize);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwCaps : ");
|
||||
flag = pHalInfo->ddCaps.dwCaps;
|
||||
count = 0;
|
||||
checkflag(flag,DDCAPS_3D,"DDCAPS_3D");
|
||||
checkflag(flag,DDCAPS_ALIGNBOUNDARYDEST,"DDCAPS_ALIGNBOUNDARYDEST");
|
||||
checkflag(flag,DDCAPS_ALIGNBOUNDARYSRC,"DDCAPS_ALIGNBOUNDARYSRC");
|
||||
checkflag(flag,DDCAPS_ALIGNSIZEDEST,"DDCAPS_ALIGNSIZEDEST");
|
||||
checkflag(flag,DDCAPS_ALIGNSIZESRC,"DDCAPS_ALIGNSIZESRC");
|
||||
checkflag(flag,DDCAPS_ALIGNSTRIDE,"DDCAPS_ALIGNSTRIDE");
|
||||
checkflag(flag,DDCAPS_ALPHA,"DDCAPS_ALPHA");
|
||||
checkflag(flag,DDCAPS_BANKSWITCHED,"DDCAPS_BANKSWITCHED");
|
||||
checkflag(flag,DDCAPS_BLT,"DDCAPS_BLT");
|
||||
checkflag(flag,DDCAPS_BLTCOLORFILL,"DDCAPS_BLTCOLORFILL");
|
||||
checkflag(flag,DDCAPS_BLTDEPTHFILL,"DDCAPS_BLTDEPTHFILL");
|
||||
checkflag(flag,DDCAPS_BLTFOURCC,"DDCAPS_BLTFOURCC");
|
||||
checkflag(flag,DDCAPS_BLTQUEUE,"DDCAPS_BLTQUEUE");
|
||||
checkflag(flag,DDCAPS_BLTSTRETCH,"DDCAPS_BLTSTRETCH");
|
||||
checkflag(flag,DDCAPS_CANBLTSYSMEM,"DDCAPS_CANBLTSYSMEM");
|
||||
checkflag(flag,DDCAPS_CANCLIP,"DDCAPS_CANCLIP");
|
||||
checkflag(flag,DDCAPS_CANCLIPSTRETCHED,"DDCAPS_CANCLIPSTRETCHED");
|
||||
checkflag(flag,DDCAPS_COLORKEY,"DDCAPS_COLORKEY");
|
||||
checkflag(flag,DDCAPS_COLORKEYHWASSIST,"DDCAPS_COLORKEYHWASSIST");
|
||||
checkflag(flag,DDCAPS_GDI,"DDCAPS_GDI");
|
||||
checkflag(flag,DDCAPS_NOHARDWARE,"DDCAPS_NOHARDWARE");
|
||||
checkflag(flag,DDCAPS_OVERLAY,"DDCAPS_OVERLAY");
|
||||
checkflag(flag,DDCAPS_OVERLAYCANTCLIP,"DDCAPS_OVERLAYCANTCLIP");
|
||||
checkflag(flag,DDCAPS_OVERLAYFOURCC,"DDCAPS_OVERLAYFOURCC");
|
||||
checkflag(flag,DDCAPS_OVERLAYSTRETCH,"DDCAPS_OVERLAYSTRETCH");
|
||||
checkflag(flag,DDCAPS_PALETTE,"DDCAPS_PALETTE");
|
||||
checkflag(flag,DDCAPS_PALETTEVSYNC,"DDCAPS_PALETTEVSYNC");
|
||||
checkflag(flag,DDCAPS_READSCANLINE,"DDCAPS_READSCANLINE");
|
||||
checkflag(flag,DDCAPS_STEREOVIEW,"DDCAPS_STEREOVIEW");
|
||||
checkflag(flag,DDCAPS_VBI,"DDCAPS_VBI");
|
||||
checkflag(flag,DDCAPS_ZBLTS,"DDCAPS_ZBLTS");
|
||||
checkflag(flag,DDCAPS_ZOVERLAYS,"DDCAPS_ZOVERLAYS");
|
||||
endcheckflag(flag,"pHalInfo->ddCaps.dwCaps");
|
||||
|
||||
DPRINT1(" pHalInfo->ddCaps.dwCaps2 : ");
|
||||
flag = pHalInfo->ddCaps.dwCaps2;
|
||||
count = 0;
|
||||
checkflag(flag,DDCAPS2_AUTOFLIPOVERLAY,"DDCAPS2_AUTOFLIPOVERLAY");
|
||||
checkflag(flag,DDCAPS2_CANAUTOGENMIPMAP,"DDCAPS2_CANAUTOGENMIPMAP");
|
||||
checkflag(flag,DDCAPS2_CANBOBHARDWARE,"DDCAPS2_CANBOBHARDWARE");
|
||||
checkflag(flag,DDCAPS2_CANBOBINTERLEAVED,"DDCAPS2_CANBOBINTERLEAVED");
|
||||
checkflag(flag,DDCAPS2_CANBOBNONINTERLEAVED,"DDCAPS2_CANBOBNONINTERLEAVED");
|
||||
checkflag(flag,DDCAPS2_CANCALIBRATEGAMMA,"DDCAPS2_CANCALIBRATEGAMMA");
|
||||
checkflag(flag,DDCAPS2_CANDROPZ16BIT,"DDCAPS2_CANDROPZ16BIT");
|
||||
checkflag(flag,DDCAPS2_CANFLIPODDEVEN,"DDCAPS2_CANFLIPODDEVEN");
|
||||
checkflag(flag,DDCAPS2_CANMANAGERESOURCE,"DDCAPS2_CANMANAGERESOURCE");
|
||||
checkflag(flag,DDCAPS2_CANMANAGETEXTURE,"DDCAPS2_CANMANAGETEXTURE");
|
||||
|
||||
checkflag(flag,DDCAPS2_CANRENDERWINDOWED,"DDCAPS2_CANRENDERWINDOWED");
|
||||
checkflag(flag,DDCAPS2_CERTIFIED,"DDCAPS2_CERTIFIED");
|
||||
checkflag(flag,DDCAPS2_COLORCONTROLOVERLAY,"DDCAPS2_COLORCONTROLOVERLAY");
|
||||
checkflag(flag,DDCAPS2_COLORCONTROLPRIMARY,"DDCAPS2_COLORCONTROLPRIMARY");
|
||||
checkflag(flag,DDCAPS2_COPYFOURCC,"DDCAPS2_COPYFOURCC");
|
||||
checkflag(flag,DDCAPS2_FLIPINTERVAL,"DDCAPS2_FLIPINTERVAL");
|
||||
checkflag(flag,DDCAPS2_FLIPNOVSYNC,"DDCAPS2_FLIPNOVSYNC");
|
||||
checkflag(flag,DDCAPS2_NO2DDURING3DSCENE,"DDCAPS2_NO2DDURING3DSCENE");
|
||||
checkflag(flag,DDCAPS2_NONLOCALVIDMEM,"DDCAPS2_NONLOCALVIDMEM");
|
||||
checkflag(flag,DDCAPS2_NONLOCALVIDMEMCAPS,"DDCAPS2_NONLOCALVIDMEMCAPS");
|
||||
checkflag(flag,DDCAPS2_NOPAGELOCKREQUIRED,"DDCAPS2_NOPAGELOCKREQUIRED");
|
||||
checkflag(flag,DDCAPS2_PRIMARYGAMMA,"DDCAPS2_PRIMARYGAMMA");
|
||||
checkflag(flag,DDCAPS2_VIDEOPORT,"DDCAPS2_VIDEOPORT");
|
||||
checkflag(flag,DDCAPS2_WIDESURFACES,"DDCAPS2_WIDESURFACES");
|
||||
endcheckflag(flag,"pHalInfo->ddCaps.dwCaps2");
|
||||
|
||||
DPRINT1(" pHalInfo->ddCaps.dwCKeyCaps : ");
|
||||
flag = pHalInfo->ddCaps.dwCKeyCaps;
|
||||
count = 0;
|
||||
checkflag(flag,DDCKEYCAPS_DESTBLT,"DDCKEYCAPS_DESTBLT");
|
||||
checkflag(flag,DDCKEYCAPS_DESTBLTCLRSPACE,"DDCKEYCAPS_DESTBLTCLRSPACE");
|
||||
checkflag(flag,DDCKEYCAPS_DESTBLTCLRSPACEYUV,"DDCKEYCAPS_DESTBLTCLRSPACEYUV");
|
||||
checkflag(flag,DDCKEYCAPS_DESTBLTYUV,"DDCKEYCAPS_DESTBLTYUV");
|
||||
checkflag(flag,DDCKEYCAPS_DESTOVERLAY,"DDCKEYCAPS_DESTOVERLAY");
|
||||
checkflag(flag,DDCKEYCAPS_DESTOVERLAYCLRSPACE,"DDCKEYCAPS_DESTOVERLAYCLRSPACE");
|
||||
checkflag(flag,DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV,"DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV");
|
||||
checkflag(flag,DDCKEYCAPS_DESTOVERLAYONEACTIVE,"DDCKEYCAPS_DESTOVERLAYONEACTIVE");
|
||||
checkflag(flag,DDCKEYCAPS_DESTOVERLAYYUV,"DDCKEYCAPS_DESTOVERLAYYUV");
|
||||
checkflag(flag,DDCKEYCAPS_NOCOSTOVERLAY,"DDCKEYCAPS_NOCOSTOVERLAY");
|
||||
checkflag(flag,DDCKEYCAPS_SRCBLT,"DDCKEYCAPS_SRCBLT");
|
||||
checkflag(flag,DDCKEYCAPS_SRCBLTCLRSPACE,"DDCKEYCAPS_SRCBLTCLRSPACE");
|
||||
checkflag(flag,DDCKEYCAPS_SRCBLTCLRSPACEYUV,"DDCKEYCAPS_SRCBLTCLRSPACEYUV");
|
||||
checkflag(flag,DDCKEYCAPS_SRCBLTYUV,"DDCKEYCAPS_SRCBLTYUV");
|
||||
checkflag(flag,DDCKEYCAPS_SRCOVERLAY,"DDCKEYCAPS_SRCOVERLAY");
|
||||
checkflag(flag,DDCKEYCAPS_SRCOVERLAYCLRSPACE,"DDCKEYCAPS_SRCOVERLAYCLRSPACE");
|
||||
checkflag(flag,DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV,"DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV");
|
||||
checkflag(flag,DDCKEYCAPS_SRCOVERLAYONEACTIVE,"DDCKEYCAPS_SRCOVERLAYONEACTIVE");
|
||||
checkflag(flag,DDCKEYCAPS_SRCOVERLAYYUV,"DDCKEYCAPS_SRCOVERLAYYUV");
|
||||
endcheckflag(flag,"pHalInfo->ddCaps.dwCKeyCaps");
|
||||
|
||||
DPRINT1(" pHalInfo->ddCaps.dwFXCaps : ");
|
||||
flag = pHalInfo->ddCaps.dwFXCaps;
|
||||
count = 0;
|
||||
checkflag(flag,DDFXCAPS_BLTARITHSTRETCHY,"DDFXCAPS_BLTARITHSTRETCHY");
|
||||
checkflag(flag,DDFXCAPS_BLTARITHSTRETCHYN,"DDFXCAPS_BLTARITHSTRETCHYN");
|
||||
checkflag(flag,DDFXCAPS_BLTMIRRORLEFTRIGHT,"DDFXCAPS_BLTMIRRORLEFTRIGHT");
|
||||
checkflag(flag,DDFXCAPS_BLTMIRRORUPDOWN,"DDFXCAPS_BLTMIRRORUPDOWN");
|
||||
checkflag(flag,DDFXCAPS_BLTROTATION,"DDFXCAPS_BLTROTATION");
|
||||
checkflag(flag,DDFXCAPS_BLTROTATION90,"DDFXCAPS_BLTROTATION90");
|
||||
checkflag(flag,DDFXCAPS_BLTSHRINKX,"DDFXCAPS_BLTSHRINKX");
|
||||
checkflag(flag,DDFXCAPS_BLTSHRINKXN,"DDFXCAPS_BLTSHRINKXN");
|
||||
checkflag(flag,DDFXCAPS_BLTSHRINKY,"DDFXCAPS_BLTSHRINKY");
|
||||
checkflag(flag,DDFXCAPS_BLTSHRINKYN,"DDFXCAPS_BLTSHRINKYN");
|
||||
checkflag(flag,DDFXCAPS_BLTSTRETCHX,"DDFXCAPS_BLTSTRETCHX");
|
||||
checkflag(flag,DDFXCAPS_BLTSTRETCHXN,"DDFXCAPS_BLTSTRETCHXN");
|
||||
checkflag(flag,DDFXCAPS_BLTSTRETCHY,"DDFXCAPS_BLTSTRETCHY");
|
||||
checkflag(flag,DDFXCAPS_BLTSTRETCHYN,"DDFXCAPS_BLTSTRETCHYN");
|
||||
checkflag(flag,DDFXCAPS_OVERLAYARITHSTRETCHY,"DDFXCAPS_OVERLAYARITHSTRETCHY");
|
||||
checkflag(flag,DDFXCAPS_OVERLAYARITHSTRETCHYN,"DDFXCAPS_OVERLAYARITHSTRETCHYN");
|
||||
checkflag(flag,DDFXCAPS_OVERLAYMIRRORLEFTRIGHT,"DDFXCAPS_OVERLAYMIRRORLEFTRIGHT");
|
||||
checkflag(flag,DDFXCAPS_OVERLAYMIRRORUPDOWN,"DDFXCAPS_OVERLAYMIRRORUPDOWN");
|
||||
checkflag(flag,DDFXCAPS_OVERLAYSHRINKX,"DDFXCAPS_OVERLAYSHRINKX");
|
||||
checkflag(flag,DDFXCAPS_OVERLAYSHRINKXN,"DDFXCAPS_OVERLAYSHRINKXN");
|
||||
checkflag(flag,DDFXCAPS_OVERLAYSHRINKY,"DDFXCAPS_OVERLAYSHRINKY");
|
||||
checkflag(flag,DDFXCAPS_OVERLAYSHRINKYN,"DDFXCAPS_OVERLAYSHRINKYN");
|
||||
checkflag(flag,DDFXCAPS_OVERLAYSTRETCHX,"DDFXCAPS_OVERLAYSTRETCHX");
|
||||
checkflag(flag,DDFXCAPS_OVERLAYSTRETCHX,"DDFXCAPS_OVERLAYSTRETCHX");
|
||||
checkflag(flag,DDFXCAPS_OVERLAYSTRETCHY,"DDFXCAPS_OVERLAYSTRETCHY");
|
||||
checkflag(flag,DDFXCAPS_OVERLAYSTRETCHYN,"DDFXCAPS_OVERLAYSTRETCHYN");
|
||||
endcheckflag(flag,"pHalInfo->ddCaps.dwFXCaps");
|
||||
|
||||
DPRINT1(" pHalInfo->ddCaps.dwFXAlphaCaps : 0x%08lx\n",pHalInfo->ddCaps.dwFXAlphaCaps);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwPalCaps : 0x%08lx\n",pHalInfo->ddCaps.dwPalCaps);
|
||||
|
||||
DPRINT1(" pHalInfo->ddCaps.dwSVCaps : ");
|
||||
flag = pHalInfo->ddCaps.dwSVCaps;
|
||||
count = 0;
|
||||
checkflag(flag,DDSVCAPS_ENIGMA,"DDSVCAPS_ENIGMA");
|
||||
checkflag(flag,DDSVCAPS_FLICKER,"DDSVCAPS_FLICKER");
|
||||
checkflag(flag,DDSVCAPS_REDBLUE,"DDSVCAPS_REDBLUE");
|
||||
checkflag(flag,DDSVCAPS_SPLIT,"DDSVCAPS_SPLIT");
|
||||
endcheckflag(flag,"pHalInfo->ddCaps.dwSVCaps");
|
||||
|
||||
DPRINT1(" pHalInfo->ddCaps.dwAlphaBltConstBitDepths : 0x%08lx\n",pHalInfo->ddCaps.dwAlphaBltConstBitDepths);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwAlphaBltPixelBitDepths : 0x%08lx\n",pHalInfo->ddCaps.dwAlphaBltPixelBitDepths);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwAlphaBltSurfaceBitDepths : 0x%08lx\n",pHalInfo->ddCaps.dwAlphaBltSurfaceBitDepths);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwAlphaOverlayConstBitDepths : 0x%08lx\n",pHalInfo->ddCaps.dwAlphaOverlayConstBitDepths);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwAlphaOverlayPixelBitDepths : 0x%08lx\n",pHalInfo->ddCaps.dwAlphaOverlayPixelBitDepths);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwAlphaOverlaySurfaceBitDepths : 0x%08lx\n",pHalInfo->ddCaps.dwAlphaOverlaySurfaceBitDepths);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwZBufferBitDepths : 0x%08lx\n",pHalInfo->ddCaps.dwZBufferBitDepths);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwVidMemTotal : 0x%08lx\n",pHalInfo->ddCaps.dwVidMemTotal);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwVidMemFree : 0x%08lx\n",pHalInfo->ddCaps.dwVidMemFree);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwMaxVisibleOverlays : 0x%08lx\n",pHalInfo->ddCaps.dwMaxVisibleOverlays);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwCurrVisibleOverlays : 0x%08lx\n",pHalInfo->ddCaps.dwCurrVisibleOverlays);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwNumFourCCCodes : 0x%08lx\n",pHalInfo->ddCaps.dwNumFourCCCodes);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwAlignBoundarySrc : 0x%08lx\n",pHalInfo->ddCaps.dwAlignBoundarySrc);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwAlignSizeSrc : 0x%08lx\n",pHalInfo->ddCaps.dwAlignSizeSrc);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwAlignBoundaryDes : 0x%08lx\n",pHalInfo->ddCaps.dwAlignBoundaryDest);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwAlignSizeDest : 0x%08lx\n",pHalInfo->ddCaps.dwAlignSizeDest);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwAlignStrideAlign : 0x%08lx\n",pHalInfo->ddCaps.dwAlignStrideAlign);
|
||||
for (t=0;t<DD_ROP_SPACE;t++)
|
||||
{
|
||||
DPRINT1(" pHalInfo->ddCaps.dwRops[0x%04x] : 0x%08lx\n",t,pHalInfo->ddCaps.dwRops[t]);
|
||||
}
|
||||
DPRINT1(" pHalInfo->ddCaps.ddsCaps.dwCaps : ");
|
||||
flag = pHalInfo->ddCaps.ddsCaps.dwCaps;
|
||||
count = 0;
|
||||
checkflag(flag,DDSCAPS_3DDEVICE,"DDSCAPS_3DDEVICE");
|
||||
checkflag(flag,DDSCAPS_ALLOCONLOAD,"DDSCAPS_ALLOCONLOAD");
|
||||
checkflag(flag,DDSCAPS_ALPHA,"DDSCAPS_ALPHA");
|
||||
checkflag(flag,DDSCAPS_BACKBUFFER,"DDSCAPS_BACKBUFFER");
|
||||
checkflag(flag,DDSCAPS_COMPLEX,"DDSCAPS_COMPLEX");
|
||||
checkflag(flag,DDSCAPS_EXECUTEBUFFER,"DDSCAPS_EXECUTEBUFFER");
|
||||
checkflag(flag,DDSCAPS_FLIP,"DDSCAPS_FLIP");
|
||||
checkflag(flag,DDSCAPS_FRONTBUFFER,"DDSCAPS_FRONTBUFFER");
|
||||
checkflag(flag,DDSCAPS_HWCODEC,"DDSCAPS_HWCODEC");
|
||||
checkflag(flag,DDSCAPS_LIVEVIDEO,"DDSCAPS_LIVEVIDEO");
|
||||
checkflag(flag,DDSCAPS_LOCALVIDMEM,"DDSCAPS_LOCALVIDMEM");
|
||||
checkflag(flag,DDSCAPS_MIPMAP,"DDSCAPS_MIPMAP");
|
||||
checkflag(flag,DDSCAPS_MODEX,"DDSCAPS_MODEX");
|
||||
checkflag(flag,DDSCAPS_NONLOCALVIDMEM,"DDSCAPS_NONLOCALVIDMEM");
|
||||
checkflag(flag,DDSCAPS_OFFSCREENPLAIN,"DDSCAPS_OFFSCREENPLAIN");
|
||||
checkflag(flag,DDSCAPS_OVERLAY,"DDSCAPS_OVERLAY");
|
||||
checkflag(flag,DDSCAPS_OPTIMIZED,"DDSCAPS_OPTIMIZED");
|
||||
checkflag(flag,DDSCAPS_OWNDC,"DDSCAPS_OWNDC");
|
||||
checkflag(flag,DDSCAPS_PALETTE,"DDSCAPS_PALETTE");
|
||||
checkflag(flag,DDSCAPS_PRIMARYSURFACE,"DDSCAPS_PRIMARYSURFACE");
|
||||
checkflag(flag,DDSCAPS_PRIMARYSURFACELEFT,"DDSCAPS_PRIMARYSURFACELEFT");
|
||||
checkflag(flag,DDSCAPS_STANDARDVGAMODE,"DDSCAPS_STANDARDVGAMODE");
|
||||
checkflag(flag,DDSCAPS_SYSTEMMEMORY,"DDSCAPS_SYSTEMMEMORY");
|
||||
checkflag(flag,DDSCAPS_TEXTURE,"DDSCAPS_TEXTURE");
|
||||
checkflag(flag,DDSCAPS_VIDEOMEMORY,"DDSCAPS_VIDEOMEMORY");
|
||||
checkflag(flag,DDSCAPS_VIDEOPORT,"DDSCAPS_VIDEOPORT");
|
||||
checkflag(flag,DDSCAPS_VISIBLE,"DDSCAPS_VISIBLE");
|
||||
checkflag(flag,DDSCAPS_WRITEONLY,"DDSCAPS_WRITEONLY");
|
||||
checkflag(flag,DDSCAPS_ZBUFFER,"DDSCAPS_ZBUFFER");
|
||||
endcheckflag(flag,"pHalInfo->ddCaps.ddsCaps.dwCaps");
|
||||
|
||||
DPRINT1(" pHalInfo->ddCaps.dwMinOverlayStretch : 0x%08lx\n",pHalInfo->ddCaps.dwMinOverlayStretch);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwMaxOverlayStretch : 0x%08lx\n",pHalInfo->ddCaps.dwMaxOverlayStretch);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwMinLiveVideoStretch : 0x%08lx\n",pHalInfo->ddCaps.dwMinLiveVideoStretch);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwMaxLiveVideoStretch : 0x%08lx\n",pHalInfo->ddCaps.dwMaxLiveVideoStretch);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwMinHwCodecStretch : 0x%08lx\n",pHalInfo->ddCaps.dwMinHwCodecStretch);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwMaxHwCodecStretch : 0x%08lx\n",pHalInfo->ddCaps.dwMaxHwCodecStretch);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwReserved1 : 0x%08lx\n",pHalInfo->ddCaps.dwReserved1);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwReserved2 : 0x%08lx\n",pHalInfo->ddCaps.dwReserved2);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwReserved3 : 0x%08lx\n",pHalInfo->ddCaps.dwReserved3);
|
||||
|
||||
DPRINT1(" pHalInfo->ddCaps.dwSVBCaps : ");
|
||||
flag = pHalInfo->ddCaps.dwSVBCaps;
|
||||
count = 0;
|
||||
checkflag(flag,DDCAPS_3D,"DDCAPS_3D");
|
||||
checkflag(flag,DDCAPS_ALIGNBOUNDARYDEST,"DDCAPS_ALIGNBOUNDARYDEST");
|
||||
checkflag(flag,DDCAPS_ALIGNBOUNDARYSRC,"DDCAPS_ALIGNBOUNDARYSRC");
|
||||
checkflag(flag,DDCAPS_ALIGNSIZEDEST,"DDCAPS_ALIGNSIZEDEST");
|
||||
checkflag(flag,DDCAPS_ALIGNSIZESRC,"DDCAPS_ALIGNSIZESRC");
|
||||
checkflag(flag,DDCAPS_ALIGNSTRIDE,"DDCAPS_ALIGNSTRIDE");
|
||||
checkflag(flag,DDCAPS_ALPHA,"DDCAPS_ALPHA");
|
||||
checkflag(flag,DDCAPS_BANKSWITCHED,"DDCAPS_BANKSWITCHED");
|
||||
checkflag(flag,DDCAPS_BLT,"DDCAPS_BLT");
|
||||
checkflag(flag,DDCAPS_BLTCOLORFILL,"DDCAPS_BLTCOLORFILL");
|
||||
checkflag(flag,DDCAPS_BLTDEPTHFILL,"DDCAPS_BLTDEPTHFILL");
|
||||
checkflag(flag,DDCAPS_BLTFOURCC,"DDCAPS_BLTFOURCC");
|
||||
checkflag(flag,DDCAPS_BLTQUEUE,"DDCAPS_BLTQUEUE");
|
||||
checkflag(flag,DDCAPS_BLTSTRETCH,"DDCAPS_BLTSTRETCH");
|
||||
checkflag(flag,DDCAPS_CANBLTSYSMEM,"DDCAPS_CANBLTSYSMEM");
|
||||
checkflag(flag,DDCAPS_CANCLIP,"DDCAPS_CANCLIP");
|
||||
checkflag(flag,DDCAPS_CANCLIPSTRETCHED,"DDCAPS_CANCLIPSTRETCHED");
|
||||
checkflag(flag,DDCAPS_COLORKEY,"DDCAPS_COLORKEY");
|
||||
checkflag(flag,DDCAPS_COLORKEYHWASSIST,"DDCAPS_COLORKEYHWASSIST");
|
||||
checkflag(flag,DDCAPS_GDI,"DDCAPS_GDI");
|
||||
checkflag(flag,DDCAPS_NOHARDWARE,"DDCAPS_NOHARDWARE");
|
||||
checkflag(flag,DDCAPS_OVERLAY,"DDCAPS_OVERLAY");
|
||||
checkflag(flag,DDCAPS_OVERLAYCANTCLIP,"DDCAPS_OVERLAYCANTCLIP");
|
||||
checkflag(flag,DDCAPS_OVERLAYFOURCC,"DDCAPS_OVERLAYFOURCC");
|
||||
checkflag(flag,DDCAPS_OVERLAYSTRETCH,"DDCAPS_OVERLAYSTRETCH");
|
||||
checkflag(flag,DDCAPS_PALETTE,"DDCAPS_PALETTE");
|
||||
checkflag(flag,DDCAPS_PALETTEVSYNC,"DDCAPS_PALETTEVSYNC");
|
||||
checkflag(flag,DDCAPS_READSCANLINE,"DDCAPS_READSCANLINE");
|
||||
checkflag(flag,DDCAPS_STEREOVIEW,"DDCAPS_STEREOVIEW");
|
||||
checkflag(flag,DDCAPS_VBI,"DDCAPS_VBI");
|
||||
checkflag(flag,DDCAPS_ZBLTS,"DDCAPS_ZBLTS");
|
||||
checkflag(flag,DDCAPS_ZOVERLAYS,"DDCAPS_ZOVERLAYS");
|
||||
endcheckflag(flag,"pHalInfo->ddCaps.dwSVBCaps");
|
||||
|
||||
DPRINT1(" pHalInfo->ddCaps.dwSVBCKeyCaps : 0x%08lx\n",pHalInfo->ddCaps.dwSVBCKeyCaps);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwSVBFXCaps : 0x%08lx\n",pHalInfo->ddCaps.dwSVBFXCaps);
|
||||
for (t=0;t<DD_ROP_SPACE;t++)
|
||||
{
|
||||
DPRINT1(" pHalInfo->ddCaps.dwSVBRops[0x%04x] : 0x%08lx\n",t,pHalInfo->ddCaps.dwSVBRops[t]);
|
||||
}
|
||||
|
||||
DPRINT1(" pHalInfo->ddCaps.dwVSBCaps : ");
|
||||
flag = pHalInfo->ddCaps.dwVSBCaps;
|
||||
count = 0;
|
||||
checkflag(flag,DDCAPS_3D,"DDCAPS_3D");
|
||||
checkflag(flag,DDCAPS_ALIGNBOUNDARYDEST,"DDCAPS_ALIGNBOUNDARYDEST");
|
||||
checkflag(flag,DDCAPS_ALIGNBOUNDARYSRC,"DDCAPS_ALIGNBOUNDARYSRC");
|
||||
checkflag(flag,DDCAPS_ALIGNSIZEDEST,"DDCAPS_ALIGNSIZEDEST");
|
||||
checkflag(flag,DDCAPS_ALIGNSIZESRC,"DDCAPS_ALIGNSIZESRC");
|
||||
checkflag(flag,DDCAPS_ALIGNSTRIDE,"DDCAPS_ALIGNSTRIDE");
|
||||
checkflag(flag,DDCAPS_ALPHA,"DDCAPS_ALPHA");
|
||||
checkflag(flag,DDCAPS_BANKSWITCHED,"DDCAPS_BANKSWITCHED");
|
||||
checkflag(flag,DDCAPS_BLT,"DDCAPS_BLT");
|
||||
checkflag(flag,DDCAPS_BLTCOLORFILL,"DDCAPS_BLTCOLORFILL");
|
||||
checkflag(flag,DDCAPS_BLTDEPTHFILL,"DDCAPS_BLTDEPTHFILL");
|
||||
checkflag(flag,DDCAPS_BLTFOURCC,"DDCAPS_BLTFOURCC");
|
||||
checkflag(flag,DDCAPS_BLTQUEUE,"DDCAPS_BLTQUEUE");
|
||||
checkflag(flag,DDCAPS_BLTSTRETCH,"DDCAPS_BLTSTRETCH");
|
||||
checkflag(flag,DDCAPS_CANBLTSYSMEM,"DDCAPS_CANBLTSYSMEM");
|
||||
checkflag(flag,DDCAPS_CANCLIP,"DDCAPS_CANCLIP");
|
||||
checkflag(flag,DDCAPS_CANCLIPSTRETCHED,"DDCAPS_CANCLIPSTRETCHED");
|
||||
checkflag(flag,DDCAPS_COLORKEY,"DDCAPS_COLORKEY");
|
||||
checkflag(flag,DDCAPS_COLORKEYHWASSIST,"DDCAPS_COLORKEYHWASSIST");
|
||||
checkflag(flag,DDCAPS_GDI,"DDCAPS_GDI");
|
||||
checkflag(flag,DDCAPS_NOHARDWARE,"DDCAPS_NOHARDWARE");
|
||||
checkflag(flag,DDCAPS_OVERLAY,"DDCAPS_OVERLAY");
|
||||
checkflag(flag,DDCAPS_OVERLAYCANTCLIP,"DDCAPS_OVERLAYCANTCLIP");
|
||||
checkflag(flag,DDCAPS_OVERLAYFOURCC,"DDCAPS_OVERLAYFOURCC");
|
||||
checkflag(flag,DDCAPS_OVERLAYSTRETCH,"DDCAPS_OVERLAYSTRETCH");
|
||||
checkflag(flag,DDCAPS_PALETTE,"DDCAPS_PALETTE");
|
||||
checkflag(flag,DDCAPS_PALETTEVSYNC,"DDCAPS_PALETTEVSYNC");
|
||||
checkflag(flag,DDCAPS_READSCANLINE,"DDCAPS_READSCANLINE");
|
||||
checkflag(flag,DDCAPS_STEREOVIEW,"DDCAPS_STEREOVIEW");
|
||||
checkflag(flag,DDCAPS_VBI,"DDCAPS_VBI");
|
||||
checkflag(flag,DDCAPS_ZBLTS,"DDCAPS_ZBLTS");
|
||||
checkflag(flag,DDCAPS_ZOVERLAYS,"DDCAPS_ZOVERLAYS");
|
||||
endcheckflag(flag,"pHalInfo->ddCaps.dwVSBCaps");
|
||||
|
||||
DPRINT1(" pHalInfo->ddCaps.dwVSBCKeyCaps : 0x%08lx\n",pHalInfo->ddCaps.dwVSBCKeyCaps);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwVSBFXCaps : 0x%08lx\n",pHalInfo->ddCaps.dwVSBFXCaps);
|
||||
for (t=0;t<DD_ROP_SPACE;t++)
|
||||
{
|
||||
DPRINT1(" pHalInfo->ddCaps.dwVSBRops[0x%04x] : 0x%08lx\n",t,pHalInfo->ddCaps.dwVSBRops[t]);
|
||||
}
|
||||
DPRINT1(" pHalInfo->ddCaps.dwSSBCaps : 0x%08lx\n",pHalInfo->ddCaps.dwSSBCaps);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwSSBCKeyCa : 0x%08lx\n",pHalInfo->ddCaps.dwSSBCKeyCaps);
|
||||
DPRINT1(" pHalInfo->ddCaps.dwSSBFXCaps : 0x%08lx\n",pHalInfo->ddCaps.dwSSBFXCaps);
|
||||
for (t=0;t<DD_ROP_SPACE;t++)
|
||||
{
|
||||
DPRINT1(" pHalInfo->ddCaps.dwSSBRops[0x%04x] : 0x%08lx\n",t,pHalInfo->ddCaps.dwSSBRops[t]);
|
||||
}
|
||||
|
||||
DPRINT1(" pHalInfo->GetDriverInfo : 0x%08lx\n",(long)pHalInfo->GetDriverInfo);
|
||||
DPRINT1(" pHalInfo->dwFlags : ");
|
||||
|
||||
flag = pHalInfo->dwFlags;
|
||||
count = 0;
|
||||
checkflag(flag,DDHALINFO_ISPRIMARYDISPLAY,"DDHALINFO_ISPRIMARYDISPLAY");
|
||||
checkflag(flag,DDHALINFO_MODEXILLEGAL,"DDHALINFO_MODEXILLEGAL");
|
||||
checkflag(flag,DDHALINFO_GETDRIVERINFOSET,"DDHALINFO_GETDRIVERINFOSET");
|
||||
checkflag(flag,DDHALINFO_GETDRIVERINFO2,"DDHALINFO_GETDRIVERINFO2");
|
||||
endcheckflag(flag,"pHalInfo->dwFlags");
|
||||
|
||||
DPRINT1(" pHalInfo->lpD3DGlobalDriverData : 0x%08lx\n",(long)pHalInfo->lpD3DGlobalDriverData);
|
||||
DPRINT1(" pHalInfo->lpD3DHALCallbacks : 0x%08lx\n",(long)pHalInfo->lpD3DHALCallbacks);
|
||||
DPRINT1(" pHalInfo->lpD3DBufCallbacks : 0x%08lx\n",(long)pHalInfo->lpD3DBufCallbacks);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (pHalInfo->dwSize !=0)
|
||||
{
|
||||
DPRINT1("unkonwn dwSize DD_HALINFO : the size found is 0x%08lx\n",pHalInfo->dwSize);
|
||||
}
|
||||
else
|
||||
{
|
||||
DPRINT1("none pHalInfo from the driver 0x%08lx\n",pHalInfo->dwSize);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
|
|
Loading…
Reference in a new issue