Optional Graphics Driver Functions

In the interests of reducing driver size, driver writers usually add only those optional functions that are well-supported in hardware. For example, a driver for hardware that supports Image Color Management (ICM) can implement the DrvIcmXxx functions. The following tables list the functions that a graphics driver can optionally implement.

Display and Printer Driver Functions

Entry Point Description

DrvAlphaBlend

Provides bit block transfer capabilities with alpha blending.

DrvBitBlt

Executes general bit block transfers to and from surfaces.

DrvCreateDeviceBitmap

Creates and manages a bitmap with a driver-defined format.

DrvDeleteDeviceBitmap

Deletes a device-managed bitmap.

DrvDitherColor

Requests a device to create a brush dithered against a device palette.

DrvFillPath

Paints a closed path for a device-managed surface.

DrvGradientFill

Shades the specified primitives.

DrvIcmCheckBitmapBits

Checks whether the pixels in the specified bitmap lie within the device gamut of the specified transform.

DrvIcmCreateColorTransform

Creates an ICM color transform.

DrvIcmDeleteColorTransform

Deletes the specified ICM color transform.

DrvIcmSetDeviceGammaRamp

Sets the hardware gamma ramp of the specified display device.

DrvLineTo

Draws a single solid integer-only cosmetic line.

DrvPlgBlt

Provides rotate bit block transfer capabilities between combinations of device-managed and GDI-managed surfaces.

DrvRealizeBrush

Realizes a specified brush for a defined surface.

DrvStretchBlt

Allows stretching block transfers among device-managed and GDI-managed surfaces.

DrvStretchBltROP

Performs a stretching bit block transfer using a ROP.

DrvStrokeAndFillPath

Simultaneously fills and strokes a path.

DrvSynchronize

Coordinates drawing operations between GDI and a display driver-supported coprocessor device; for engine-managed surfaces only.

DrvSynchronizeSurface

Coordinates drawing operations between GDI and a display driver-supported coprocessor device; for engine-managed surfaces only. If a driver provides both DrvSynchronize and DrvSynchronizeSurface, GDI will call only DrvSynchronizeSurface.

DrvTransparentBlt

Provides bit block transfer capabilities with transparency.

Functions Used Exclusively by Display Drivers

Entry Point Description

DrvMovePointer

Moves a pointer to a new position, and redraws it.

DrvSaveScreenBits

Saves or restores a specified rectangle of the screen (display driver only).

DrvSetPointerShape

Removes the pointer from the screen, if the driver has drawn it, and then sets a new pointer shape.

Functions Used Primarily by Printer Drivers

Entry Point Description

DrvDestroyFont

Notifies driver that a font realization is no longer needed; driver can free allocated data structures.

DrvDrawEscape

Implements draw-type escape functions.

DrvEscape

Queries information from a device not available in a device-independent DDI.

DrvFree

Frees font storage associated with an indicated data structure.

Functions Used Exclusively by Printer Drivers

Entry Point Description

DrvEndDoc

Sends end-of-document information.

DrvFontManagement

Allows access to printer functionality not directly available through GDI.

DrvGetGlyphMode

Returns type of font information to be stored for a particular font.

DrvNextBand

Realizes the contents of a surface's just-drawn band.

DrvQueryPerBandInfo

Returns banding information for the specified banded printer surface.

DrvSendPage

Sends raw bits from a surface to the printer.

DrvStartBanding

Prepares the driver for banding.

DrvStartDoc

Sends start-of-document control information.

DrvStartPage

Sends start-of-page control information.

Font Driver Function

Entry Point Description

DrvQueryAdvanceWidths

Supplies character advance widths for a specified set of glyphs.