Skip to content
Snippets Groups Projects
Commit 39bed140 authored by Simon Zeni's avatar Simon Zeni
Browse files

render/gles2: clear buffer on add rect if it matches the attached render pass buffer

parent 7550e483
No related branches found
No related tags found
No related merge requests found
Pipeline #1238884 passed
......@@ -214,15 +214,30 @@ static void render_pass_add_rect(struct wlr_render_pass *wlr_pass,
struct wlr_box box;
wlr_render_rect_options_get_box(options, pass->buffer->buffer, &box);
struct wlr_box pass_box = {
.width = pass->buffer->buffer->width,
.height = pass->buffer->buffer->height,
};
enum wlr_render_blend_mode mode =
color->a == 1.0 ? WLR_RENDER_BLEND_MODE_NONE : options->blend_mode;
push_gles2_debug(renderer);
setup_blending(color->a == 1.0 ? WLR_RENDER_BLEND_MODE_NONE : options->blend_mode);
glUseProgram(renderer->shaders.quad.program);
if (wlr_box_equal(&pass_box, &box) && mode == WLR_RENDER_BLEND_MODE_NONE) {
glClearColor(color->r, color->g, color->b, color->a);
glClear(GL_COLOR_BUFFER_BIT);
} else {
setup_blending(mode);
glUseProgram(renderer->shaders.quad.program);
set_proj_matrix(renderer->shaders.quad.proj, pass->projection_matrix, &box);
glUniform4f(renderer->shaders.quad.color, color->r, color->g, color->b, color->a);
set_proj_matrix(renderer->shaders.quad.proj, pass->projection_matrix, &box);
glUniform4f(renderer->shaders.quad.color, color->r, color->g, color->b, color->a);
render(&box, options->clip, renderer->shaders.quad.pos_attrib);
};
render(&box, options->clip, renderer->shaders.quad.pos_attrib);
pop_gles2_debug(renderer);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment