# lv_opengles_private.h (/api/private/drivers/opengles/lv_opengles_private_h)



<ApiSummary functions="12" structs="2" macros="14" />

Functions [#functions]

<ApiMember kind="function" name="lv_opengles_render_params_init" file="private/drivers/opengles/lv_opengles_private.h" line="159" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_private.h#L159">
  lv_opengles_render_params_init [#lv_opengles_render_params_init]

  Initialize the render parameters with default values

  ```c title=" " lineNumbers=1
  void lv_opengles_render_params_init(lv_opengles_render_params_t *params)
  ```

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

  | Name     | Type                                                                                   | Description                                                                     |
  | -------- | -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
  | `params` | <ApiLink name="lv_opengles_render_params_t" display="lv_opengles_render_params_t *" /> | pointer to an initialized <ApiLink name="lv_opengles_render_params_t" /> struct |
</ApiMember>

<ApiMember kind="function" name="lv_opengles_render" file="private/drivers/opengles/lv_opengles_private.h" line="165" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_private.h#L165">
  lv_opengles_render [#lv_opengles_render]

  Render the content of the window/framebuffer using OpenGL

  ```c title=" " lineNumbers=1
  void lv_opengles_render(const lv_opengles_render_params_t *params)
  ```

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

  | Name     | Type                                                                                         | Description                                                                     |
  | -------- | -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
  | `params` | <ApiLink name="lv_opengles_render_params_t" display="const lv_opengles_render_params_t *" /> | pointer to an initialized <ApiLink name="lv_opengles_render_params_t" /> struct |
</ApiMember>

<ApiMember kind="function" name="lv_opengles_render_texture_cf" file="private/drivers/opengles/lv_opengles_private.h" line="180" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_private.h#L180">
  lv_opengles_render_texture_cf [#lv_opengles_render_texture_cf]

  Render a texture holding pixels of an LVGL color format, using alternate blending mode. The channel order and the grayscale handling are derived from `cf`.

  ```c title=" " lineNumbers=1
  void lv_opengles_render_texture_cf(unsigned int texture, const lv_area_t *texture_area, lv_opa_t opa, int32_t disp_w, int32_t disp_h, const lv_area_t *texture_clip_area, bool h_flip, bool v_flip, lv_color_format_t cf)
  ```

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

  | Name                | Type                                                     | Description                                         |
  | ------------------- | -------------------------------------------------------- | --------------------------------------------------- |
  | `texture`           | `unsigned int`                                           | OpenGL texture ID                                   |
  | `texture_area`      | <ApiLink name="lv_area_t" display="const lv_area_t *" /> | the area in the window to render the texture in     |
  | `opa`               | <ApiLink name="lv_opa_t" />                              | opacity to blend the texture with existing contents |
  | `disp_w`            | `int32_t`                                                | width of the window/framebuffer being rendered to   |
  | `disp_h`            | `int32_t`                                                | height of the window/framebuffer being rendered to  |
  | `texture_clip_area` | <ApiLink name="lv_area_t" display="const lv_area_t *" /> | the area of the texture to draw                     |
  | `h_flip`            | `bool`                                                   | horizontal flip                                     |
  | `v_flip`            | `bool`                                                   | vertical flip                                       |
  | `cf`                | <ApiLink name="lv_color_format_t" />                     | the LVGL color format the texture was uploaded from |
</ApiMember>

<ApiMember kind="function" name="lv_opengles_regular_viewport" file="private/drivers/opengles/lv_opengles_private.h" line="191" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_private.h#L191">
  lv_opengles_regular_viewport [#lv_opengles_regular_viewport]

  Set the OpenGL viewport, with vertical co-ordinate conversion

  ```c title=" " lineNumbers=1
  void lv_opengles_regular_viewport(int32_t x, int32_t y, int32_t w, int32_t h)
  ```

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

  | Name | Type      | Description                |
  | ---- | --------- | -------------------------- |
  | `x`  | `int32_t` | x position of the viewport |
  | `y`  | `int32_t` | y position of the viewport |
  | `w`  | `int32_t` | width of the viewport      |
  | `h`  | `int32_t` | height of the viewport     |
</ApiMember>

<ApiMember kind="function" name="lv_opengles_render_display" file="private/drivers/opengles/lv_opengles_private.h" line="193" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_private.h#L193">
  lv_opengles_render_display [#lv_opengles_render_display]

  ```c title=" " lineNumbers=1
  void lv_opengles_render_display(lv_display_t *display, const lv_opengles_render_params_t *params)
  ```

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

  | Name      | Type                                                                                         |
  | --------- | -------------------------------------------------------------------------------------------- |
  | `display` | <ApiLink name="lv_display_t" display="lv_display_t *" />                                     |
  | `params`  | <ApiLink name="lv_opengles_render_params_t" display="const lv_opengles_render_params_t *" /> |
</ApiMember>

<ApiMember kind="function" name="lv_opengles_render_texture_internal" file="private/drivers/opengles/lv_opengles_private.h" line="199" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_private.h#L199">
  lv_opengles_render_texture_internal [#lv_opengles_render_texture_internal]

  ```c title=" " lineNumbers=1
  void lv_opengles_render_texture_internal(unsigned int texture, const lv_area_t *texture_area, lv_opa_t opa, int32_t disp_w, int32_t disp_h, const lv_area_t *texture_clip_area, bool h_flip, bool v_flip)
  ```

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

  | Name                | Type                                                     |
  | ------------------- | -------------------------------------------------------- |
  | `texture`           | `unsigned int`                                           |
  | `texture_area`      | <ApiLink name="lv_area_t" display="const lv_area_t *" /> |
  | `opa`               | <ApiLink name="lv_opa_t" />                              |
  | `disp_w`            | `int32_t`                                                |
  | `disp_h`            | `int32_t`                                                |
  | `texture_clip_area` | <ApiLink name="lv_area_t" display="const lv_area_t *" /> |
  | `h_flip`            | `bool`                                                   |
  | `v_flip`            | `bool`                                                   |
</ApiMember>

<ApiMember kind="function" name="lv_opengles_render_display_texture_internal" file="private/drivers/opengles/lv_opengles_private.h" line="206" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_private.h#L206">
  lv_opengles_render_display_texture_internal [#lv_opengles_render_display_texture_internal]

  ```c title=" " lineNumbers=1
  void lv_opengles_render_display_texture_internal(lv_display_t *display, bool h_flip, bool v_flip)
  ```

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

  | Name      | Type                                                     |
  | --------- | -------------------------------------------------------- |
  | `display` | <ApiLink name="lv_display_t" display="lv_display_t *" /> |
  | `h_flip`  | `bool`                                                   |
  | `v_flip`  | `bool`                                                   |
</ApiMember>

<ApiMember kind="function" name="lv_opengles_gl_format_from_color_format" file="private/drivers/opengles/lv_opengles_private.h" line="214" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_private.h#L214">
  lv_opengles_gl_format_from_color_format [#lv_opengles_gl_format_from_color_format]

  Get the `glTexImage2D` arguments to upload a buffer of an LVGL color format with

  ```c title=" " lineNumbers=1
  lv_result_t lv_opengles_gl_format_from_color_format(lv_color_format_t cf, lv_opengles_gl_format_t *gl_format)
  ```

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

  | Name        | Type                                                                           | Description                   |
  | ----------- | ------------------------------------------------------------------------------ | ----------------------------- |
  | `cf`        | <ApiLink name="lv_color_format_t" />                                           | the LVGL color format         |
  | `gl_format` | <ApiLink name="lv_opengles_gl_format_t" display="lv_opengles_gl_format_t *" /> | pointer to the struct to fill |

  **Returns:** <ApiLink name="lv_result_t" /> — `LV_RESULT_OK` on success, `LV_RESULT_INVALID` if `cf` has no OpenGL equivalent
</ApiMember>

<ApiMember kind="function" name="lv_opengles_color_format_is_rb_swap" file="private/drivers/opengles/lv_opengles_private.h" line="216" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_private.h#L216">
  lv_opengles_color_format_is_rb_swap [#lv_opengles_color_format_is_rb_swap]

  ```c title=" " lineNumbers=1
  bool lv_opengles_color_format_is_rb_swap(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_opengles_color_format_is_premultiplied" file="private/drivers/opengles/lv_opengles_private.h" line="218" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_private.h#L218">
  lv_opengles_color_format_is_premultiplied [#lv_opengles_color_format_is_premultiplied]

  ```c title=" " lineNumbers=1
  bool lv_opengles_color_format_is_premultiplied(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_opengles_texture_upload_buf" file="private/drivers/opengles/lv_opengles_private.h" line="230" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_private.h#L230">
  lv_opengles_texture_upload_buf [#lv_opengles_texture_upload_buf]

  Upload a pixel buffer into an OpenGL texture

  ```c title=" " lineNumbers=1
  lv_result_t lv_opengles_texture_upload_buf(unsigned int texture_id, const void *buf, int32_t w, int32_t h, uint32_t stride, lv_color_format_t cf)
  ```

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

  | Name         | Type                                 | Description                                                                                |
  | ------------ | ------------------------------------ | ------------------------------------------------------------------------------------------ |
  | `texture_id` | `unsigned int`                       | the OpenGL texture ID to upload into                                                       |
  | `buf`        | `const void *`                       | the pixel buffer. **May** be `NULL`.. Can be `NULL` to only define the size and the format |
  | `w`          | `int32_t`                            | width of the buffer in pixels                                                              |
  | `h`          | `int32_t`                            | height of the buffer in pixels                                                             |
  | `stride`     | `uint32_t`                           | stride of the buffer in bytes. Ignored when `buf` is `NULL`                                |
  | `cf`         | <ApiLink name="lv_color_format_t" /> | the LVGL color format of the buffer                                                        |

  **Returns:** <ApiLink name="lv_result_t" /> — `LV_RESULT_OK` on success, `LV_RESULT_INVALID` if `cf` has no OpenGL equivalent
</ApiMember>

<ApiMember kind="function" name="lv_opengles_texture_upload_display_buf" file="private/drivers/opengles/lv_opengles_private.h" line="242" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_private.h#L242">
  lv_opengles_texture_upload_display_buf [#lv_opengles_texture_upload_display_buf]

  Upload the rendered buffer of a display into an OpenGL texture. The size and the color format are taken from the display.

  ```c title=" " lineNumbers=1
  lv_result_t lv_opengles_texture_upload_display_buf(unsigned int texture_id, lv_display_t *display, const void *buf)
  ```

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

  | Name         | Type                                                     | Description                                                                                |
  | ------------ | -------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
  | `texture_id` | `unsigned int`                                           | the OpenGL texture ID to upload into                                                       |
  | `display`    | <ApiLink name="lv_display_t" display="lv_display_t *" /> | the display the buffer belongs to                                                          |
  | `buf`        | `const void *`                                           | the pixel buffer. **May** be `NULL`.. Can be `NULL` to only define the size and the format |

  **Returns:** <ApiLink name="lv_result_t" /> — `LV_RESULT_OK` on success, `LV_RESULT_INVALID` if the color format of the display has no OpenGL equivalent
</ApiMember>

Structs [#structs]

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

  | Member              | Type                                                         | Description |
  | ------------------- | ------------------------------------------------------------ | ----------- |
  | `texture`           | `unsigned int`                                               |             |
  | `texture_area`      | <ApiLink name="lv_area_t" display="const lv_area_t *" />     |             |
  | `opa`               | <ApiLink name="lv_opa_t" />                                  |             |
  | `disp_w`            | `int32_t`                                                    |             |
  | `disp_h`            | `int32_t`                                                    |             |
  | `texture_clip_area` | <ApiLink name="lv_area_t" display="const lv_area_t *" />     |             |
  | `h_flip`            | `bool`                                                       |             |
  | `v_flip`            | `bool`                                                       |             |
  | `rb_swap`           | `bool`                                                       |             |
  | `fill_color`        | <ApiLink name="lv_color_t" />                                |             |
  | `blend_opt`         | `bool`                                                       |             |
  | `matrix`            | <ApiLink name="lv_matrix_t" display="const lv_matrix_t *" /> |             |
  | `cf`                | <ApiLink name="lv_color_format_t" />                         |             |
</ApiMember>

<TypeUsedBy name="lv_opengles_render_params_t" count="3">
  * `lv_opengles_render_params_init` — param `params`
  * `lv_opengles_render` — param `params`
  * `lv_opengles_render_display` — param `params`
</TypeUsedBy>

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

  The `glTexImage2D` arguments describing an LVGL color format

  | Member            | Type       | Description                                                      |
  | ----------------- | ---------- | ---------------------------------------------------------------- |
  | `internal_format` | `int32_t`  | the `internalformat` argument of `glTexImage2D`                  |
  | `format`          | `uint32_t` | the `format` argument of `glTexImage2D`                          |
  | `type`            | `uint32_t` | the `type` argument of `glTexImage2D`                            |
  | `rb_swap`         | `bool`     | the red and blue channels have to be swapped while rendering     |
  | `premultiplied`   | `bool`     | the color channels are multiplied with the alpha channel already |
</ApiMember>

<TypeUsedBy name="lv_opengles_gl_format_t" count="1">
  * `lv_opengles_gl_format_from_color_format` — param `gl_format`
</TypeUsedBy>

Macros [#macros]

<ApiMember kind="macro" name="GL_BGRA" file="private/drivers/opengles/lv_opengles_private.h" line="43" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_private.h#L43">
  GL_BGRA [#gl_bgra]

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

<ApiMember kind="macro" name="GL_TEXTURE_MAX_LEVEL" file="private/drivers/opengles/lv_opengles_private.h" line="47" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_private.h#L47">
  GL_TEXTURE_MAX_LEVEL [#gl_texture_max_level]

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

<ApiMember kind="macro" name="GL_UNPACK_ROW_LENGTH" file="private/drivers/opengles/lv_opengles_private.h" line="51" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_private.h#L51">
  GL_UNPACK_ROW_LENGTH [#gl_unpack_row_length]

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

<ApiMember kind="macro" name="glGenVertexArrays" file="private/drivers/opengles/lv_opengles_private.h" line="55" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_private.h#L55">
  glGenVertexArrays [#glgenvertexarrays]

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

<ApiMember kind="macro" name="glBindVertexArray" file="private/drivers/opengles/lv_opengles_private.h" line="59" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_private.h#L59">
  glBindVertexArray [#glbindvertexarray]

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

<ApiMember kind="macro" name="glDeleteVertexArrays" file="private/drivers/opengles/lv_opengles_private.h" line="63" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_private.h#L63">
  glDeleteVertexArrays [#gldeletevertexarrays]

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

<ApiMember kind="macro" name="glTexStorage2D" file="private/drivers/opengles/lv_opengles_private.h" line="67" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_private.h#L67">
  glTexStorage2D [#gltexstorage2d]

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

<ApiMember kind="macro" name="GL_RGBA32F" file="private/drivers/opengles/lv_opengles_private.h" line="71" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_private.h#L71">
  GL_RGBA32F [#gl_rgba32f]

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

<ApiMember kind="macro" name="GL_NUM_EXTENSIONS" file="private/drivers/opengles/lv_opengles_private.h" line="74" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_private.h#L74">
  GL_NUM_EXTENSIONS [#gl_num_extensions]

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

<ApiMember kind="macro" name="GL_RGB8" file="private/drivers/opengles/lv_opengles_private.h" line="78" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_private.h#L78">
  GL_RGB8 [#gl_rgb8]

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

<ApiMember kind="macro" name="GL_RGBA8" file="private/drivers/opengles/lv_opengles_private.h" line="82" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_private.h#L82">
  GL_RGBA8 [#gl_rgba8]

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

<ApiMember kind="macro" name="GL_R8" file="private/drivers/opengles/lv_opengles_private.h" line="93" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_private.h#L93">
  GL_R8 [#gl_r8]

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

<ApiMember kind="macro" name="GL_RED" file="private/drivers/opengles/lv_opengles_private.h" line="97" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_private.h#L97">
  GL_RED [#gl_red]

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

<ApiMember kind="macro" name="LV_GL_PREFERRED_DEPTH" file="private/drivers/opengles/lv_opengles_private.h" line="117" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_private.h#L117">
  LV_GL_PREFERRED_DEPTH [#lv_gl_preferred_depth]

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

Dependencies [#dependencies]

<FileIncludes includes="[&#x22;lvgl_public.h&#x22;, &#x22;gles2.h&#x22;, &#x22;egl.h&#x22;, &#x22;glfw3.h&#x22;]" includedBy="[&#x22;lv_opengles_egl_private.h&#x22;, &#x22;lv_opengl_shader_internal.h&#x22;, &#x22;lv_gltf_data_internal.hpp&#x22;, &#x22;lvgl_private.h&#x22;]" />
