GDK Reference Manual | ||||
---|---|---|---|---|
Top | Description |
#include <gdk/gdk.h> cairo_t * gdk_cairo_create (GdkDrawable *drawable
); void gdk_cairo_set_source_color (cairo_t *cr
,const GdkColor *color
); void gdk_cairo_set_source_pixbuf (cairo_t *cr
,const GdkPixbuf *pixbuf
,double pixbuf_x
,double pixbuf_y
); void gdk_cairo_set_source_pixmap (cairo_t *cr
,GdkPixmap *pixmap
,double pixmap_x
,double pixmap_y
); void gdk_cairo_rectangle (cairo_t *cr
,const GdkRectangle *rectangle
); void gdk_cairo_region (cairo_t *cr
,const GdkRegion *region
); void gdk_cairo_reset_clip (cairo_t *cr
,GdkDrawable *drawable
);
Cairo is a graphics library that supports vector graphics and image compositing that can be used with GDK. Since 2.8, GTK+ does most of its drawing using Cairo.
GDK does not wrap the Cairo API, instead it allows to create Cairo contexts which can be used to draw on GDK drawables. Additional functions allow to convert GDK's rectangles and regions into Cairo paths and to use pixbufs as sources for drawing operations.
cairo_t * gdk_cairo_create (GdkDrawable *drawable
);
Creates a Cairo context for drawing to drawable
.
Note that due to double-buffering, Cairo contexts created in a GTK+ expose event handler cannot be cached and reused between different expose events.
|
a GdkDrawable |
Returns : |
A newly created Cairo context. Free with
cairo_destroy() when you are done drawing.
|
Since 2.8
void gdk_cairo_set_source_color (cairo_t *cr
,const GdkColor *color
);
Sets the specified GdkColor as the source color of cr
.
Since 2.8
void gdk_cairo_set_source_pixbuf (cairo_t *cr
,const GdkPixbuf *pixbuf
,double pixbuf_x
,double pixbuf_y
);
Sets the given pixbuf as the source pattern for the Cairo context.
The pattern has an extend mode of CAIRO_EXTEND_NONE
and is aligned
so that the origin of pixbuf
is pixbuf_x
, pixbuf_y
|
a Cairo context |
|
a GdkPixbuf |
|
X coordinate of location to place upper left corner of pixbuf
|
|
Y coordinate of location to place upper left corner of pixbuf
|
Since 2.8
void gdk_cairo_set_source_pixmap (cairo_t *cr
,GdkPixmap *pixmap
,double pixmap_x
,double pixmap_y
);
Sets the given pixmap as the source pattern for the Cairo context.
The pattern has an extend mode of CAIRO_EXTEND_NONE
and is aligned
so that the origin of pixmap
is pixmap_x
, pixmap_y
|
a Cairo context |
|
a GdkPixmap |
|
X coordinate of location to place upper left corner of pixmap
|
|
Y coordinate of location to place upper left corner of pixmap
|
Since 2.10
void gdk_cairo_rectangle (cairo_t *cr
,const GdkRectangle *rectangle
);
Adds the given rectangle to the current path of cr
.
|
a cairo_t |
|
a GdkRectangle |
Since 2.8
void gdk_cairo_region (cairo_t *cr
,const GdkRegion *region
);
Adds the given region to the current path of cr
.
Since 2.8
void gdk_cairo_reset_clip (cairo_t *cr
,GdkDrawable *drawable
);
Resets the clip region for a Cairo context created by gdk_cairo_create()
.
This resets the clip region to the "empty" state for the given drawable.
This is required for non-native windows since a direct call to
cairo_reset_clip()
would unset the clip region inherited from the
drawable (i.e. the window clip region), and thus let you e.g.
draw outside your window.
This is rarely needed though, since most code just create a new cairo_t
using gdk_cairo_create()
each time they want to draw something.
|
a cairo_t |
|
a GdkDrawable |
Since 2.18