XLATEOBJ structure (winddi.h)

The XLATEOBJ structure is used to translate color indexes from one palette to another.

Syntax

typedef struct _XLATEOBJ {
  ULONG  iUniq;
  FLONG  flXlate;
  USHORT iSrcType;
  USHORT iDstType;
  ULONG  cEntries;
  ULONG  *pulXlate;
} XLATEOBJ;

Members

iUniq

A cache identifier that enables the driver to recognize an XLATEOBJ structure that it has previously cached. If this member is zero, the driver should not cache the XLATEOBJ structure.

flXlate

Flags specifying hints about the translation. This member can be any combination of the following values:

Value Meaning
XO_DEVICE_ICM ICM is enabled on the device. The driver should translate color according to the color transform created by DrvIcmCreateColorTransform. The driver should call XLATEOBJ_hGetColorTransform to get the color transform handle. This bit is mutually exclusive from XO_HOST_ICM.
XO_FROM_CMYK As a result of ICM translation, source indices are translated to the 32-bit CMYK color format. When this bit is set, iSrcType, iDstType, cEntries, and pulXlate should be ignored.
XO_HOST_ICM ICM is performed by the graphics engine, so the colors in this color table are corrected to the target surface. This bit is set by the GDI as information for the driver: no action is required by the driver. This bit is mutually exclusive from XO_DEVICE_ICM.
XO_TABLE A table is provided to translate source indices to target indices.
XO_TO_MONO Source indices are translated to a monochrome format with the special property that all indices map to zero, except for one. A driver can use this to accelerate a block transfer.
XO_TRIVIAL Source indices are usable as target indices.

iSrcType

Is obsolete. Use XLATEOBJ_cGetPalette to query the source format.

iDstType

Is obsolete. Use XLATEOBJ_cGetPalette to query the destination format.

cEntries

Specifies the number of entries in the array pointed to by the pulXlate member. Indexing into pulXlate with a value greater than cEntries results in a memory access violation.

pulXlate

Pointer to an array of translation entries.

Remarks

The destination palette always belongs to the destination surface of some drawing operation. The source palette is an application-selected palette or a palette from another surface.

The XLATEOBJ structure is used to translate color indices that refer to the source palette to indices for the destination palette. The resulting index identifies a color that matches the source color as closely as possible.

Requirements

Requirement Value
Header winddi.h (include Winddi.h)

See also

DrvIcmCreateColorTransform

XLATEOBJ_cGetPalette

XLATEOBJ_hGetColorTransform

XLATEOBJ_piVector