2
* Copyright (C) 1989-95 GROUPE BULL
4
* Permission is hereby granted, free of charge, to any person obtaining a copy
5
* of this software and associated documentation files (the "Software"), to
6
* deal in the Software without restriction, including without limitation the
7
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
8
* sell copies of the Software, and to permit persons to whom the Software is
9
* furnished to do so, subject to the following conditions:
11
* The above copyright notice and this permission notice shall be included in
12
* all copies or substantial portions of the Software.
14
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17
* GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
18
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
19
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
* Except as contained in this notice, the name of GROUPE BULL shall not be
22
* used in advertising or otherwise to promote the sale, use or other dealings
23
* in this Software without prior written authorization from GROUPE BULL.
26
/*****************************************************************************\
30
* Scan a pixmap and possibly its mask and create an XPM buffer *
32
* Developed by Arnaud Le Hors *
33
\*****************************************************************************/
41
XpmCreateBufferFromPixmap(display, buffer_return, pixmap, shapemask,
47
XpmAttributes *attributes;
49
XImage *ximage = NULL;
50
XImage *shapeimage = NULL;
51
unsigned int width = 0;
52
unsigned int height = 0;
56
if (attributes && attributes->valuemask & XpmSize) {
57
width = attributes->width;
58
height = attributes->height;
62
xpmCreateImageFromPixmap(display, pixmap, &ximage, &width, &height);
64
xpmCreateImageFromPixmap(display, shapemask, &shapeimage,
67
/* create the buffer */
68
ErrorStatus = XpmCreateBufferFromImage(display, buffer_return, ximage,
69
shapeimage, attributes);
71
/* destroy the ximages */
73
XDestroyImage(ximage);
75
XDestroyImage(shapeimage);