egui_glow: Optimize Painter::set_texture (#1093)

This commit is contained in:
dvec 2022-01-11 11:58:51 +03:00 committed by GitHub
parent 205e04aa18
commit d9cfeff72c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -434,19 +434,17 @@ impl Painter {
"Mismatch between texture size and texel count"
);
// TODO: optimize
let pixels: Vec<u8> = image
.pixels
.iter()
.flat_map(|srgba| Vec::from(srgba.to_array()))
.collect();
let mut data = Vec::with_capacity(image.pixels.len() * 4);
for srgba in &image.pixels {
data.extend_from_slice(&srgba.to_array());
}
let gl_texture = srgb_texture2d(
gl,
self.is_webgl_1,
self.srgb_support,
self.texture_filter,
&pixels,
&data,
image.size[0],
image.size[1],
);