# lv_area.h (/api/misc/lv_area_h)



<RelatedHeaders name="lv_area_private.h" isPrivate="false" />

<ApiSummary functions="20" enums="2" structs="3" macros="18" />

Functions [#functions]

<ApiTabs items="[&#x22;Setters (5)&#x22;,&#x22;Getters (3)&#x22;,&#x22;Other (12)&#x22;]">
  <ApiTab value="Setters (5)">
    <ApiMember kind="function" name="lv_area_set" file="misc/lv_area.h" line="100" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L100">
      lv_area_set [#lv_area_set]

      Initialize an area

      ```c title=" " lineNumbers=1
      void lv_area_set(lv_area_t *area_p, int32_t x1, int32_t y1, int32_t x2, int32_t y2)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name     | Type                                               | Description                   |
      | -------- | -------------------------------------------------- | ----------------------------- |
      | `area_p` | <ApiLink name="lv_area_t" display="lv_area_t *" /> | pointer to an area            |
      | `x1`     | <ApiLink name="int32_t" />                         | left coordinate of the area   |
      | `y1`     | <ApiLink name="int32_t" />                         | top coordinate of the area    |
      | `x2`     | <ApiLink name="int32_t" />                         | right coordinate of the area  |
      | `y2`     | <ApiLink name="int32_t" />                         | bottom coordinate of the area |
    </ApiMember>

    <ApiMember kind="function" name="lv_area_set_width" file="misc/lv_area.h" line="134" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L134">
      lv_area_set_width [#lv_area_set_width]

      Set the width of an area

      ```c title=" " lineNumbers=1
      void lv_area_set_width(lv_area_t *area_p, int32_t w)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name     | Type                                               | Description                                       |
      | -------- | -------------------------------------------------- | ------------------------------------------------- |
      | `area_p` | <ApiLink name="lv_area_t" display="lv_area_t *" /> | pointer to an area                                |
      | `w`      | <ApiLink name="int32_t" />                         | the new width of the area (w == 1 makes x1 == x2) |
    </ApiMember>

    <ApiMember kind="function" name="lv_area_set_height" file="misc/lv_area.h" line="141" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L141">
      lv_area_set_height [#lv_area_set_height]

      Set the height of an area

      ```c title=" " lineNumbers=1
      void lv_area_set_height(lv_area_t *area_p, int32_t h)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name     | Type                                               | Description                                        |
      | -------- | -------------------------------------------------- | -------------------------------------------------- |
      | `area_p` | <ApiLink name="lv_area_t" display="lv_area_t *" /> | pointer to an area                                 |
      | `h`      | <ApiLink name="int32_t" />                         | the new height of the area (h == 1 makes y1 == y2) |
    </ApiMember>

    <ApiMember kind="function" name="lv_point_set" file="misc/lv_area.h" line="194" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L194">
      lv_point_set [#lv_point_set]

      ```c title=" " lineNumbers=1
      void lv_point_set(lv_point_t *p, int32_t x, int32_t y)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name | Type                                                 |
      | ---- | ---------------------------------------------------- |
      | `p`  | <ApiLink name="lv_point_t" display="lv_point_t *" /> |
      | `x`  | <ApiLink name="int32_t" />                           |
      | `y`  | <ApiLink name="int32_t" />                           |
    </ApiMember>

    <ApiMember kind="function" name="lv_point_precise_set" file="misc/lv_area.h" line="196" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L196">
      lv_point_precise_set [#lv_point_precise_set]

      ```c title=" " lineNumbers=1
      void lv_point_precise_set(lv_point_precise_t *p, lv_value_precise_t x, lv_value_precise_t y)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name | Type                                                                 |
      | ---- | -------------------------------------------------------------------- |
      | `p`  | <ApiLink name="lv_point_precise_t" display="lv_point_precise_t *" /> |
      | `x`  | <ApiLink name="lv_value_precise_t" />                                |
      | `y`  | <ApiLink name="lv_value_precise_t" />                                |
    </ApiMember>
  </ApiTab>

  <ApiTab value="Getters (3)">
    <ApiMember kind="function" name="lv_area_get_width" file="misc/lv_area.h" line="120" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L120">
      lv_area_get_width [#lv_area_get_width]

      Get the width of an area

      ```c title=" " lineNumbers=1
      int32_t lv_area_get_width(const lv_area_t *area_p)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name     | Type                                                     | Description        |
      | -------- | -------------------------------------------------------- | ------------------ |
      | `area_p` | <ApiLink name="lv_area_t" display="const lv_area_t *" /> | pointer to an area |

      **Returns:** <ApiLink name="int32_t" /> — the width of the area (if x1 == x2 -> width = 1)
    </ApiMember>

    <ApiMember kind="function" name="lv_area_get_height" file="misc/lv_area.h" line="127" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L127">
      lv_area_get_height [#lv_area_get_height]

      Get the height of an area

      ```c title=" " lineNumbers=1
      int32_t lv_area_get_height(const lv_area_t *area_p)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name     | Type                                                     | Description        |
      | -------- | -------------------------------------------------------- | ------------------ |
      | `area_p` | <ApiLink name="lv_area_t" display="const lv_area_t *" /> | pointer to an area |

      **Returns:** <ApiLink name="int32_t" /> — the height of the area (if y1 == y2 -> height = 1)
    </ApiMember>

    <ApiMember kind="function" name="lv_area_get_size" file="misc/lv_area.h" line="148" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L148">
      lv_area_get_size [#lv_area_get_size]

      Return with area of an area (x \* y)

      ```c title=" " lineNumbers=1
      uint32_t lv_area_get_size(const lv_area_t *area_p)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name     | Type                                                     | Description        |
      | -------- | -------------------------------------------------------- | ------------------ |
      | `area_p` | <ApiLink name="lv_area_t" display="const lv_area_t *" /> | pointer to an area |

      **Returns:** <ApiLink name="uint32_t" /> — size of area
    </ApiMember>
  </ApiTab>

  <ApiTab value="Other (12)">
    <ApiMember kind="function" name="lv_area_copy" file="misc/lv_area.h" line="107" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L107">
      lv_area_copy [#lv_area_copy]

      Copy an area

      ```c title=" " lineNumbers=1
      static void lv_area_copy(lv_area_t *dest, const lv_area_t *src)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name   | Type                                                     | Description                     |
      | ------ | -------------------------------------------------------- | ------------------------------- |
      | `dest` | <ApiLink name="lv_area_t" display="lv_area_t *" />       | pointer to the destination area |
      | `src`  | <ApiLink name="lv_area_t" display="const lv_area_t *" /> | pointer to the source area      |
    </ApiMember>

    <ApiMember kind="function" name="lv_area_increase" file="misc/lv_area.h" line="150" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L150">
      lv_area_increase [#lv_area_increase]

      ```c title=" " lineNumbers=1
      void lv_area_increase(lv_area_t *area, int32_t w_extra, int32_t h_extra)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name      | Type                                               |
      | --------- | -------------------------------------------------- |
      | `area`    | <ApiLink name="lv_area_t" display="lv_area_t *" /> |
      | `w_extra` | <ApiLink name="int32_t" />                         |
      | `h_extra` | <ApiLink name="int32_t" />                         |
    </ApiMember>

    <ApiMember kind="function" name="lv_area_move" file="misc/lv_area.h" line="152" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L152">
      lv_area_move [#lv_area_move]

      ```c title=" " lineNumbers=1
      void lv_area_move(lv_area_t *area, int32_t x_ofs, int32_t y_ofs)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name    | Type                                               |
      | ------- | -------------------------------------------------- |
      | `area`  | <ApiLink name="lv_area_t" display="lv_area_t *" /> |
      | `x_ofs` | <ApiLink name="int32_t" />                         |
      | `y_ofs` | <ApiLink name="int32_t" />                         |
    </ApiMember>

    <ApiMember kind="function" name="lv_area_align" file="misc/lv_area.h" line="162" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L162">
      lv_area_align [#lv_area_align]

      Align an area to another

      ```c title=" " lineNumbers=1
      void lv_area_align(const lv_area_t *base, lv_area_t *to_align, lv_align_t align, int32_t ofs_x, int32_t ofs_y)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name       | Type                                                     | Description                             |
      | ---------- | -------------------------------------------------------- | --------------------------------------- |
      | `base`     | <ApiLink name="lv_area_t" display="const lv_area_t *" /> | an area where the other will be aligned |
      | `to_align` | <ApiLink name="lv_area_t" display="lv_area_t *" />       | the area to align                       |
      | `align`    | <ApiLink name="lv_align_t" />                            | `LV_ALIGN_...`                          |
      | `ofs_x`    | <ApiLink name="int32_t" />                               | X offset                                |
      | `ofs_y`    | <ApiLink name="int32_t" />                               | Y offset                                |
    </ApiMember>

    <ApiMember kind="function" name="lv_point_transform" file="misc/lv_area.h" line="173" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L173">
      lv_point_transform [#lv_point_transform]

      Transform a point

      ```c title=" " lineNumbers=1
      void lv_point_transform(lv_point_t *point, int32_t angle, int32_t scale_x, int32_t scale_y, const lv_point_t *pivot, bool zoom_first)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name         | Type                                                       | Description                                                  |
      | ------------ | ---------------------------------------------------------- | ------------------------------------------------------------ |
      | `point`      | <ApiLink name="lv_point_t" display="lv_point_t *" />       | pointer to a point                                           |
      | `angle`      | <ApiLink name="int32_t" />                                 | angle with 0.1 resolutions (123 means 12.3°)                 |
      | `scale_x`    | <ApiLink name="int32_t" />                                 | horizontal zoom, 256 means 100%                              |
      | `scale_y`    | <ApiLink name="int32_t" />                                 | vertical zoom, 256 means 100%                                |
      | `pivot`      | <ApiLink name="lv_point_t" display="const lv_point_t *" /> | pointer to the pivot point of the transformation             |
      | `zoom_first` | <ApiLink name="bool" />                                    | true: zoom first and rotate after that; else: opposite order |
    </ApiMember>

    <ApiMember kind="function" name="lv_point_array_transform" file="misc/lv_area.h" line="186" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L186">
      lv_point_array_transform [#lv_point_array_transform]

      Transform an array of points

      ```c title=" " lineNumbers=1
      void lv_point_array_transform(lv_point_t *points, size_t count, int32_t angle, int32_t scale_x, int32_t scale_y, const lv_point_t *pivot, bool zoom_first)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name         | Type                                                       | Description                                                  |
      | ------------ | ---------------------------------------------------------- | ------------------------------------------------------------ |
      | `points`     | <ApiLink name="lv_point_t" display="lv_point_t *" />       | pointer to an array of points                                |
      | `count`      | <ApiLink name="size_t" />                                  | number of points in the array                                |
      | `angle`      | <ApiLink name="int32_t" />                                 | angle with 0.1 resolutions (123 means 12.3°)                 |
      | `scale_x`    | <ApiLink name="int32_t" />                                 | horizontal zoom, 256 means 100%                              |
      | `scale_y`    | <ApiLink name="int32_t" />                                 | vertical zoom, 256 means 100%                                |
      | `pivot`      | <ApiLink name="lv_point_t" display="const lv_point_t *" /> | pointer to the pivot point of the transformation             |
      | `zoom_first` | <ApiLink name="bool" />                                    | true: zoom first and rotate after that; else: opposite order |
    </ApiMember>

    <ApiMember kind="function" name="lv_point_from_precise" file="misc/lv_area.h" line="190" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L190">
      lv_point_from_precise [#lv_point_from_precise]

      ```c title=" " lineNumbers=1
      lv_point_t lv_point_from_precise(const lv_point_precise_t *p)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name | Type                                                                       |
      | ---- | -------------------------------------------------------------------------- |
      | `p`  | <ApiLink name="lv_point_precise_t" display="const lv_point_precise_t *" /> |
    </ApiMember>

    <ApiMember kind="function" name="lv_point_to_precise" file="misc/lv_area.h" line="192" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L192">
      lv_point_to_precise [#lv_point_to_precise]

      ```c title=" " lineNumbers=1
      lv_point_precise_t lv_point_to_precise(const lv_point_t *p)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name | Type                                                       |
      | ---- | ---------------------------------------------------------- |
      | `p`  | <ApiLink name="lv_point_t" display="const lv_point_t *" /> |
    </ApiMember>

    <ApiMember kind="function" name="lv_point_swap" file="misc/lv_area.h" line="198" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L198">
      lv_point_swap [#lv_point_swap]

      ```c title=" " lineNumbers=1
      void lv_point_swap(lv_point_t *p1, lv_point_t *p2)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name | Type                                                 |
      | ---- | ---------------------------------------------------- |
      | `p1` | <ApiLink name="lv_point_t" display="lv_point_t *" /> |
      | `p2` | <ApiLink name="lv_point_t" display="lv_point_t *" /> |
    </ApiMember>

    <ApiMember kind="function" name="lv_point_precise_swap" file="misc/lv_area.h" line="200" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L200">
      lv_point_precise_swap [#lv_point_precise_swap]

      ```c title=" " lineNumbers=1
      void lv_point_precise_swap(lv_point_precise_t *p1, lv_point_precise_t *p2)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name | Type                                                                 |
      | ---- | -------------------------------------------------------------------- |
      | `p1` | <ApiLink name="lv_point_precise_t" display="lv_point_precise_t *" /> |
      | `p2` | <ApiLink name="lv_point_precise_t" display="lv_point_precise_t *" /> |
    </ApiMember>

    <ApiMember kind="function" name="lv_pct" file="misc/lv_area.h" line="246" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L246">
      lv_pct [#lv_pct]

      Convert a percentage value to `int32_t`. Percentage values are stored in special range

      ```c title=" " lineNumbers=1
      int32_t lv_pct(int32_t x)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name | Type                       | Description              |
      | ---- | -------------------------- | ------------------------ |
      | `x`  | <ApiLink name="int32_t" /> | the percentage (0..1000) |

      **Returns:** <ApiLink name="int32_t" /> — a coordinate that stores the percentage
    </ApiMember>

    <ApiMember kind="function" name="lv_pct_to_px" file="misc/lv_area.h" line="248" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L248">
      lv_pct_to_px [#lv_pct_to_px]

      ```c title=" " lineNumbers=1
      int32_t lv_pct_to_px(int32_t v, int32_t base)
      ```

      <span className="sr-only">
        Parameters
      </span>

      | Name   | Type                       |
      | ------ | -------------------------- |
      | `v`    | <ApiLink name="int32_t" /> |
      | `base` | <ApiLink name="int32_t" /> |
    </ApiMember>
  </ApiTab>
</ApiTabs>

Enums [#enums]

<ApiMember kind="enum" name="lv_align_t" file="misc/lv_area.h" line="51" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L51">
  lv_align_t [#lv_align_t]

  Alignments

  | Name                        | Value |
  | --------------------------- | ----- |
  | `LV_ALIGN_DEFAULT`          | `0`   |
  | `LV_ALIGN_TOP_LEFT`         |       |
  | `LV_ALIGN_TOP_MID`          |       |
  | `LV_ALIGN_TOP_RIGHT`        |       |
  | `LV_ALIGN_BOTTOM_LEFT`      |       |
  | `LV_ALIGN_BOTTOM_MID`       |       |
  | `LV_ALIGN_BOTTOM_RIGHT`     |       |
  | `LV_ALIGN_LEFT_MID`         |       |
  | `LV_ALIGN_RIGHT_MID`        |       |
  | `LV_ALIGN_CENTER`           |       |
  | `LV_ALIGN_OUT_TOP_LEFT`     |       |
  | `LV_ALIGN_OUT_TOP_MID`      |       |
  | `LV_ALIGN_OUT_TOP_RIGHT`    |       |
  | `LV_ALIGN_OUT_BOTTOM_LEFT`  |       |
  | `LV_ALIGN_OUT_BOTTOM_MID`   |       |
  | `LV_ALIGN_OUT_BOTTOM_RIGHT` |       |
  | `LV_ALIGN_OUT_LEFT_TOP`     |       |
  | `LV_ALIGN_OUT_LEFT_MID`     |       |
  | `LV_ALIGN_OUT_LEFT_BOTTOM`  |       |
  | `LV_ALIGN_OUT_RIGHT_TOP`    |       |
  | `LV_ALIGN_OUT_RIGHT_MID`    |       |
  | `LV_ALIGN_OUT_RIGHT_BOTTOM` |       |
</ApiMember>

<TypeUsedBy name="lv_align_t" count="6">
  * `lv_obj_set_align` — param `align`
  * `lv_obj_align` — param `align`
  * `lv_obj_align_to` — param `align`
  * `lv_obj_set_style_align` — param `value`
  * `lv_area_align` — param `align`
  * `lv_style_set_align` — param `value`
</TypeUsedBy>

<ApiMember kind="enum" name="lv_dir_t" file="misc/lv_area.h" line="77" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L77">
  lv_dir_t [#lv_dir_t]

  | Name            | Value                         |
  | --------------- | ----------------------------- |
  | `LV_DIR_NONE`   | `0x00`                        |
  | `LV_DIR_LEFT`   | `(1 << 0)`                    |
  | `LV_DIR_RIGHT`  | `(1 << 1)`                    |
  | `LV_DIR_TOP`    | `(1 << 2)`                    |
  | `LV_DIR_BOTTOM` | `(1 << 3)`                    |
  | `LV_DIR_HOR`    | `LV_DIR_LEFT \| LV_DIR_RIGHT` |
  | `LV_DIR_VER`    | `LV_DIR_TOP \| LV_DIR_BOTTOM` |
  | `LV_DIR_ALL`    | `LV_DIR_HOR \| LV_DIR_VER`    |
</ApiMember>

<TypeUsedBy name="lv_dir_t" count="8">
  * `lv_obj_set_scroll_dir` — param `dir`
  * `lv_indev_scroll_throw_predict` — param `dir`
  * `lv_barcode_set_direction` — param `direction`
  * `lv_chart_add_cursor` — param `dir`
  * `lv_dropdown_set_dir` — param `dir`
  * `lv_spinbox_set_digit_step_direction` — param `direction`
  * `lv_tabview_set_tab_bar_position` — param `dir`
  * `lv_tileview_add_tile` — param `dir`
</TypeUsedBy>

Structs [#structs]

<ApiMember kind="struct" name="lv_point_t">
  lv_point_t [#lv_point_t]

  Represents a point on the screen.

  | Member | Type                       | Description |
  | ------ | -------------------------- | ----------- |
  | `x`    | <ApiLink name="int32_t" /> |             |
  | `y`    | <ApiLink name="int32_t" /> |             |
</ApiMember>

<TypeUsedBy name="lv_point_t" count="45">
  * `lv_obj_transform_point` — param `p`
  * `lv_obj_transform_point_array` — param `points`
  * `lv_obj_hit_test` — param `point`
  * `lv_obj_get_scroll_end` — param `end`
  * `lv_test_gesture_set_pinch_data` — param `point_0`
  * `lv_test_gesture_set_pinch_data` — param `point_1`
  * `lv_test_gesture_pinch` — param `point_begin_0`
  * `lv_test_gesture_pinch` — param `point_begin_1`
  * `lv_test_gesture_pinch` — param `point_end_0`
  * `lv_test_gesture_pinch` — param `point_end_1`
  * `lv_display_rotate_point` — param `point`
  * `lv_image_buf_get_transformed_area` — param `pivot`
  * `lv_draw_character` — param `point`
  * `lv_draw_letter` — param `point`
  * `lv_draw_unit_draw_letter` — param `pos`
  * `lv_uefi_simple_pointer_indev_create` — param `display_res`
  * `lv_uefi_absolute_pointer_indev_create` — param `display_res`
  * `lv_indev_set_button_points` — param `points`
  * `lv_indev_get_point` — param `point`
  * `lv_indev_get_vect` — param `point`
  * `lv_indev_search_obj` — param `point`
  * `lv_indev_get_gesture_center_point` — param `point`
  * `lv_indev_get_gesture_primary_point` — param `point`
  * `lv_indev_scroll_get_snap_dist` — param `p`
  * `lv_freetype_italic_transform_on_pos` — param `point`
  * `lv_gltf_get_ray_from_2d_coordinate` — param `screen_pos`
  * `lv_gltf_world_to_screen` — param `screen_pos`
  * `lv_point_transform` — param `point`
  * `lv_point_transform` — param `pivot`
  * `lv_point_array_transform` — param `points`
  * `lv_point_array_transform` — param `pivot`
  * `lv_point_to_precise` — param `p`
  * `lv_point_set` — param `p`
  * `lv_point_swap` — param `p1`
  * `lv_point_swap` — param `p2`
  * `lv_area_is_point_on` — param `p_p`
  * `lv_text_get_size` — param `size_res`
  * `lv_text_get_size_attributes` — param `size_res`
  * `lv_chart_get_point_pos_by_id` — param `p_out`
  * `lv_chart_set_cursor_pos` — param `pos`
  * `lv_image_get_pivot` — param `pivot`
  * `lv_label_get_letter_pos` — param `pos`
  * `lv_label_get_letter_on` — param `pos_in`
  * `lv_label_is_char_under_pos` — param `pos`
  * `lv_spangroup_get_span_by_point` — param `point`
</TypeUsedBy>

<ApiMember kind="struct" name="lv_point_precise_t">
  lv_point_precise_t [#lv_point_precise_t]

  | Member | Type                                  | Description |
  | ------ | ------------------------------------- | ----------- |
  | `x`    | <ApiLink name="lv_value_precise_t" /> |             |
  | `y`    | <ApiLink name="lv_value_precise_t" /> |             |
</ApiMember>

<TypeUsedBy name="lv_point_precise_t" count="8">
  * `lv_vg_lite_matrix_transform_point` — param `point`
  * `lv_point_from_precise` — param `p`
  * `lv_point_precise_set` — param `p`
  * `lv_point_precise_swap` — param `p1`
  * `lv_point_precise_swap` — param `p2`
  * `lv_matrix_transform_precise_point` — param `point`
  * `lv_line_set_points` — param `points`
  * `lv_line_set_points_mutable` — param `points`
</TypeUsedBy>

<ApiMember kind="struct" name="lv_area_t">
  lv_area_t [#lv_area_t]

  Represents an area of the screen.

  | Member | Type                       | Description |
  | ------ | -------------------------- | ----------- |
  | `x1`   | <ApiLink name="int32_t" /> |             |
  | `y1`   | <ApiLink name="int32_t" /> |             |
  | `x2`   | <ApiLink name="int32_t" /> |             |
  | `y2`   | <ApiLink name="int32_t" /> |             |
</ApiMember>

Macros [#macros]

<ApiMember kind="macro" name="LV_COORD_TYPE_SHIFT" file="misc/lv_area.h" line="206" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L206">
  LV_COORD_TYPE_SHIFT [#lv_coord_type_shift]

  ```c title=" " lineNumbers=1
  #define LV_COORD_TYPE_SHIFT (29U)
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_COORD_TYPE_MASK" file="misc/lv_area.h" line="208" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L208">
  LV_COORD_TYPE_MASK [#lv_coord_type_mask]

  ```c title=" " lineNumbers=1
  #define LV_COORD_TYPE_MASK (3 << LV_COORD_TYPE_SHIFT)
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_COORD_TYPE" file="misc/lv_area.h" line="209" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L209">
  LV_COORD_TYPE [#lv_coord_type]

  ```c title=" " lineNumbers=1
  #define LV_COORD_TYPE(x) \
      ((x) & LV_COORD_TYPE_MASK)  /*Extract type specifiers*/
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_COORD_PLAIN" file="misc/lv_area.h" line="210" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L210">
  LV_COORD_PLAIN [#lv_coord_plain]

  ```c title=" " lineNumbers=1
  #define LV_COORD_PLAIN(x) \
      ((x) & ~LV_COORD_TYPE_MASK) /*Remove type specifiers*/
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_COORD_TYPE_PX" file="misc/lv_area.h" line="212" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L212">
  LV_COORD_TYPE_PX [#lv_coord_type_px]

  ```c title=" " lineNumbers=1
  #define LV_COORD_TYPE_PX (0 << LV_COORD_TYPE_SHIFT)
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_COORD_TYPE_SPEC" file="misc/lv_area.h" line="213" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L213">
  LV_COORD_TYPE_SPEC [#lv_coord_type_spec]

  ```c title=" " lineNumbers=1
  #define LV_COORD_TYPE_SPEC (1 << LV_COORD_TYPE_SHIFT)
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_COORD_TYPE_PX_NEG" file="misc/lv_area.h" line="214" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L214">
  LV_COORD_TYPE_PX_NEG [#lv_coord_type_px_neg]

  ```c title=" " lineNumbers=1
  #define LV_COORD_TYPE_PX_NEG (3 << LV_COORD_TYPE_SHIFT)
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_COORD_IS_PX" file="misc/lv_area.h" line="216" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L216">
  LV_COORD_IS_PX [#lv_coord_is_px]

  ```c title=" " lineNumbers=1
  #define LV_COORD_IS_PX(x) \
      (LV_COORD_TYPE(x) == LV_COORD_TYPE_PX || LV_COORD_TYPE(x) == LV_COORD_TYPE_PX_NEG)
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_COORD_IS_SPEC" file="misc/lv_area.h" line="217" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L217">
  LV_COORD_IS_SPEC [#lv_coord_is_spec]

  ```c title=" " lineNumbers=1
  #define LV_COORD_IS_SPEC(x) \
      (LV_COORD_TYPE(x) == LV_COORD_TYPE_SPEC)
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_COORD_SET_SPEC" file="misc/lv_area.h" line="219" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L219">
  LV_COORD_SET_SPEC [#lv_coord_set_spec]

  ```c title=" " lineNumbers=1
  #define LV_COORD_SET_SPEC(x) \
      ((x) | LV_COORD_TYPE_SPEC)
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_COORD_MAX" file="misc/lv_area.h" line="222" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L222">
  LV_COORD_MAX [#lv_coord_max]

  ```c title=" " lineNumbers=1
  #define LV_COORD_MAX ((1 << LV_COORD_TYPE_SHIFT) - 1)
  ```

  Max coordinate value
</ApiMember>

<ApiMember kind="macro" name="LV_COORD_MIN" file="misc/lv_area.h" line="223" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L223">
  LV_COORD_MIN [#lv_coord_min]

  ```c title=" " lineNumbers=1
  #define LV_COORD_MIN (-LV_COORD_MAX)
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_SIZE_CONTENT" file="misc/lv_area.h" line="226" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L226">
  LV_SIZE_CONTENT [#lv_size_content]

  ```c title=" " lineNumbers=1
  #define LV_SIZE_CONTENT LV_COORD_SET_SPEC(LV_COORD_MAX)
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_PCT_STORED_MAX" file="misc/lv_area.h" line="227" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L227">
  LV_PCT_STORED_MAX [#lv_pct_stored_max]

  ```c title=" " lineNumbers=1
  #define LV_PCT_STORED_MAX (LV_COORD_MAX - 1)
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_PCT_POS_MAX" file="misc/lv_area.h" line="231" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L231">
  LV_PCT_POS_MAX [#lv_pct_pos_max]

  ```c title=" " lineNumbers=1
  #define LV_PCT_POS_MAX (LV_PCT_STORED_MAX / 2)
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_PCT" file="misc/lv_area.h" line="232" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L232">
  LV_PCT [#lv_pct-1]

  ```c title=" " lineNumbers=1
  #define LV_PCT(x) \
      (LV_COORD_SET_SPEC(((x) < 0 ? (LV_PCT_POS_MAX - LV_MAX((x), -LV_PCT_POS_MAX)) : LV_MIN((x), LV_PCT_POS_MAX))))
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_COORD_IS_PCT" file="misc/lv_area.h" line="233" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L233">
  LV_COORD_IS_PCT [#lv_coord_is_pct]

  ```c title=" " lineNumbers=1
  #define LV_COORD_IS_PCT(x) \
      ((LV_COORD_IS_SPEC(x) && LV_COORD_PLAIN(x) <= LV_PCT_STORED_MAX))
  ```
</ApiMember>

<ApiMember kind="macro" name="LV_COORD_GET_PCT" file="misc/lv_area.h" line="234" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/misc/lv_area.h#L234">
  LV_COORD_GET_PCT [#lv_coord_get_pct]

  ```c title=" " lineNumbers=1
  #define LV_COORD_GET_PCT(x) \
      (LV_COORD_PLAIN(x) > LV_PCT_POS_MAX ? LV_PCT_POS_MAX - LV_COORD_PLAIN(x) : LV_COORD_PLAIN(x))
  ```
</ApiMember>

Dependencies [#dependencies]

<FileIncludes includes="[&#x22;lv_conf_internal.h&#x22;, &#x22;lv_types.h&#x22;, &#x22;lv_math.h&#x22;]" includedBy="[&#x22;lv_global.h&#x22;, &#x22;lv_obj.h&#x22;, &#x22;lv_obj_class.h&#x22;, &#x22;lv_obj_pos.h&#x22;, &#x22;lv_obj_scroll.h&#x22;, &#x22;lv_obj_style_gen.h&#x22;, &#x22;lv_display.h&#x22;, &#x22;lv_draw_arc.h&#x22;, &#x22;lv_draw_blur.h&#x22;, &#x22;lv_draw_buf.h&#x22;, &#x22;lv_draw_line.h&#x22;, &#x22;lv_draw_mask.h&#x22;, &#x22;lv_draw_rect.h&#x22;, &#x22;lv_image_decoder.h&#x22;, &#x22;lv_draw_opengles.h&#x22;, &#x22;lv_draw_sdl.h&#x22;, &#x22;lv_draw_sw_blend.h&#x22;, &#x22;lv_draw_sw.h&#x22;, &#x22;lv_draw_sw_mask.h&#x22;, &#x22;lv_draw_sw_utils.h&#x22;, &#x22;lv_vg_lite_utils.h&#x22;, &#x22;lv_opengles_driver.h&#x22;, &#x22;lv_opengles_private.h&#x22;, &#x22;lv_font.h&#x22;, &#x22;lv_indev.h&#x22;, &#x22;lv_flex.h&#x22;, &#x22;lv_grid.h&#x22;, &#x22;lv_gltf.h&#x22;, &#x22;lv_area_private.h&#x22;, &#x22;lv_grad.h&#x22;, &#x22;lv_matrix.h&#x22;, &#x22;lv_style.h&#x22;, &#x22;lv_text.h&#x22;]" transitiveIncludes="[&#x22;lv_conf_kconfig.h&#x22;]" />
