XpmCreateXpmImageFromBuffer
To create an XpmImage from an XPM buffer, use XpmCreateXpmImageFromBuffer(). The
XpmCreateXpmImageFromBuffer() function reads the given buffer to fill in the given XpmImage structure.
If the buffer does not contain valid XPM data, it returns XpmFileInvalid. If insufficient working
storage is allocated, it returns XpmNoMemory. On success it returns XpmSuccess. If the passed XpmInfo
structure pointer is not NULL, XpmCreateXpmImageFromBuffer() looks for the following attributes:
XpmReturnComments and XpmReturnExtensions, and sets possibly the XpmHotspot attribute when returning. As
specified in the table (page 28), if the data related to the attributes XpmReturnComments and
XpmReturnExtensions cannot be returned as requested because of insufficient memory storage,
XpmCreateXpmImageFromBuffer() will change the valuemask to mention this and will try to continue. So the
caller should check on this before accessing requested data.
Note: The valuemask of the passed XpmInfo structure must be set to some valid value, at least zero,
otherwise unpredictable errors can occur.
XpmCreateXpmImageFromData
To create an XpmImage from an XPM data, use XpmCreateXpmImageFromData(). XpmCreateXpmImageFromData()
fills in the given XpmImage structure from the given data. If the data does not contain valid XPM data,
it returns XpmFileInvalid. If insufficient working storage is allocated, it returns XpmNoMemory. On
success it returns XpmSuccess. If the passed XpmInfo structure pointer is not NULL,
XpmCreateXpmImageFromData() looks for the following attributes: XpmReturnExtensions, and sets possibly
the XpmHotspot attribute when returning. As specified in the table (page 28), if the data related to the
attribute XpmReturnExtensions cannot be returned as requested because of insufficient memory storage,
XpmCreateXpmImageFromData() will change the valuemask to mention this and will try to continue. So the
caller should check on this before accessing requested data.
Note: The valuemask of the passed XpmInfo structure must be set to some valid value, at least zero,
otherwise unpredictable errors can occur.
XpmCreateXpmImageFromImage
To create an XpmImage from an XImage, use XpmCreateXpmImageFromImage(). From the given X images and
XpmAttributes if not NULL, XpmCreateXpmImageFromImage() creates an XpmImage following the same mechanism
as XpmWriteFileFromImage(3).
XpmCreateXpmImageFromPixmap
To create an XpmImage from a Pixmap, use XpmCreateXpmImageFromPixmap(). From the given pixmaps and
XpmAttributes if not NULL, XpmCreateXpmImageFromPixmap() gets the related XImages by calling XGetImage,
then it gives them to XpmCreateXpmImageFromImage() to create an XpmImage which is returned to xpmimage.
Finally it destroys the created X images using XDestroyImage(3).