# lv_draw_nanovg_private.h (/api/private/draw/nanovg/lv_draw_nanovg_private_h)



<RelatedHeaders name="lv_draw_nanovg.h" isPrivate="true" />

<ApiSummary functions="22" structs="1" typedefs="1" macros="1" />

Functions [#functions]

<ApiTabs items="[&#x22;Getters (1)&#x22;,&#x22;Other (21)&#x22;]">
  <ApiTab value="Getters (1)">
    <ApiMember kind="function" name="lv_nanovg_fb_get_image_handle" file="private/draw/nanovg/lv_draw_nanovg_private.h" line="199" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/nanovg/lv_draw_nanovg_private.h#L199">
      lv_nanovg_fb_get_image_handle [#lv_nanovg_fb_get_image_handle]

      Get image handle from framebuffer

      ```c title=" " lineNumbers=1
      int lv_nanovg_fb_get_image_handle(struct NVGLUframebuffer *fb)
      ```

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

      | Name | Type                        | Description                                  |
      | ---- | --------------------------- | -------------------------------------------- |
      | `fb` | `struct NVGLUframebuffer *` | the framebuffer to get the image handle from |

      **Returns:** `int` — the image handle
    </ApiMember>
  </ApiTab>

  <ApiTab value="Other (21)">
    <ApiMember kind="function" name="lv_draw_nanovg_3d" file="private/draw/nanovg/lv_draw_nanovg_private.h" line="92" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/nanovg/lv_draw_nanovg_private.h#L92">
      lv_draw_nanovg_3d [#lv_draw_nanovg_3d]

      Draw 3D texture on a NanoVG context

      ```c title=" " lineNumbers=1
      void lv_draw_nanovg_3d(lv_draw_task_t *t, const lv_draw_3d_dsc_t *dsc, const lv_area_t *coords)
      ```

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

      | Name     | Type                                                                   | Description                       |
      | -------- | ---------------------------------------------------------------------- | --------------------------------- |
      | `t`      | <ApiLink name="lv_draw_task_t" display="lv_draw_task_t *" />           | pointer to a drawing task         |
      | `dsc`    | <ApiLink name="lv_draw_3d_dsc_t" display="const lv_draw_3d_dsc_t *" /> | pointer to a 3D draw descriptor   |
      | `coords` | <ApiLink name="lv_area_t" display="const lv_area_t *" />               | the coordinates of the 3D texture |
    </ApiMember>

    <ApiMember kind="function" name="lv_draw_nanovg_arc" file="private/draw/nanovg/lv_draw_nanovg_private.h" line="101" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/nanovg/lv_draw_nanovg_private.h#L101">
      lv_draw_nanovg_arc [#lv_draw_nanovg_arc]

      Draw arc on a NanoVG context

      ```c title=" " lineNumbers=1
      void lv_draw_nanovg_arc(lv_draw_task_t *t, const lv_draw_arc_dsc_t *dsc, const lv_area_t *coords)
      ```

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

      | Name     | Type                                                                     | Description                  |
      | -------- | ------------------------------------------------------------------------ | ---------------------------- |
      | `t`      | <ApiLink name="lv_draw_task_t" display="lv_draw_task_t *" />             | pointer to a drawing task    |
      | `dsc`    | <ApiLink name="lv_draw_arc_dsc_t" display="const lv_draw_arc_dsc_t *" /> | pointer to an arc descriptor |
      | `coords` | <ApiLink name="lv_area_t" display="const lv_area_t *" />                 | the coordinates of the arc   |
    </ApiMember>

    <ApiMember kind="function" name="lv_draw_nanovg_border" file="private/draw/nanovg/lv_draw_nanovg_private.h" line="109" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/nanovg/lv_draw_nanovg_private.h#L109">
      lv_draw_nanovg_border [#lv_draw_nanovg_border]

      Draw border on a NanoVG context

      ```c title=" " lineNumbers=1
      void lv_draw_nanovg_border(lv_draw_task_t *t, const lv_draw_border_dsc_t *dsc, const lv_area_t *coords)
      ```

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

      | Name     | Type                                                                           | Description                    |
      | -------- | ------------------------------------------------------------------------------ | ------------------------------ |
      | `t`      | <ApiLink name="lv_draw_task_t" display="lv_draw_task_t *" />                   | pointer to a drawing task      |
      | `dsc`    | <ApiLink name="lv_draw_border_dsc_t" display="const lv_draw_border_dsc_t *" /> | pointer to a border descriptor |
      | `coords` | <ApiLink name="lv_area_t" display="const lv_area_t *" />                       | the coordinates of the border  |
    </ApiMember>

    <ApiMember kind="function" name="lv_draw_nanovg_box_shadow" file="private/draw/nanovg/lv_draw_nanovg_private.h" line="117" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/nanovg/lv_draw_nanovg_private.h#L117">
      lv_draw_nanovg_box_shadow [#lv_draw_nanovg_box_shadow]

      Draw box on a NanoVG context

      ```c title=" " lineNumbers=1
      void lv_draw_nanovg_box_shadow(lv_draw_task_t *t, const lv_draw_box_shadow_dsc_t *dsc, const lv_area_t *coords)
      ```

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

      | Name     | Type                                                                                   | Description                 |
      | -------- | -------------------------------------------------------------------------------------- | --------------------------- |
      | `t`      | <ApiLink name="lv_draw_task_t" display="lv_draw_task_t *" />                           | pointer to a drawing task   |
      | `dsc`    | <ApiLink name="lv_draw_box_shadow_dsc_t" display="const lv_draw_box_shadow_dsc_t *" /> | pointer to a box descriptor |
      | `coords` | <ApiLink name="lv_area_t" display="const lv_area_t *" />                               | the coordinates of the box  |
    </ApiMember>

    <ApiMember kind="function" name="lv_draw_nanovg_fill" file="private/draw/nanovg/lv_draw_nanovg_private.h" line="125" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/nanovg/lv_draw_nanovg_private.h#L125">
      lv_draw_nanovg_fill [#lv_draw_nanovg_fill]

      Fill a rectangle on a NanoVG context

      ```c title=" " lineNumbers=1
      void lv_draw_nanovg_fill(lv_draw_task_t *t, const lv_draw_fill_dsc_t *dsc, const lv_area_t *coords)
      ```

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

      | Name     | Type                                                                       | Description                      |
      | -------- | -------------------------------------------------------------------------- | -------------------------------- |
      | `t`      | <ApiLink name="lv_draw_task_t" display="lv_draw_task_t *" />               | pointer to a drawing task        |
      | `dsc`    | <ApiLink name="lv_draw_fill_dsc_t" display="const lv_draw_fill_dsc_t *" /> | pointer to a fill descriptor     |
      | `coords` | <ApiLink name="lv_area_t" display="const lv_area_t *" />                   | the coordinates of the rectangle |
    </ApiMember>

    <ApiMember kind="function" name="lv_draw_nanovg_image" file="private/draw/nanovg/lv_draw_nanovg_private.h" line="134" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/nanovg/lv_draw_nanovg_private.h#L134">
      lv_draw_nanovg_image [#lv_draw_nanovg_image]

      Draw image on a NanoVG context

      ```c title=" " lineNumbers=1
      void lv_draw_nanovg_image(lv_draw_task_t *t, const lv_draw_image_dsc_t *dsc, const lv_area_t *coords, int image_handle)
      ```

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

      | Name           | Type                                                                         | Description                     |
      | -------------- | ---------------------------------------------------------------------------- | ------------------------------- |
      | `t`            | <ApiLink name="lv_draw_task_t" display="lv_draw_task_t *" />                 | pointer to a drawing task       |
      | `dsc`          | <ApiLink name="lv_draw_image_dsc_t" display="const lv_draw_image_dsc_t *" /> | pointer to an image descriptor  |
      | `coords`       | <ApiLink name="lv_area_t" display="const lv_area_t *" />                     | the coordinates of the image    |
      | `image_handle` | `int`                                                                        | the handle of the image to draw |
    </ApiMember>

    <ApiMember kind="function" name="lv_draw_nanovg_label_init" file="private/draw/nanovg/lv_draw_nanovg_private.h" line="141" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/nanovg/lv_draw_nanovg_private.h#L141">
      lv_draw_nanovg_label_init [#lv_draw_nanovg_label_init]

      Initialize draw label on a NanoVG context

      ```c title=" " lineNumbers=1
      void lv_draw_nanovg_label_init(lv_draw_nanovg_unit_t *u)
      ```

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

      | Name | Type                                                                       | Description              |
      | ---- | -------------------------------------------------------------------------- | ------------------------ |
      | `u`  | <ApiLink name="lv_draw_nanovg_unit_t" display="lv_draw_nanovg_unit_t *" /> | pointer to a NanoVG unit |
    </ApiMember>

    <ApiMember kind="function" name="lv_draw_nanovg_label_deinit" file="private/draw/nanovg/lv_draw_nanovg_private.h" line="147" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/nanovg/lv_draw_nanovg_private.h#L147">
      lv_draw_nanovg_label_deinit [#lv_draw_nanovg_label_deinit]

      Deinitialize draw label on a NanoVG context

      ```c title=" " lineNumbers=1
      void lv_draw_nanovg_label_deinit(lv_draw_nanovg_unit_t *u)
      ```

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

      | Name | Type                                                                       | Description              |
      | ---- | -------------------------------------------------------------------------- | ------------------------ |
      | `u`  | <ApiLink name="lv_draw_nanovg_unit_t" display="lv_draw_nanovg_unit_t *" /> | pointer to a NanoVG unit |
    </ApiMember>

    <ApiMember kind="function" name="lv_draw_nanovg_letter" file="private/draw/nanovg/lv_draw_nanovg_private.h" line="155" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/nanovg/lv_draw_nanovg_private.h#L155">
      lv_draw_nanovg_letter [#lv_draw_nanovg_letter]

      Draw letter on a NanoVG context

      ```c title=" " lineNumbers=1
      void lv_draw_nanovg_letter(lv_draw_task_t *t, const lv_draw_letter_dsc_t *dsc, const lv_area_t *coords)
      ```

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

      | Name     | Type                                                                           | Description                    |
      | -------- | ------------------------------------------------------------------------------ | ------------------------------ |
      | `t`      | <ApiLink name="lv_draw_task_t" display="lv_draw_task_t *" />                   | pointer to a drawing task      |
      | `dsc`    | <ApiLink name="lv_draw_letter_dsc_t" display="const lv_draw_letter_dsc_t *" /> | pointer to a letter descriptor |
      | `coords` | <ApiLink name="lv_area_t" display="const lv_area_t *" />                       | the coordinates of the letter  |
    </ApiMember>

    <ApiMember kind="function" name="lv_draw_nanovg_label" file="private/draw/nanovg/lv_draw_nanovg_private.h" line="163" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/nanovg/lv_draw_nanovg_private.h#L163">
      lv_draw_nanovg_label [#lv_draw_nanovg_label]

      Draw label on a NanoVG context

      ```c title=" " lineNumbers=1
      void lv_draw_nanovg_label(lv_draw_task_t *t, const lv_draw_label_dsc_t *dsc, const lv_area_t *coords)
      ```

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

      | Name     | Type                                                                         | Description                   |
      | -------- | ---------------------------------------------------------------------------- | ----------------------------- |
      | `t`      | <ApiLink name="lv_draw_task_t" display="lv_draw_task_t *" />                 | pointer to a drawing task     |
      | `dsc`    | <ApiLink name="lv_draw_label_dsc_t" display="const lv_draw_label_dsc_t *" /> | pointer to a label descriptor |
      | `coords` | <ApiLink name="lv_area_t" display="const lv_area_t *" />                     | the coordinates of the label  |
    </ApiMember>

    <ApiMember kind="function" name="lv_draw_nanovg_layer" file="private/draw/nanovg/lv_draw_nanovg_private.h" line="171" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/nanovg/lv_draw_nanovg_private.h#L171">
      lv_draw_nanovg_layer [#lv_draw_nanovg_layer]

      Draw layer on a NanoVG context

      ```c title=" " lineNumbers=1
      void lv_draw_nanovg_layer(lv_draw_task_t *t, const lv_draw_image_dsc_t *draw_dsc, const lv_area_t *coords)
      ```

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

      | Name       | Type                                                                         | Description                    |
      | ---------- | ---------------------------------------------------------------------------- | ------------------------------ |
      | `t`        | <ApiLink name="lv_draw_task_t" display="lv_draw_task_t *" />                 | pointer to a drawing task      |
      | `draw_dsc` | <ApiLink name="lv_draw_image_dsc_t" display="const lv_draw_image_dsc_t *" /> | pointer to an image descriptor |
      | `coords`   | <ApiLink name="lv_area_t" display="const lv_area_t *" />                     | the coordinates of the layer   |
    </ApiMember>

    <ApiMember kind="function" name="lv_draw_nanovg_line" file="private/draw/nanovg/lv_draw_nanovg_private.h" line="178" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/nanovg/lv_draw_nanovg_private.h#L178">
      lv_draw_nanovg_line [#lv_draw_nanovg_line]

      Draw line on a NanoVG context

      ```c title=" " lineNumbers=1
      void lv_draw_nanovg_line(lv_draw_task_t *t, const lv_draw_line_dsc_t *dsc)
      ```

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

      | Name  | Type                                                                       | Description                  |
      | ----- | -------------------------------------------------------------------------- | ---------------------------- |
      | `t`   | <ApiLink name="lv_draw_task_t" display="lv_draw_task_t *" />               | pointer to a drawing task    |
      | `dsc` | <ApiLink name="lv_draw_line_dsc_t" display="const lv_draw_line_dsc_t *" /> | pointer to a line descriptor |
    </ApiMember>

    <ApiMember kind="function" name="lv_draw_nanovg_triangle" file="private/draw/nanovg/lv_draw_nanovg_private.h" line="185" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/nanovg/lv_draw_nanovg_private.h#L185">
      lv_draw_nanovg_triangle [#lv_draw_nanovg_triangle]

      Draw triangle on a NanoVG context

      ```c title=" " lineNumbers=1
      void lv_draw_nanovg_triangle(lv_draw_task_t *t, const lv_draw_triangle_dsc_t *dsc)
      ```

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

      | Name  | Type                                                                               | Description                      |
      | ----- | ---------------------------------------------------------------------------------- | -------------------------------- |
      | `t`   | <ApiLink name="lv_draw_task_t" display="lv_draw_task_t *" />                       | pointer to a drawing task        |
      | `dsc` | <ApiLink name="lv_draw_triangle_dsc_t" display="const lv_draw_triangle_dsc_t *" /> | pointer to a triangle descriptor |
    </ApiMember>

    <ApiMember kind="function" name="lv_draw_nanovg_mask_rect" file="private/draw/nanovg/lv_draw_nanovg_private.h" line="192" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/nanovg/lv_draw_nanovg_private.h#L192">
      lv_draw_nanovg_mask_rect [#lv_draw_nanovg_mask_rect]

      Draw mask rectangles on a NanoVG context

      ```c title=" " lineNumbers=1
      void lv_draw_nanovg_mask_rect(lv_draw_task_t *t, const lv_draw_mask_rect_dsc_t *dsc)
      ```

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

      | Name  | Type                                                                                 | Description                  |
      | ----- | ------------------------------------------------------------------------------------ | ---------------------------- |
      | `t`   | <ApiLink name="lv_draw_task_t" display="lv_draw_task_t *" />                         | pointer to a drawing task    |
      | `dsc` | <ApiLink name="lv_draw_mask_rect_dsc_t" display="const lv_draw_mask_rect_dsc_t *" /> | pointer to a mask descriptor |
    </ApiMember>

    <ApiMember kind="function" name="lv_draw_nanovg_blur_init" file="private/draw/nanovg/lv_draw_nanovg_private.h" line="205" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/nanovg/lv_draw_nanovg_private.h#L205">
      lv_draw_nanovg_blur_init [#lv_draw_nanovg_blur_init]

      Initialize the blur draw unit state on the given nanovg unit

      ```c title=" " lineNumbers=1
      void lv_draw_nanovg_blur_init(lv_draw_nanovg_unit_t *u)
      ```

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

      | Name | Type                                                                       | Description                |
      | ---- | -------------------------------------------------------------------------- | -------------------------- |
      | `u`  | <ApiLink name="lv_draw_nanovg_unit_t" display="lv_draw_nanovg_unit_t *" /> | pointer to the nanovg unit |
    </ApiMember>

    <ApiMember kind="function" name="lv_draw_nanovg_blur_deinit" file="private/draw/nanovg/lv_draw_nanovg_private.h" line="211" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/nanovg/lv_draw_nanovg_private.h#L211">
      lv_draw_nanovg_blur_deinit [#lv_draw_nanovg_blur_deinit]

      Deinitialize the blur draw unit state on the given nanovg unit

      ```c title=" " lineNumbers=1
      void lv_draw_nanovg_blur_deinit(lv_draw_nanovg_unit_t *u)
      ```

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

      | Name | Type                                                                       | Description                |
      | ---- | -------------------------------------------------------------------------- | -------------------------- |
      | `u`  | <ApiLink name="lv_draw_nanovg_unit_t" display="lv_draw_nanovg_unit_t *" /> | pointer to the nanovg unit |
    </ApiMember>

    <ApiMember kind="function" name="lv_draw_nanovg_blur" file="private/draw/nanovg/lv_draw_nanovg_private.h" line="219" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/nanovg/lv_draw_nanovg_private.h#L219">
      lv_draw_nanovg_blur [#lv_draw_nanovg_blur]

      Apply a separable gaussian blur to the current layer using a fragment shader

      ```c title=" " lineNumbers=1
      void lv_draw_nanovg_blur(lv_draw_task_t *t, const lv_draw_blur_dsc_t *dsc, const lv_area_t *coords)
      ```

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

      | Name     | Type                                                                       | Description                         |
      | -------- | -------------------------------------------------------------------------- | ----------------------------------- |
      | `t`      | <ApiLink name="lv_draw_task_t" display="lv_draw_task_t *" />               | pointer to a drawing task           |
      | `dsc`    | <ApiLink name="lv_draw_blur_dsc_t" display="const lv_draw_blur_dsc_t *" /> | pointer to a blur descriptor        |
      | `coords` | <ApiLink name="lv_area_t" display="const lv_area_t *" />                   | the coordinates of the area to blur |
    </ApiMember>

    <ApiMember kind="function" name="lv_draw_nanovg_vector" file="private/draw/nanovg/lv_draw_nanovg_private.h" line="227" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/nanovg/lv_draw_nanovg_private.h#L227">
      lv_draw_nanovg_vector [#lv_draw_nanovg_vector]

      Draw vector graphics on a NanoVG context

      ```c title=" " lineNumbers=1
      void lv_draw_nanovg_vector(lv_draw_task_t *t, const lv_draw_vector_dsc_t *dsc)
      ```

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

      | Name  | Type                                                                           | Description                    |
      | ----- | ------------------------------------------------------------------------------ | ------------------------------ |
      | `t`   | <ApiLink name="lv_draw_task_t" display="lv_draw_task_t *" />                   | pointer to a drawing task      |
      | `dsc` | <ApiLink name="lv_draw_vector_dsc_t" display="const lv_draw_vector_dsc_t *" /> | pointer to a vector descriptor |
    </ApiMember>

    <ApiMember kind="function" name="lv_nanovg_grad_to_paint" file="private/draw/nanovg/lv_draw_nanovg_private.h" line="235" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/nanovg/lv_draw_nanovg_private.h#L235">
      lv_nanovg_grad_to_paint [#lv_nanovg_grad_to_paint]

      Convert a gradient to a paint.

      ```c title=" " lineNumbers=1
      bool lv_nanovg_grad_to_paint(NVGcontext *ctx, const lv_vector_gradient_t *grad, NVGpaint *paint)
      ```

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

      | Name    | Type                                                                           | Description                   |
      | ------- | ------------------------------------------------------------------------------ | ----------------------------- |
      | `ctx`   | `NVGcontext *`                                                                 | the nanovg context            |
      | `grad`  | <ApiLink name="lv_vector_gradient_t" display="const lv_vector_gradient_t *" /> | the gradient descriptor       |
      | `paint` | `NVGpaint *`                                                                   | the paint to store the result |
    </ApiMember>

    <ApiMember kind="function" name="lv_nanovg_draw_grad" file="private/draw/nanovg/lv_draw_nanovg_private.h" line="244" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/nanovg/lv_draw_nanovg_private.h#L244">
      lv_nanovg_draw_grad [#lv_nanovg_draw_grad]

      Draw a gradient.

      ```c title=" " lineNumbers=1
      void lv_nanovg_draw_grad(NVGcontext *ctx, const lv_vector_gradient_t *grad, enum NVGwinding winding, enum NVGcompositeOperation composite_operation)
      ```

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

      | Name                  | Type                                                                           | Description             |
      | --------------------- | ------------------------------------------------------------------------------ | ----------------------- |
      | `ctx`                 | `NVGcontext *`                                                                 | the nanovg context      |
      | `grad`                | <ApiLink name="lv_vector_gradient_t" display="const lv_vector_gradient_t *" /> | the gradient descriptor |
      | `winding`             | `enum NVGwinding`                                                              | the fill rule           |
      | `composite_operation` | `enum NVGcompositeOperation`                                                   | the blend mode          |
    </ApiMember>

    <ApiMember kind="function" name="lv_nanovg_draw_grad_helper" file="private/draw/nanovg/lv_draw_nanovg_private.h" line="258" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/nanovg/lv_draw_nanovg_private.h#L258">
      lv_nanovg_draw_grad_helper [#lv_nanovg_draw_grad_helper]

      Draw a gradient with helper.

      ```c title=" " lineNumbers=1
      void lv_nanovg_draw_grad_helper(NVGcontext *ctx, const lv_area_t *area, const lv_grad_dsc_t *grad_dsc, enum NVGwinding winding, enum NVGcompositeOperation composite_operation)
      ```

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

      | Name                  | Type                                                             | Description                      |
      | --------------------- | ---------------------------------------------------------------- | -------------------------------- |
      | `ctx`                 | `NVGcontext *`                                                   | the nanovg context               |
      | `area`                | <ApiLink name="lv_area_t" display="const lv_area_t *" />         | the area to draw the gradient on |
      | `grad_dsc`            | <ApiLink name="lv_grad_dsc_t" display="const lv_grad_dsc_t *" /> | the gradient descriptor          |
      | `winding`             | `enum NVGwinding`                                                | the fill rule                    |
      | `composite_operation` | `enum NVGcompositeOperation`                                     | the blend mode                   |
    </ApiMember>
  </ApiTab>
</ApiTabs>

Structs [#structs]

<ApiMember kind="struct" name="_lv_draw_nanovg_unit_t">
  \_lv_draw_nanovg_unit_t [#_lv_draw_nanovg_unit_t]

  | Member                   | Type                                                       | Description |
  | ------------------------ | ---------------------------------------------------------- | ----------- |
  | `base_unit`              | <ApiLink name="lv_draw_unit_t" />                          |             |
  | `current_layer`          | <ApiLink name="lv_layer_t" display="lv_layer_t *" />       |             |
  | `vg`                     | `NVGcontext *`                                             |             |
  | `is_started`             | `bool`                                                     |             |
  | `image_buf`              | <ApiLink name="lv_draw_buf_t" display="lv_draw_buf_t *" /> |             |
  | `image_cache`            | <ApiLink name="lv_cache_t" display="lv_cache_t *" />       |             |
  | `image_pending`          | `struct _lv_pending_t *`                                   |             |
  | `image_uncached_pending` | `struct _lv_pending_t *`                                   |             |
  | `image_drop_ll`          | <ApiLink name="lv_ll_t" />                                 |             |
  | `image_drop_src`         | `const void *`                                             |             |
  | `letter_cache`           | <ApiLink name="lv_cache_t" display="lv_cache_t *" />       |             |
  | `letter_pending`         | `struct _lv_pending_t *`                                   |             |
  | `fbo_cache`              | <ApiLink name="lv_cache_t" display="lv_cache_t *" />       |             |
  | `blur_state`             | `struct NVGLUblurState *`                                  |             |
</ApiMember>

<TypeUsedBy name="_lv_draw_nanovg_unit_t" count="13">
  * `lv_nanovg_fbo_cache_init` — param `u`
  * `lv_nanovg_fbo_cache_deinit` — param `u`
  * `lv_nanovg_fbo_cache_get` — param `u`
  * `lv_nanovg_fbo_cache_release` — param `u`
  * `lv_nanovg_image_cache_init` — param `u`
  * `lv_nanovg_image_cache_deinit` — param `u`
  * `lv_nanovg_image_cache_get_handle` — param `u`
  * `lv_nanovg_image_cache_drop` — param `u`
  * `lv_nanovg_utils_init` — param `u`
  * `lv_nanovg_utils_deinit` — param `u`
  * `lv_nanovg_end_frame` — param `u`
  * `lv_nanovg_clean_up` — param `u`
  * `lv_nanovg_reshape_global_image` — param `u`
</TypeUsedBy>

Typedefs [#typedefs]

<ApiMember kind="typedef" name="lv_draw_nanovg_unit_t" file="private/draw/nanovg/lv_draw_nanovg_private.h" line="79" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/nanovg/lv_draw_nanovg_private.h#L79">
  lv_draw_nanovg_unit_t [#lv_draw_nanovg_unit_t]

  ```c title=" " lineNumbers=1
  typedef struct _lv_draw_nanovg_unit_t lv_draw_nanovg_unit_t
  ```
</ApiMember>

<TypeUsedBy name="lv_draw_nanovg_unit_t" count="4">
  * `lv_draw_nanovg_label_init` — param `u`
  * `lv_draw_nanovg_label_deinit` — param `u`
  * `lv_draw_nanovg_blur_init` — param `u`
  * `lv_draw_nanovg_blur_deinit` — param `u`
</TypeUsedBy>

Macros [#macros]

<ApiMember kind="macro" name="NANOVG_GLES2_IMPLEMENTATION" file="private/draw/nanovg/lv_draw_nanovg_private.h" line="44" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/nanovg/lv_draw_nanovg_private.h#L44">
  NANOVG_GLES2_IMPLEMENTATION [#nanovg_gles2_implementation]

  ```c title=" " lineNumbers=1
  #define NANOVG_GLES2_IMPLEMENTATION
  ```
</ApiMember>

Dependencies [#dependencies]

<FileIncludes includes="[&#x22;lvgl_public.h&#x22;, &#x22;lv_draw_private.h&#x22;, &#x22;lv_area_private.h&#x22;, &#x22;nanovg.h&#x22;]" includedBy="[&#x22;lvgl_private.h&#x22;]" transitiveIncludes="[&#x22;lv_cache.h&#x22;, &#x22;lv_cache_class.h&#x22;, &#x22;lv_cache_entry.h&#x22;, &#x22;lv_cache_lru_ll.h&#x22;, &#x22;lv_cache_lru_rb.h&#x22;, &#x22;lv_cache_sc_da.h&#x22;, &#x22;lv_image_cache.h&#x22;, &#x22;lv_iter_private.h&#x22;, &#x22;lv_os_private.h&#x22;]" />
