OpenRM - RM Library (rmbitmap.c)

## Index of OpenRM - RM Library

     RMbitmap * rmBitmapNew (int width,
    	                 int height)

     int width, height - integer values that specify the width and height
        of the bitmap (input).

Creates a new RMbitmap object. The size of the bitmap will be (width,height), and remains fixed for the lifetime of the object. The bitmap data is initialized by this routine to all zeros.

Returns a handle to the new object upon success, or NULL upon failure.

librm library source file: rmbitmap.c

     RMenum rmBitmapCopy (RMbitmap *dst,
    	              const RMbitmap *src)

     RMbitmap *dst - the destination RMbitmap object (output).

     const RMbitmap *src - the source RMbitmap object (input).

Copies the bitmap data from one RMbitmap object to another. Both RMbitmaps must be fully configured (created with rmBitmapNew), and must be the same size. Size information may be obtained with rmBitmapGetSize, but is set at the time the RMbitmap is created with rmBitmapNew.

Returns RM_CHILL to the caller upon success, or RM_WHACKED upon failure.

librm library source file: rmbitmap.c

     RMbitmap *rmBitmapDup (const RMbitmap *src)

     const RMbitmap *src - a handle to a source RMbitmap object.

Creates a new RMbitmap object that is an exact replica of an existing one. Upon return from this routine, the new RMbitmap object is an exact duplicate, except that both source and destination RMbitmap objects have their own buffers. A change to one will not affect the other.

Returns a handle to a new RMbitmap object upon success, or NULL upon failure.

librm library source file: rmbitmap.c

     void rmBitmapDelete (RMbitmap *toDelete)

     RMbitmap *toDelete - a handle to the RMbitmap object to be deleted.

Releases resources associated with an RMbitmap object. This routine is the opposite of rmBitmapNew().

librm library source file: rmbitmap.c

     RMenum rmBitmapSetPixelData (RMbitmap *toModify,
    		              const void *pixeldata)

     RMbitmap *toModify - a handle to the RMbitmap object who's bitmap
         data will be modified by this call (input).

     const void *pixeldata - a handle to the raw bitmap data.

Copies bitmap data from the caller's memory into the RMbitmap's internal buffer. Unlike other RM objects, RMbitmap objects do not allows for shared data management of pixel data.

By convention, bitmap data must be scanline padded to the nearest 4-byte boundary. This is an artifact of the Win32 OpenGL implementation.

Returns RM_CHILL to the caller if the operation was successful, otherwise RM_WHACKED is returned.

librm library source file: rmbitmap.c

     void * rmBitmapGetPixelData (const RMbitmap *toQuery)

     const RMbitmap *toQuery - a handle to an RMbitmap object (input).

Returns to the caller a handle to the raw bitmap data from the bitmap object upon success, otherwise NULL is returned. The data can be interpreted as raw byte data, where the high order bit of the first byte corresponds to the upper-left most bit in the image.

Use rmBitmapSetPixelData() to set this data (in toto), or rmBitmapSetBit to turn on a single bit. Use rmBitmapGetSize() to query the dimensions of the bitmap.

librm library source file: rmbitmap.c

     RMenum rmBitmapGetSize (const RMbitmap *toQuery,
    		         int *width_return,
    			 int *height_return,
    			 int *bytes_width_return)

     const RMbitmap *toQuery - a handle to the RMbitmap object to query.

     int *width_return, *height_return - pointers to caller-supplied int's
        that will be set to contain the width and height dimensions of the
        the bitmap.

     int *bytes_width_return - pointer to caller-supplied int. This will
        be set to reflect the real number of bytes per scanline in the
        RMbitmap objects pixel buffer. This value is computed by RM to
        honor local pixel storage restrictions.

Returns to the caller the width and height of the bitmap of an RMbitmap object. Since the number of bytes per scanline of the bitmap buffer may not necessarily be equal to width/8, the "real" number of bytes per scanline is returned to the caller by this routine.

Returns RM_CHILL upon success, or RM_WHACKED upon failure.

librm library source file: rmbitmap.c

     RMenum rmBitmapSetBit (RMbitmap *toModify,
    	                int columnIndex,
    		        int rowIndex)

     RMbitmap *toModify - a handle to the RMbitmap object to modify.

     int columnIndex, rowIndex - integer values specifying the coordinate
         of the bit to set in terms of index location.

This routine is used to set, or turn on, a single bit in an RMbitmap object. There is no corresponding routine to turn a bit off. To turn a bit off, you have to write the entire bitmap buffer with rmBitmapSetPixelData.

Returns RM_CHILL upon success, or RM_WHACKED upon failure.

librm library source file: rmbitmap.c