Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:14:42

0001 #ifndef __XCB_IMAGE_H__
0002 #define __XCB_IMAGE_H__
0003 
0004 /* Copyright (C) 2007 Bart Massey
0005  *
0006  * Permission is hereby granted, free of charge, to any person obtaining a
0007  * copy of this software and associated documentation files (the "Software"),
0008  * to deal in the Software without restriction, including without limitation
0009  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
0010  * and/or sell copies of the Software, and to permit persons to whom the
0011  * Software is furnished to do so, subject to the following conditions:
0012  * 
0013  * The above copyright notice and this permission notice shall be included in
0014  * all copies or substantial portions of the Software.
0015  * 
0016  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
0017  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
0018  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
0019  * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
0020  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
0021  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
0022  * 
0023  * Except as contained in this notice, the names of the authors or their
0024  * institutions shall not be used in advertising or otherwise to promote the
0025  * sale, use or other dealings in this Software without prior written
0026  * authorization from the authors.
0027  */
0028 
0029 #include <xcb/xcb.h>
0030 #include <xcb/shm.h>
0031 
0032 
0033 #ifdef __cplusplus
0034 extern "C" {
0035 #endif
0036 
0037 
0038 /**
0039  * @defgroup xcb__image_t XCB Image Functions
0040  * 
0041  * These are functions used to create and manipulate X images.
0042  * 
0043  * The X image format we use is specific to this software,
0044  * which is probably a bug; it represents an intermediate
0045  * position between the wire format used by the X GetImage
0046  * and PutImage requests and standard formats like PBM.  An
0047  * image consists of a header of type @ref xcb_image_t
0048  * describing the properties of the image, together with a
0049  * pointer to the image data itself.
0050  * 
0051  * X wire images come in three formats.  An xy-bitmap is a
0052  * bit-packed format that will be expanded to a two-color
0053  * pixmap using a GC when sent over the wire by PutImage.
0054  * An xy-pixmap is one or more bit-planes, each in the same
0055  * format as xy-bitmap.  A z-pixmap is a more conventional
0056  * pixmap representation, with each pixel packed into a
0057  * word.  Pixmaps are sent and received over the wire only
0058  * to/from drawables of their depth.
0059  * 
0060  * Each X server defines, for each depth and format,
0061  * properties of images in that format that are sent and
0062  * received on the wire.  We refer to this as a "native"
0063  * image for a given X server.  It is not uncommon to want
0064  * to work with non-native images on the client side, or to
0065  * convert between the native images of different servers.
0066  *
0067  * This library provides several things.  Facilities for
0068  * creating and destroying images are, of course, provided.
0069  * Wrappers for xcb_get_image() and xcb_put_image() are
0070  * provided; these utilize the image header to simplify the
0071  * interface.  Routines for getting and putting image pixels
0072  * are provided: both a generic form that works with
0073  * arbitrary images, and fastpath forms for some common
0074  * cases.  Conversion routines are provided for X images;
0075  * these routines have been fairly well optimized for the
0076  * common cases, and should run fast even on older hardware.
0077  * A routine analogous to Xlib's XCreate*FromBitmapData() is
0078  * provided for creating X images from xbm-format data; this
0079  * routine is in this library only because it is a trivial
0080  * use case for the library.
0081  * 
0082  * @{
0083  */
0084 
0085 
0086 typedef struct xcb_image_t xcb_image_t;
0087 
0088 /**
0089  * @struct xcb_image_t
0090  * A structure that describes an xcb_image_t.
0091  */
0092 struct xcb_image_t
0093 {
0094   uint16_t           width;   /**< Width in pixels, excluding pads etc. */
0095   uint16_t           height;   /**< Height in pixels. */
0096   xcb_image_format_t format;   /**< Format. */
0097   uint8_t            scanline_pad;   /**< Right pad in bits.  Valid pads
0098                       *   are 8, 16, 32.
0099                       */
0100   uint8_t            depth;   /**< Depth in bits. Valid depths
0101                    *   are 1, 4, 8, 16, 24 for z format,
0102                    *   1 for xy-bitmap-format, anything
0103                    *   for xy-pixmap-format.
0104                    */
0105   uint8_t            bpp;   /**< Storage per pixel in bits.
0106                  *   Must be >= depth. Valid bpp
0107                  *   are 1, 4, 8, 16, 24, 32 for z
0108                  *   format, 1 for xy-bitmap format,
0109                  *   anything for xy-pixmap-format.
0110                  */
0111   uint8_t        unit;  /**< Scanline unit in bits for
0112                  *   xy formats and for bpp == 1,
0113                  *   in which case valid scanline
0114                  *   units are 8, 16, 32.  Otherwise,
0115                  *   will be max(8, bpp).  Must be >= bpp.
0116                  */
0117   uint32_t           plane_mask;   /**< When format is
0118                     *   xy-pixmap and depth >
0119                     *   1, this says which
0120                     *   planes are "valid" in
0121                     *   some vague sense.
0122                     *   Currently used only
0123                     *   by xcb_image_get/put_pixel(),
0124                     *   and set only by
0125                     *   xcb_image_get().
0126                     */
0127   xcb_image_order_t  byte_order;   /**< Component byte order
0128                     *   for z-pixmap, byte
0129                     *   order of scanline unit
0130                     *   for xy-bitmap and
0131                     *   xy-pixmap.  Nybble
0132                     *   order for z-pixmap
0133                     *   when bpp == 4.
0134                     */
0135   xcb_image_order_t  bit_order;    /**< Bit order of
0136                     *   scanline unit for
0137                     *   xy-bitmap and
0138                     *   xy-pixmap.
0139                     */
0140   uint32_t           stride;   /**< Bytes per image row.
0141                 *   Computable from other
0142                 *   data, but cached for
0143                 *   convenience/performance.
0144                 */
0145   uint32_t           size;   /**< Size of image data in bytes.
0146                   *   Computable from other
0147                   *   data, but cached for
0148                   *   convenience/performance.
0149                   */
0150   void *             base;   /**< Malloced block of storage that
0151                   *   will be freed by
0152                   *   @ref xcb_image_destroy() if non-null.
0153                   */
0154   uint8_t *          data;   /**< The actual image. */
0155 };
0156 
0157 typedef struct xcb_shm_segment_info_t xcb_shm_segment_info_t;
0158 
0159 /**
0160  * @struct xcb_shm_segment_info_t
0161  * A structure that stores the informations needed by the MIT Shm
0162  * Extension.
0163  */
0164 struct xcb_shm_segment_info_t
0165 {
0166   xcb_shm_seg_t shmseg;
0167   uint32_t    shmid;
0168   uint8_t     *shmaddr;
0169 };
0170 
0171 
0172 /**
0173  * Update the cached data of an image.
0174  * @param image The image.
0175  *
0176  * An image's size and stride, among other things, are
0177  * cached in its structure.  This function recomputes those
0178  * cached values for the given image.
0179  * @ingroup xcb__image_t
0180  */
0181 void
0182 xcb_image_annotate (xcb_image_t *image);
0183 
0184 /**
0185  * Create a new image.
0186  * @param width The width of the image, in pixels.
0187  * @param height The height of the image, in pixels.
0188  * @param format The format of the image.
0189  * @param xpad The scanline pad of the image.
0190  * @param depth The depth of the image.
0191  * @param bpp The depth of the image storage.
0192  * @param unit The unit of image representation, in bits.
0193  * @param byte_order The byte order of the image.
0194  * @param bit_order The bit order of the image.
0195  * @param base The base address of malloced image data.
0196  * @param bytes The size in bytes of the storage pointed to by base.
0197  *              If base == 0 and bytes == ~0 and data == 0 on
0198  *              entry, no storage will be auto-allocated.
0199  * @param data The image data.  If data is null and bytes != ~0, then
0200  *             an attempt will be made to fill in data; from
0201  *             base if it is non-null (and bytes is large enough), else
0202  *             by mallocing sufficient storage and filling in base.
0203  * @return The new image.
0204  *
0205  * This function allocates the memory needed for an @ref xcb_image_t structure
0206  * with the given properties.  See the description of xcb_image_t for details.
0207  * This function initializes and returns a pointer to the
0208  * xcb_image_t structure.  It may try to allocate or reserve data for the
0209  * structure, depending on how @p base, @p bytes and @p data are set.
0210  *
0211  * The image must be destroyed with xcb_image_destroy().
0212  * @ingroup xcb__image_t
0213  */
0214 xcb_image_t *
0215 xcb_image_create (uint16_t           width,
0216           uint16_t           height,
0217           xcb_image_format_t format,
0218           uint8_t            xpad,
0219           uint8_t            depth,
0220           uint8_t            bpp,
0221           uint8_t            unit,
0222           xcb_image_order_t  byte_order,
0223           xcb_image_order_t  bit_order,
0224           void *             base,
0225           uint32_t           bytes,
0226           uint8_t *          data);
0227 
0228 
0229 /**
0230  * Create a new image in connection-native format.
0231  * @param c The connection.
0232  * @param width The width of the image, in pixels.
0233  * @param height The height of the image, in pixels.
0234  * @param format The format of the image.
0235  * @param depth The depth of the image.
0236  * @param base The base address of malloced image data.
0237  * @param bytes The size in bytes of the storage pointed to by base.
0238  *              If base == 0 and bytes == ~0 and data == 0 on
0239  *              entry, no storage will be auto-allocated.
0240  * @param data The image data.  If data is null and bytes != ~0, then
0241  *             an attempt will be made to fill in data; from
0242  *             base if it is non-null (and bytes is large enough), else
0243  *             by mallocing sufficient storage and filling in base.
0244  * @return The new image.
0245  *
0246  * This function calls @ref xcb_image_create() with the given
0247  * properties, and with the remaining properties chosen
0248  * according to the "native format" with the given
0249  * properties on the current connection.
0250  *
0251  * It is usual to use this rather
0252  * than calling xcb_image_create() directly.
0253  * @ingroup xcb__image_t
0254  */
0255 xcb_image_t *
0256 xcb_image_create_native (xcb_connection_t *  c,
0257              uint16_t            width,
0258              uint16_t            height,
0259              xcb_image_format_t  format,
0260              uint8_t             depth,
0261              void *              base,
0262              uint32_t            bytes,
0263              uint8_t *           data);
0264 
0265 
0266 /**
0267  * Destroy an image.
0268  * @param image The image to be destroyed.
0269  *
0270  * This function frees the memory associated with the @p image
0271  * parameter.  If its base pointer is non-null, it frees
0272  * that also.
0273  * @ingroup xcb__image_t
0274  */
0275 void
0276 xcb_image_destroy (xcb_image_t *image);
0277 
0278 
0279 /**
0280  * Get an image from the X server.
0281  * @param conn The connection to the X server.
0282  * @param draw The drawable to get the image from.
0283  * @param x The x coordinate in pixels, relative to the origin of the
0284  * drawable and defining the upper-left corner of the rectangle.
0285  * @param y The y coordinate in pixels, relative to the origin of the
0286  * drawable and defining the upper-left corner of the rectangle.
0287  * @param width The width of the subimage in pixels.
0288  * @param height The height of the subimage in pixels.
0289  * @param plane_mask The plane mask.  See the protocol document for details.
0290  * @param format The format of the image.
0291  * @return The subimage of @p draw defined by @p x, @p y, @p w, @p h.
0292  *
0293 
0294  * This function returns a new image taken from the
0295  * given drawable @p draw.
0296  * The image will be in connection native format. If the @p format
0297  * is xy-bitmap and the @p plane_mask masks bit planes out, those
0298  * bit planes will be made part of the returned image anyway,
0299  * by zero-filling them; this will require a fresh memory allocation
0300  * and some copying.  Otherwise, the resulting image will use the
0301  * xcb_get_image_reply() record as its backing store.
0302  *
0303  * If a problem occurs, the function returns null.
0304  * @ingroup xcb__image_t
0305  */
0306 xcb_image_t *
0307 xcb_image_get (xcb_connection_t *  conn,
0308            xcb_drawable_t      draw,
0309            int16_t             x,
0310            int16_t             y,
0311            uint16_t            width,
0312            uint16_t            height,
0313            uint32_t            plane_mask,
0314            xcb_image_format_t  format);
0315 
0316 
0317 /**
0318  * Put an image onto the X server.
0319  * @param conn The connection to the X server.
0320  * @param draw The draw you get the image from.
0321  * @param gc The graphic context.
0322  * @param image The image you want to combine with the rectangle.
0323  * @param x The x coordinate, which is relative to the origin of the
0324  * drawable and defines the x coordinate of the upper-left corner of the
0325  * rectangle.
0326  * @param y The y coordinate, which is relative to the origin of the
0327  * drawable and defines the x coordinate of the upper-left corner of
0328  * the rectangle.
0329  * @param left_pad Notionally shift an xy-bitmap or xy-pixmap image
0330  * to the right some small amount, for some reason.  XXX Not clear
0331  * this is currently supported correctly.
0332  * @return The cookie returned by xcb_put_image().
0333  *
0334  * This function combines an image with a rectangle of the
0335  * specified drawable @p draw. The image must be in native
0336  * format for the connection.  The image is drawn at the
0337  * specified location in the drawable. For the xy-bitmap
0338  * format, the foreground pixel in @p gc defines the source
0339  * for the one bits in the image, and the background pixel
0340  * defines the source for the zero bits. For xy-pixmap and
0341  * z-pixmap formats, the depth of the image must match the
0342  * depth of the drawable; the gc is ignored.
0343  *
0344  * @ingroup xcb__image_t
0345  */
0346 xcb_void_cookie_t
0347 xcb_image_put (xcb_connection_t *  conn,
0348            xcb_drawable_t      draw,
0349            xcb_gcontext_t      gc,
0350            xcb_image_t *       image,
0351            int16_t             x,
0352            int16_t             y,
0353            uint8_t             left_pad);
0354 
0355 
0356 /**
0357  * Check image for or convert image to native format.
0358  * @param c The connection to the X server.
0359  * @param image The image.
0360  * @param convert  If 0, just check the image for native format.
0361  * Otherwise, actually convert it.
0362  * @return Null if the image is not in native format and can or will not
0363  * be converted.  Otherwise, the native format image.
0364  *
0365  * Each X display has its own "native format" for images of a given
0366  * format and depth.  This function either checks whether the given
0367  * @p image is in native format for the given connection @p c, or
0368  * actually tries to convert the image to native format, depending
0369  * on whether @p convert is true or false.
0370  *
0371  * When @p convert is true, and the image is not in native format
0372  * but can be converted, it will be, and a pointer to the new image
0373  * will be returned.  The image passed in will be unharmed in this
0374  * case; it is the caller's responsibility to check that the returned
0375  * pointer is different and to dispose of the old image if desired.
0376  * @ingroup xcb__image_t
0377  */
0378 xcb_image_t *
0379 xcb_image_native (xcb_connection_t *  c,
0380           xcb_image_t *       image,
0381           int                 convert);
0382 
0383 
0384 /**
0385  * Put a pixel to an image.
0386  * @param image The image.
0387  * @param x The x coordinate of the pixel.
0388  * @param y The y coordinate of the pixel.
0389  * @param pixel The new pixel value.
0390  *
0391  * This function overwrites the pixel in the given @p image with the
0392  * specified @p pixel value (in client format). The image must contain the @p x
0393  * and @p y coordinates, as no clipping is done.  This function honors
0394  * the plane-mask for xy-pixmap images.
0395  * @ingroup xcb__image_t
0396  */
0397 void
0398 xcb_image_put_pixel (xcb_image_t *image,
0399              uint32_t x,
0400              uint32_t y,
0401              uint32_t pixel);
0402 
0403 /**
0404  * Get a pixel from an image.
0405  * @param image The image.
0406  * @param x The x coordinate of the pixel.
0407  * @param y The y coordinate of the pixel.
0408  * @return The pixel value.
0409  *
0410  * This function retrieves a pixel from the given @p image.
0411  * The image must contain the @p x
0412  * and @p y coordinates, as no clipping is done.  This function honors
0413  * the plane-mask for xy-pixmap images.
0414  * @ingroup xcb__image_t
0415  */
0416 uint32_t
0417 xcb_image_get_pixel (xcb_image_t *image,
0418              uint32_t x,
0419              uint32_t y);
0420 
0421 
0422 /**
0423  * Convert an image to a new format.
0424  * @param src Source image.
0425  * @param dst Destination image.
0426  * @return The @p dst image, or null on error.
0427  *
0428  * This function tries to convert the image data of the @p
0429  * src image to the format implied by the @p dst image,
0430  * overwriting the current destination image data.
0431  * The source and destination must have the same
0432  * width, height, and depth.  When the source and destination
0433  * are already the same format, a simple copy is done.  Otherwise,
0434  * when the destination has the same bits-per-pixel/scanline-unit
0435  * as the source, an optimized copy routine (thanks to Keith Packard)
0436  * is used for the conversion.  Otherwise, the copy is done the
0437  * slow, slow way with @ref xcb_image_get_pixel() and
0438  * @ref xcb_image_put_pixel() calls.
0439  * @ingroup xcb__image_t
0440  */
0441 xcb_image_t *
0442 xcb_image_convert (xcb_image_t *  src,
0443            xcb_image_t *  dst);
0444 
0445 
0446 /**
0447  * Extract a subimage of an image.
0448  * @param image Source image.
0449  * @param x X coordinate of subimage.
0450  * @param y Y coordinate of subimage.
0451  * @param width Width of subimage.
0452  * @param height Height of subimage.
0453  * @param base Base of memory allocation.
0454  * @param bytes Size of base allocation.
0455  * @param data Memory allocation.
0456  * @return The subimage, or null on error.
0457  *
0458  * Given an image, this function extracts the subimage at the
0459  * given coordinates.  The requested subimage must be entirely
0460  * contained in the source @p image.  The resulting image will have the same
0461  * general image parameters as the source image.  The @p base, @p bytes,
0462  * and @p data arguments are passed to @ref xcb_create_image() unaltered
0463  * to create the destination image---see its documentation for details.
0464  *
0465  * @ingroup xcb__image_t
0466  */
0467 xcb_image_t *
0468 xcb_image_subimage(xcb_image_t *  image,
0469            uint32_t       x,
0470            uint32_t       y,
0471            uint32_t       width,
0472            uint32_t       height,
0473            void *         base,
0474            uint32_t       bytes,
0475            uint8_t *      data);
0476 
0477 
0478 /*
0479  * Shm stuff
0480  */
0481 
0482 /**
0483  * Put the data of an xcb_image_t onto a drawable using the MIT Shm
0484  * Extension.
0485  * @param conn The connection to the X server.
0486  * @param draw The draw you get the image from.
0487  * @param gc The graphic context.
0488  * @param image The image you want to combine with the rectangle.
0489  * @param shminfo A @ref xcb_shm_segment_info_t structure.
0490  * @param src_x The offset in x from the left edge of the image
0491  * defined by the xcb_image_t structure.
0492  * @param src_y The offset in y from the left edge of the image
0493  * defined by the xcb_image_t structure.
0494  * @param dest_x The x coordinate, which is relative to the origin of the
0495  * drawable and defines the x coordinate of the upper-left corner of the
0496  * rectangle.
0497  * @param dest_y The y coordinate, which is relative to the origin of the
0498  * drawable and defines the x coordinate of the upper-left corner of
0499  * the rectangle.
0500  * @param src_width The width of the subimage, in pixels.
0501  * @param src_height The height of the subimage, in pixels.
0502  * @param send_event Indicates whether or not a completion event
0503  * should occur when the image write is complete.
0504  * @return a pointer to the source image if no problem occurs, otherwise 0.
0505  *
0506  * This function combines an image in memory with a shape of the
0507  * specified drawable. The section of the image defined by the @p x, @p y,
0508  * @p width, and @p height arguments is drawn on the specified part of
0509  * the drawable. If XYBitmap format is used, the depth must be
0510  * one, or a``BadMatch'' error results. The foreground pixel in the
0511  * Graphic Context @p gc defines the source for the one bits in the
0512  * image, and the background pixel defines the source for the zero
0513  * bits. For XYPixmap and ZPixmap, the depth must match the depth of
0514  * the drawable, or a ``BadMatch'' error results.
0515  *
0516  * @ingroup xcb__image_t
0517  */
0518 xcb_image_t *
0519 xcb_image_shm_put (xcb_connection_t *      conn,
0520            xcb_drawable_t          draw,
0521            xcb_gcontext_t          gc,
0522            xcb_image_t *           image,
0523            xcb_shm_segment_info_t  shminfo,
0524            int16_t                 src_x,
0525            int16_t                 src_y,
0526            int16_t                 dest_x,
0527            int16_t                 dest_y,
0528            uint16_t                src_width,
0529            uint16_t                src_height,
0530            uint8_t                 send_event);
0531 
0532 
0533 /**
0534  * Read image data into a shared memory xcb_image_t.
0535  * @param conn The connection to the X server.
0536  * @param draw The draw you get the image from.
0537  * @param image The image you want to combine with the rectangle.
0538  * @param shminfo A @ref xcb_shm_segment_info_t structure.
0539  * @param x The x coordinate, which are relative to the origin of the
0540  * drawable and define the upper-left corner of the rectangle.
0541  * @param y The y coordinate, which are relative to the origin of the
0542  * drawable and define the upper-left corner of the rectangle.
0543  * @param plane_mask The plane mask.
0544  * @return The subimage of @p draw defined by @p x, @p y, @p w, @p h.
0545  *
0546  * This function reads image data into a shared memory xcb_image_t where
0547  * @p conn is the connection to the X server, @p draw is the source
0548  * drawable, @p image is the destination xcb_image_t, @p x and @p y are offsets
0549  * within the drawable, and @p plane_mask defines which planes are to be
0550  * read.
0551  *
0552  * If a problem occurs, the function returns @c 0. It returns 1
0553  * otherwise.
0554  * @ingroup xcb__image_t
0555  */
0556 int xcb_image_shm_get (xcb_connection_t *      conn,
0557                xcb_drawable_t          draw,
0558                xcb_image_t *           image,
0559                xcb_shm_segment_info_t  shminfo,
0560                int16_t                 x,
0561                int16_t                 y,
0562                uint32_t                plane_mask);
0563 
0564 
0565 /**
0566  * Create an image from user-supplied bitmap data.
0567  * @param data Image data in packed bitmap format.
0568  * @param width Width in bits of image data.
0569  * @param height Height in bits of image data.
0570  * @return The image constructed from the image data, or 0 on error.
0571  *
0572  * This function creates an image from the user-supplied
0573  * bitmap @p data.  The bitmap data is assumed to be in
0574  * xbm format (i.e., 8-bit scanline unit, LSB-first, 8-bit pad).
0575  * @ingroup xcb__image_t
0576  */
0577 xcb_image_t *
0578 xcb_image_create_from_bitmap_data (uint8_t *           data,
0579                    uint32_t            width,
0580                    uint32_t            height);
0581 
0582 /**
0583  * Create a pixmap from user-supplied bitmap data.
0584  * @param display The connection to the X server.
0585  * @param d The parent drawable for the pixmap.
0586  * @param data Image data in packed bitmap format.
0587  * @param width Width in bits of image data.
0588  * @param height Height in bits of image data.
0589  * @param depth Depth of the desired pixmap.
0590  * @param fg Pixel for one-bits of pixmaps with depth larger than one.
0591  * @param bg Pixel for zero-bits of pixmaps with depth larger than one.
0592  * @param gcp If this pointer is non-null, the GC created to
0593  * fill in the pixmap is stored here; it will have its foreground
0594  * and background set to the supplied value.  Otherwise, the GC
0595  * will be freed.
0596  * @return The pixmap constructed from the image data, or 0 on error.
0597  *
0598  * This function creates a pixmap from the user-supplied
0599  * bitmap @p data.  The bitmap data is assumed to be in
0600  * xbm format (i.e., 8-bit scanline unit, LSB-first, 8-bit pad).
0601  * If @p depth is greater than 1, the
0602  * bitmap will be expanded to a pixmap using the given
0603  * foreground and background pixels @p fg and @p bg.
0604  * @ingroup xcb__image_t
0605  */
0606 xcb_pixmap_t
0607 xcb_create_pixmap_from_bitmap_data (xcb_connection_t *  display,
0608                     xcb_drawable_t      d,
0609                     uint8_t *           data,
0610                     uint32_t            width,
0611                     uint32_t            height,
0612                     uint32_t            depth,
0613                     uint32_t            fg,
0614                     uint32_t            bg,
0615                     xcb_gcontext_t *    gcp);
0616 
0617 
0618 /**
0619  * @}
0620  */
0621 
0622 
0623 #ifdef __cplusplus
0624 }
0625 #endif
0626 
0627 
0628 #endif /* __XCB_IMAGE_H__ */