Simulation support:
This function is mandatory for display drivers that want to be DCAF-enabled.
Description GreSetScreenBits takes compressed data, generated by a previous call to GreGetScreenBits, from a buffer and decompresses it into the currently selected memory bit map. The call is only valid for a memory DC that has a bit map selected that is the same size as the screen of the machine on which the GreGetScreenBits call was performed. There is no clipping; if a rectangle exceeds the bit-map dimensions, the function will terminate immediately with an error logged. The bit map may be left in a partially drawn state as prior rectangles may have been copied into it.
This is a drawing primitive; therefore, correlation, boundary accumulation and drawing could take place. Function bits are ignored, however, and only drawing will be done.
The function may be passed a region handle, in which case the area defined by the set bits will be added to the region.
The DCAF-enabled driver may be passed 4bpp planar, 4bpp packed, 8bpp packed and 16bpp packed data.
#define INCL_GRE_SCREEN
#include <os2.h>
#include <pmddi.h>
HDC hdc; /* Any valid, direct (screen) device context handle. */
PBYTE pBuffer; /* Pointer to source (compressed) data. */
ULONG cBytes; /* Length of the memory buffer pointed to by pBuffer. */
HRGN hrgn; /* A valid region handle. */
PDC pdcArg; /* Pointer to instance data. */
ULONG FunN; /* High-order word=Flags; Low-order word=NGreSetScreenBits. */
LONG rc;
rc = GreSetScreenBits(hdc, pBuffer, cBytes,
hrgn, pdcArg, FunN);