Rendering

Name

Rendering -- Rendering a pixbuf to a GDK drawable.

Synopsis


#include <gdk-pixbuf/gdk-pixbuf.h>


enum        GdkPixbufAlphaMode;
void        gdk_pixbuf_render_to_drawable_alpha
                                            (GdkPixbuf *pixbuf,
                                             GdkDrawable *drawable,
                                             int src_x,
                                             int src_y,
                                             int dest_x,
                                             int dest_y,
                                             int width,
                                             int height,
                                             GdkPixbufAlphaMode alpha_mode,
                                             int alpha_threshold,
                                             GdkRgbDither dither,
                                             int x_dither,
                                             int y_dither);
void        gdk_pixbuf_render_to_drawable   (GdkPixbuf *pixbuf,
                                             GdkDrawable *drawable,
                                             GdkGC *gc,
                                             int src_x,
                                             int src_y,
                                             int dest_x,
                                             int dest_y,
                                             int width,
                                             int height,
                                             GdkRgbDither dither,
                                             int x_dither,
                                             int y_dither);
void        gdk_pixbuf_render_threshold_alpha
                                            (GdkPixbuf *pixbuf,
                                             GdkBitmap *bitmap,
                                             int src_x,
                                             int src_y,
                                             int dest_x,
                                             int dest_y,
                                             int width,
                                             int height,
                                             int alpha_threshold);
void        gdk_pixbuf_render_pixmap_and_mask
                                            (GdkPixbuf *pixbuf,
                                             GdkPixmap **pixmap_return,
                                             GdkBitmap **mask_return,
                                             int alpha_threshold);

Description

The gdk-pixbuf library provides several convenience functions to render pixbufs to GDK drawables. It uses the GdkRGB to render the image data.

At this point there is not a standard alpha channel extension for the X Window System, so it is not possible to use full opacity information when painting images to arbitrary drawables. The gdk-pixbuf convenience functions will threshold the opacity information to create a bi-level clipping mask (black and white), and use that to draw the image onto a drawable.

Important: Since these functions use GdkRGB for rendering, you must initialize GdkRGB before using any of them. You can do this by calling gdk_rgb_init() near the beginning of your program.

Details

enum GdkPixbufAlphaMode

typedef enum {
	GDK_PIXBUF_ALPHA_BILEVEL,
	GDK_PIXBUF_ALPHA_FULL
} GdkPixbufAlphaMode;

These values can be passed to gdk_pixbuf_render_to_drawable_alpha() to control how the alpha chanel of an image should be handled. This function can create a bilevel clipping mask (black and white) and use it while painting the image. In the future, when the X Window System gets an alpha channel extension, it will be possible to do full alpha compositing onto arbitrary drawables. For now both cases fall back to a bilevel clipping mask.

GDK_PIXBUF_ALPHA_BILEVELA bilevel clipping mask (black and white) will be created and used to draw the image. Pixels below 0.5 opacity will be considered fully transparent, and all others will be considered fully opaque.
GDK_PIXBUF_ALPHA_FULLFor now falls back to GDK_PIXBUF_ALPHA_BILEVEL. In the future it will do full alpha compositing.


gdk_pixbuf_render_to_drawable_alpha ()

void        gdk_pixbuf_render_to_drawable_alpha
                                            (GdkPixbuf *pixbuf,
                                             GdkDrawable *drawable,
                                             int src_x,
                                             int src_y,
                                             int dest_x,
                                             int dest_y,
                                             int width,
                                             int height,
                                             GdkPixbufAlphaMode alpha_mode,
                                             int alpha_threshold,
                                             GdkRgbDither dither,
                                             int x_dither,
                                             int y_dither);

pixbuf : 
drawable : 
src_x : 
src_y : 
dest_x : 
dest_y : 
width : 
height : 
alpha_mode : 
alpha_threshold : 
dither : 
x_dither : 
y_dither : 


gdk_pixbuf_render_to_drawable ()

void        gdk_pixbuf_render_to_drawable   (GdkPixbuf *pixbuf,
                                             GdkDrawable *drawable,
                                             GdkGC *gc,
                                             int src_x,
                                             int src_y,
                                             int dest_x,
                                             int dest_y,
                                             int width,
                                             int height,
                                             GdkRgbDither dither,
                                             int x_dither,
                                             int y_dither);

pixbuf : 
drawable : 
gc : 
src_x : 
src_y : 
dest_x : 
dest_y : 
width : 
height : 
dither : 
x_dither : 
y_dither : 


gdk_pixbuf_render_threshold_alpha ()

void        gdk_pixbuf_render_threshold_alpha
                                            (GdkPixbuf *pixbuf,
                                             GdkBitmap *bitmap,
                                             int src_x,
                                             int src_y,
                                             int dest_x,
                                             int dest_y,
                                             int width,
                                             int height,
                                             int alpha_threshold);

pixbuf : 
bitmap : 
src_x : 
src_y : 
dest_x : 
dest_y : 
width : 
height : 
alpha_threshold : 


gdk_pixbuf_render_pixmap_and_mask ()

void        gdk_pixbuf_render_pixmap_and_mask
                                            (GdkPixbuf *pixbuf,
                                             GdkPixmap **pixmap_return,
                                             GdkBitmap **mask_return,
                                             int alpha_threshold);

pixbuf : 
pixmap_return : 
mask_return : 
alpha_threshold : 

See Also

GdkRGB