# lv_svg_render.h (/api/private/image/svg/lv_svg_render_h)



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

Functions [#functions]

<ApiTabs items="[&#x22;Getters (2)&#x22;,&#x22;Other (4)&#x22;]">
  <ApiTab value="Getters (2)">
    <ApiMember kind="function" name="lv_svg_render_get_size" file="private/image/svg/lv_svg_render.h" line="94" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/image/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:** `uint32_t` — the bytes of SVG render objects
    </ApiMember>

    <ApiMember kind="function" name="lv_svg_render_get_viewport_size" file="private/image/svg/lv_svg_render.h" line="103" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/image/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 (4)">
    <ApiMember kind="function" name="lv_svg_render_init" file="private/image/svg/lv_svg_render.h" line="74" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/image/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="private/image/svg/lv_svg_render.h" line="81" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/image/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="private/image/svg/lv_svg_render.h" line="87" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/image/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="private/image/svg/lv_svg_render.h" line="110" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/image/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>
  </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`      | `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(*)(lv_svg_render_obj_t *obj, lv_vector_path_ctx_t *dsc, const lv_svg_render_obj_t *target_obj, bool fill)` |             |
  | `init`          | `void(*)(lv_svg_render_obj_t *obj, const lv_svg_node_t *node)`                                                   |             |
  | `render`        | `void(*)(const lv_svg_render_obj_t *obj, lv_draw_vector_dsc_t *dsc, const lv_matrix_t *matrix)`                  |             |
  | `set_attr`      | `void(*)(lv_svg_render_obj_t *obj, lv_vector_path_ctx_t *dsc, const lv_svg_attr_t *attr)`                        |             |
  | `get_bounds`    | `void(*)(const lv_svg_render_obj_t *obj, lv_area_t *area)`                                                       |             |
  | `get_size`      | `void(*)(const lv_svg_render_obj_t *obj, uint32_t *size)`                                                        |             |
  | `destroy`       | `void(*)(lv_svg_render_obj_t *obj)`                                                                              |             |
</ApiMember>

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

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

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

Typedefs [#typedefs]

<ApiMember kind="typedef" name="lv_svg_render_obj_t" file="private/image/svg/lv_svg_render.h" line="46" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/image/svg/lv_svg_render.h#L46">
  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="private/image/svg/lv_svg_render.h" line="58" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/image/svg/lv_svg_render.h#L58">
  lv_svg_render_class [#lv_svg_render_class]

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

Macros [#macros]

<ApiMember kind="macro" name="LV_SVG_RENDER_OBJ" file="private/image/svg/lv_svg_render.h" line="26" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/image/svg/lv_svg_render.h#L26">
  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;lvgl_public.h&#x22;, &#x22;lv_draw_vector_private.h&#x22;, &#x22;lv_svg_private.h&#x22;]" includedBy="[&#x22;lvgl_private.h&#x22;]" transitiveIncludes="[&#x22;lv_array.h&#x22;, &#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_draw_private.h&#x22;, &#x22;lv_image_cache.h&#x22;, &#x22;lv_iter_private.h&#x22;, &#x22;lv_os_private.h&#x22;, &#x22;lv_tree.h&#x22;]" />
