# lv_svg_render.h (/api/libs/svg/lv_svg_render_h)



<ApiSummary functions="7" structs="3" typedefs="3" macros="1" />

Functions [#functions]

<ApiTabs items="[&#x22;Getters (2)&#x22;,&#x22;Other (5)&#x22;]">
  <ApiTab value="Getters (2)">
    <ApiMember kind="function" name="lv_svg_render_get_size" file="libs/svg/lv_svg_render.h" line="94" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/libs/svg/lv_svg_render.h#L94">
      lv_svg_render_get_size [#lv_svg_render_get_size]

      Get size of render objects.

      ```c title=" " lineNumbers=1
      uint32_t lv_svg_render_get_size(const lv_svg_render_obj_t *render)
      ```

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

      | Name     | Type                                                                         | Description                      |
      | -------- | ---------------------------------------------------------------------------- | -------------------------------- |
      | `render` | <ApiLink name="lv_svg_render_obj_t" display="const lv_svg_render_obj_t *" /> | pointer to the SVG render object |

      **Returns:** <ApiLink name="uint32_t" /> — the bytes of SVG render objects
    </ApiMember>

    <ApiMember kind="function" name="lv_svg_render_get_viewport_size" file="libs/svg/lv_svg_render.h" line="103" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/libs/svg/lv_svg_render.h#L103">
      lv_svg_render_get_viewport_size [#lv_svg_render_get_viewport_size]

      Get viewport's width and height of the render object.

      ```c title=" " lineNumbers=1
      lv_result_t lv_svg_render_get_viewport_size(const lv_svg_render_obj_t *render, float *width, float *height)
      ```

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

      | Name     | Type                                                                         | Description                                                         |
      | -------- | ---------------------------------------------------------------------------- | ------------------------------------------------------------------- |
      | `render` | <ApiLink name="lv_svg_render_obj_t" display="const lv_svg_render_obj_t *" /> | pointer to the SVG render object                                    |
      | `width`  | `float *`                                                                    | pointer to save the width of the viewport of the SVG render object  |
      | `height` | `float *`                                                                    | pointer to save the height of the viewport of the SVG render object |

      **Returns:** <ApiLink name="lv_result_t" /> — lv\_result\_t, LV\_RESULT\_OK if success, LV\_RESULT\_INVALID if fail
    </ApiMember>
  </ApiTab>

  <ApiTab value="Other (5)">
    <ApiMember kind="function" name="lv_svg_render_init" file="libs/svg/lv_svg_render.h" line="74" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/libs/svg/lv_svg_render.h#L74">
      lv_svg_render_init [#lv_svg_render_init]

      Initialize the SVG render.

      ```c title=" " lineNumbers=1
      void lv_svg_render_init(const lv_svg_render_hal_t *hal)
      ```

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

      | Name  | Type                                                                         | Description                                     |
      | ----- | ---------------------------------------------------------------------------- | ----------------------------------------------- |
      | `hal` | <ApiLink name="lv_svg_render_hal_t" display="const lv_svg_render_hal_t *" /> | pointer to a structure with rendering functions |
    </ApiMember>

    <ApiMember kind="function" name="lv_svg_render_create" file="libs/svg/lv_svg_render.h" line="81" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/libs/svg/lv_svg_render.h#L81">
      lv_svg_render_create [#lv_svg_render_create]

      Create a new SVG render from an SVG document.

      ```c title=" " lineNumbers=1
      lv_svg_render_obj_t * lv_svg_render_create(const lv_svg_node_t *svg_doc)
      ```

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

      | Name      | Type                                                             | Description                 |
      | --------- | ---------------------------------------------------------------- | --------------------------- |
      | `svg_doc` | <ApiLink name="lv_svg_node_t" display="const lv_svg_node_t *" /> | pointer to the SVG document |

      **Returns:** <ApiLink name="lv_svg_render_obj_t" display="lv_svg_render_obj_t *" /> — pointer to the new SVG render object
    </ApiMember>

    <ApiMember kind="function" name="lv_svg_render_delete" file="libs/svg/lv_svg_render.h" line="87" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/libs/svg/lv_svg_render.h#L87">
      lv_svg_render_delete [#lv_svg_render_delete]

      Delete an SVG render object.

      ```c title=" " lineNumbers=1
      void lv_svg_render_delete(lv_svg_render_obj_t *render)
      ```

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

      | Name     | Type                                                                   | Description                                |
      | -------- | ---------------------------------------------------------------------- | ------------------------------------------ |
      | `render` | <ApiLink name="lv_svg_render_obj_t" display="lv_svg_render_obj_t *" /> | pointer to the SVG render object to delete |
    </ApiMember>

    <ApiMember kind="function" name="lv_draw_svg_render" file="libs/svg/lv_svg_render.h" line="110" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/libs/svg/lv_svg_render.h#L110">
      lv_draw_svg_render [#lv_draw_svg_render]

      Render an SVG object to a vector graphics.

      ```c title=" " lineNumbers=1
      void lv_draw_svg_render(lv_draw_vector_dsc_t *dsc, const lv_svg_render_obj_t *render)
      ```

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

      | Name     | Type                                                                         | Description                                |
      | -------- | ---------------------------------------------------------------------------- | ------------------------------------------ |
      | `dsc`    | <ApiLink name="lv_draw_vector_dsc_t" display="lv_draw_vector_dsc_t *" />     | pointer to the vector graphics descriptor  |
      | `render` | <ApiLink name="lv_svg_render_obj_t" display="const lv_svg_render_obj_t *" /> | pointer to the SVG render object to render |
    </ApiMember>

    <ApiMember kind="function" name="lv_draw_svg" file="libs/svg/lv_svg_render.h" line="117" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/libs/svg/lv_svg_render.h#L117">
      lv_draw_svg [#lv_draw_svg]

      Draw an SVG document to a layer.

      ```c title=" " lineNumbers=1
      void lv_draw_svg(lv_layer_t *layer, const lv_svg_node_t *svg_doc)
      ```

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

      | Name      | Type                                                             | Description                         |
      | --------- | ---------------------------------------------------------------- | ----------------------------------- |
      | `layer`   | <ApiLink name="lv_layer_t" display="lv_layer_t *" />             | pointer to the target layer         |
      | `svg_doc` | <ApiLink name="lv_svg_node_t" display="const lv_svg_node_t *" /> | pointer to the SVG document to draw |
    </ApiMember>
  </ApiTab>
</ApiTabs>

Structs [#structs]

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

  | Member       | Type                                                                            | Description |
  | ------------ | ------------------------------------------------------------------------------- | ----------- |
  | `next`       | <ApiLink name="_lv_svg_render_obj" display="struct _lv_svg_render_obj *" />     |             |
  | `tag`        | <ApiLink name="lv_svg_tag_t" />                                                 |             |
  | `flags`      | <ApiLink name="uint32_t" />                                                     |             |
  | `id`         | `char *`                                                                        |             |
  | `dsc`        | <ApiLink name="lv_vector_path_ctx_t" />                                         |             |
  | `matrix`     | <ApiLink name="lv_matrix_t" />                                                  |             |
  | `head`       | <ApiLink name="_lv_svg_render_obj" display="struct _lv_svg_render_obj *" />     |             |
  | `fill_ref`   | `char *`                                                                        |             |
  | `stroke_ref` | `char *`                                                                        |             |
  | `clz`        | <ApiLink name="_lv_svg_render_class" display="struct _lv_svg_render_class *" /> |             |
</ApiMember>

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

  | Member          | Type                                                                                                                         | Description |
  | --------------- | ---------------------------------------------------------------------------------------------------------------------------- | ----------- |
  | `set_paint_ref` | `void(*)(struct _lv_svg_render_obj *obj, lv_vector_path_ctx_t *dsc, const struct _lv_svg_render_obj *target_obj, bool fill)` |             |
  | `init`          | `void(*)(struct _lv_svg_render_obj *obj, const lv_svg_node_t *node)`                                                         |             |
  | `render`        | `void(*)(const struct _lv_svg_render_obj *obj, lv_draw_vector_dsc_t *dsc, const lv_matrix_t *matrix)`                        |             |
  | `set_attr`      | `void(*)(struct _lv_svg_render_obj *obj, lv_vector_path_ctx_t *dsc, const lv_svg_attr_t *attr)`                              |             |
  | `get_bounds`    | `void(*)(const struct _lv_svg_render_obj *obj, lv_area_t *area)`                                                             |             |
  | `get_size`      | `void(*)(const struct _lv_svg_render_obj *obj, uint32_t *size)`                                                              |             |
  | `destroy`       | `void(*)(struct _lv_svg_render_obj *obj)`                                                                                    |             |
</ApiMember>

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

  | Member          | Type                                                           | Description |
  | --------------- | -------------------------------------------------------------- | ----------- |
  | `load_image`    | `void(*)(const char *image_url, lv_draw_image_dsc_t *img_dsc)` |             |
  | `get_font_path` | `const char *(*)(const char *font_family)`                     |             |
</ApiMember>

Typedefs [#typedefs]

<ApiMember kind="typedef" name="lv_svg_render_obj_t" file="libs/svg/lv_svg_render.h" line="47" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/libs/svg/lv_svg_render.h#L47">
  lv_svg_render_obj_t [#lv_svg_render_obj_t]

  ```c title=" " lineNumbers=1
  typedef struct _lv_svg_render_obj lv_svg_render_obj_t
  ```
</ApiMember>

<TypeUsedBy name="lv_svg_render_obj_t" count="4">
  * `lv_svg_render_delete` — param `render`
  * `lv_svg_render_get_size` — param `render`
  * `lv_svg_render_get_viewport_size` — param `render`
  * `lv_draw_svg_render` — param `render`
</TypeUsedBy>

<ApiMember kind="typedef" name="lv_svg_render_class" file="libs/svg/lv_svg_render.h" line="59" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/libs/svg/lv_svg_render.h#L59">
  lv_svg_render_class [#lv_svg_render_class]

  ```c title=" " lineNumbers=1
  typedef struct _lv_svg_render_class lv_svg_render_class
  ```
</ApiMember>

<ApiMember kind="typedef" name="lv_svg_render_hal_t" file="libs/svg/lv_svg_render.h" line="64" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/libs/svg/lv_svg_render.h#L64">
  lv_svg_render_hal_t [#lv_svg_render_hal_t]

  ```c title=" " lineNumbers=1
  typedef struct _lv_svg_render_hal lv_svg_render_hal_t
  ```
</ApiMember>

<TypeUsedBy name="lv_svg_render_hal_t" count="1">
  * `lv_svg_render_init` — param `hal`
</TypeUsedBy>

Macros [#macros]

<ApiMember kind="macro" name="LV_SVG_RENDER_OBJ" file="libs/svg/lv_svg_render.h" line="27" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/libs/svg/lv_svg_render.h#L27">
  LV_SVG_RENDER_OBJ [#lv_svg_render_obj]

  ```c title=" " lineNumbers=1
  #define LV_SVG_RENDER_OBJ(n) \
      ((lv_svg_render_obj_t*)(n))
  ```
</ApiMember>

Dependencies [#dependencies]

<FileIncludes includes="[&#x22;lv_conf_internal.h&#x22;, &#x22;lv_svg.h&#x22;, &#x22;lv_types.h&#x22;, &#x22;lv_draw_vector_private.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_kconfig.h&#x22;, &#x22;lv_draw.h&#x22;, &#x22;lv_draw_buf.h&#x22;, &#x22;lv_draw_image.h&#x22;, &#x22;lv_draw_vector.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_tree.h&#x22;]" />
