| Top |  |  |  |  | 
| void | xlib_rgb_init () | 
| void | xlib_rgb_init_with_depth () | 
| unsigned long | xlib_rgb_xpixel_from_rgb () | 
| void | xlib_rgb_gc_set_foreground () | 
| void | xlib_rgb_gc_set_background () | 
| void | xlib_draw_rgb_image () | 
| void | xlib_draw_rgb_image_dithalign () | 
| void | xlib_draw_rgb_32_image () | 
| void | xlib_draw_gray_image () | 
| XlibRgbCmap * | xlib_rgb_cmap_new () | 
| void | xlib_rgb_cmap_free () | 
| void | xlib_draw_indexed_image () | 
| Bool | xlib_rgb_ditherable () | 
| void | xlib_rgb_set_verbose () | 
| void | xlib_rgb_set_install () | 
| void | xlib_rgb_set_min_colors () | 
| Colormap | xlib_rgb_get_cmap () | 
| Visual * | xlib_rgb_get_visual () | 
| XVisualInfo * | xlib_rgb_get_visual_info () | 
| int | xlib_rgb_get_depth () | 
| Display * | xlib_rgb_get_display () | 
| Screen * | xlib_rgb_get_screen () | 
The XlibRGB set of functions is a port of the GdkRGB library to use plain Xlib and X drawables. You can use these functions to render RGB buffers into drawables very quickly with high-quality dithering.
void xlib_rgb_init (Display *display,Screen *screen);
Initializes the XlibRGB machinery with the default depth.  If you use this
function XlibRGB will automatically pick the best visual available on your
display.  This function or xlib_rgb_init_with_depth() must be called before
using any of the other functions in XlibRGB.
void xlib_rgb_init_with_depth (Display *display,Screen *screen,int prefDepth);
Initializes the XlibRGB machinery with a particular depth you specify,
instead of automatically picking the best depth in the display.  This
function or xlib_rgb_init() must be called before using any of the other
functions in XlibRGB.
unsigned long
xlib_rgb_xpixel_from_rgb (guint32 rgb);
Converts an RGB triplet into the closest color that XlibRGB visual can handle.
void xlib_rgb_gc_set_foreground (GC gc,guint32 rgb);
This is a convenience function to set the foreground of a GC from an RGB
triplet.  It calls xlib_rgb_xpixel_from_rgb() internally and uses the
returned pixel value to set the GC's foreground.
void xlib_rgb_gc_set_background (GC gc,guint32 rgb);
This is a convenience function to set the background of a GC from an RGB
triplet.  It calls xlib_rgb_xpixel_from_rgb() internally and uses the
returned pixel value to set the GC's background.
void xlib_draw_rgb_image (Drawable drawable,GC gc,int x,int y,int width,int height,XlibRgbDither dith,unsigned char *rgb_buf,int rowstride);
Renders an RGB buffer to a drawable.  Pixels are specified as RGB triplets
with 8 bits per channel.  An image will thus look like an RGBRGBRGBRGB
sequence of 8-bit values.  This function does not let you specify dither
offsets; applications that need to render partial regions of a buffer to
build the final image should use xlib_draw_rgb_image_dithalign() instead.
| drawable | Destination drawable. | |
| gc | A graphic context. | |
| x | Leftmost coordinate of the destination rectangle. | |
| y | Upper coordinate of the destination rectangle. | |
| width | Width of the destination rectangle, in pixels. | |
| height | Height of the destination rectangle, in pixels. | |
| dith | Dithering method to use. | |
| rgb_buf | Pointer to the pixel in the RGB buffer that corresponds to the upper-left corner of the rectangular region to render. | |
| rowstride | Offset between pixel rows in the RGB buffer, in bytes. | 
void xlib_draw_rgb_image_dithalign (Drawable drawable,GC gc,int x,int y,int width,int height,XlibRgbDither dith,unsigned char *rgb_buf,int rowstride,int xdith,int ydith);
Renders an RGB buffer to a drawable. Pixels are specified as RGB triplets with 8 bits per channel. An image will thus look like an RGBRGBRGBRGB sequence of 8-bit values. This function lets you specify a pair of dither offsets. It should be used when you need to render regions of an RGB buffer separately to form the final image; the dither offsets let you align the dither mask appropriately.
| drawable | Destination drawable. | |
| gc | A graphic context. | |
| x | Leftmost coordinate of the destination rectangle. | |
| y | Upper coordinate of the destination rectangle. | |
| width | Width of the destination rectangle, in pixels. | |
| height | Height of the destination rectangle, in pixels. | |
| dith | Dithering method to use. | |
| rgb_buf | Pointer to the pixel in the RGB buffer that corresponds to the upper-left corner of the rectangular region to render. | |
| rowstride | Offset between pixel rows in the RGB buffer, in bytes. | |
| xdith | X offset for the dither mask. | |
| ydith | Y offset for the dither mask. | 
void xlib_draw_rgb_32_image (Drawable drawable,GC gc,int x,int y,int width,int height,XlibRgbDither dith,unsigned char *buf,int rowstride);
This function is analogous to xlib_draw_rgb_image(), but it lets you use
32-bit RGB buffers with pixels specified as 0xRRGGBB00.  The
least-significant 8 bits are actually discarded.  This function can lead to
faster results than xlib_draw_rgb_image() since the pixels are aligned on
32-bit boundaries.
| drawable | Destination drawable. | |
| gc | A graphic context. | |
| x | Leftmost coordinate of the destination rectangle. | |
| y | Upper coordinate of the destination rectangle. | |
| width | Width of the destination rectangle, in pixels. | |
| height | Height of the destination rectangle, in pixels. | |
| dith | Dithering method to use. | |
| buf | Pointer to the pixel in the RGB buffer that corresponds to the upper-left corner of the rectangular region to render. | |
| rowstride | Offset between pixel rows in the RGB buffer, in bytes. | 
void xlib_draw_gray_image (Drawable drawable,GC gc,int x,int y,int width,int height,XlibRgbDither dith,unsigned char *buf,int rowstride);
Renders a grayscale buffer to a drawable. Pixels are specified as 8-bit intensity values. An image will thus look as a GGGGGG sequence of 8-bit values.
| drawable | Destination drawable. | |
| gc | A graphic context. | |
| x | Leftmost coordinate of the destination rectangle. | |
| y | Upper coordinate of the destination rectangle. | |
| width | Width of the destination rectangle, in pixels. | |
| height | Height of thd destination rectangle, in pixels. | |
| dith | Dithering method to use. | |
| buf | Pointer to the pixel in the grayscale buffer that corresponds to the upper-left corner of the rectangular region to render. | |
| rowstride | Offset between pixel rows in the grayscale buffer, in pixels. | 
void xlib_draw_indexed_image (Drawable drawable,GC gc,int x,int y,int width,int height,XlibRgbDither dith,unsigned char *buf,int rowstride,XlibRgbCmap *cmap);
FIXME
Bool
xlib_rgb_ditherable (void);
Queries whether XlibRGB supports dithering for its chosen visual.
void
xlib_rgb_set_install (Bool install);
Sets whether we install an RGB colormap.
void
xlib_rgb_set_min_colors (int min_colors);
Sets the minimum number of colors in the color cube.
Colormap
xlib_rgb_get_cmap (void);
Queries the X colormap that XlibRGB is using.
Visual *
xlib_rgb_get_visual (void);
Queries the visual that XlibRGB is using.
XVisualInfo *
xlib_rgb_get_visual_info (void);
Queries the visual info structure for the visual that XlibRGB is using.
int
xlib_rgb_get_depth (void);
Queries the depth of the visual that XlibRGB is using.
Display *
xlib_rgb_get_display (void);
Queries the X display that XlibRGB is using.
struct XlibRgbCmap {
  unsigned int colors[256];
  unsigned char lut[256]; /* for 8-bit modes */
};
FIXME: Describe this.
These values are used to specify which dithering method should be used. XLIB_RGB_DITHER_NONE will use no dithering and simply map the colors in an RGB buffer to the closest colors that the display can provide.
XLIB_RGB_DITHER_NORMAL will provide ditheringonly on pseudocolor displays.
XLIB_RGB_DITHER_MAX will provide dithering onpseudocolor and 16-bit truecolor or “high color” displays.