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; }
92 virtual void tessellate(std::vector<mir::gl::Primitive>& primitives,
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
Program alpha_program
Definition: renderer.h:115
GLint alpha_uniform
Definition: renderer.h:110
Interface to an output framebuffer.
Definition: display_buffer.h:47
static const GLchar *const alpha_fshader
Definition: renderer.h:119
GLint display_transform_uniform
Definition: renderer.h:107
long long frameno
Definition: renderer.h:97
GLfloat clear_color[4]
Definition: renderer.h:95
static const GLchar *const default_fshader
Definition: renderer.h:118
Definition: renderer.h:32
void set_rotation(float degrees) override
Definition: renderer.cpp:319
Program(GLuint program_id)
Definition: renderer.cpp:110
ProgramFamily family
Definition: renderer.h:99
void render(graphics::RenderableList const &) const override
Definition: renderer.cpp:192
GLint texcoord_attr
Definition: renderer.h:105
virtual void tessellate(std::vector< mir::gl::Primitive > &primitives, graphics::Renderable const &renderable) const
tessellate defines the list of triangles that will be used to render the surface. ...
Definition: renderer.cpp:185
GLint centre_uniform
Definition: renderer.h:106
Program default_program
Definition: renderer.h:115
void set_viewport(geometry::Rectangle const &rect) override
Definition: renderer.cpp:277
virtual void draw(graphics::Renderable const &renderable, Renderer::Program const &prog) const
Definition: renderer.cpp:209
Definition: renderable.h:33
GLint transform_uniform
Definition: renderer.h:108
long long last_used_frameno
Definition: renderer.h:111
void swap_buffers()
Definition: renderer.cpp:66
Definition: render_target.h:29
GLint position_attr
Definition: renderer.h:104
~CurrentRenderTarget()
Definition: renderer.cpp:56
void ensure_current()
Definition: renderer.cpp:61
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
void suspend() override
Definition: renderer.cpp:342
GLint tex_uniform
Definition: renderer.h:103
Definition: renderer.h:45
GLint screen_to_gl_coords_uniform
Definition: renderer.h:109
CurrentRenderTarget(graphics::DisplayBuffer *display_buffer)
Definition: renderer.cpp:46
static const GLchar *const vshader
Definition: renderer.h:117
Definition: renderer.h:58