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