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.