19 #ifndef MIR_COMPOSITOR_GL_RENDERER_H_
20 #define MIR_COMPOSITOR_GL_RENDERER_H_
29 #include <GLES2/gl2.h>
30 #include <unordered_map>
31 #include <unordered_set>
45 std::unique_ptr<graphics::GLTextureCache> && texture_cache,
74 virtual void tessellate(std::vector<graphics::GLPrimitive>& primitives,
109 std::unique_ptr<graphics::GLTextureCache>
mutable texture_cache;
113 glm::mat4 screen_to_gl_coords, screen_rotation;
115 std::vector<graphics::GLPrimitive>
mutable primitives;
121 #endif // MIR_COMPOSITOR_GL_RENDERER_H_
DestinationAlpha
Definition: destination_alpha.h:27
All things Mir.
Definition: buffer_stream.h:37
GLint display_transform_uniform
Definition: gl_renderer.h:91
Program alpha_program
Definition: gl_renderer.h:99
void render(graphics::RenderableList const &) const override
Definition: gl_renderer.cpp:135
Program(GLuint program_id)
Definition: gl_renderer.cpp:80
GLProgramFamily family
Definition: gl_renderer.h:83
virtual void tessellate(std::vector< graphics::GLPrimitive > &primitives, graphics::Renderable const &renderable) const
tessellate defines the list of triangles that will be used to render the surface. ...
Definition: gl_renderer.cpp:128
Definition: gl_renderer.h:84
GLint tex_uniform
Definition: gl_renderer.h:87
Program default_program
Definition: gl_renderer.h:99
static const GLchar *const alpha_fshader
Definition: gl_renderer.h:103
virtual void draw(graphics::Renderable const &renderable, GLRenderer::Program const &prog) const
Definition: gl_renderer.cpp:151
Definition: renderer.h:32
GLRenderer(std::unique_ptr< graphics::GLTextureCache > &&texture_cache, geometry::Rectangle const &display_area, DestinationAlpha dest_alpha)
Definition: gl_renderer.cpp:93
GLint texcoord_attr
Definition: gl_renderer.h:89
GLint position_attr
Definition: gl_renderer.h:88
std::list< std::shared_ptr< Renderable > > RenderableList
Definition: renderable.h:80
Definition: gl_renderer.h:41
Definition: renderable.h:33
void set_rotation(float degrees) override
Definition: gl_renderer.cpp:262
void set_viewport(geometry::Rectangle const &rect) override
Definition: gl_renderer.cpp:223
GLProgramFamily represents a set of GLSL programs that are closely related.
Definition: gl_program_family.h:37
void suspend() override
Definition: gl_renderer.cpp:278
GLint alpha_uniform
Definition: gl_renderer.h:94
DestinationAlpha destination_alpha() const
Definition: gl_renderer.cpp:283
GLint screen_to_gl_coords_uniform
Definition: gl_renderer.h:93
static const GLchar *const default_fshader
Definition: gl_renderer.h:102
long long frameno
Definition: gl_renderer.h:81
GLint centre_uniform
Definition: gl_renderer.h:90
Definition: rectangle.h:33
GLint transform_uniform
Definition: gl_renderer.h:92
GLfloat clear_color[4]
Definition: gl_renderer.h:79
static const GLchar *const vshader
Definition: gl_renderer.h:101
long long last_used_frameno
Definition: gl_renderer.h:95