You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
568 lines
22 KiB
568 lines
22 KiB
/******************************Module*Header***********************************\
|
|
*
|
|
* *******************
|
|
* * GDI SAMPLE CODE *
|
|
* *******************
|
|
*
|
|
* Module Name: drvexts.cxx
|
|
*
|
|
* Contains all the driver debugger extension functions
|
|
*
|
|
* Copyright (C) 1994-1998 3Dlabs Inc. Ltd. All rights reserved.
|
|
* Copyright (C) 1995-1999 Microsoft Corporation. All rights reserved.
|
|
******************************************************************************/
|
|
#include "dbgext.hxx"
|
|
#include "gdi.h"
|
|
|
|
#define TMP_BUFSIZE 512
|
|
|
|
/**********************************Public*Routine******************************\
|
|
*
|
|
* Dump Permedia 2 display driver's Surf obj
|
|
*
|
|
******************************************************************************/
|
|
DECLARE_API(surf)
|
|
{
|
|
Surf tempSurf;
|
|
FLAGDEF* pfd;
|
|
|
|
//
|
|
// Check if there is a "-?" in the command. If yes, show the help
|
|
//
|
|
PARSE_POINTER(surf_help);
|
|
|
|
move(tempSurf, (Surf*)arg);
|
|
|
|
dprintf("----Permedia2 Surf Structure-------------\n");
|
|
dprintf("SurfFlags flags 0x%x\n", tempSurf.flags);
|
|
|
|
//
|
|
// Print the detail info of the Surface info
|
|
//
|
|
for ( pfd = afdSURF; pfd->psz; ++pfd )
|
|
{
|
|
if ( tempSurf.flags & pfd->fl )
|
|
{
|
|
dprintf("\t\t\t%s\n", pfd->psz);
|
|
}
|
|
}
|
|
|
|
dprintf("PDev* ppdev 0x%x\n", tempSurf.ppdev);
|
|
dprintf("struct _Surf* psurfNext 0x%x\n", tempSurf.psurfNext);
|
|
dprintf("struct _Surf* psurfPrev 0x%x\n", tempSurf.psurfPrev);
|
|
dprintf("ULONG cBlt %ld\n", tempSurf.cBlt);
|
|
dprintf("ULONG iUniq %ld\n", tempSurf.iUniq);
|
|
dprintf("LONG cx(Surf Width) %ld pixels\n", tempSurf.cx);
|
|
dprintf("LONG cy(Surf Height) %ld pixels\n", tempSurf.cy);
|
|
|
|
if ( tempSurf.flags & SF_VM )
|
|
{
|
|
dprintf("ULONG ulByteOffset %ld\n", tempSurf.ulByteOffset);
|
|
}
|
|
else
|
|
{
|
|
dprintf("VOID* pvScan0 0x%x\n", tempSurf.pvScan0);
|
|
}
|
|
|
|
dprintf("LONG lDelta 0x%x\n", tempSurf.lDelta);
|
|
dprintf("VIDEOMEMORY* pvmHeap 0x%x\n", tempSurf.pvmHeap);
|
|
dprintf("HSURF hsurf 0x%x\n", tempSurf.hsurf);
|
|
dprintf("ULONG ulPackedPP 0x%x\n", tempSurf.ulPackedPP);
|
|
dprintf("ULONG ulPixOffset 0x%x\n", tempSurf.ulPixOffset);
|
|
dprintf("ULONG ulPixDelta 0x%x\n", tempSurf.ulPixDelta);
|
|
dprintf("ULONG ulChecksum 0x%x\n", tempSurf.ulChecksum);
|
|
|
|
return;
|
|
|
|
surf_help:
|
|
dprintf("Usage: surf [-?] SURF_PTR\n");
|
|
}// surf
|
|
|
|
/**********************************Public*Routine******************************\
|
|
*
|
|
* Dump Permedia 2 display driver's PDev obj
|
|
*
|
|
******************************************************************************/
|
|
DECLARE_API(pdev)
|
|
{
|
|
PDev tempPDev;
|
|
char tempStr[TMP_BUFSIZE];
|
|
FLAGDEF* pfd;
|
|
|
|
BOOL bAll = FALSE;
|
|
BOOL bGeneral = FALSE;
|
|
BOOL bHeap = FALSE;
|
|
BOOL bBase = FALSE;
|
|
BOOL bGDI = FALSE;
|
|
BOOL bPalette = FALSE;
|
|
BOOL bCursor = FALSE;
|
|
BOOL bBrush = FALSE;
|
|
BOOL bDDraw = FALSE;
|
|
|
|
//
|
|
// Check if there is a "-?" in the command. If yes, show the help
|
|
//
|
|
PARSE_POINTER(pdev_help);
|
|
|
|
move(tempPDev, (PDev*)arg);
|
|
|
|
if( iParseiFindSwitch(tokens, ntok, 'a')!= -1 )
|
|
{
|
|
bAll = TRUE;
|
|
goto Start_Dump;
|
|
}
|
|
|
|
if( iParseiFindSwitch(tokens, ntok, 'g') != -1 )
|
|
{
|
|
bGeneral = TRUE;
|
|
}
|
|
|
|
if( iParseiFindSwitch(tokens, ntok, 'h')!= -1 )
|
|
{
|
|
bHeap = TRUE;
|
|
}
|
|
|
|
if( iParseiFindSwitch(tokens, ntok, 'b')!= -1 )
|
|
{
|
|
bBase = TRUE;
|
|
}
|
|
|
|
if( iParseiFindSwitch(tokens, ntok, 'i')!= -1 )
|
|
{
|
|
bGDI = TRUE;
|
|
}
|
|
|
|
if( iParseiFindSwitch(tokens, ntok, 'p')!= -1 )
|
|
{
|
|
bPalette = TRUE;
|
|
}
|
|
|
|
if( iParseiFindSwitch(tokens, ntok, 'c')!= -1 )
|
|
{
|
|
bCursor = TRUE;
|
|
}
|
|
|
|
if( iParseiFindSwitch(tokens, ntok, 'r')!= -1 )
|
|
{
|
|
bBrush = TRUE;
|
|
}
|
|
|
|
if( iParseiFindSwitch(tokens, ntok, 'd')!= -1 )
|
|
{
|
|
bDDraw = TRUE;
|
|
}
|
|
|
|
if( !(bGeneral || bHeap || bBase || bGDI || bPalette || bCursor || bBrush
|
|
||bBrush || bDDraw ) )
|
|
{
|
|
bAll = TRUE;
|
|
}
|
|
|
|
Start_Dump:
|
|
|
|
dprintf("----------------PDev Structure----------------\n");
|
|
|
|
if ( bAll || bGeneral )
|
|
{
|
|
dprintf("*************General Information**************\n");
|
|
dprintf("BOOL bEnabled %ld %s\n",tempPDev.bEnabled,
|
|
tempPDev.bEnabled? "(Graphics Mode)":"(Full Screen Mode)");
|
|
dprintf("DWORD dwAccelLevel %ld\n", tempPDev.dwAccelLevel);
|
|
switch ( tempPDev.dwAccelLevel )
|
|
{
|
|
case 0:
|
|
dprintf("%s\n","\t\t\tAll HW accelerations are enabled");
|
|
|
|
break;
|
|
|
|
case 1:
|
|
dprintf("%s\n", "\t\t\tDrvMovePointer,");
|
|
dprintf("%s\n", "\t\t\tDrvCreateDeviceBitmap");
|
|
dprintf("%s\n", "are disabled");
|
|
|
|
break;
|
|
|
|
case 2:
|
|
dprintf("%s\n", "\t\t\tDrvAlphaBlend,");
|
|
dprintf("%s\n", "\t\t\tDrvCreateDeviceBitmap,");
|
|
dprintf("%s\n", "\t\t\tDrvFillPath,");
|
|
dprintf("%s\n", "\t\t\tDrvGradientFill,");
|
|
dprintf("%s\n", "\t\t\tDrvLineTo,");
|
|
dprintf("%s\n", "\t\t\tDrvMovePointer,");
|
|
dprintf("%s\n", "\t\t\tDrvPlgBlt,");
|
|
dprintf("%s\n", "\t\t\tDrvStretchBlt,");
|
|
dprintf("%s\n", "\t\t\tDrvStretchBltROP,");
|
|
dprintf("%s\n", "\t\t\tDrvStrokeAndFillPath,");
|
|
dprintf("%s\n", "\t\t\tDrvTransparentBlt");
|
|
dprintf("%s\n", "are disabled");
|
|
|
|
break;
|
|
|
|
case 3:
|
|
dprintf("%s\n", "\t\t\tDrvAlphaBlend,");
|
|
dprintf("%s\n", "\t\t\tDrvCreateDeviceBitmap,");
|
|
dprintf("%s\n", "\t\t\tDrvFillPath,");
|
|
dprintf("%s\n", "\t\t\tDrvGradientFill,");
|
|
dprintf("%s\n", "\t\t\tDrvLineTo,");
|
|
dprintf("%s\n", "\t\t\tDrvMovePointer,");
|
|
dprintf("%s\n", "\t\t\tDrvPlgBlt,");
|
|
dprintf("%s\n", "\t\t\tDrvStretchBlt,");
|
|
dprintf("%s\n", "\t\t\tDrvStretchBltROP,");
|
|
dprintf("%s\n", "\t\t\tDrvStrokeAndFillPath,");
|
|
dprintf("%s\n", "\t\t\tDrvTransparentBlt");
|
|
dprintf("%s\n", "\t\t\tAnd all DDraw and D3D accelerations");
|
|
dprintf("%s\n", "are disabled");
|
|
|
|
break;
|
|
|
|
case 4:
|
|
dprintf("%s\n", "\t\t\tOnly following HW accelerated functions");
|
|
dprintf(" are enabled");
|
|
dprintf("%s\n", "\t\t\tDrvBitBlt,");
|
|
dprintf("%s\n", "\t\t\tDrvCopyBits,");
|
|
dprintf("%s\n", "\t\t\tDrvStrokePath,");
|
|
dprintf("%s\n", "\t\t\tDrvTextOut");
|
|
|
|
break;
|
|
|
|
case 5:
|
|
dprintf("%s\n","\t\t\tAll HW accelerations are disabled");
|
|
|
|
break;
|
|
|
|
default:
|
|
dprintf("%s\n", "\t\t\tUNKNOWN HW accelerations level");
|
|
|
|
break;
|
|
}
|
|
|
|
dprintf("ULONG iBitmapFormat %ld\n", tempPDev.iBitmapFormat);
|
|
|
|
switch ( tempPDev.iBitmapFormat )
|
|
{
|
|
case BMF_32BPP:
|
|
strcpy(tempStr, "\t\t\tBMF_32BPP");
|
|
|
|
break;
|
|
|
|
case BMF_16BPP:
|
|
strcpy(tempStr, "\t\t\tBMF_16BPP");
|
|
|
|
break;
|
|
|
|
case BMF_8BPP:
|
|
strcpy(tempStr, "\t\t\tBMF_8BPP");
|
|
|
|
break;
|
|
|
|
default:
|
|
strcpy(tempStr, "\t\t\tUNKNOWN BMP format");
|
|
|
|
break;
|
|
}
|
|
dprintf("%s\n", tempStr);
|
|
|
|
dprintf("LONG cjPelSize %ld\n", tempPDev.cjPelSize);
|
|
switch ( tempPDev.cjPelSize )
|
|
{
|
|
case 4:
|
|
strcpy(tempStr, "\t\t\t32BPP Mode");
|
|
|
|
break;
|
|
|
|
case 2:
|
|
strcpy(tempStr, "\t\t\t16BPP Mode");
|
|
|
|
break;
|
|
|
|
case 1:
|
|
strcpy(tempStr, "\t\t\t8BPP Mode");
|
|
|
|
break;
|
|
|
|
default:
|
|
strcpy(tempStr, "\t\t\tUNKNOWN color depth");
|
|
|
|
break;
|
|
}
|
|
dprintf("%s\n", tempStr);
|
|
|
|
dprintf("LONG cPelSize %ld\n", tempPDev.cPelSize);
|
|
dprintf("LONG cBitsPerPel %ld\n", tempPDev.cBitsPerPel);
|
|
dprintf("DWORD bPixShift %ld\n", tempPDev.bPixShift);
|
|
dprintf("DWORD bBppShift %ld\n", tempPDev.bBppShift);
|
|
dprintf("DWORD dwBppMask %ld\n", tempPDev.dwBppMask);
|
|
|
|
dprintf("CAPS flCaps 0x%x\n", tempPDev.flCaps);
|
|
|
|
//
|
|
// Print the detail info of the CAPS
|
|
//
|
|
for ( pfd = afdCAPS; pfd->psz; ++pfd )
|
|
{
|
|
if ( tempPDev.flCaps & pfd->fl )
|
|
{
|
|
dprintf("\t\t\t%s\n", pfd->psz);
|
|
}
|
|
}
|
|
|
|
dprintf("Status flStatus 0x%x\n", tempPDev.flStatus);
|
|
|
|
//
|
|
// Print the detail info of the STATUS
|
|
//
|
|
for ( pfd = afdSTATUS; pfd->psz; ++pfd )
|
|
{
|
|
if ( tempPDev.flStatus & pfd->fl )
|
|
{
|
|
dprintf("\t\t\t%s\n", pfd->psz);
|
|
}
|
|
}
|
|
|
|
dprintf("FLONG flHooks 0x%x\n", tempPDev.flHooks);
|
|
|
|
//
|
|
// Print the detail info of the HOOKS
|
|
//
|
|
for ( pfd = afdHOOK; pfd->psz; ++pfd )
|
|
{
|
|
if ( tempPDev.flHooks & pfd->fl )
|
|
{
|
|
dprintf("\t\t\t%s\n", pfd->psz);
|
|
}
|
|
}
|
|
|
|
dprintf("Surf* pdsurfScreen 0x%x\n", tempPDev.pdsurfScreen);
|
|
dprintf("Surf* pdsurfOffScreen 0x%x\n", tempPDev.pdsurfOffScreen);
|
|
dprintf("LONG cxScreen %-6ld (Screen Width)\n",
|
|
tempPDev.cxScreen);
|
|
dprintf("LONG cyScreen %-6ld (Screen Height)\n",
|
|
tempPDev.cyScreen);
|
|
dprintf("ULONG ulPermFormat %ld\n", tempPDev.ulPermFormat);
|
|
dprintf("ULONG ulPermFormatEx %ld\n", tempPDev.ulPermFormatEx);
|
|
|
|
dprintf("POINTL ptlOrigin (%ld, %ld)\n",
|
|
tempPDev.ptlOrigin.x, tempPDev.ptlOrigin.y);
|
|
}// General Info
|
|
|
|
if ( bAll || bHeap )
|
|
{
|
|
dprintf("\n*************Heap Manager Information*********\n");
|
|
dprintf("VIDEOMEMORY* pvmList 0x%x\n", tempPDev.pvmList);
|
|
dprintf("ULONG cHeaps; %ld\n", tempPDev.cHeaps);
|
|
dprintf("LONG cxMemory %-6ld (Video RAM Width)\n",
|
|
tempPDev.cxMemory);
|
|
dprintf("LONG cyMemory %-6ld (Video RAM Height)\n",
|
|
tempPDev.cyMemory);
|
|
dprintf("LONG lDelta %ld\n", tempPDev.lDelta);
|
|
dprintf("Surf* psurfListHead 0x%x\n", tempPDev.psurfListHead);
|
|
dprintf("Surf* psurfListTail 0x%x\n", tempPDev.psurfListTail);
|
|
}// Heap Info
|
|
|
|
if ( bAll || bBase )
|
|
{
|
|
dprintf("\n*************Base Information*****************\n");
|
|
dprintf("BYTE* pjScreen 0x%x\n", tempPDev.pjScreen);
|
|
dprintf("ULONG ulMode %ld\n", tempPDev.ulMode);
|
|
dprintf("ULONG* pulCtrlBase[2] 0x%x, 0x%x\n",
|
|
tempPDev.pulCtrlBase[0], tempPDev.pulCtrlBase[1]);
|
|
dprintf("ULONG* pulDenseCtrlBase 0x%x\n",
|
|
tempPDev.pulDenseCtrlBase);
|
|
dprintf("ULONG* pulRamdacBase 0x%x\n", tempPDev.pulRamdacBase);
|
|
dprintf("VOID* pvTmpBuffer 0x%x\n", tempPDev.pvTmpBuffer);
|
|
dprintf("LONG lVidMemHeight %ld\n", tempPDev.lVidMemHeight);
|
|
dprintf("LONG lVidMemWidth %ld\n", tempPDev.lVidMemWidth);
|
|
dprintf("UCHAR* pjIoBase %ld\n", tempPDev.pjIoBase);
|
|
dprintf("HwDataPtr permediaInfo 0x%x\n", tempPDev.permediaInfo);
|
|
dprintf("LONG FrameBufferLength %ld\n",
|
|
tempPDev.FrameBufferLength);
|
|
dprintf("UINT_PTR dwScreenStart %ld\n", tempPDev.dwScreenStart);
|
|
dprintf("P2DMA* pP2dma 0x%x\n", tempPDev.pP2dma);
|
|
dprintf("DDPIXELFORMAT ddpfDisplay %ld\n", tempPDev.ddpfDisplay);
|
|
dprintf("DWORD dwChipConfig %ld\n", tempPDev.dwChipConfig);
|
|
dprintf("ULONG* pCtrlBase 0x%x\n", tempPDev.pCtrlBase);
|
|
dprintf("ULONG* pCoreBase 0x%x\n", tempPDev.pCoreBase);
|
|
dprintf("ULONG* pGPFifo 0x%x\n", tempPDev.pGPFifo);
|
|
dprintf("PULONG pulInFifoPtr 0x%x\n", tempPDev.pulInFifoPtr);
|
|
dprintf("PULONG pulInFifoStart 0x%x\n", tempPDev.pulInFifoStart);
|
|
dprintf("PULONG pulInFifoEnd 0x%x\n", tempPDev.pulInFifoEnd);
|
|
dprintf("ULONG* dmaBufferVirtualAddress 0x%x\n",
|
|
tempPDev.dmaBufferVirtualAddress);
|
|
dprintf("LARGE_INTEGER dmaBufferPhysicalAddress 0x%x\n",
|
|
tempPDev.dmaBufferPhysicalAddress);
|
|
dprintf("ULONG dmaCurrentBufferOffset 0x%x\n",
|
|
tempPDev.dmaCurrentBufferOffset);
|
|
dprintf("ULONG dmaActiveBufferOffset %ld\n",
|
|
tempPDev.dmaActiveBufferOffset);
|
|
dprintf("ULONG* pulInputDmaCount 0x%x\n",
|
|
tempPDev.pulInputDmaCount);
|
|
dprintf("ULONG* pulInputDmaAddress 0x%x\n",
|
|
tempPDev.pulInputDmaAddress);
|
|
dprintf("ULONG* pulFifo 0x%x\n", tempPDev.pulFifo);
|
|
dprintf("ULONG* pulOutputFifoCount 0x%x\n",
|
|
tempPDev.pulOutputFifoCount);
|
|
dprintf("ULONG* pulInputFifoCount 0x%x\n",
|
|
tempPDev.pulInputFifoCount);
|
|
dprintf("BOOL bGdiContext %ld\n", tempPDev.bGdiContext);
|
|
dprintf("BOOL bNeedSync %ld\n", tempPDev.bNeedSync);
|
|
dprintf("BOOL bForceSwap %ld\n", tempPDev.bForceSwap);
|
|
dprintf("SURFOBJ* psoScreen 0x%x\n", tempPDev.psoScreen);
|
|
}// Base Info
|
|
|
|
if ( bAll || bGDI )
|
|
{
|
|
dprintf("\n*************GDI Runtime Information**********\n");
|
|
dprintf("HANDLE hDriver 0x%x\n", tempPDev.hDriver);
|
|
dprintf("HDEV hdevEng 0x%x\n", tempPDev.hdevEng);
|
|
dprintf("HSURF hsurfScreen 0x%x\n", tempPDev.hsurfScreen);
|
|
dprintf("ULONG iHeapUniq %ld\n", tempPDev.iHeapUniq);
|
|
}// GDI Runtime Info
|
|
|
|
if ( bAll || bPalette )
|
|
{
|
|
dprintf("\n*************Palette Information**************\n");
|
|
dprintf("ULONG ulWhite; 0x%x\n", tempPDev.ulWhite);
|
|
dprintf("PALETTEENTRY* pPal 0x%x\n", tempPDev.pPal);
|
|
dprintf("HPALETTE hpalDefault 0x%x\n", tempPDev.hpalDefault);
|
|
dprintf("FLONG flRed 0x%x\n", tempPDev.flRed);
|
|
dprintf("FLONG flGreen 0x%x\n", tempPDev.flGreen);
|
|
dprintf("FLONG flBlue 0x%x\n", tempPDev.flBlue);
|
|
}// Palette Info
|
|
|
|
if ( bAll || bCursor )
|
|
{
|
|
dprintf("\n*************Cursor Information***************\n");
|
|
dprintf("LONG xPointerHot %ld\n", tempPDev.xPointerHot);
|
|
dprintf("LONG yPointerHot %ld\n", tempPDev.yPointerHot);
|
|
dprintf("ULONG ulHwGraphicsCursorModeRegister_45 %ld\n",
|
|
tempPDev.ulHwGraphicsCursorModeRegister_45);
|
|
dprintf("PtrFlags flPointer %ld %s\n", tempPDev.flPointer,
|
|
(tempPDev.flPointer == PTR_HW_ACTIVE)? "(HW Pointer)":"(SW Pointer)");
|
|
dprintf("VOID* pvPointerData 0x%x\n", tempPDev.pvPointerData);
|
|
dprintf("BYTE ajPointerData 0x%x\n", tempPDev.ajPointerData);
|
|
dprintf("BOOL bPointerInitialized %ld\n",
|
|
tempPDev.bPointerInitialized);
|
|
dprintf("HWPointerCache HWPtrCache %ld\n", tempPDev.HWPtrCache);
|
|
dprintf("LONG HWPtrLastCursor %ld\n", tempPDev.HWPtrLastCursor);
|
|
dprintf("LONG HWPtrPos_X %ld\n", tempPDev.HWPtrPos_X);
|
|
dprintf("LONG HWPtrPos_Y %ld\n", tempPDev.HWPtrPos_Y);
|
|
}// Cursor Info
|
|
|
|
if ( bAll || bBrush )
|
|
{
|
|
dprintf("\n*************Brush Information****************\n");
|
|
dprintf("BOOL bRealizeTransparent %ld\n",
|
|
tempPDev.bRealizeTransparent);
|
|
dprintf("LONG cPatterns %ld\n", tempPDev.cPatterns);
|
|
dprintf("LONG lNextCachedBrush %ld\n",
|
|
tempPDev.lNextCachedBrush);
|
|
dprintf("LONG cBrushCache %ld\n", tempPDev.cBrushCache);
|
|
dprintf("BrushEntry abeMono 0x%x, %ld\n",
|
|
tempPDev.abeMono.prbVerify,
|
|
tempPDev.abeMono.ulPixelOffset);
|
|
dprintf("BrushEntry abe[%d] 0x%x\n", TOTAL_BRUSH_COUNT,
|
|
tempPDev.abe);
|
|
dprintf("HBITMAP ahbmPat[%d] 0x%x\n",
|
|
HS_DDI_MAX, tempPDev.ahbmPat);
|
|
dprintf("ULONG ulBrushPackedPP 0x%x\n",
|
|
tempPDev.ulBrushPackedPP);
|
|
dprintf("VIDEOMEMORY* pvmBrushHeap 0x%x\n", tempPDev.pvmBrushHeap);
|
|
dprintf("ULONG ulBrushVidMem 0x%x\n", tempPDev.ulBrushVidMem);
|
|
}// Brush Info
|
|
|
|
if ( bAll || bDDraw )
|
|
{
|
|
dprintf("\n*************DDRAW/D3D Information************\n");
|
|
|
|
dprintf("P2CtxtPtr pDDContext 0x%x\n", tempPDev.pDDContext);
|
|
dprintf("DDHAL_DDCALLBACKS DDHALCallbacks 0x%x\n",
|
|
tempPDev.DDHALCallbacks);
|
|
dprintf("DDHAL_DDSURFACECALLBACKS DDSurfCallbacks 0x%x\n",
|
|
tempPDev.DDSurfCallbacks);
|
|
dprintf("DWORD dwNewDDSurfaceOffset %ld\n",
|
|
tempPDev.dwNewDDSurfaceOffset);
|
|
dprintf("BOOL bDdExclusiveMode %ld\n",
|
|
tempPDev.bDdExclusiveMode);
|
|
dprintf("BOOL bDdStereoMode %ld\n", tempPDev.bDdStereoMode);
|
|
dprintf("BOOL bCanDoStereo %ld\n", tempPDev.bCanDoStereo);
|
|
dprintf("UINT_PTR pD3DDriverData32 0x%x\n",
|
|
tempPDev.pD3DDriverData32);
|
|
dprintf("UINT_PTR pD3DHALCallbacks32 0x%x\n",
|
|
tempPDev.pD3DHALCallbacks32);
|
|
dprintf("UINT_PTR dwGARTLin %ld\n", tempPDev.dwGARTLin);
|
|
dprintf("UINT_PTR dwGARTDev %ld\n", tempPDev.dwGARTDev);
|
|
dprintf("UINT_PTR dwGARTLinBase %ld\n", tempPDev.dwGARTLinBase);
|
|
dprintf("UINT_PTR dwGARTDevBase %ld\n", tempPDev.dwGARTDevBase);
|
|
dprintf("DDHALINFO ddhi32 0x%x\n", tempPDev.ddhi32);
|
|
dprintf("PFND3DPARSEUNKNOWNCOMMAND pD3DParseUnknownCommand 0x%x\n",
|
|
tempPDev.pD3DParseUnknownCommand);
|
|
}// DDRAW/D3D Info
|
|
|
|
return;
|
|
|
|
pdev_help:
|
|
dprintf("Usage: pdev [-?] [-a] [-g] [-h] [-b] [-i] [-p] [-c] [-r]");
|
|
dprintf(" [-d] PDEV_PTR\n");
|
|
dprintf("-a dump the whole PDev info\n");
|
|
dprintf("-g dump General info from the PDev\n");
|
|
dprintf("-h dump Heap Manager info from the PDev\n");
|
|
dprintf("-b dump Base info from the PDev\n");
|
|
dprintf("-i dump GDI Runtime info from the PDev\n");
|
|
dprintf("-p dump Palette info from the PDev\n");
|
|
dprintf("-c dump Cursor info from the PDev\n");
|
|
dprintf("-r dump Brush info from the PDev\n");
|
|
dprintf("-d dump DDRAW/D3D info from the PDev\n");
|
|
|
|
return;
|
|
}// pdev
|
|
|
|
/**********************************Public*Routine******************************\
|
|
*
|
|
* Dump Permedia 2 display driver's function block
|
|
*
|
|
******************************************************************************/
|
|
DECLARE_API(fb)
|
|
{
|
|
GFNPB tempFB;
|
|
FLAGDEF* pfd;
|
|
|
|
//
|
|
// Check if there is a "-?" in the command. If yes, show the help
|
|
//
|
|
PARSE_POINTER(fb_help);
|
|
|
|
move(tempFB, (GFNPB*)arg);
|
|
|
|
dprintf("----Permedia2 GFNPB Structure-------------\n");
|
|
dprintf("VOID (*pgfn)(struct _GFNPB*) 0x%x\n", tempFB.pgfn);
|
|
dprintf("PDev* ppdev 0x%x\n", tempFB.ppdev);
|
|
dprintf("Surf* psurfDst 0x%x\n", tempFB.psurfDst);
|
|
dprintf("RECTL* prclDst 0x%x\n", tempFB.prclDst);
|
|
dprintf("Surf* psurfSrc 0x%x\n", tempFB.psurfSrc);
|
|
dprintf("RECTL* prclSrc 0x%x\n", tempFB.prclSrc);
|
|
dprintf("POINTL* pptlSrc 0x%x\n", tempFB.pptlSrc);
|
|
dprintf("LONG lNumRects %ld\n", tempFB.lNumRects);
|
|
dprintf("RECTL* pRects 0x%x\n", tempFB.pRects);
|
|
dprintf("ULONG colorKey 0x%x\n", tempFB.colorKey);
|
|
dprintf("ULONG solidColor 0x%x\n", tempFB.solidColor);
|
|
dprintf("RBrush* prbrush 0x%x\n", tempFB.prbrush);
|
|
dprintf("POINTL* pptlBrush 0x%x\n", tempFB.pptlBrush);
|
|
dprintf("CLIPOBJ* pco 0x%x\n", tempFB.pco);
|
|
dprintf("XLATEOBJ* pxlo 0x%x\n", tempFB.pxlo);
|
|
dprintf("POINTL* pptlMask 0x%x\n", tempFB.pptlMask);
|
|
dprintf("ULONG ulRop4 0x%x\n", tempFB.ulRop4);
|
|
dprintf("UCHAR ucAlpha 0x%x\n", tempFB.ucAlpha);
|
|
dprintf("TRIVERTEX* ptvrt 0x%x\n", tempFB.ptvrt);
|
|
dprintf("ULONG ulNumTvrt %ld\n", tempFB.ulNumTvrt);
|
|
dprintf("PVOID pvMesh 0x%x\n", tempFB.pvMesh);
|
|
dprintf("ULONG ulNumMesh %ld\n", tempFB.ulNumMesh);
|
|
dprintf("ULONG ulMode 0x%x\n", tempFB.ulMode);
|
|
dprintf("SURFOBJ* psoSrc 0x%x\n", tempFB.psoSrc);
|
|
dprintf("SURFOBJ* psoDst 0x%x\n", tempFB.psoDst);
|
|
|
|
return;
|
|
|
|
fb_help:
|
|
dprintf("Usage: fb [-?] GFNPB_PTR\n");
|
|
}// fb
|
|
|