diff --git a/egui_glium/src/painter.rs b/egui_glium/src/painter.rs index 210d0599..49c66de8 100644 --- a/egui_glium/src/painter.rs +++ b/egui_glium/src/painter.rs @@ -241,6 +241,7 @@ impl Painter { self.user_textures.push(Some(Default::default())); id } + /// register glium texture as egui texture /// Usable for render to image rectangle pub fn register_glium_texture( @@ -258,13 +259,18 @@ impl Painter { } id } + pub fn set_user_texture( &mut self, id: egui::TextureId, size: (usize, usize), pixels: &[Color32], ) { - assert_eq!(size.0 * size.1, pixels.len()); + assert_eq!( + size.0 * size.1, + pixels.len(), + "Mismatch between texture size and texel count" + ); if let egui::TextureId::User(id) = id { if let Some(Some(user_texture)) = self.user_textures.get_mut(id as usize) { diff --git a/egui_web/src/webgl1.rs b/egui_web/src/webgl1.rs index a4d85e10..b17b82b2 100644 --- a/egui_web/src/webgl1.rs +++ b/egui_web/src/webgl1.rs @@ -107,7 +107,11 @@ impl WebGlPainter { srgba_pixels: &[Color32], ) -> egui::TextureId { let index = self.alloc_user_texture_index(); - assert_eq!(size.0 * size.1, srgba_pixels.len()); + assert_eq!( + size.0 * size.1, + srgba_pixels.len(), + "Mismatch between texture size and texel count" + ); if let Some(Some(user_texture)) = self.user_textures.get_mut(index) { let mut pixels: Vec = Vec::with_capacity(srgba_pixels.len() * 4); @@ -136,6 +140,7 @@ impl WebGlPainter { } } } + pub fn get_texture(&self, texture_id: egui::TextureId) -> Option<&WebGlTexture> { match texture_id { egui::TextureId::Egui => Some(&self.egui_texture), diff --git a/egui_web/src/webgl2.rs b/egui_web/src/webgl2.rs index 26743a3d..3662ab2e 100644 --- a/egui_web/src/webgl2.rs +++ b/egui_web/src/webgl2.rs @@ -109,7 +109,11 @@ impl WebGl2Painter { srgba_pixels: &[Color32], ) -> egui::TextureId { let index = self.alloc_user_texture_index(); - assert_eq!(size.0 * size.1, srgba_pixels.len()); + assert_eq!( + size.0 * size.1, + srgba_pixels.len(), + "Mismatch between texture size and texel count" + ); if let Some(Some(user_texture)) = self.user_textures.get_mut(index) { let mut pixels: Vec = Vec::with_capacity(srgba_pixels.len() * 4);