dear_imgui_wgpu/renderer/
external_textures.rs1use super::WgpuRenderer;
4
5impl WgpuRenderer {
6 pub fn register_external_texture(
12 &mut self,
13 texture: &wgpu::Texture,
14 view: &wgpu::TextureView,
15 ) -> u64 {
16 self.texture_manager
17 .register_texture(crate::WgpuTexture::new(texture.clone(), view.clone()))
18 }
19
20 pub fn update_external_texture_view(
24 &mut self,
25 texture_id: u64,
26 view: &wgpu::TextureView,
27 ) -> bool {
28 if let Some(mut tex) = self.texture_manager.remove_texture(texture_id) {
29 tex.texture_view = view.clone();
30 self.texture_manager.insert_texture_with_id(texture_id, tex);
31 if let Some(backend) = self.backend_data.as_mut() {
32 backend.render_resources.remove_image_bind_group(texture_id);
33 }
34 true
35 } else {
36 false
37 }
38 }
39
40 pub fn unregister_texture(&mut self, texture_id: u64) {
42 self.texture_manager.remove_texture(texture_id);
43 if let Some(backend) = self.backend_data.as_mut() {
44 backend.render_resources.remove_image_bind_group(texture_id);
45 }
46 }
47}