Banuba SDK
opengl_shader_program.hpp
1 #pragma once
2 
3 #include <string_view>
4 #include <cstdint>
5 
6 namespace bnb::player_api
7 {
8 
10  {
11  public:
12  opengl_shader_program(const std::string_view& vertex_shader_source, const std::string_view& fragmant_shader_source);
14 
15  void use() const;
16  static void unuse();
17 
18  int32_t get_program_id() const;
19  int32_t get_attribute_location(const std::string_view& attribute_name) const;
20  int32_t get_uniform_location(const std::string_view& uniform_name) const;
21 
22  void set_uniform_texture_unit(int32_t uniform, uint32_t texture_unit_index) const;
23  void set_uniform_vec2(int32_t uniform, const float* const vec) const;
24  void set_uniform_vec4(int32_t uniform, const float* const vec) const;
25  void set_uniform_mat4(int32_t uniform, const float* const mat, bool transpose = false) const;
26  void set_uniform_int(int32_t uniform, int32_t val) const;
27 
28  private:
29  uint32_t m_program{0};
30  }; // class bnb::player_api::opengl_shader_program
31 
32 } // namespace bnb::player_api
bnb::player_api::opengl_shader_program
Definition: opengl_shader_program.hpp:9