Data Structures | |
struct | _Eina_Rectangle |
Macros | |
#define | EINA_RECTANGLE_SET(Rectangle, X, Y, W, H) |
Macro to set the values of a Eina_Rectangle. | |
Typedefs | |
typedef struct _Eina_Rectangle | Eina_Rectangle |
Simple rectangle structure. | |
typedef struct _Eina_Rectangle_Pool | Eina_Rectangle_Pool |
Type for an opaque pool of rectangle. | |
Functions | |
static int | eina_spans_intersect (int c1, int l1, int c2, int l2) |
static Eina_Bool | eina_rectangle_is_empty (const Eina_Rectangle *r) |
static void | eina_rectangle_coords_from (Eina_Rectangle *r, int x, int y, int w, int h) |
static Eina_Bool | eina_rectangles_intersect (const Eina_Rectangle *r1, const Eina_Rectangle *r2) |
static Eina_Bool | eina_rectangle_xcoord_inside (const Eina_Rectangle *r, int x) |
static Eina_Bool | eina_rectangle_ycoord_inside (const Eina_Rectangle *r, int y) |
static Eina_Bool | eina_rectangle_coords_inside (const Eina_Rectangle *r, int x, int y) |
static void | eina_rectangle_union (Eina_Rectangle *dst, const Eina_Rectangle *src) |
static Eina_Bool | eina_rectangle_intersection (Eina_Rectangle *dst, const Eina_Rectangle *src) |
static void | eina_rectangle_rescale_in (const Eina_Rectangle *out, const Eina_Rectangle *in, Eina_Rectangle *res) |
static void | eina_rectangle_rescale_out (const Eina_Rectangle *out, const Eina_Rectangle *in, Eina_Rectangle *res) |
Eina_Rectangle_Pool * | eina_rectangle_pool_new (int w, int h) |
Add a rectangle in a new pool. | |
Eina_Rectangle_Pool * | eina_rectangle_pool_get (Eina_Rectangle *rect) |
Return the pool of the given rectangle. | |
Eina_Bool | eina_rectangle_pool_geometry_get (Eina_Rectangle_Pool *pool, int *w, int *h) |
Return the width and height of the given pool. | |
void * | eina_rectangle_pool_data_get (Eina_Rectangle_Pool *pool) |
Get the data from the given pool. | |
void | eina_rectangle_pool_data_set (Eina_Rectangle_Pool *pool, const void *data) |
Set the data to the given pool. | |
void | eina_rectangle_pool_free (Eina_Rectangle_Pool *pool) |
Free the given pool. | |
int | eina_rectangle_pool_count (Eina_Rectangle_Pool *pool) |
Return the number of rectangles in the given pool. | |
Eina_Rectangle * | eina_rectangle_pool_request (Eina_Rectangle_Pool *pool, int w, int h) |
Request a rectangle of given size in the given pool. | |
void | eina_rectangle_pool_release (Eina_Rectangle *rect) |
Remove the given rectangle from the pool. | |
Eina_Rectangle * | eina_rectangle_new (int x, int y, int w, int h) |
Create a new rectangle. | |
void | eina_rectangle_free (Eina_Rectangle *rect) |
Free the given rectangle. | |
Detailed Description
These functions provide rectangle management.
Macro Definition Documentation
◆ EINA_RECTANGLE_SET
#define EINA_RECTANGLE_SET | ( | Rectangle, | |
X, | |||
Y, | |||
W, | |||
H ) |
Macro to set the values of a Eina_Rectangle.
- Parameters
-
Rectangle The rectangle to set the values. X The X coordinate of the top left corner of the rectangle. Y The Y coordinate of the top left corner of the rectangle. W The width of the rectangle. H The height of the rectangle.
This macro set the values of Rectangle
. (X
, Y
) is the coordinates of the top left corner of Rectangle
, W
is its width and H
is its height.
Referenced by eina_rectangle_new().
Function Documentation
◆ eina_rectangle_pool_new()
Eina_Rectangle_Pool * eina_rectangle_pool_new | ( | int | w, |
int | h ) |
Add a rectangle in a new pool.
- Parameters
-
w The width of the rectangle. h The height of the rectangle.
- Returns
- A newly allocated pool on success,
NULL
otherwise.
This function adds the rectangle of size (width
, height
) to a new pool. If the pool can not be created, NULL
is returned. Otherwise the newly allocated pool is returned.
References EINA_FALSE, eina_list_append(), EINA_MAGIC_SET, and eina_rectangle_new().
◆ eina_rectangle_pool_get()
Eina_Rectangle_Pool * eina_rectangle_pool_get | ( | Eina_Rectangle * | rect | ) |
Return the pool of the given rectangle.
- Parameters
-
rect The rectangle.
- Returns
- The pool of the given rectangle.
This function returns the pool in which rect
is. If rect
is NULL
, NULL
is returned.
◆ eina_rectangle_pool_geometry_get()
Eina_Bool eina_rectangle_pool_geometry_get | ( | Eina_Rectangle_Pool * | pool, |
int * | w, | ||
int * | h ) |
Return the width and height of the given pool.
- Parameters
-
pool The pool. w The returned width. h The returned height.
- Returns
- EINA_TRUE on success, EINA_FALSE otherwise.
This function returns the width and height of pool
and store them in respectively w
and h
if they are not NULL
. If pool
is NULL
, EINA_FALSE is returned. Otherwise EINA_TRUE is returned.
References EINA_FALSE, and EINA_TRUE.
◆ eina_rectangle_pool_data_get()
void * eina_rectangle_pool_data_get | ( | Eina_Rectangle_Pool * | pool | ) |
Get the data from the given pool.
- Parameters
-
pool The pool.
- Returns
- The returned data.
This function gets the data from pool
set by eina_rectangle_pool_data_set(). If pool
is NULL
, this function returns NULL
.
◆ eina_rectangle_pool_data_set()
void eina_rectangle_pool_data_set | ( | Eina_Rectangle_Pool * | pool, |
const void * | data ) |
Set the data to the given pool.
- Parameters
-
pool The pool. data The data to set.
This function sets data
to pool
. If pool
is NULL
, this function does nothing.
◆ eina_rectangle_pool_free()
void eina_rectangle_pool_free | ( | Eina_Rectangle_Pool * | pool | ) |
Free the given pool.
- Parameters
-
pool The pool to free.
This function frees the allocated data of pool
. If pool
is NULL
, this function returned immediately.
References EINA_INLIST_GET, EINA_MAGIC_NONE, and EINA_MAGIC_SET.
◆ eina_rectangle_pool_count()
int eina_rectangle_pool_count | ( | Eina_Rectangle_Pool * | pool | ) |
Return the number of rectangles in the given pool.
- Parameters
-
pool The pool.
- Returns
- The number of rectangles in the pool.
This function returns the number of rectangles in pool
.
◆ eina_rectangle_pool_request()
Eina_Rectangle * eina_rectangle_pool_request | ( | Eina_Rectangle_Pool * | pool, |
int | w, | ||
int | h ) |
Request a rectangle of given size in the given pool.
- Parameters
-
pool The pool. w The width of the rectangle to request. h The height of the rectangle to request.
- Returns
- The requested rectangle on success,
NULL
otherwise.
This function retrieve from pool
the rectangle of width w
and height h
. If pool
is NULL
, or w
or h
are non-positive, the function returns NULL
. If w
or h
are greater than the pool size, the function returns NULL
. On success, the function returns the rectangle which matches the size (w
, h
). Otherwise it returns NULL
.
References EINA_COMPARE_CB, EINA_FALSE, EINA_INLIST_GET, eina_inlist_prepend(), eina_list_sort(), EINA_MAGIC_SET, and EINA_TRUE.
◆ eina_rectangle_pool_release()
void eina_rectangle_pool_release | ( | Eina_Rectangle * | rect | ) |
Remove the given rectangle from the pool.
- Parameters
-
rect The rectangle to remove from the pool.
This function removes rect
from the pool. If rect
is NULL
, the function returns immediately. Otherwise it removes rect
from the pool.
References EINA_FALSE, EINA_INLIST_GET, eina_inlist_remove(), EINA_MAGIC_NONE, EINA_MAGIC_SET, and eina_rectangle_new().
◆ eina_rectangle_new()
Eina_Rectangle * eina_rectangle_new | ( | int | x, |
int | y, | ||
int | w, | ||
int | h ) |
Create a new rectangle.
- Parameters
-
x The X coordinate of the top left corner of the rectangle. y The Y coordinate of the top left corner of the rectangle. w The width of the rectangle. h The height of the rectangle.
- Returns
- The new rectangle on success, @ NULL otherwise.
This function creates a rectangle which top left corner has the coordinates (x
, y
), with height w
and height h
and adds it to the rectangles pool. No check is done on w
and h
. This function returns a new rectangle on success, NULL
otherwhise.
References EINA_RECTANGLE_SET.
Referenced by eina_rectangle_pool_new(), and eina_rectangle_pool_release().
◆ eina_rectangle_free()
void eina_rectangle_free | ( | Eina_Rectangle * | rect | ) |
Free the given rectangle.
- Parameters
-
rect The rectangle to free.
This function removes rect
from the rectangles pool.