# lv_draw_triangle.h (/api/draw/lv_draw_triangle_h)



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

<ApiSummary functions="3" structs="1" />

Functions [#functions]

<ApiTabs items="[&#x22;Getters (1)&#x22;,&#x22;Other (2)&#x22;]">
  <ApiTab value="Getters (1)">
    <ApiMember kind="function" name="lv_draw_task_get_triangle_dsc" file="draw/lv_draw_triangle.h" line="58" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/draw/lv_draw_triangle.h#L58">
      lv_draw_task_get_triangle_dsc [#lv_draw_task_get_triangle_dsc]

      Try to get a triangle draw descriptor from a draw task.

      ```c title=" " lineNumbers=1
      lv_draw_triangle_dsc_t * lv_draw_task_get_triangle_dsc(lv_draw_task_t *task)
      ```

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

      | Name   | Type                                                         | Description |
      | ------ | ------------------------------------------------------------ | ----------- |
      | `task` | <ApiLink name="lv_draw_task_t" display="lv_draw_task_t *" /> | draw task   |

      **Returns:** <ApiLink name="lv_draw_triangle_dsc_t" display="lv_draw_triangle_dsc_t *" /> — the task's draw descriptor or NULL if the task is not of type LV\_DRAW\_TASK\_TYPE\_TRIANGLE
    </ApiMember>
  </ApiTab>

  <ApiTab value="Other (2)">
    <ApiMember kind="function" name="lv_draw_triangle_dsc_init" file="draw/lv_draw_triangle.h" line="51" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/draw/lv_draw_triangle.h#L51">
      lv_draw_triangle_dsc_init [#lv_draw_triangle_dsc_init]

      Initialize a triangle draw descriptor

      ```c title=" " lineNumbers=1
      void lv_draw_triangle_dsc_init(lv_draw_triangle_dsc_t *draw_dsc)
      ```

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

      | Name       | Type                                                                         | Description                  |
      | ---------- | ---------------------------------------------------------------------------- | ---------------------------- |
      | `draw_dsc` | <ApiLink name="lv_draw_triangle_dsc_t" display="lv_draw_triangle_dsc_t *" /> | pointer to a draw descriptor |
    </ApiMember>

    <ApiMember kind="function" name="lv_draw_triangle" file="draw/lv_draw_triangle.h" line="65" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/draw/lv_draw_triangle.h#L65">
      lv_draw_triangle [#lv_draw_triangle]

      Create a triangle draw task

      ```c title=" " lineNumbers=1
      void lv_draw_triangle(lv_layer_t *layer, const lv_draw_triangle_dsc_t *draw_dsc)
      ```

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

      | Name       | Type                                                                               | Description                                                                |
      | ---------- | ---------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
      | `layer`    | <ApiLink name="lv_layer_t" display="lv_layer_t *" />                               | pointer to a layer                                                         |
      | `draw_dsc` | <ApiLink name="lv_draw_triangle_dsc_t" display="const lv_draw_triangle_dsc_t *" /> | pointer to an initialized <ApiLink name="lv_draw_triangle_dsc_t" /> object |
    </ApiMember>
  </ApiTab>
</ApiTabs>

Structs [#structs]

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

  | Member  | Type                                  | Description                                                                                                           |
  | ------- | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
  | `base`  | <ApiLink name="lv_draw_dsc_base_t" /> |                                                                                                                       |
  | `p`     | `lv_point_precise_t[3]`               | Points of the triangle. If `LV_USE_FLOAT` is enabled floats can be used here                                          |
  | `color` | <ApiLink name="lv_color_t" />         | Color of the triangle                                                                                                 |
  | `opa`   | <ApiLink name="lv_opa_t" />           | Opacity of the arc in 0...255 range. LV\_OPA\_TRANSP, LV\_OPA\_10, LV\_OPA\_20, .. LV\_OPA\_COVER can be used as well |
  | `grad`  | <ApiLink name="lv_grad_dsc_t" />      | Describe a gradient. If `grad.dir` is not `LV_GRAD_DIR_NONE` `color` will be ignored                                  |
</ApiMember>

<TypeUsedBy name="lv_draw_triangle_dsc_t" count="9">
  * `lv_draw_eve_triangle` — param `dsc`
  * `lv_draw_triangle_dsc_init` — param `draw_dsc`
  * `lv_draw_triangle` — param `draw_dsc`
  * `lv_draw_nanovg_triangle` — param `dsc`
  * `lv_draw_nema_gfx_triangle` — param `dsc`
  * `lv_draw_dave2d_triangle` — param `dsc`
  * `lv_draw_sdl_triangle` — param `dsc`
  * `lv_draw_sw_triangle` — param `dsc`
  * `lv_draw_vg_lite_triangle` — param `dsc`
</TypeUsedBy>

Dependencies [#dependencies]

<FileIncludes includes="[&#x22;lv_draw_rect.h&#x22;]" includedBy="[&#x22;lv_obj_draw.h&#x22;, &#x22;lv_draw_eve_private.h&#x22;, &#x22;lv_draw_triangle_private.h&#x22;, &#x22;lv_draw_nanovg_private.h&#x22;, &#x22;lv_draw_dave2d.h&#x22;, &#x22;lv_draw_sdl.h&#x22;, &#x22;lv_draw_sw.h&#x22;, &#x22;lv_draw_vg_lite.h&#x22;]" transitiveIncludes="[&#x22;lv_anim.h&#x22;, &#x22;lv_area.h&#x22;, &#x22;lv_array.h&#x22;, &#x22;lv_assert.h&#x22;, &#x22;lv_bidi.h&#x22;, &#x22;lv_color.h&#x22;, &#x22;lv_color_op.h&#x22;, &#x22;lv_conf_internal.h&#x22;, &#x22;lv_conf_kconfig.h&#x22;, &#x22;lv_draw.h&#x22;, &#x22;lv_draw_buf.h&#x22;, &#x22;lv_event.h&#x22;, &#x22;lv_ext_data.h&#x22;, &#x22;lv_flex.h&#x22;, &#x22;lv_font.h&#x22;, &#x22;lv_fs.h&#x22;, &#x22;lv_grad.h&#x22;, &#x22;lv_grid.h&#x22;, &#x22;lv_image_decoder.h&#x22;, &#x22;lv_image_dsc.h&#x22;, &#x22;lv_layout.h&#x22;, &#x22;lv_ll.h&#x22;, &#x22;lv_log.h&#x22;, &#x22;lv_math.h&#x22;, &#x22;lv_matrix.h&#x22;, &#x22;lv_mem.h&#x22;, &#x22;lv_palette.h&#x22;, &#x22;lv_profiler.h&#x22;, &#x22;lv_profiler_builtin.h&#x22;, &#x22;lv_sprintf.h&#x22;, &#x22;lv_string.h&#x22;, &#x22;lv_style.h&#x22;, &#x22;lv_style_gen.h&#x22;, &#x22;lv_symbol_def.h&#x22;, &#x22;lv_text.h&#x22;, &#x22;lv_tick.h&#x22;, &#x22;lv_timer.h&#x22;, &#x22;lv_types.h&#x22;]" />
