Top |
Functions
cairo_surface_t * | gdk_window_create_similar_surface () |
cairo_surface_t * | gdk_window_create_similar_image_surface () |
cairo_t * | gdk_cairo_create () |
gboolean | gdk_cairo_get_clip_rectangle () |
void | gdk_cairo_set_source_color () |
void | gdk_cairo_set_source_rgba () |
void | gdk_cairo_set_source_pixbuf () |
void | gdk_cairo_set_source_window () |
void | gdk_cairo_rectangle () |
void | gdk_cairo_region () |
cairo_region_t * | gdk_cairo_region_create_from_surface () |
cairo_surface_t * | gdk_cairo_surface_create_from_pixbuf () |
Description
Cairo is a graphics library that supports vector graphics and image compositing that can be used with GDK. GTK+ does all 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 GdkWindows. Additional functions allow use GdkRectangles with cairo and to use GdkColors, GdkRGBAs, GdkPixbufs and GdkWindows as sources for drawing operations.
Functions
gdk_window_create_similar_surface ()
cairo_surface_t * gdk_window_create_similar_surface (GdkWindow *window
,cairo_content_t content
,int width
,int height
);
Create a new surface that is as compatible as possible with the
given window
. For example the new surface will have the same
fallback resolution and font options as window
. Generally, the new
surface will also use the same backend as window
, unless that is
not possible for some reason. The type of the returned surface may
be examined with cairo_surface_get_type()
.
Initially the surface contents are all 0 (transparent if contents have transparency, black otherwise.)
Parameters
window |
window to make new surface similar to |
|
content |
the content for the new surface |
|
width |
width of the new surface |
|
height |
height of the new surface |
Returns
a pointer to the newly allocated surface. The caller
owns the surface and should call cairo_surface_destroy()
when done
with it.
This function always returns a valid pointer, but it will return a
pointer to a “nil” surface if other
is already in an error state
or any other error occurs.
Since 2.22
gdk_window_create_similar_image_surface ()
cairo_surface_t * gdk_window_create_similar_image_surface (GdkWindow *window
,cairo_format_t format
,int width
,int height
,int scale
);
Create a new image surface that is efficient to draw on the
given window
.
Initially the surface contents are all 0 (transparent if contents have transparency, black otherwise.)
Parameters
window |
window to make new surface similar to, or |
|
format |
the format for the new surface. |
[type int] |
width |
width of the new surface |
|
height |
height of the new surface |
|
scale |
the scale of the new surface, or 0 to use same as |
Returns
a pointer to the newly allocated surface. The caller
owns the surface and should call cairo_surface_destroy()
when done
with it.
This function always returns a valid pointer, but it will return a
pointer to a “nil” surface if other
is already in an error state
or any other error occurs.
Since 3.10
gdk_cairo_create ()
cairo_t *
gdk_cairo_create (GdkWindow *window
);
Creates a Cairo context for drawing to window
.
Note that calling cairo_reset_clip()
on the resulting cairo_t will
produce undefined results, so avoid it at all costs.
Since 2.8
gdk_cairo_get_clip_rectangle ()
gboolean gdk_cairo_get_clip_rectangle (cairo_t *cr
,GdkRectangle *rect
);
This is a convenience function around cairo_clip_extents()
.
It rounds the clip extents to integer coordinates and returns
a boolean indicating if a clip area exists.
gdk_cairo_set_source_color ()
void gdk_cairo_set_source_color (cairo_t *cr
,const GdkColor *color
);
gdk_cairo_set_source_color
has been deprecated since version 3.4 and should not be used in newly-written code.
Use gdk_cairo_set_source_rgba()
instead
Sets the specified GdkColor as the source color of cr
.
Since 2.8
gdk_cairo_set_source_rgba ()
void gdk_cairo_set_source_rgba (cairo_t *cr
,const GdkRGBA *rgba
);
Sets the specified GdkRGBA as the source color of cr
.
Since 3.0
gdk_cairo_set_source_pixbuf ()
void gdk_cairo_set_source_pixbuf (cairo_t *cr
,const GdkPixbuf *pixbuf
,gdouble pixbuf_x
,gdouble pixbuf_y
);
Sets the given pixbuf as the source pattern for cr
.
The pattern has an extend mode of CAIRO_EXTEND_NONE
and is aligned
so that the origin of pixbuf
is pixbuf_x
, pixbuf_y
.
Parameters
cr |
a cairo context |
|
pixbuf |
||
pixbuf_x |
X coordinate of location to place upper left corner of |
|
pixbuf_y |
Y coordinate of location to place upper left corner of |
Since 2.8
gdk_cairo_set_source_window ()
void gdk_cairo_set_source_window (cairo_t *cr
,GdkWindow *window
,gdouble x
,gdouble y
);
Sets the given window as the source pattern for cr
.
The pattern has an extend mode of CAIRO_EXTEND_NONE
and is aligned
so that the origin of window
is x
, y
. The window contains all its
subwindows when rendering.
Note that the contents of window
are undefined outside of the
visible part of window
, so use this function with care.
Parameters
cr |
a cairo context |
|
window |
||
x |
X coordinate of location to place upper left corner of |
|
y |
Y coordinate of location to place upper left corner of |
Since 2.24
gdk_cairo_rectangle ()
void gdk_cairo_rectangle (cairo_t *cr
,const GdkRectangle *rectangle
);
Adds the given rectangle to the current path of cr
.
Since 2.8
gdk_cairo_region ()
void gdk_cairo_region (cairo_t *cr
,const cairo_region_t *region
);
Adds the given region to the current path of cr
.
Since 2.8
gdk_cairo_region_create_from_surface ()
cairo_region_t *
gdk_cairo_region_create_from_surface (cairo_surface_t *surface
);
Creates region that describes covers the area where the given
surface
is more than 50% opaque.
This function takes into account device offsets that might be
set with cairo_surface_set_device_offset()
.