Points, Rectangles and Regions
simple graphical data types.
GDK provides the #GdkPoint, #GdkRectangle, #GdkRegion and #GdkSpan data types
for representing pixels and sets of pixels on the screen.
#GdkPoint is a simple structure containing an x and y coordinate of a point.
#GdkRectangle is a structure holding the position and size of a rectangle.
The intersection of two rectangles can be computed with
gdk_rectangle_intersect(). To find the union of two rectangles use
gdk_rectangle_union().
#GdkRegion is an opaque data type holding a set of arbitrary pixels, and is
usually used for clipping graphical operations (see gdk_gc_set_clip_region()).
#GdkSpan is a structure holding a spanline. A spanline is a horizontal line that
is one pixel wide. It is mainly used when rasterizing other graphics primitives.
It can be intersected to regions by using gdk_region_spans_intersect_foreach().
Defines the x and y coordinates of a point.
@x: the x coordinate of the point.
@y: the y coordinate of the point.
Defines the position and size of a rectangle.
@x: the x coordinate of the left edge of the rectangle.
@y: the y coordinate of the top of the rectangle.
@width: the width of the rectangle.
@height: the height of the rectangle.
Calculates the intersection of two rectangles.
@src1: a #GdkRectangle.
@src2: a #GdkRectangle.
@dest: the intersection of @src1 and @src2.
@Returns: TRUE if the rectangles intersect.
Calculates the union of two rectangles.
The union of rectangles @src1 and @src2 is the smallest rectangle which
includes both @src1 and @src2 within it.
@src1: a #GdkRectangle.
@src2: a #GdkRectangle.
@dest: the union of @src1 and @src2.
A GdkRegion represents a set of pixels on the screen.
The only user-visible field of the structure is the user_data member, which
can be used to attach arbitrary data to the #GdkRegion.
Creates a new empty #GdkRegion.
@Returns: a new empty #GdkRegion.
Creates a new #GdkRegion using the polygon defined by a number of points.
@points: an array of #GdkPoint structs.
@npoints: the number of elements in the @points array.
@fill_rule: specifies which pixels are included in the region when the polygon
overlaps itself.
@Returns: a new #GdkRegion based on the given polygon.
The method for determining which pixels are included in a region, when
creating a #GdkRegion from a polygon.
The fill rule is only relevant for polygons which overlap themselves.
@GDK_EVEN_ODD_RULE: areas which are overlapped an odd number of times are
included in the region, while areas overlapped an even number of times are not.
@GDK_WINDING_RULE: overlapping areas are always included.
@region:
@Returns:
@rectangle:
@Returns:
Destroys a #GdkRegion.
@region: a #GdkRegion.
Returns the smallest rectangle which includes the entire #GdkRegion.
@region: a #GdkRegion.
@rectangle: returns the smallest rectangle which includes all of @region.
@region:
@rectangles:
@n_rectangles:
Returns TRUE if the #GdkRegion is empty.
@region: a #GdkRegion.
@Returns: TRUE if @region is empty.
Returns TRUE if the two regions are the same.
@region1: a #GdkRegion.
@region2: a #GdkRegion.
@Returns: TRUE if @region1 and @region2 are equal.
Returns TRUE if a point is in a region.
@region: a #GdkRegion.
@x: the x coordinate of a point.
@y: the y coordinate of a point.
@Returns: TRUE if the point is in @region.
Tests whether a rectangle is within a region.
@region: a #GdkRegion.
@rect: a #GdkRectangle.
@Returns: GDK_OVERLAP_RECTANGLE_IN, GDK_OVERLAP_RECTANGLE_OUT, or
GDK_OVERLAP_RECTANGLE_PART, depending on whether the rectangle is inside,
outside, or partly inside the #GdkRegion, respectively.
Specifies the possible values returned by gdk_region_rect_in().
@GDK_OVERLAP_RECTANGLE_IN: if the rectangle is inside the #GdkRegion.
@GDK_OVERLAP_RECTANGLE_OUT: if the rectangle is outside the #GdkRegion.
@GDK_OVERLAP_RECTANGLE_PART: if the rectangle is partly inside the #GdkRegion.
Moves a region the specified distance.
@region: a #GdkRegion.
@dx: the distance to move the region horizontally.
@dy: the distance to move the region vertically.
Resizes a region by the specified amount.
Positive values shrink the region. Negative values expand it.
@region: a #GdkRegion.
@dx: the number of pixels to shrink the region horizontally.
@dy: the number of pixels to shrink the region vertically.
Sets the area of @region to the union of the areas of @region and
@rect. The resulting area is the set of pixels contained in
either @region or @rect.
@region: a #GdkRegion.
@rect: a #GdkRectangle.
Sets the area of @source1 to the intersection of the areas of @source1
and @source2. The resulting area is the set of pixels contained in
both @source1 and @source2.
@source1: a #GdkRegion
@source2: a #GdkRegion
Sets the area of @source1 to the union of the areas of @source1 and
@source2. The resulting area is the set of pixels contained in
either @source1 or @source2.
@source1: a #GdkRegion
@source2: a #GdkRegion
Subtracts the area of @source2 from the area @source1. The resulting
area is the set of pixels contained in @source1 but not in @source2.
@source1: a #GdkRegion
@source2: a #GdkRegion
Sets the area of @source1 to the exclusive-OR of the areas of @source1
and @source2. The resulting area is the set of pixels contained in one
or the other of the two sources but not in both.
@source1: a #GdkRegion
@source2: a #GdkRegion
A GdkSpan represents a horizontal line of pixels starting
at the pixel with coordinates @x, @y and ending before @x + @width, @y.
@x: x coordinate of the first pixel.
@y: y coordinate of the first pixel.
@width: number of pixels in the span.
This defines the type of the function passed to
gdk_region_spans_intersect_foreach().
@span: a #GdkSpan.
@data: the user data passed to gdk_region_spans_intersect_foreach().
Calls a function on each span in the intersection of @region and
@spans.
@region: a #GdkRegion.
@spans: an array of #GdkSpans.
@n_spans: the length of @spans.
@sorted: %TRUE if @spans is sorted wrt. the y coordinate.
@function: function to call on each span in the intersection.
@data: data to pass to @function.