# VDL

A display control object.

### Description

A VDL is a collection of hardware control values which are used to manipulate the display characteristics in strange and bizarre ways. VDLs tell the display hardware where the frame buffer is, its geometry, what colors to use, and other characteristics.

Because of their dependency on specific underlying hardware, whose quirks may change from manufacturer to manufacturer, the use of custom VDLs is discouraged at this time.

### Folio

graphics

### Item Type

VDLNODE

### Create

`CreateVDL()`

`CreateVDLVA()`

`CreateItem()`

`SubmitVDL()`

### Delete

`DeleteItem()`

`DeleteVDL()`

`DeleteItem()`

### Query

None

### Modify

`ModifyVDL()`

`ModifyVDLVA()`

### Use

`SetVDL()`

### Tags

The following tags are only valid when creating a VDL item:

CREATEVDL_TAG_VDLTYPE(int32) The type of VDL you wish to create. The currently supported types are:

- VDLTYPE_FULL: Contains complete description of all display characteristics.

- CREATEVDL_TAG_DISPLAYTYPE(int32) The type of display for which this VDL is intended. This is one of the DI_TYPE_ values in graphics.h.

- CREATEVDL_TAG_LENGTH(int32) The length of the submitted VDL, in 32-bit words.

- CREATEVDL_TAG_HEIGHT(int32) The number of display lines this VDL will affect.

CREATEVDL_TAG_DATAPTR(void *) Pointer to array of VDL instructions you wish to be validated and converted to a VDL item.

The following tags may be used to create or modify a VDL item:

CREATEVDL_TAG_SLIPSTREAM(Boolean)
  Enables/disables slipstream (non-zero == enable). When enabled, all pixels in the display buffer with a value of 000 are made transparent.

CREATEVDL_TAG_HAVG(Boolean)
  Enables/disables horizontal interpolation (non-zero == enable).

CREATEVDL_TAG_VAVG(Boolean)
  Enables/disables vertical interpolation (non-zero == enable).

CREATEVDL_TAG_HSUB(int32)
  Sets the source for horizontal subpositioning bits as follows: 0:Force to zero. 1:Force to one. 2:Take from display buffer.

CREATEVDL_TAG_VSUB(int32)
  Sets the source for vertical subpositioning bits as follows: 0:Force to zero. 1:Force to one. 2:Take from display buffer.

CREATEVDL_TAG_SWAPHV(Boolean)
  Enables/disables swapping of the horizontal and vertical subpositioning bits: 0:Bit 0 == HSub; bit 15 == VSub (default) non-0:Bit 0 == VSub; bit 15 == HSub

CREATEVDL_TAG_CLUTBYPASS(Boolean)
  Enables/disables the availability of CLUT bypass mode for pixels where bit 15 is set (non-zero == enable).

CREATEVDL_TAG_WINHAVG(Boolean)
  Enables/disables horizontal interpolation for pixels making use of CLUT bypass mode (non-zero == enable).

CREATEVDL_TAG_WINVAVG(Boolean)
  Enables/disables vertical interpolation for pixels making use of CLUT bypass mode (non-zero == enable).

CREATEVDL_TAG_WINHSUB(int32)
  Sets the source for horizontal subpositioning bits for pixels making use of CLUT bypass mode as follows: 0:Force to zero. 1:Force to one. 2:Take from display buffer.

CREATEVDL_TAG_WINVSUB(int32)
  Sets the source for vertical subpositioning bits for pixels making use of CLUT bypass mode as follows: 0:Force to zero. 1:Force to one. 2:Take from display buffer.

CREATEVDL_TAG_WINSWAPHV(Boolean)
  Enables/disables swapping of the horizontal and vertical subpositioning bits for pixels making use of CLUT bypass mode: 0:Bit 0 == HSub; bit 15 == VSub (default) non-0:Bit 0 == VSub; bit 15 == HSub