# lv_draw_dma2d_private.h (/api/private/draw/dma2d/lv_draw_dma2d_private_h)



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

<ApiSummary functions="5" enums="4" structs="2" macros="2" />

Functions [#functions]

<ApiMember kind="function" name="lv_draw_dma2d_fill" file="private/draw/dma2d/lv_draw_dma2d_private.h" line="126" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/dma2d/lv_draw_dma2d_private.h#L126">
  lv_draw_dma2d_fill [#lv_draw_dma2d_fill]

  ```c title=" " lineNumbers=1
  void lv_draw_dma2d_fill(lv_draw_task_t *t, void *first_pixel, int32_t w, int32_t h, int32_t stride)
  ```

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

  | Name          | Type                                                         |
  | ------------- | ------------------------------------------------------------ |
  | `t`           | <ApiLink name="lv_draw_task_t" display="lv_draw_task_t *" /> |
  | `first_pixel` | `void *`                                                     |
  | `w`           | `int32_t`                                                    |
  | `h`           | `int32_t`                                                    |
  | `stride`      | `int32_t`                                                    |
</ApiMember>

<ApiMember kind="function" name="lv_draw_dma2d_image" file="private/draw/dma2d/lv_draw_dma2d_private.h" line="127" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/dma2d/lv_draw_dma2d_private.h#L127">
  lv_draw_dma2d_image [#lv_draw_dma2d_image]

  ```c title=" " lineNumbers=1
  void lv_draw_dma2d_image(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                                                                         |
  | ---------- | ---------------------------------------------------------------------------- |
  | `t`        | <ApiLink name="lv_draw_task_t" display="lv_draw_task_t *" />                 |
  | `draw_dsc` | <ApiLink name="lv_draw_image_dsc_t" display="const lv_draw_image_dsc_t *" /> |
  | `coords`   | <ApiLink name="lv_area_t" display="const lv_area_t *" />                     |
</ApiMember>

<ApiMember kind="function" name="lv_draw_dma2d_cf_to_dma2d_output_cf" file="private/draw/dma2d/lv_draw_dma2d_private.h" line="129" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/dma2d/lv_draw_dma2d_private.h#L129">
  lv_draw_dma2d_cf_to_dma2d_output_cf [#lv_draw_dma2d_cf_to_dma2d_output_cf]

  ```c title=" " lineNumbers=1
  lv_draw_dma2d_output_cf_t lv_draw_dma2d_cf_to_dma2d_output_cf(lv_color_format_t cf)
  ```

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

  | Name | Type                                 |
  | ---- | ------------------------------------ |
  | `cf` | <ApiLink name="lv_color_format_t" /> |
</ApiMember>

<ApiMember kind="function" name="lv_draw_dma2d_color_to_dma2d_color" file="private/draw/dma2d/lv_draw_dma2d_private.h" line="130" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/dma2d/lv_draw_dma2d_private.h#L130">
  lv_draw_dma2d_color_to_dma2d_color [#lv_draw_dma2d_color_to_dma2d_color]

  ```c title=" " lineNumbers=1
  uint32_t lv_draw_dma2d_color_to_dma2d_color(lv_draw_dma2d_output_cf_t cf, lv_color_t color)
  ```

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

  | Name    | Type                                         |
  | ------- | -------------------------------------------- |
  | `cf`    | <ApiLink name="lv_draw_dma2d_output_cf_t" /> |
  | `color` | <ApiLink name="lv_color_t" />                |
</ApiMember>

<ApiMember kind="function" name="lv_draw_dma2d_configure_and_start_transfer" file="private/draw/dma2d/lv_draw_dma2d_private.h" line="131" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/dma2d/lv_draw_dma2d_private.h#L131">
  lv_draw_dma2d_configure_and_start_transfer [#lv_draw_dma2d_configure_and_start_transfer]

  ```c title=" " lineNumbers=1
  void lv_draw_dma2d_configure_and_start_transfer(const lv_draw_dma2d_configuration_t *conf)
  ```

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

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

Enums [#enums]

<ApiMember kind="enum" name="lv_draw_dma2d_output_cf_t" file="private/draw/dma2d/lv_draw_dma2d_private.h" line="44" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/dma2d/lv_draw_dma2d_private.h#L44">
  lv_draw_dma2d_output_cf_t [#lv_draw_dma2d_output_cf_t]

  | Name                               | Value |
  | ---------------------------------- | ----- |
  | `LV_DRAW_DMA2D_OUTPUT_CF_ARGB8888` | `0`   |
  | `LV_DRAW_DMA2D_OUTPUT_CF_RGB888`   |       |
  | `LV_DRAW_DMA2D_OUTPUT_CF_RGB565`   |       |
  | `LV_DRAW_DMA2D_OUTPUT_CF_ARGB1555` |       |
  | `LV_DRAW_DMA2D_OUTPUT_CF_ARGB4444` |       |
</ApiMember>

<TypeUsedBy name="lv_draw_dma2d_output_cf_t" count="1">
  * `lv_draw_dma2d_color_to_dma2d_color` — param `cf`
</TypeUsedBy>

<ApiMember kind="enum" name="lv_draw_dma2d_fgbg_cf_t" file="private/draw/dma2d/lv_draw_dma2d_private.h" line="52" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/dma2d/lv_draw_dma2d_private.h#L52">
  lv_draw_dma2d_fgbg_cf_t [#lv_draw_dma2d_fgbg_cf_t]

  | Name                             | Value |
  | -------------------------------- | ----- |
  | `LV_DRAW_DMA2D_FGBG_CF_ARGB8888` | `0`   |
  | `LV_DRAW_DMA2D_FGBG_CF_RGB888`   |       |
  | `LV_DRAW_DMA2D_FGBG_CF_RGB565`   |       |
  | `LV_DRAW_DMA2D_FGBG_CF_ARGB1555` |       |
  | `LV_DRAW_DMA2D_FGBG_CF_ARGB4444` |       |
  | `LV_DRAW_DMA2D_FGBG_CF_L8`       |       |
  | `LV_DRAW_DMA2D_FGBG_CF_AL44`     |       |
  | `LV_DRAW_DMA2D_FGBG_CF_AL88`     |       |
  | `LV_DRAW_DMA2D_FGBG_CF_L4`       |       |
  | `LV_DRAW_DMA2D_FGBG_CF_A8`       |       |
  | `LV_DRAW_DMA2D_FGBG_CF_A4`       |       |
  | `LV_DRAW_DMA2D_FGBG_CF_YCBCR`    |       |
</ApiMember>

<ApiMember kind="enum" name="lv_draw_dma2d_mode_t" file="private/draw/dma2d/lv_draw_dma2d_private.h" line="67" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/dma2d/lv_draw_dma2d_private.h#L67">
  lv_draw_dma2d_mode_t [#lv_draw_dma2d_mode_t]

  | Name                                                                   | Value |
  | ---------------------------------------------------------------------- | ----- |
  | `LV_DRAW_DMA2D_MODE_MEMORY_TO_MEMORY`                                  | `0`   |
  | `LV_DRAW_DMA2D_MODE_MEMORY_TO_MEMORY_WITH_PFC`                         |       |
  | `LV_DRAW_DMA2D_MODE_MEMORY_TO_MEMORY_WITH_BLENDING`                    |       |
  | `LV_DRAW_DMA2D_MODE_REGISTER_TO_MEMORY`                                |       |
  | `LV_DRAW_DMA2D_MODE_MEMORY_TO_MEMORY_WITH_BLENDING_AND_FIXED_COLOR_FG` |       |
  | `LV_DRAW_DMA2D_MODE_MEMORY_TO_MEMORY_WITH_BLENDING_AND_FIXED_COLOR_BG` |       |
</ApiMember>

<ApiMember kind="enum" name="lv_draw_dma2d_alpha_mode_t" file="private/draw/dma2d/lv_draw_dma2d_private.h" line="76" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/dma2d/lv_draw_dma2d_private.h#L76">
  lv_draw_dma2d_alpha_mode_t [#lv_draw_dma2d_alpha_mode_t]

  | Name                                                     | Value |
  | -------------------------------------------------------- | ----- |
  | `LV_DRAW_DMA2D_ALPHA_MODE_NO_MODIFY_IMAGE_ALPHA_CHANNEL` | `0`   |
  | `LV_DRAW_DMA2D_ALPHA_MODE_REPLACE_ALPHA_CHANNEL`         |       |
  | `LV_DRAW_DMA2D_ALPHA_MODE_MULTIPLY_IMAGE_ALPHA_CHANNEL`  |       |
</ApiMember>

Structs [#structs]

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

  | Member                  | Type                                         | Description |
  | ----------------------- | -------------------------------------------- | ----------- |
  | `mode`                  | <ApiLink name="lv_draw_dma2d_mode_t" />      |             |
  | `w`                     | `uint32_t`                                   |             |
  | `h`                     | `uint32_t`                                   |             |
  | `output_address`        | `void *`                                     |             |
  | `output_offset`         | `uint32_t`                                   |             |
  | `output_cf`             | <ApiLink name="lv_draw_dma2d_output_cf_t" /> |             |
  | `reg_to_mem_mode_color` | `uint32_t`                                   |             |
  | `fg_address`            | `const void *`                               |             |
  | `fg_offset`             | `uint32_t`                                   |             |
  | `fg_cf`                 | <ApiLink name="lv_draw_dma2d_fgbg_cf_t" />   |             |
  | `fg_color`              | `uint32_t`                                   |             |
  | `fg_alpha_mode`         | `uint32_t`                                   |             |
  | `fg_alpha`              | `uint32_t`                                   |             |
  | `bg_address`            | `const void *`                               |             |
  | `bg_offset`             | `uint32_t`                                   |             |
  | `bg_cf`                 | <ApiLink name="lv_draw_dma2d_fgbg_cf_t" />   |             |
  | `bg_color`              | `uint32_t`                                   |             |
  | `bg_alpha_mode`         | `uint32_t`                                   |             |
  | `bg_alpha`              | `uint32_t`                                   |             |
</ApiMember>

<TypeUsedBy name="lv_draw_dma2d_configuration_t" count="1">
  * `lv_draw_dma2d_configure_and_start_transfer` — param `conf`
</TypeUsedBy>

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

  | Member              | Type                                                                 | Description                                                                                                                                                                                                        |
  | ------------------- | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
  | `base_unit`         | <ApiLink name="lv_draw_unit_t" />                                    |                                                                                                                                                                                                                    |
  | `task_act`          | <ApiLink name="lv_draw_task_t" display="lv_draw_task_t *volatile" /> |                                                                                                                                                                                                                    |
  | `last_clipped_area` | <ApiLink name="lv_area_t" />                                         | Last draw task clipped area, stored here so that we can invalidate the cache after the drawing operation is done. This can either happen immediately after the draw operation is done or on the DMA2D IRQ callback |
  | `interrupt_signal`  | `lv_thread_sync_t`                                                   |                                                                                                                                                                                                                    |
</ApiMember>

Macros [#macros]

<ApiMember kind="macro" name="LV_DRAW_DMA2D_ASYNC" file="private/draw/dma2d/lv_draw_dma2d_private.h" line="29" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/dma2d/lv_draw_dma2d_private.h#L29">
  LV_DRAW_DMA2D_ASYNC [#lv_draw_dma2d_async]

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

<ApiMember kind="macro" name="LV_DRAW_DMA2D_CACHE" file="private/draw/dma2d/lv_draw_dma2d_private.h" line="37" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/draw/dma2d/lv_draw_dma2d_private.h#L37">
  LV_DRAW_DMA2D_CACHE [#lv_draw_dma2d_cache]

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

Dependencies [#dependencies]

<FileIncludes includes="[&#x22;lvgl_public.h&#x22;, &#x22;lv_draw_private.h&#x22;, &#x22;lv_draw_sw.h&#x22;, &#x22;stm32h7xx_hal.h&#x22;]" includedBy="[&#x22;lvgl_private.h&#x22;]" transitiveIncludes="[&#x22;lv_blend_neon.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_sw_blend.h&#x22;, &#x22;lv_draw_sw_blend_neon_to_rgb565.h&#x22;, &#x22;lv_draw_sw_blend_neon_to_rgb888.h&#x22;, &#x22;lv_image_cache.h&#x22;, &#x22;lv_iter_private.h&#x22;, &#x22;lv_os_private.h&#x22;]" />
