# lv_opengl_shader_internal.h (/api/drivers/opengles/opengl_shader/lv_opengl_shader_internal_h)



<ApiSummary functions="14" enums="1" structs="8" typedefs="4" />

Functions [#functions]

<ApiTabs items="[&#x22;Getters (3)&#x22;,&#x22;Other (11)&#x22;]">
  <ApiTab value="Getters (3)">
    <ApiMember kind="function" name="lv_opengl_shader_program_get_id" file="drivers/opengles/opengl_shader/lv_opengl_shader_internal.h" line="104" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/drivers/opengles/opengl_shader/lv_opengl_shader_internal.h#L104">
      lv_opengl_shader_program_get_id [#lv_opengl_shader_program_get_id]

      ```c title=" " lineNumbers=1
      GLuint lv_opengl_shader_program_get_id(lv_opengl_shader_program_t *program)
      ```

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

      | Name      | Type                                                                                 |
      | --------- | ------------------------------------------------------------------------------------ |
      | `program` | <ApiLink name="lv_opengl_shader_program_t" display="lv_opengl_shader_program_t *" /> |
    </ApiMember>

    <ApiMember kind="function" name="lv_opengl_shader_manager_get_texture" file="drivers/opengles/opengl_shader/lv_opengl_shader_internal.h" line="111" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/drivers/opengles/opengl_shader/lv_opengl_shader_internal.h#L111">
      lv_opengl_shader_manager_get_texture [#lv_opengl_shader_manager_get_texture]

      ```c title=" " lineNumbers=1
      GLuint lv_opengl_shader_manager_get_texture(lv_opengl_shader_manager_t *manager, uint32_t hash)
      ```

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

      | Name      | Type                                                                                 |
      | --------- | ------------------------------------------------------------------------------------ |
      | `manager` | <ApiLink name="lv_opengl_shader_manager_t" display="lv_opengl_shader_manager_t *" /> |
      | `hash`    | <ApiLink name="uint32_t" />                                                          |
    </ApiMember>

    <ApiMember kind="function" name="lv_opengl_shader_manager_get_program" file="drivers/opengles/opengl_shader/lv_opengl_shader_internal.h" line="116" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/drivers/opengles/opengl_shader/lv_opengl_shader_internal.h#L116">
      lv_opengl_shader_manager_get_program [#lv_opengl_shader_manager_get_program]

      ```c title=" " lineNumbers=1
      lv_opengl_shader_program_t * lv_opengl_shader_manager_get_program(lv_opengl_shader_manager_t *manager, uint32_t fragment_shader_hash, uint32_t vertex_shader_hash)
      ```

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

      | Name                   | Type                                                                                 |
      | ---------------------- | ------------------------------------------------------------------------------------ |
      | `manager`              | <ApiLink name="lv_opengl_shader_manager_t" display="lv_opengl_shader_manager_t *" /> |
      | `fragment_shader_hash` | <ApiLink name="uint32_t" />                                                          |
      | `vertex_shader_hash`   | <ApiLink name="uint32_t" />                                                          |
    </ApiMember>
  </ApiTab>

  <ApiTab value="Other (11)">
    <ApiMember kind="function" name="lv_opengl_shader_manager_process_includes" file="drivers/opengles/opengl_shader/lv_opengl_shader_internal.h" line="99" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/drivers/opengles/opengl_shader/lv_opengl_shader_internal.h#L99">
      lv_opengl_shader_manager_process_includes [#lv_opengl_shader_manager_process_includes]

      ```c title=" " lineNumbers=1
      char * lv_opengl_shader_manager_process_includes(const char *c_src, const lv_opengl_shader_t *src_includes, size_t num_items)
      ```

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

      | Name           | Type                                                                       |
      | -------------- | -------------------------------------------------------------------------- |
      | `c_src`        | `const char *`                                                             |
      | `src_includes` | <ApiLink name="lv_opengl_shader_t" display="const lv_opengl_shader_t *" /> |
      | `num_items`    | <ApiLink name="size_t" />                                                  |
    </ApiMember>

    <ApiMember kind="function" name="lv_opengl_shader_program_create" file="drivers/opengles/opengl_shader/lv_opengl_shader_internal.h" line="102" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/drivers/opengles/opengl_shader/lv_opengl_shader_internal.h#L102">
      lv_opengl_shader_program_create [#lv_opengl_shader_program_create]

      ```c title=" " lineNumbers=1
      lv_opengl_shader_program_t * lv_opengl_shader_program_create(uint32_t id)
      ```

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

      | Name | Type                        |
      | ---- | --------------------------- |
      | `id` | <ApiLink name="uint32_t" /> |
    </ApiMember>

    <ApiMember kind="function" name="lv_opengl_shader_program_destroy" file="drivers/opengles/opengl_shader/lv_opengl_shader_internal.h" line="103" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/drivers/opengles/opengl_shader/lv_opengl_shader_internal.h#L103">
      lv_opengl_shader_program_destroy [#lv_opengl_shader_program_destroy]

      ```c title=" " lineNumbers=1
      void lv_opengl_shader_program_destroy(lv_opengl_shader_program_t *program)
      ```

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

      | Name      | Type                                                                                 |
      | --------- | ------------------------------------------------------------------------------------ |
      | `program` | <ApiLink name="lv_opengl_shader_program_t" display="lv_opengl_shader_program_t *" /> |
    </ApiMember>

    <ApiMember kind="function" name="lv_opengl_shader_manager_init" file="drivers/opengles/opengl_shader/lv_opengl_shader_internal.h" line="106" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/drivers/opengles/opengl_shader/lv_opengl_shader_internal.h#L106">
      lv_opengl_shader_manager_init [#lv_opengl_shader_manager_init]

      ```c title=" " lineNumbers=1
      void lv_opengl_shader_manager_init(lv_opengl_shader_manager_t *manager, const lv_opengl_shader_t *sources, size_t len, const char *vert_src, const char *frag_src)
      ```

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

      | Name       | Type                                                                                 |
      | ---------- | ------------------------------------------------------------------------------------ |
      | `manager`  | <ApiLink name="lv_opengl_shader_manager_t" display="lv_opengl_shader_manager_t *" /> |
      | `sources`  | <ApiLink name="lv_opengl_shader_t" display="const lv_opengl_shader_t *" />           |
      | `len`      | <ApiLink name="size_t" />                                                            |
      | `vert_src` | `const char *`                                                                       |
      | `frag_src` | `const char *`                                                                       |
    </ApiMember>

    <ApiMember kind="function" name="lv_opengl_shader_manager_deinit" file="drivers/opengles/opengl_shader/lv_opengl_shader_internal.h" line="109" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/drivers/opengles/opengl_shader/lv_opengl_shader_internal.h#L109">
      lv_opengl_shader_manager_deinit [#lv_opengl_shader_manager_deinit]

      ```c title=" " lineNumbers=1
      void lv_opengl_shader_manager_deinit(lv_opengl_shader_manager_t *manager)
      ```

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

      | Name      | Type                                                                                 |
      | --------- | ------------------------------------------------------------------------------------ |
      | `manager` | <ApiLink name="lv_opengl_shader_manager_t" display="lv_opengl_shader_manager_t *" /> |
    </ApiMember>

    <ApiMember kind="function" name="lv_opengl_shader_hash" file="drivers/opengles/opengl_shader/lv_opengl_shader_internal.h" line="110" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/drivers/opengles/opengl_shader/lv_opengl_shader_internal.h#L110">
      lv_opengl_shader_hash [#lv_opengl_shader_hash]

      ```c title=" " lineNumbers=1
      uint32_t lv_opengl_shader_hash(const char *value)
      ```

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

      | Name    | Type           |
      | ------- | -------------- |
      | `value` | `const char *` |
    </ApiMember>

    <ApiMember kind="function" name="lv_opengl_shader_manager_store_texture" file="drivers/opengles/opengl_shader/lv_opengl_shader_internal.h" line="112" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/drivers/opengles/opengl_shader/lv_opengl_shader_internal.h#L112">
      lv_opengl_shader_manager_store_texture [#lv_opengl_shader_manager_store_texture]

      ```c title=" " lineNumbers=1
      void lv_opengl_shader_manager_store_texture(lv_opengl_shader_manager_t *manager, uint32_t hash, GLuint id)
      ```

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

      | Name      | Type                                                                                 |
      | --------- | ------------------------------------------------------------------------------------ |
      | `manager` | <ApiLink name="lv_opengl_shader_manager_t" display="lv_opengl_shader_manager_t *" /> |
      | `hash`    | <ApiLink name="uint32_t" />                                                          |
      | `id`      | `GLuint`                                                                             |
    </ApiMember>

    <ApiMember kind="function" name="lv_opengl_shader_manager_select_shader" file="drivers/opengles/opengl_shader/lv_opengl_shader_internal.h" line="113" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/drivers/opengles/opengl_shader/lv_opengl_shader_internal.h#L113">
      lv_opengl_shader_manager_select_shader [#lv_opengl_shader_manager_select_shader]

      ```c title=" " lineNumbers=1
      lv_result_t lv_opengl_shader_manager_select_shader(lv_opengl_shader_manager_t *shader, const char *shader_identifier, const lv_opengl_shader_define_t *permutations, size_t permutations_len, lv_opengl_glsl_version_t glsl_version, uint32_t *out_hash)
      ```

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

      | Name                | Type                                                                                     |
      | ------------------- | ---------------------------------------------------------------------------------------- |
      | `shader`            | <ApiLink name="lv_opengl_shader_manager_t" display="lv_opengl_shader_manager_t *" />     |
      | `shader_identifier` | `const char *`                                                                           |
      | `permutations`      | <ApiLink name="lv_opengl_shader_define_t" display="const lv_opengl_shader_define_t *" /> |
      | `permutations_len`  | <ApiLink name="size_t" />                                                                |
      | `glsl_version`      | <ApiLink name="lv_opengl_glsl_version_t" />                                              |
      | `out_hash`          | <ApiLink name="uint32_t" display="uint32_t *" />                                         |
    </ApiMember>

    <ApiMember kind="function" name="lv_opengles_glsl_version_to_string" file="drivers/opengles/opengl_shader/lv_opengl_shader_internal.h" line="120" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/drivers/opengles/opengl_shader/lv_opengl_shader_internal.h#L120">
      lv_opengles_glsl_version_to_string [#lv_opengles_glsl_version_to_string]

      ```c title=" " lineNumbers=1
      const char * lv_opengles_glsl_version_to_string(lv_opengl_glsl_version_t version)
      ```

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

      | Name      | Type                                        |
      | --------- | ------------------------------------------- |
      | `version` | <ApiLink name="lv_opengl_glsl_version_t" /> |
    </ApiMember>

    <ApiMember kind="function" name="lv_opengl_shader_manager_compile_program" file="drivers/opengles/opengl_shader/lv_opengl_shader_internal.h" line="122" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/drivers/opengles/opengl_shader/lv_opengl_shader_internal.h#L122">
      lv_opengl_shader_manager_compile_program [#lv_opengl_shader_manager_compile_program]

      ```c title=" " lineNumbers=1
      lv_opengl_shader_program_t * lv_opengl_shader_manager_compile_program(lv_opengl_shader_manager_t *manager, const lv_opengl_shader_params_t *frag_shader, const lv_opengl_shader_params_t *vert_shader, lv_opengl_glsl_version_t version)
      ```

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

      | Name          | Type                                                                                     |
      | ------------- | ---------------------------------------------------------------------------------------- |
      | `manager`     | <ApiLink name="lv_opengl_shader_manager_t" display="lv_opengl_shader_manager_t *" />     |
      | `frag_shader` | <ApiLink name="lv_opengl_shader_params_t" display="const lv_opengl_shader_params_t *" /> |
      | `vert_shader` | <ApiLink name="lv_opengl_shader_params_t" display="const lv_opengl_shader_params_t *" /> |
      | `version`     | <ApiLink name="lv_opengl_glsl_version_t" />                                              |
    </ApiMember>

    <ApiMember kind="function" name="lv_opengl_shader_manager_compile_program_best_version" file="drivers/opengles/opengl_shader/lv_opengl_shader_internal.h" line="127" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/drivers/opengles/opengl_shader/lv_opengl_shader_internal.h#L127">
      lv_opengl_shader_manager_compile_program_best_version [#lv_opengl_shader_manager_compile_program_best_version]

      ```c title=" " lineNumbers=1
      lv_opengl_shader_program_t * lv_opengl_shader_manager_compile_program_best_version(lv_opengl_shader_manager_t *manager, const lv_opengl_shader_params_t *frag_shader, const lv_opengl_shader_params_t *vert_shader, const lv_opengl_glsl_version_t *versions, size_t version_count)
      ```

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

      | Name            | Type                                                                                     |
      | --------------- | ---------------------------------------------------------------------------------------- |
      | `manager`       | <ApiLink name="lv_opengl_shader_manager_t" display="lv_opengl_shader_manager_t *" />     |
      | `frag_shader`   | <ApiLink name="lv_opengl_shader_params_t" display="const lv_opengl_shader_params_t *" /> |
      | `vert_shader`   | <ApiLink name="lv_opengl_shader_params_t" display="const lv_opengl_shader_params_t *" /> |
      | `versions`      | <ApiLink name="lv_opengl_glsl_version_t" display="const lv_opengl_glsl_version_t *" />   |
      | `version_count` | <ApiLink name="size_t" />                                                                |
    </ApiMember>
  </ApiTab>
</ApiTabs>

Enums [#enums]

<ApiMember kind="enum" name="lv_opengl_glsl_version_t" file="drivers/opengles/opengl_shader/lv_opengl_shader_internal.h" line="88" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/drivers/opengles/opengl_shader/lv_opengl_shader_internal.h#L88">
  lv_opengl_glsl_version_t [#lv_opengl_glsl_version_t]

  | Name                           |
  | ------------------------------ |
  | `LV_OPENGL_GLSL_VERSION_300ES` |
  | `LV_OPENGL_GLSL_VERSION_330`   |
  | `LV_OPENGL_GLSL_VERSION_100`   |
  | `LV_OPENGL_GLSL_VERSION_LAST`  |
</ApiMember>

<TypeUsedBy name="lv_opengl_glsl_version_t" count="7">
  * `lv_opengles_shader_get_vertex` — param `version`
  * `lv_opengles_shader_get_fragment` — param `version`
  * `lv_opengles_shader_get_source` — param `version`
  * `lv_opengl_shader_manager_select_shader` — param `glsl_version`
  * `lv_opengles_glsl_version_to_string` — param `version`
  * `lv_opengl_shader_manager_compile_program` — param `version`
  * `lv_opengl_shader_manager_compile_program_best_version` — param `versions`
</TypeUsedBy>

Structs [#structs]

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

  | Member   | Type           | Description |
  | -------- | -------------- | ----------- |
  | `name`   | `const char *` |             |
  | `source` | `const char *` |             |
</ApiMember>

<TypeUsedBy name="lv_opengl_shader_t" count="2">
  * `lv_opengl_shader_manager_process_includes` — param `src_includes`
  * `lv_opengl_shader_manager_init` — param `sources`
</TypeUsedBy>

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

  | Member  | Type                                                                       | Description |
  | ------- | -------------------------------------------------------------------------- | ----------- |
  | `all`   | <ApiLink name="lv_opengl_shader_t" display="const lv_opengl_shader_t *" /> |             |
  | `count` | <ApiLink name="uint32_t" />                                                |             |
</ApiMember>

<TypeUsedBy name="lv_opengl_shader_portions_t" count="3">
  * `lv_opengles_shader_get_source` — param `portions`
  * `lv_gltf_view_shader_get_src` — param `shaders`
  * `lv_gltf_view_shader_get_env` — param `shaders`
</TypeUsedBy>

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

  | Member            | Type                    | Description |
  | ----------------- | ----------------------- | ----------- |
  | `name`            | `const char *`          |             |
  | `value`           | `const char *`          |             |
  | `value_allocated` | <ApiLink name="bool" /> |             |
</ApiMember>

<TypeUsedBy name="lv_opengl_shader_define_t" count="1">
  * `lv_opengl_shader_manager_select_shader` — param `permutations`
</TypeUsedBy>

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

  | Member          | Type                                  | Description |
  | --------------- | ------------------------------------- | ----------- |
  | `data`          | <ApiLink name="lv_opengl_shader_t" /> |             |
  | `src_allocated` | <ApiLink name="bool" />               |             |
</ApiMember>

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

  | Member | Type                        | Description |
  | ------ | --------------------------- | ----------- |
  | `hash` | <ApiLink name="uint32_t" /> |             |
  | `id`   | `GLuint`                    |             |
</ApiMember>

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

  | Member                 | Type                       | Description |
  | ---------------------- | -------------------------- | ----------- |
  | `sources_map`          | <ApiLink name="lv_rb_t" /> |             |
  | `textures_map`         | <ApiLink name="lv_rb_t" /> |             |
  | `compiled_shaders_map` | <ApiLink name="lv_rb_t" /> |             |
  | `programs_map`         | <ApiLink name="lv_rb_t" /> |             |
  | `bg_index_buf`         | `GLuint`                   |             |
  | `bg_vertex_buf`        | `GLuint`                   |             |
  | `bg_program`           | `GLuint`                   |             |
  | `bg_vao`               | `GLuint`                   |             |
</ApiMember>

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

  | Member              | Type                                                          | Description |
  | ------------------- | ------------------------------------------------------------- | ----------- |
  | `update_uniform_1i` | <ApiLink name="lv_opengl_shader_program_update_uniformi_t" /> |             |
  | `update_uniform_1f` | <ApiLink name="lv_opengl_shader_program_update_uniformf_t" /> |             |
  | `id`                | <ApiLink name="uint32_t" />                                   |             |
</ApiMember>

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

  | Member             | Type                                                                                     | Description |
  | ------------------ | ---------------------------------------------------------------------------------------- | ----------- |
  | `name`             | `const char *`                                                                           |             |
  | `permutations`     | <ApiLink name="lv_opengl_shader_define_t" display="const lv_opengl_shader_define_t *" /> |             |
  | `permutations_len` | <ApiLink name="size_t" />                                                                |             |
</ApiMember>

<TypeUsedBy name="lv_opengl_shader_params_t" count="4">
  * `lv_opengl_shader_manager_compile_program` — param `frag_shader`
  * `lv_opengl_shader_manager_compile_program` — param `vert_shader`
  * `lv_opengl_shader_manager_compile_program_best_version` — param `frag_shader`
  * `lv_opengl_shader_manager_compile_program_best_version` — param `vert_shader`
</TypeUsedBy>

Typedefs [#typedefs]

<ApiMember kind="typedef" name="lv_opengl_shader_manager_t" file="drivers/opengles/opengl_shader/lv_opengl_shader_internal.h" line="68" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/drivers/opengles/opengl_shader/lv_opengl_shader_internal.h#L68">
  lv_opengl_shader_manager_t [#lv_opengl_shader_manager_t]

  ```c title=" " lineNumbers=1
  typedef struct lv_opengl_shader_cache_struct lv_opengl_shader_manager_t
  ```
</ApiMember>

<TypeUsedBy name="lv_opengl_shader_manager_t" count="8">
  * `lv_opengl_shader_manager_init` — param `manager`
  * `lv_opengl_shader_manager_deinit` — param `manager`
  * `lv_opengl_shader_manager_get_texture` — param `manager`
  * `lv_opengl_shader_manager_store_texture` — param `manager`
  * `lv_opengl_shader_manager_select_shader` — param `shader`
  * `lv_opengl_shader_manager_get_program` — param `manager`
  * `lv_opengl_shader_manager_compile_program` — param `manager`
  * `lv_opengl_shader_manager_compile_program_best_version` — param `manager`
</TypeUsedBy>

<ApiMember kind="typedef" name="lv_opengl_shader_program_update_uniformi_t" file="drivers/opengles/opengl_shader/lv_opengl_shader_internal.h" line="72" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/drivers/opengles/opengl_shader/lv_opengl_shader_internal.h#L72">
  lv_opengl_shader_program_update_uniformi_t [#lv_opengl_shader_program_update_uniformi_t]

  ```c title=" " lineNumbers=1
  typedef void(* lv_opengl_shader_program_update_uniformi_t) (struct _lv_shader_program *, const char *, int)
  ```
</ApiMember>

<ApiMember kind="typedef" name="lv_opengl_shader_program_update_uniformf_t" file="drivers/opengles/opengl_shader/lv_opengl_shader_internal.h" line="74" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/drivers/opengles/opengl_shader/lv_opengl_shader_internal.h#L74">
  lv_opengl_shader_program_update_uniformf_t [#lv_opengl_shader_program_update_uniformf_t]

  ```c title=" " lineNumbers=1
  typedef void(* lv_opengl_shader_program_update_uniformf_t) (struct _lv_shader_program *, const char *, float)
  ```
</ApiMember>

<ApiMember kind="typedef" name="lv_opengl_shader_program_t" file="drivers/opengles/opengl_shader/lv_opengl_shader_internal.h" line="80" url="https://github.com/lvgl/lvgl/tree/a7b95c5b0839ce901c09c205610bc2c77cc3345d/src/drivers/opengles/opengl_shader/lv_opengl_shader_internal.h#L80">
  lv_opengl_shader_program_t [#lv_opengl_shader_program_t]

  ```c title=" " lineNumbers=1
  typedef struct _lv_shader_program lv_opengl_shader_program_t
  ```
</ApiMember>

<TypeUsedBy name="lv_opengl_shader_program_t" count="2">
  * `lv_opengl_shader_program_destroy` — param `program`
  * `lv_opengl_shader_program_get_id` — param `program`
</TypeUsedBy>

Dependencies [#dependencies]

<FileIncludes includes="[&#x22;lv_conf_internal.h&#x22;, &#x22;lv_opengles_private.h&#x22;, &#x22;lv_opengles_debug.h&#x22;, &#x22;lv_types.h&#x22;, &#x22;lv_rb_private.h&#x22;]" includedBy="[&#x22;lv_opengles_shader.h&#x22;, &#x22;lv_gltf_data_internal.h&#x22;, &#x22;lv_gltf_environment_private.h&#x22;, &#x22;lv_gltf_view_shader.h&#x22;, &#x22;lv_gltf_view_internal.h&#x22;]" transitiveIncludes="[&#x22;lv_area.h&#x22;, &#x22;lv_assert.h&#x22;, &#x22;lv_color.h&#x22;, &#x22;lv_color_op.h&#x22;, &#x22;lv_conf_kconfig.h&#x22;, &#x22;lv_log.h&#x22;, &#x22;lv_math.h&#x22;, &#x22;lv_mem.h&#x22;, &#x22;lv_palette.h&#x22;, &#x22;lv_rb.h&#x22;, &#x22;lv_string.h&#x22;]" />
