Rectangle

Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
Rectangle
Eina » Tools

These functions provide rectangle management. More...

## Data Structures
struct | _Eina_Rectangle

## Macros
#define | EINA_RECTANGLE_INIT { 0, 0, 0, 0}
#define | EINA_RECTANGLE_FORMAT "dx%d - %dx%d"
#define | EINA_RECTANGLE_ARGS(r) (r)->x, (r)->y, (r)->w, (r)->h
#define | EINA_RECTANGLE_SET(Rectangle, X, Y, W, H)
| Macro to set the values of a Eina_Rectangle. More...

## 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.

## Enumerations
enum | Eina_Rectangle_Packing { Eina_Packing_Descending, Eina_Packing_Ascending, Eina_Packing_Bottom_Left, Eina_Packing_Bottom_Left_Skyline, Eina_Packing_Bottom_Left_Skyline_Improved }

## Functions
static int | eina_spans_intersect (int c1, int l1, int c2, int l2) EINA_WARN_UNUSED_RESULT
| Check if the given spans intersect. More...
static Eina_Bool | eina_rectangle_is_empty (const Eina_Rectangle *r) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT
| Check if the given rectangle is empty. More...
static void | eina_rectangle_coords_from (Eina_Rectangle *r, int x, int y, int w, int h) EINA_ARG_NONNULL(1)
| Set the coordinates and size of the given rectangle. More...
static Eina_Bool | eina_rectangles_intersect (const Eina_Rectangle *r1, const Eina_Rectangle *r2) EINA_ARG_NONNULL(1
| Check if the given rectangles intersect. More...
static Eina_Bool | eina_rectangle_xcoord_inside (const Eina_Rectangle *r, int x) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT
| Check if the given x-coordinate is in the rectangle . More...
static Eina_Bool | eina_rectangle_ycoord_inside (const Eina_Rectangle *r, int y) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT
| Check if the given y-coordinate is in the rectangle . More...
static Eina_Bool | eina_rectangle_coords_inside (const Eina_Rectangle *r, int x, int y) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT
| Check if the given point is in the rectangle . More...
static void | eina_rectangle_union (Eina_Rectangle *dst, const Eina_Rectangle *src) EINA_ARG_NONNULL(1
| Get the union of two rectangles. More...
static void static Eina_Bool | eina_rectangle_intersection (Eina_Rectangle *dst, const Eina_Rectangle *src) EINA_ARG_NONNULL(1
| Get the intersection of two rectangles. More...
static void | eina_rectangle_rescale_in (const Eina_Rectangle *out, const Eina_Rectangle *in, Eina_Rectangle *res) EINA_ARG_NONNULL(1
| FIXME I am useless and used by no one. More...
static void static void | eina_rectangle_rescale_out (const Eina_Rectangle *out, const Eina_Rectangle *in, Eina_Rectangle *res) EINA_ARG_NONNULL(1
| FIXME I am useless and used by no one. More...
static void static void static Eina_Bool | eina_rectangle_is_valid (const Eina_Rectangle *r) EINA_ARG_NONNULL(1)
| Tells whether a rectangle is valid or not. More...
static int | eina_rectangle_max_x (Eina_Rectangle *thiz) EINA_ARG_NONNULL(1)
| Gives the rectangle maximum x coordinate. More...
static int | eina_rectangle_max_y (Eina_Rectangle *thiz) EINA_ARG_NONNULL(1)
| Gives the rectangle maximum y coordinate. More...
static Eina_Bool | eina_rectangle_x_cut (Eina_Rectangle *thiz, Eina_Rectangle *slice, Eina_Rectangle *remainder, int amount) EINA_ARG_NONNULL(1)
| Slices a rectangle vertically into two subrectangles starting from left edge. More...
static Eina_Bool | eina_rectangle_y_cut (Eina_Rectangle *thiz, Eina_Rectangle *slice, Eina_Rectangle *remainder, int amount) EINA_ARG_NONNULL(1)
| Slices a rectangle horizontally into two subrectangles starting from bottom edge. More...
static Eina_Bool | eina_rectangle_width_cut (Eina_Rectangle *thiz, Eina_Rectangle *slice, Eina_Rectangle *remainder, int amount) EINA_ARG_NONNULL(1)
| Slices a rectangle vertically starting from right edge. More...
static Eina_Bool | eina_rectangle_height_cut (Eina_Rectangle *thiz, Eina_Rectangle *slice, Eina_Rectangle *remainder, int amount) EINA_ARG_NONNULL(1)
| Slices a rectangle horizontally starting from top edge. More...
static Eina_Bool | eina_rectangle_subtract (Eina_Rectangle *thiz, Eina_Rectangle *other, Eina_Rectangle out[4]) EINA_ARG_NONNULL(1)
| Subtract two rectangles. More...
EAPI Eina_Rectangle_Pool * | eina_rectangle_pool_new (int w, int h) EINA_MALLOC EINA_WARN_UNUSED_RESULT
| Add a rectangle in a new pool. More...
EAPI Eina_Rectangle_Pool * | eina_rectangle_pool_get (Eina_Rectangle *rect) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1)
| Return the pool of the given rectangle. More...
EAPI Eina_Bool | eina_rectangle_pool_geometry_get (Eina_Rectangle_Pool *pool, int *w, int *h) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT
| Return the width and height of the given pool. More...
EAPI void * | eina_rectangle_pool_data_get (Eina_Rectangle_Pool *pool) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1)
| Get the data from the given pool. More...
EAPI void | eina_rectangle_pool_data_set (Eina_Rectangle_Pool *pool, const void *data) EINA_ARG_NONNULL(1)
| Set the data to the given pool. More...
EAPI void | eina_rectangle_pool_free (Eina_Rectangle_Pool *pool) EINA_ARG_NONNULL(1)
| Free the given pool. More...
EAPI int | eina_rectangle_pool_count (Eina_Rectangle_Pool *pool) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT
| Return the number of rectangles in the given pool. More...
EAPI Eina_Rectangle * | eina_rectangle_pool_request (Eina_Rectangle_Pool *pool, int w, int h) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1)
| Request a rectangle of given size in the given pool. More...
EAPI void | eina_rectangle_pool_release (Eina_Rectangle *rect) EINA_ARG_NONNULL(1)
| Remove the given rectangle from the pool. More...
EAPI Eina_Rectangle * | eina_rectangle_new (int x, int y, int w, int h) EINA_MALLOC EINA_WARN_UNUSED_RESULT
| Create a new rectangle. More...
EAPI void | eina_rectangle_free (Eina_Rectangle *rect) EINA_ARG_NONNULL(1)
| Free the given rectangle. More...
EAPI void | eina_rectangle_pool_packing_set (Eina_Rectangle_Pool *pool, Eina_Rectangle_Packing type) EINA_ARG_NONNULL(1)
| Sets the type of given rectangle pool. More...

## Variables
static Eina_Bool | EINA_WARN_UNUSED_RESULT

## Detailed Description

These functions provide rectangle management.

## Macro Definition Documentation

## ◆ EINA_RECTANGLE_SET

#define EINA_RECTANGLE_SET | ( |  | Rectangle,
|  |  | X,
|  |  | Y,
|  |  | W,
|  |  | H
| ) |  |

Value:
{ \
(Rectangle)->x = X; \
(Rectangle)->y = Y; \
(Rectangle)->w = W; \
(Rectangle)->h = 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().

## Enumeration Type Documentation

## ◆ Eina_Rectangle_Packing

enum Eina_Rectangle_Packing

Enumerator
Eina_Packing_Descending | Current.
Eina_Packing_Ascending | sorting in assending order
Eina_Packing_Bottom_Left | sorting in bottemleft fasion
Eina_Packing_Bottom_Left_Skyline | bottemleft skyline
Eina_Packing_Bottom_Left_Skyline_Improved | optimized bottemleft skyline

## Function Documentation

## ◆ eina_spans_intersect()

static int eina_spans_intersect | ( | int | c1,
|  | int | l1,
|  | int | c2,
|  | int | l2
| ) |  |
| inlinestatic

Check if the given spans intersect.

Parameters

  c1 | The column of the first span.
  l1 | The length of the first span.
  c2 | The column of the second span.
  l2 | The length of the second span.

Returns
  EINA_TRUE on success, EINA_FALSE otherwise.

This function returns EINA_TRUE if the given spans intersect, EINA_FALSE otherwise.

## ◆ eina_rectangle_is_empty()

static Eina_Bool eina_rectangle_is_empty | ( | const Eina_Rectangle * | r | ) |
| inlinestatic

Check if the given rectangle is empty.

Parameters

  r | The rectangle to check.

Returns
  EINA_TRUE if the rectangle is empty, EINA_FALSE otherwise.

This function returns EINA_TRUE if `r` is empty, EINA_FALSE otherwise. No check is done on `r`, so it must be a valid rectangle.

## ◆ eina_rectangle_coords_from()

static void eina_rectangle_coords_from | ( | Eina_Rectangle * | r,
|  | int | x,
|  | int | y,
|  | int | w,
|  | int | h
| ) |  |
| inlinestatic

Set the coordinates and size of the given rectangle.

Parameters

  r | The rectangle.
  x | The top-left x coordinate of the rectangle.
  y | The top-left y coordinate of the rectangle.
  w | The width of the rectangle.
  h | The height of the rectangle.

This function sets its top-left x coordinate to `x`, its top-left y coordinate to `y`, its width to `w` and its height to `h`. No check is done on `r`, so it must be a valid rectangle.

## ◆ eina_rectangles_intersect()

static Eina_Bool eina_rectangles_intersect | ( | const Eina_Rectangle * | r1,
|  | const Eina_Rectangle * | r2
| ) |  |
| inlinestatic

Check if the given rectangles intersect.

Parameters

  r1 | The first rectangle.
  r2 | The second rectangle.

Returns
  EINA_TRUE if the rectangles intersect, EINA_FALSE otherwise.

This function returns EINA_TRUE if `r1` and `r2` intersect, EINA_FALSE otherwise. No check is done on `r1` and `r2`, so they must be valid rectangles.

Referenced by eina_tiler_equal(), and eina_tiler_intersection().

## ◆ eina_rectangle_xcoord_inside()

static Eina_Bool eina_rectangle_xcoord_inside | ( | const Eina_Rectangle * | r,
|  | int | x
| ) |  |
| inlinestatic

Check if the given x-coordinate is in the rectangle .

Parameters

  r | The rectangle.
  x | The x coordinate.

Returns
  EINA_TRUE on success, EINA_FALSE otherwise.

This function returns EINA_TRUE if `x` is in `r` with respect to the horizontal direction, EINA_FALSE otherwise. No check is done on `r`, so it must be a valid rectangle.

## ◆ eina_rectangle_ycoord_inside()

static Eina_Bool eina_rectangle_ycoord_inside | ( | const Eina_Rectangle * | r,
|  | int | y
| ) |  |
| inlinestatic

Check if the given y-coordinate is in the rectangle .

Parameters

  r | The rectangle.
  y | The y coordinate.

Returns
  EINA_TRUE on success, EINA_FALSE otherwise.

This function returns EINA_TRUE if `y` is in `r` with respect to the vertical direction, EINA_FALSE otherwise. No check is done on `r`, so it must be a valid rectangle.

## ◆ eina_rectangle_coords_inside()

static Eina_Bool eina_rectangle_coords_inside | ( | const Eina_Rectangle * | r,
|  | int | x,
|  | int | y
| ) |  |
| inlinestatic

Check if the given point is in the rectangle .

Parameters

  r | The rectangle.
  x | The x coordinate of the point.
  y | The y coordinate of the point.

Returns
  EINA_TRUE on success, EINA_FALSE otherwise.

This function returns EINA_TRUE if the point of coordinate (`x`, `y`) is in `r`, EINA_FALSE otherwise. No check is done on `r`, so it must be a valid rectangle.

## ◆ eina_rectangle_union()

static void eina_rectangle_union | ( | Eina_Rectangle * | dst,
|  | const Eina_Rectangle * | src
| ) |  |
| inlinestatic

Get the union of two rectangles.

Parameters

  dst | The first rectangle.
  src | The second rectangle.

This function get the union of the rectangles `dst` and `src`. The result is stored in `dst`. No check is done on `dst` or `src`, so they must be valid rectangles.

## ◆ eina_rectangle_intersection()

static void static Eina_Bool eina_rectangle_intersection | ( | Eina_Rectangle * | dst,
|  | const Eina_Rectangle * | src
| ) |  |
| inlinestatic

Get the intersection of two rectangles.

Parameters

  dst | The first rectangle.
  src | The second rectangle.

Returns
  EINA_TRUE if the rectangles intersect, EINA_FALSE otherwise.

This function get the intersection of the rectangles `dst` and `src`. The result is stored in `dst`. No check is done on `dst` or `src`, so they must be valid rectangles.

## ◆ eina_rectangle_rescale_in()

static void eina_rectangle_rescale_in | ( | const Eina_Rectangle * | out,
|  | const Eina_Rectangle * | in,
|  | Eina_Rectangle * | res
| ) |  |
| inlinestatic

FIXME I am useless and used by no one.

Parameters

  in | The inner rectangle.
  out | The outer rectangle.
  res | The resulting rectangle.

## ◆ eina_rectangle_rescale_out()

static void static void eina_rectangle_rescale_out | ( | const Eina_Rectangle * | out,
|  | const Eina_Rectangle * | in,
|  | Eina_Rectangle * | res
| ) |  |
| inlinestatic

FIXME I am useless and used by no one.

Parameters

  in | The inner rectangle.
  out | The outer rectangle.
  res | The resulting rectangle.

## ◆ eina_rectangle_is_valid()

static void static void static Eina_Bool eina_rectangle_is_valid | ( | const Eina_Rectangle * | r | ) |
| inlinestatic

Tells whether a rectangle is valid or not.

Parameters

  r | The rectangle

Returns
  EINA_TRUE if the rectangle is valid, EINA_FALSE otherwise.

This function checks if both width and height attributes of the rectangle are positive integers. If so, the rectangle is considered valid, else the rectangle is invalid.

## ◆ eina_rectangle_max_x()

static int eina_rectangle_max_x | ( | Eina_Rectangle * | thiz | ) |
| inlinestatic

Gives the rectangle maximum x coordinate.

Parameters

  thiz | The rectangle

Returns
  the maximum x coordinate

This function calculates the maximum x coordinate of the rectangle by summing the `width` with the current `x` coodinate of the rectangle.

## ◆ eina_rectangle_max_y()

static int eina_rectangle_max_y | ( | Eina_Rectangle * | thiz | ) |
| inlinestatic

Gives the rectangle maximum y coordinate.

Parameters

  thiz | The rectangle

Returns
  the maximum y coordinate

This function calculates the maximum y coordinate of the rectangle by summing the `height` with the current `y` coodinate of the rectangle.

## ◆ eina_rectangle_x_cut()

static Eina_Bool eina_rectangle_x_cut | ( | Eina_Rectangle * | thiz,
|  | Eina_Rectangle * | slice,
|  | Eina_Rectangle * | remainder,
|  | int | amount
| ) |  |
| inlinestatic

Slices a rectangle vertically into two subrectangles starting from left edge.

Parameters

  thiz | The rectangle to slice
  slice | The sliced part of the rectangle
  remainder | The left over part of the original rectangle after slice
  amount | The x inner coordinate of the rectangle where to perform the slicing.

Returns
  EINA_TRUE if the cut succeeds, EINA_FALSE otherwise

Use this function if we must cut a rectangle vertically. The `amount` parameter defines the x inner coordinate where to do the cut, starting from the left edge of the rectangle. If the `amount` value is greater than the rectangle width, there will be not cut possible and EINA_FALSE will be returned.

## ◆ eina_rectangle_y_cut()

static Eina_Bool eina_rectangle_y_cut | ( | Eina_Rectangle * | thiz,
|  | Eina_Rectangle * | slice,
|  | Eina_Rectangle * | remainder,
|  | int | amount
| ) |  |
| inlinestatic

Slices a rectangle horizontally into two subrectangles starting from bottom edge.

Parameters

  thiz | The rectangle to slice
  slice | The sliced part of the rectangle
  remainder | The left over part of the original rectangle after slice
  amount | The y inner coordinate of the rectangle where to perform the slicing.

Returns
  EINA_TRUE if the cut succeeds, EINA_FALSE otherwise

Use this function if we must cut a rectangle horizontally. The `amount` parameter defines the y inner coordinate where to do the cut, starting from the bottom edge of the rectangle. If the `amount` value is greater than the rectangle width, there will be not cut possible and EINA_FALSE will be returned.

## ◆ eina_rectangle_width_cut()

static Eina_Bool eina_rectangle_width_cut | ( | Eina_Rectangle * | thiz,
|  | Eina_Rectangle * | slice,
|  | Eina_Rectangle * | remainder,
|  | int | amount
| ) |  |
| inlinestatic

Slices a rectangle vertically starting from right edge.

Parameters

  thiz | The rectangle to slice
  slice | The sliced part of the rectangle
  remainder | The left over part of the original rectangle after slice
  amount | The amount to cut off the rectangle starting from the right edge

Returns
  EINA_TRUE if the cut succeeds, EINA_FALSE otherwise

Use this function if we must cut a rectangle vertically. The `amount` parameter defines the inner x coordinate where to do the cut, starting from the right edge of the rectangle. If the `amount` value is greater than the rectangle width, there will be not cut possible and EINA_FALSE will be returned.

## ◆ eina_rectangle_height_cut()

static Eina_Bool eina_rectangle_height_cut | ( | Eina_Rectangle * | thiz,
|  | Eina_Rectangle * | slice,
|  | Eina_Rectangle * | remainder,
|  | int | amount
| ) |  |
| inlinestatic

Slices a rectangle horizontally starting from top edge.

Parameters

  thiz | The rectangle to slice
  slice | The sliced part of the rectangle
  remainder | The left over part of the original rectangle after slice
  amount | The amount to cut off the rectangle starting from the top edge

Returns
  EINA_TRUE if the cut succeeds, EINA_FALSE otherwise

Use this function if we must cut a rectangle horizontally. The `amount` parameter defines the inner y coordinate where to do the cut, starting from the top edge of the rectangle. If the `amount` value is greater than the rectangle width, there will be not cut possible and EINA_FALSE will be returned.

## ◆ eina_rectangle_subtract()

static Eina_Bool eina_rectangle_subtract | ( | Eina_Rectangle * | thiz,
|  | Eina_Rectangle * | other,
|  | Eina_Rectangle | out[4]
| ) |  |
| inlinestatic

Subtract two rectangles.

Parameters

  thiz | The minuend rectangle
  other | The subtrahend rectangle

This function subtract two rectangles. The difference is stored on `out` There will be at most four differences, use eina_rectangle_is_valid to confirm the number of differences.

## ◆ eina_rectangle_pool_new()

EAPI 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 DBG, EINA_FALSE, eina_list_append(), EINA_MAGIC_SET, Eina_Packing_Ascending, and eina_rectangle_new().

## ◆ eina_rectangle_pool_get()

EAPI 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()

EAPI 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.

## ◆ eina_rectangle_pool_data_get()

EAPI 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()

EAPI 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()

EAPI 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.

## ◆ eina_rectangle_pool_count()

EAPI 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()

EAPI 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`.

## ◆ eina_rectangle_pool_release()

EAPI 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.

## ◆ eina_rectangle_new()

EAPI 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_mempool_malloc(), EINA_RECTANGLE_SET, and eina_trash_pop().

Referenced by eina_rectangle_pool_new().

## ◆ eina_rectangle_free()

EAPI 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.

Referenced by evas_free(), and evas_render_updates_free().

## ◆ eina_rectangle_pool_packing_set()

EAPI void eina_rectangle_pool_packing_set | ( | Eina_Rectangle_Pool * | pool,
|  | Eina_Rectangle_Packing | type
| ) |  |

Sets the type of given rectangle pool.

Parameters

  pool | The rectangle pool for which type is to be set.

This function sets `type` of `pool`.

See also
  Eina_Rectangle_Packing

Since
  1.11