Caution: This version of this document is no longer maintained. For the latest documentation, see

PgDrawPixelArray(), PgDrawPixelArrayv(), PgDrawPixelArrayCx(), PgDrawPixelArrayCxv()

Draw multiple points


int PgDrawPixelArray( PhPoint_t const *ptr,
                      int num,
                      PhPoint_t const *pos );

int PgDrawPixelArrayv( PhPoint_t const *ptr,
                       int num,
                       PhPoint_t const *pos );

int PgDrawPixelArrayCx( void *dc,
                        PhPoint_t const *ptr,
                        int num,
                        PhPoint_t const *pos );

int PgDrawPixelArrayCxv( void *dc,
                         PhPoint_t const *ptr,
                         int num,
                         PhPoint_t const *pos );




These functions build a command in the draw buffer to draw an array of pixels. The ptr argument points to an array of pixel locations; num indicates how many points to draw; and the value of pos is added to every pixel location.

PgDrawPixelArray() and PgDrawPixelArrayv() work on the current draw context, while you can specify the draw context dc for PgDrawPixelArrayCx() and PgDrawPixelArrayCxv().

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 array is stored until the draw buffer is flushed. Make sure you call PgFlush() or PgFlushCx() before you modify the pixel array.


The draw buffer is too small to hold the current draw state, the draw command, and the data. Increase the size of the draw buffer or decrease the number of points.



Interrupt handler No
Signal handler No
Thread No

See also:

PgDrawPixel*(), PgDrawIPixel*(), PgFlush*(), PgSetStrokeColor*(), PgSetStrokeDither*(), PhPoint_t

Drawing attributes and Lines, pixels, and pixel arrays in the Raw Drawing and Animation chapter of the Photon Programmer's Guide