From 9ea8d907fd6c8bd25dfff2e3e9a42dd1e5d9a591 Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Fri, 18 Dec 2020 22:31:28 +0100 Subject: [PATCH] [egui_glium] Fix: disable scissor before clearing --- egui_web/src/webgl.rs | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/egui_web/src/webgl.rs b/egui_web/src/webgl.rs index fba5f40c..10105cb7 100644 --- a/egui_web/src/webgl.rs +++ b/egui_web/src/webgl.rs @@ -311,7 +311,7 @@ impl Painter { pub fn paint_jobs( &mut self, - bg_color: Srgba, + clear_color: egui::Rgba, jobs: PaintJobs, egui_texture: &Texture, pixels_per_point: f32, @@ -321,6 +321,21 @@ impl Painter { let gl = &self.gl; + gl.disable(Gl::SCISSOR_TEST); + gl.viewport( + 0, + 0, + self.canvas.width() as i32, + self.canvas.height() as i32, + ); + gl.clear_color( + clear_color[0], + clear_color[1], + clear_color[2], + clear_color[3], + ); + gl.clear(Gl::COLOR_BUFFER_BIT); + gl.enable(Gl::SCISSOR_TEST); gl.disable(Gl::CULL_FACE); // Egui is not strict about winding order. gl.enable(Gl::BLEND); @@ -342,21 +357,6 @@ impl Painter { let u_sampler_loc = gl.get_uniform_location(&self.program, "u_sampler").unwrap(); gl.uniform1i(Some(&u_sampler_loc), 0); - gl.viewport( - 0, - 0, - self.canvas.width() as i32, - self.canvas.height() as i32, - ); - // TODO: sRGBA ? - gl.clear_color( - bg_color[0] as f32 / 255.0, - bg_color[1] as f32 / 255.0, - bg_color[2] as f32 / 255.0, - bg_color[3] as f32 / 255.0, - ); - gl.clear(Gl::COLOR_BUFFER_BIT); - for (clip_rect, triangles) in jobs { if let Some(gl_texture) = self.get_texture(triangles.texture_id) { gl.bind_texture(Gl::TEXTURE_2D, Some(gl_texture));