Regions -- Representing a pixel-aligned area Bindings to the Cairo 2D graphics library. Regions are a simple graphical data type representing an area of integer- aligned rectangles. Thay are often used on raster surfaces to track areas of interest, such as change or clip areas.
<c_version>1.10</c_version> <group>Cairo</group>
function "=" (A, B : Cairo_Region) return Boolean
Compares whether A is equivalent to B. Null_Region as an argument is equal to itself, but not to any non-Null_Region region.
type Cairo_Rectangle_Int is record
X, Y, Width, Height : aliased Gint;
end record;
type Cairo_Region is private;
A Cairo_Region represents a set of integer-aligned rectangles.
It allows set-theoretical operations like Union and Intersect to be performed on them.
Memory management of Cairo_Region is done with Reference and Destroy.
Since: 1.10
type Cairo_Region_Overlap is
(Cairo_Region_Overlap_In,
Cairo_Region_Overlap_Out,
Cairo_Region_Overlap_Part
);
Used as the return value for Contains_Rectangle.
Completely inside region
Completely outside region
Partly inside region
function Contains_Point
(Region : Cairo_Region;
X : Gint;
Y : Gint) return Boolean
Checks whether (X,Y) is contained in Region.
function Contains_Rectangle
(Region : Cairo_Region;
Rectangle : access Cairo_Rectangle_Int) return Cairo_Region_Overlap
Checks whether Rectangle is inside, outside or partially contained in Region
function Copy (Original : Cairo_Region) return Cairo_Region
Allocates a new Cairo_Region object copying the area from Original.
A newly allocated Cairo_Region. Free with Destroy. This function always returns a valid Cairo_Region; if memory cannot be allocated, then a special error object is returned where all operations on the object do nothing. You can check for this with Status.
function Create return Cairo_Region
Allocates a new empty region object.
A newly allocated Cairo_Region. Free with Destroy. This function always returns a valid Cairo_Region; if memory cannot be allocated, then a special error object is returned where all operations on the object do nothing. You can check for this with Status.
function Create_Rectangle
(Rectangle : access Cairo_Rectangle_Int) return Cairo_Region
Allocates a new region object containing Rectangle.
A newly allocated Cairo_Region. Free with Destroy. This function always returns a valid Cairo_Region; if memory cannot be allocated, then a special error object is returned where all operations on the object do nothing. You can check for this with Status.
procedure Destroy (Region : Cairo_Region)
Destroys a Cairo_Region object created with Create, Copy or Create_Rectangle.
function Do_Xor
(Dst : Cairo_Region;
Other : Cairo_Region) return Cairo_Status
Computes the exclusive difference of Dst with Other and places the result in Dst.
Cairo_Status_Success or Cairo_Status_No_Memory.
procedure Get_Extents
(Region : Cairo_Region;
Extents : out Cairo_Rectangle_Int)
Gets the bounding rectangle of Region as a Cairo_Rectangle_Int
procedure Get_Rectangle
(Region : Cairo_Region;
Nth : Gint;
Rectangle : out Cairo_Rectangle_Int)
Stores the Nth rectangle from the region in Rectangle.
function Intersect
(Dst : Cairo_Region;
Other : Cairo_Region) return Cairo_Status
Computes the intersection of Dst with Other and places the result in Dst
Cairo_Status_Success or Cairo_Status_No_Memory.
function Intersect_Rectangle
(Dst : Cairo_Region;
Rectangle : access Cairo_Rectangle_Int) return Cairo_Status
Computes the intersection of Dst with Rectangle and places the result in Dst.
Cairo_Status_Success or Cairo_Status_No_Memory.
function Is_Empty (Region : Cairo_Region) return Boolean
Checks whether Region is empty.
Null_Region : constant Cairo_Region;
function Num_Rectangles (Region : Cairo_Region) return Gint
Returns the number of rectangle contained in Region
function Reference (Region : Cairo_Region) return Cairo_Region
Increases the reference count on Region by one. This prefents Region from being destroyed until a matching call to Destroy is made.
function Status (Region : Cairo_Region) return Cairo_Status
Checks whether an error has occured for this region object.
Cairo_Status_Success or Cairo_Status_No_Memory
function Subtract
(Dst : Cairo_Region;
Other : Cairo_Region) return Cairo_Status
Subtracts Other from Dst and places the result in Dst.
Cairo_Status_Success or Cairo_Status_No_Memory.
function Subtract_Rectangle
(Dst : Cairo_Region;
Rectangle : access Cairo_Rectangle_Int) return Cairo_Status
Subtracts Rectangle from Dst and places the result in Dst.
Cairo_Status_Success or Cairo_Status_No_Memory.
procedure Translate
(Region : Cairo_Region;
dX : Gint;
dY : Gint)
Translates Region by (dX,dY).
function Union
(Dst : Cairo_Region;
Other : Cairo_Region) return Cairo_Status
Computes the union of Dst with Other and places the result in Dst.
Cairo_Status_Success or Cairo_Status_No_Memory.
function Union_Rectangle
(Dst : Cairo_Region;
Rectangle : access Cairo_Rectangle_Int) return Cairo_Status
Computes the union of Dst with Rectangle and places the result in Dst.
Cairo_Status_Success or Cairo_Status_No_Memory.
function Xor_Rectangle
(Dst : Cairo_Region;
Rectangle : access Cairo_Rectangle_Int) return Cairo_Status
Computes the exclusive difference of Dst with Rectangle and places the result in Dst.
Cairo_Status_Success or Cairo_Status_No_Memory.