19 #ifndef MIR_RENDERER_GL_RENDERER_H_ 20 #define MIR_RENDERER_GL_RENDERER_H_ 31 #include MIR_SERVER_GL_H 32 #include <unordered_map> 33 #include <unordered_set> 38 namespace gl {
class TextureCache; }
39 namespace graphics {
class DisplayBuffer; }
51 void ensure_current();
71 void suspend()
override;
93 virtual void tessellate(std::vector<mir::gl::Primitive>& primitives,
96 GLfloat clear_color[4];
98 mutable long long frameno = 0;
104 GLint tex_uniform = -1;
105 GLint position_attr = -1;
106 GLint texcoord_attr = -1;
107 GLint centre_uniform = -1;
108 GLint display_transform_uniform = -1;
109 GLint transform_uniform = -1;
110 GLint screen_to_gl_coords_uniform = -1;
111 GLint alpha_uniform = -1;
112 mutable long long last_used_frameno = 0;
126 std::unique_ptr<mir::gl::TextureCache>
const texture_cache;
130 glm::mat4 screen_to_gl_coords;
131 glm::mat4 display_transform;
132 std::vector<mir::gl::Primitive>
mutable primitives;
139 #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:120
static const GLchar *const default_fshader
Definition: renderer.h:119
Definition: renderer.h:33
ProgramFamily family
Definition: renderer.h:100
Program default_program
Definition: renderer.h:116
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:101
Definition: rectangle.h:33
Definition: renderer.h:45
static const GLchar *const vshader
Definition: renderer.h:118
Definition: renderer.h:59