[egui_glium] Fix: disable scissor before clearing
This commit is contained in:
parent
b0e17638df
commit
9ea8d907fd
1 changed files with 16 additions and 16 deletions
|
@ -311,7 +311,7 @@ impl Painter {
|
||||||
|
|
||||||
pub fn paint_jobs(
|
pub fn paint_jobs(
|
||||||
&mut self,
|
&mut self,
|
||||||
bg_color: Srgba,
|
clear_color: egui::Rgba,
|
||||||
jobs: PaintJobs,
|
jobs: PaintJobs,
|
||||||
egui_texture: &Texture,
|
egui_texture: &Texture,
|
||||||
pixels_per_point: f32,
|
pixels_per_point: f32,
|
||||||
|
@ -321,6 +321,21 @@ impl Painter {
|
||||||
|
|
||||||
let gl = &self.gl;
|
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.enable(Gl::SCISSOR_TEST);
|
||||||
gl.disable(Gl::CULL_FACE); // Egui is not strict about winding order.
|
gl.disable(Gl::CULL_FACE); // Egui is not strict about winding order.
|
||||||
gl.enable(Gl::BLEND);
|
gl.enable(Gl::BLEND);
|
||||||
|
@ -342,21 +357,6 @@ impl Painter {
|
||||||
let u_sampler_loc = gl.get_uniform_location(&self.program, "u_sampler").unwrap();
|
let u_sampler_loc = gl.get_uniform_location(&self.program, "u_sampler").unwrap();
|
||||||
gl.uniform1i(Some(&u_sampler_loc), 0);
|
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 {
|
for (clip_rect, triangles) in jobs {
|
||||||
if let Some(gl_texture) = self.get_texture(triangles.texture_id) {
|
if let Some(gl_texture) = self.get_texture(triangles.texture_id) {
|
||||||
gl.bind_texture(Gl::TEXTURE_2D, Some(gl_texture));
|
gl.bind_texture(Gl::TEXTURE_2D, Some(gl_texture));
|
||||||
|
|
Loading…
Reference in a new issue