Caution: This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs.

PgDrawRepPhImage*()

Repeatedly draw an image stored in a PhImage_t structure

Synopsis:

int PgDrawRepPhImage( PhImage_t const *image,
                      int flags,
                      PhPoint_t const *pos,
                      PhPoint_t const *rep,
                      PhPoint_t const *space );

int PgDrawRepPhImagev( PhImage_t const *image,
                       int flags,
                       PhPoint_t const *pos,
                       PhPoint_t const *rep,
                       PhPoint_t const *space );

int PgDrawRepPhImageCx( void *dc,
                        PhImage_t const *image,
                        int flags,
                        PhPoint_t const *pos,
                        PhPoint_t const *rep,
                        PhPoint_t const *space );

int PgDrawRepPhImageCxv( void *dc,
                         PhImage_t const *image,
                         int flags,
                         PhPoint_t const *pos,
                         PhPoint_t const *rep,
                         PhPoint_t const *space );

Library:

ph

Description:

These functions unite the convenience of PgDrawPhImage*() and the ability to tile images of PgDrawRepImage*() or PgDrawRepBitmap*().

These functions draw:

The pos, rep, and space arguments all point to structures of type PhPoint_t.

You can pass any combination of the following bits in the flags argument:

Pg_GHOST or Pt_GHOST
Render the image using the ghost bitmap as a transparency mask.
Pg_REPBM_ALTERNATE
Draw all the images twice; the second time the position is offset by half of space.x and space.y.

Note: If you call the "v" forms of this function, the data isn't physically copied into the draw buffer. Instead, a pointer to the image is stored until the draw buffer is flushed. Make sure you call PgFlush() or PgFlushCx() before you modify the image.

If the data is in shared memory, the "v" form of this function automatically passes a shared memory reference instead of the image.


PgDrawRepPhImage() and PgDrawRepPhImagev() work on the current draw context, while you can specify the draw context dc for PgDrawRepPhImageCx() and PgDrawRepPhImageCxv().

Returns:

0
Success.
-1
The draw buffer is too small to hold the current draw state, the draw command, and one pixel line of the image. Increase the size of the draw buffer, or decrease the width of the image.

Classification:

Photon

Safety:
Interrupt handler No
Signal handler No
Thread No

See also:

ApGetImageRes(), PgDrawPhImage*(), PgDrawPhImageRect*(), PgDrawRepImage*(), PgDrawRepBitmap*(), PgFlush*(), PhCreateImage(), PhImage_t, PhMakeGhostBitmap(), PhMakeTransBitmap(), PhMakeTransparent(), PhPoint_t, PhReleaseImage(), PmMemCreateMC(), PmMemFlush(), PxLoadImage()

"Images" in the Raw Drawing and Animation chapter of the Photon Programmer's Guide