This is a display driver for graphics adapters based on the 3Dlabs Permedia-3 chipset. It supports GDI acceleration, Microsoft DirectDraw® acceleration, Microsoft Direct3D® acceleration, and multiple monitor support. This display driver forms a matched pair with the 3Dlabs Permedia3 video miniport driver. The miniport driver is responsible for non-rendering tasks such as adapter initialization, register mapping, and other resource allocation, whereas the display driver handles actual rendering tasks.
This sample driver runs on Windows® 2000 on the x86 platform. It also builds and runs on Windows 98 and Windows ME.
The driver is compiled as a DX8 driver and currently supports pointsprites, multisampling, volume textures and DX8 multistreaming (with a single stream).
All applicable samples and DCT tests have been run successfully with this driver.
This hardware doesn't support the following features:
Type build -cz from the ..\disp directory. A successful build produces the video display driver perm3dd.dll.
FileDescription dirs Directories that make up the driver (currently dx and gdi) dx\chroma.h Chromakeying definitions and inline functions dx\d3d.c Main D3D capabilites and callback tables dx\d3dbuff.c Main context callbacks for D3D videomemory buffers dx\d3dcntxt.c Main context callbacks for D3D dx\d3ddp2op.c D3D DrawPrimitives2 command buffer operations support dx\d3ddp2p3.c D3D DrawPrimitives2 callback support dx\d3dprim.c D3D primitives rendering dx\d3dsset.c D3D stateblock support dx\d3dsset.h D3D stateblock support macros and definitions dx\d3dstate.c Translate D3D renderstates and texture stage states into hw specific settings. dx\d3dstrct.c Internal D3D structure management. dx\d3dstrct.h Internal D3D structure management headers and macros dx\d3dsurf.c Surface management callbacks for D3D dx\d3dsurf.h Surface management macros and structures dx\d3dtxt.c D3D hardware specific texture setup dx\dcontext.h D3D context definition and other useful macros dx\dd.c Main DirectDraw callbacks dx\ddblt.c DirectDraw Blt callback implementation for vidmem-vidmem blts and clears dx\ddbltfx.c DirectDraw Blt implementation for stretching blts dx\dddownld.c DirectDraw Blt implementation for sysmem-vidmem blts and clears dx\ddenable.c Windows 2000 only DirectDraw/D3D enabling functions dx\ddover.c DirectDraw Overlays implementation dx\ddover.h DirectDraw Overlays implementation macros and definitions dx\ddsurf.c DirectDraw surfaces creation/destructions callbacks dx\ddvideo.c DirectDraw Videoports implementation dx\debug.c Debugging aids dx\direct3d.h Global direct3d function declarations dx\directx.h DirectX macros and definitions dx\dltamacr.h Hardware specific D3D macros and definitions dx\dma.h DMA transport definitons and macros dx\glint.h Macros and definitions needed to Access Glint based chips dx\linalloc.c Videomemory linear allocator dx\makefile Drivers makefile dx\sources The generic file for building the dx code sample library dx\stateset.c Hardware context swapping inc\bitmac2.h Bit manipulation macros for hardware registers inc\debug.h Debugging aids macros and definitions inc\driver.h inc\ereg.h Permedia 3 register structures inc\gigiregl.h Permedia 3 register structures inc\glddtk.h inc\glglobal.h inc\glintdef.h inc\glintfx.h inc\glintreg.h Permedia 3 register structures inc\gtag.h Permedia 3 register tag definitions inc\linalloc.h Videomemory linear allocator macros and definitions inc\p2rd.h Definitions for the P2RD internal RAMDAC. inc\p3rd.h Definitions for the P2ST internal RAMDAC. inc\p3rxdef.h inc\pmdef.h inc\ramdac.h inc\reg.h Permedia 3 register structures inc\rgb525.h This module contains the definitions for the IBM RGB525 RAMDAC. inc\rgb526.h This module contains the definitions for the IBM RGB526 RAMDAC. inc\rgb528.h This module contains the definitions for the IBM RGB528 RAMDAC. inc\rgb640.h This module contains the definitions for the IBM RGB640 RAMDAC. inc\softcopy.h inc\surf_fmt.h inc\tag.h Permedia 3 register tag definitions inc\tvp3026.h inc\tvp4020.h gdi\bitblt.c Contains the high-level DrvBitBlt and DrvCopyBits functions gdi\brush.c Handles all brush/pattern initialization and realization. gdi\color.c Color dithering gdi\dbgtags.c Debugging aid: convert tags numbers to string names gdi\ddraw.c Provides interfaces back from the DDRAW .lib file into the main NT driver gdi\debug.c Debug helper routines. gdi\dma.c Handling of DMA buffers. gdi\enable.c Functions that enable and disable the driver, the pdev, and the surface. gdi\fillpath.c DrvFillPath gdi\glint.h Permedia 3 hardware related defines gdi\glntctxt.c Context switching for Permedia 3 gdi\glntctxt.h Permedia 3 context switching macros and definitions gdi\glntinit.c Initialisation for the Permedia3 chip. gdi\heap.c Routines for a 2-d heap. gdi\lines.c Code for drawing short fractional endpoint lines and longer lines with strips. gdi\lines.h Line drawing constants and structures gdi\lineto.c The code in this file handles the DrvLineTo() API call. gdi\makefile Drivers makefile gdi\p3rd.h Definitions for the P2ST internal RAMDAC. gdi\paint.c DrvPaint support gdi\palette.c Palette support. gdi\pointer.c Hardware pointer support for the display driver. gdi\precomp.h Common headers gdi\pxrx.c Hardware support for fills and copys gdi\pxrx.h Macros and defines for hardware fills and copys gdi\pxrxpoly.c Draws PXRX polygons. gdi\pxrxxfer.c Hardware support for blts gdi\pxrxstrp.c Hardware line drawing support routines gdi\registry.c Routines to initialize the registry and lookup string values. gdi\res.rc Resource file for the display driver gdi\sources The generic file for building the code sample gdi\stroke.c DrvStrokePath for Permedia3 driver gdi\sync.c DrvSynchronize code. gdi\textout.c Text rendering module gdi\thunk.c Testing and instrument all the driver's Drv calls.
The most important changes to this sample driver since the DX8.0 DDK release have been:
© 2000 Microsoft Corporation