# lv_opengles_egl_private.h (/api/private/drivers/opengles/lv_opengles_egl_private_h)



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

<ApiSummary functions="1" structs="5" typedefs="10" />

Functions [#functions]

<ApiMember kind="function" name="lv_opengles_egl_display_select_config" file="private/drivers/opengles/lv_opengles_egl_private.h" line="108" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_egl_private.h#L108">
  lv_opengles_egl_display_select_config [#lv_opengles_egl_display_select_config]

  ```c title=" " lineNumbers=1
  size_t lv_opengles_egl_display_select_config(lv_display_t *display, const lv_egl_config_t *configs, size_t config_count)
  ```

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

  | Name           | Type                                                                 |
  | -------------- | -------------------------------------------------------------------- |
  | `display`      | <ApiLink name="lv_display_t" display="lv_display_t *" />             |
  | `configs`      | <ApiLink name="lv_egl_config_t" display="const lv_egl_config_t *" /> |
  | `config_count` | `size_t`                                                             |
</ApiMember>

Structs [#structs]

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

  | Member            | Type     | Description |
  | ----------------- | -------- | ----------- |
  | `id`              | `EGLint` |             |
  | `max_width`       | `EGLint` |             |
  | `max_height`      | `EGLint` |             |
  | `buffer_size`     | `EGLint` |             |
  | `depth`           | `EGLint` |             |
  | `stencil`         | `EGLint` |             |
  | `samples`         | `EGLint` |             |
  | `surface_type`    | `EGLint` |             |
  | `renderable_type` | `EGLint` |             |
  | `r_bits`          | `EGLint` |             |
  | `g_bits`          | `EGLint` |             |
  | `b_bits`          | `EGLint` |             |
  | `a_bits`          | `EGLint` |             |
</ApiMember>

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

  | Member      | Type     | Description |
  | ----------- | -------- | ----------- |
  | `visual_id` | `EGLint` |             |
</ApiMember>

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

  | Member    | Type         | Description |
  | --------- | ------------ | ----------- |
  | `display` | `EGLDisplay` |             |
  | `config`  | `EGLConfig`  |             |
</ApiMember>

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

  | Member               | Type                                        | Description |
  | -------------------- | ------------------------------------------- | ----------- |
  | `select_config`      | <ApiLink name="lv_egl_select_config_t" />   |             |
  | `driver_data`        | `void *`                                    |             |
  | `native_display`     | `void *`                                    |             |
  | `create_window_cb`   | <ApiLink name="lv_egl_create_window_t" />   |             |
  | `destroy_window_cb`  | <ApiLink name="lv_egl_destroy_window_t" />  |             |
  | `create_surface_cb`  | <ApiLink name="lv_egl_create_surface_t" />  |             |
  | `destroy_surface_cb` | <ApiLink name="lv_egl_destroy_surface_t" /> |             |
  | `flip_cb`            | <ApiLink name="lv_egl_flip_t" />            |             |
  | `egl_platform`       | `uint16_t`                                  |             |
</ApiMember>

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

  | Member              | Type                                  | Description                                                                 |
  | ------------------- | ------------------------------------- | --------------------------------------------------------------------------- |
  | `native_window`     | `EGLNativeWindowType`                 |                                                                             |
  | `egl_display`       | `EGLDisplay`                          |                                                                             |
  | `egl_config`        | `EGLConfig`                           |                                                                             |
  | `egl_context`       | `EGLContext`                          |                                                                             |
  | `egl_surface`       | `EGLSurface`                          |                                                                             |
  | `egl_lib_handle`    | `void *`                              |                                                                             |
  | `opengl_lib_handle` | `void *`                              |                                                                             |
  | `interface`         | <ApiLink name="lv_egl_interface_t" /> |                                                                             |
  | `width`             | `int32_t`                             |                                                                             |
  | `height`            | `int32_t`                             |                                                                             |
  | `gles_version`      | `uint8_t`                             | OpenGL ES major version of `egl_context`, as actually granted by the driver |
  | `vsync`             | `bool`                                |                                                                             |
</ApiMember>

Typedefs [#typedefs]

<ApiMember kind="typedef" name="lv_egl_init_display_t" file="private/drivers/opengles/lv_opengles_egl_private.h" line="57" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_egl_private.h#L57">
  lv_egl_init_display_t [#lv_egl_init_display_t]

  ```c title=" " lineNumbers=1
  typedef void *(* lv_egl_init_display_t) (void *driver_data, int32_t width, int32_t height)
  ```
</ApiMember>

<ApiMember kind="typedef" name="lv_egl_get_display_t" file="private/drivers/opengles/lv_opengles_egl_private.h" line="58" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_egl_private.h#L58">
  lv_egl_get_display_t [#lv_egl_get_display_t]

  ```c title=" " lineNumbers=1
  typedef void *(* lv_egl_get_display_t) (void *driver_data)
  ```
</ApiMember>

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

  ```c title=" " lineNumbers=1
  typedef void *(* lv_egl_create_window_t) (void *driver_data, const lv_egl_native_window_properties_t *props)
  ```
</ApiMember>

<ApiMember kind="typedef" name="lv_egl_destroy_window_t" file="private/drivers/opengles/lv_opengles_egl_private.h" line="60" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_egl_private.h#L60">
  lv_egl_destroy_window_t [#lv_egl_destroy_window_t]

  ```c title=" " lineNumbers=1
  typedef void(* lv_egl_destroy_window_t) (void *driver_data, void *native_window)
  ```
</ApiMember>

<ApiMember kind="typedef" name="lv_egl_create_surface_t" file="private/drivers/opengles/lv_opengles_egl_private.h" line="62" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_egl_private.h#L62">
  lv_egl_create_surface_t [#lv_egl_create_surface_t]

  ```c title=" " lineNumbers=1
  typedef void *(* lv_egl_create_surface_t) (void *driver_data, const lv_egl_create_surface_params_t *props)
  ```
</ApiMember>

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

  ```c title=" " lineNumbers=1
  typedef void(* lv_egl_destroy_surface_t) (void *driver_data, void *surface)
  ```
</ApiMember>

<ApiMember kind="typedef" name="lv_egl_set_visible_t" file="private/drivers/opengles/lv_opengles_egl_private.h" line="65" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_egl_private.h#L65">
  lv_egl_set_visible_t [#lv_egl_set_visible_t]

  ```c title=" " lineNumbers=1
  typedef void(* lv_egl_set_visible_t) (void *driver_data, bool v)
  ```
</ApiMember>

<ApiMember kind="typedef" name="lv_egl_flip_t" file="private/drivers/opengles/lv_opengles_egl_private.h" line="66" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_egl_private.h#L66">
  lv_egl_flip_t [#lv_egl_flip_t]

  ```c title=" " lineNumbers=1
  typedef void(* lv_egl_flip_t) (void *driver_data, bool vsync)
  ```
</ApiMember>

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

  ```c title=" " lineNumbers=1
  typedef void(* lv_egl_native_state_deinit_t) (void **driver_data)
  ```
</ApiMember>

<ApiMember kind="typedef" name="lv_egl_select_config_t" file="private/drivers/opengles/lv_opengles_egl_private.h" line="68" url="https://github.com/lvgl/lvgl/tree/e1a0ad863f29742359bc680d6a7d973448ec2285/src/drivers/opengles/lv_opengles_egl_private.h#L68">
  lv_egl_select_config_t [#lv_egl_select_config_t]

  ```c title=" " lineNumbers=1
  typedef size_t(* lv_egl_select_config_t) (void *driver_data, const lv_egl_config_t *configs, size_t config_count)
  ```
</ApiMember>

Dependencies [#dependencies]

<FileIncludes includes="[&#x22;lvgl_public.h&#x22;, &#x22;lv_opengles_private.h&#x22;, &#x22;lv_opengles_egl.h&#x22;]" includedBy="[&#x22;lv_linux_drm_egl_private.h&#x22;, &#x22;lv_sdl_private.h&#x22;, &#x22;lvgl_private.h&#x22;]" />
