19 #ifndef MIR_RENDERER_GL_RENDERER_H_ 20 #define MIR_RENDERER_GL_RENDERER_H_ 31 #include <GLES2/gl2.h> 32 #include <unordered_map> 33 #include <unordered_set> 38 namespace gl {
class TextureCache; }
39 namespace graphics {
class DisplayBuffer; }
51 void ensure_current();
66 void set_rotation(
float degrees)
override;
70 void suspend()
override;
92 virtual void tessellate(std::vector<mir::gl::Primitive>& primitives,
95 GLfloat clear_color[4];
97 mutable long long frameno = 0;
103 GLint tex_uniform = -1;
104 GLint position_attr = -1;
105 GLint texcoord_attr = -1;
106 GLint centre_uniform = -1;
107 GLint display_transform_uniform = -1;
108 GLint transform_uniform = -1;
109 GLint screen_to_gl_coords_uniform = -1;
110 GLint alpha_uniform = -1;
111 mutable long long last_used_frameno = 0;
125 std::unique_ptr<mir::gl::TextureCache>
const texture_cache;
128 glm::mat4 screen_to_gl_coords, screen_rotation;
130 std::vector<mir::gl::Primitive>
mutable primitives;
137 #endif // MIR_RENDERER_GL_RENDERER_H_
All things Mir.
Definition: atomic_callback.h:25
Interface to an output framebuffer.
Definition: display_buffer.h:47
static const GLchar *const alpha_fshader
Definition: renderer.h:119
static const GLchar *const default_fshader
Definition: renderer.h:118
Definition: renderer.h:32
ProgramFamily family
Definition: renderer.h:99
Program default_program
Definition: renderer.h:115
Definition: renderable.h:33
Definition: render_target.h:29
std::vector< std::shared_ptr< Renderable > > RenderableList
Definition: renderable.h:79
ProgramFamily represents a set of GLSL programs that are closely related.
Definition: program_family.h:42
Definition: renderer.h:100
Definition: rectangle.h:33
Definition: renderer.h:45
static const GLchar *const vshader
Definition: renderer.h:117
Definition: renderer.h:58