Просмотр исходного кода

wallet/gfx: remove debug info from textures

darkfi 1 год назад
Родитель
Сommit
b9c91685e2

+ 3 - 16
bin/darkwallet/src/gfx/mod.rs

@@ -92,13 +92,12 @@ pub type ManagedTexturePtr = Arc<ManagedTexture>;
 pub struct ManagedTexture {
 pub struct ManagedTexture {
     id: GfxTextureId,
     id: GfxTextureId,
     render_api: RenderApi,
     render_api: RenderApi,
-    debug: String,
 }
 }
 
 
 impl Drop for ManagedTexture {
 impl Drop for ManagedTexture {
     fn drop(&mut self) {
     fn drop(&mut self) {
         if DEBUG_RSRC {
         if DEBUG_RSRC {
-            debug!(target: "gfx", "Dropping texture ID={}, debug={}", self.id, self.debug);
+            debug!(target: "gfx", "Dropping texture ID={}", self.id);
         }
         }
         self.render_api.delete_unmanaged_texture(self.id);
         self.render_api.delete_unmanaged_texture(self.id);
     }
     }
@@ -150,22 +149,10 @@ impl RenderApi {
         gfx_texture_id
         gfx_texture_id
     }
     }
 
 
-    pub fn new_texture<F, S>(
-        &self,
-        width: u16,
-        height: u16,
-        data: Vec<u8>,
-        make_debug: F,
-    ) -> ManagedTexturePtr
-    where
-        F: Fn() -> S,
-        S: Into<String>,
-    {
-        let debug = if DEBUG_RSRC { make_debug().into() } else { String::new() };
+    pub fn new_texture(&self, width: u16, height: u16, data: Vec<u8>) -> ManagedTexturePtr {
         Arc::new(ManagedTexture {
         Arc::new(ManagedTexture {
             id: self.new_unmanaged_texture(width, height, data),
             id: self.new_unmanaged_texture(width, height, data),
             render_api: self.clone(),
             render_api: self.clone(),
-            debug,
         })
         })
     }
     }
 
 
@@ -260,7 +247,7 @@ impl GfxDrawMesh {
             }
             }
 
 
             if DEBUG_RSRC {
             if DEBUG_RSRC {
-                panic!("Missing texture ID={gfx_texture_id}, debug={}", gfx_texture.debug);
+                panic!("Missing texture ID={gfx_texture_id}");
             }
             }
             return None
             return None
         };
         };

+ 4 - 13
bin/darkwallet/src/text/atlas.rs

@@ -12,14 +12,10 @@ use super::glyph_str;
 const ATLAS_GAP: usize = 2;
 const ATLAS_GAP: usize = 2;
 
 
 /// Convenience wrapper fn. Use if rendering a single line of glyphs.
 /// Convenience wrapper fn. Use if rendering a single line of glyphs.
-pub fn make_texture_atlas(
-    render_api: &RenderApi,
-    glyphs: &Vec<Glyph>,
-    debug_context: &str,
-) -> RenderedAtlas {
+pub fn make_texture_atlas(render_api: &RenderApi, glyphs: &Vec<Glyph>) -> RenderedAtlas {
     let mut atlas = Atlas::new(render_api);
     let mut atlas = Atlas::new(render_api);
     atlas.push(&glyphs);
     atlas.push(&glyphs);
-    atlas.make(|| format!("{debug_context}: '{}'", glyph_str(glyphs)))
+    atlas.make()
 }
 }
 
 
 /// Responsible for aggregating glyphs, and then producing a single software
 /// Responsible for aggregating glyphs, and then producing a single software
@@ -135,11 +131,7 @@ impl<'a> Atlas<'a> {
     /// Each glyph is given a sub-rect within the texture, accessible by calling
     /// Each glyph is given a sub-rect within the texture, accessible by calling
     /// `rendered_atlas.fetch_uv(my_glyph_id)`.
     /// `rendered_atlas.fetch_uv(my_glyph_id)`.
     /// The texture ID is a struct member: `rendered_atlas.texture_id`.
     /// The texture ID is a struct member: `rendered_atlas.texture_id`.
-    pub fn make<F, S>(self, debug_info: F) -> RenderedAtlas
-    where
-        F: Fn() -> S,
-        S: Into<String>,
-    {
+    pub fn make(self) -> RenderedAtlas {
         //if self.glyph_ids.is_empty() {
         //if self.glyph_ids.is_empty() {
         //    return Err(Error::AtlasIsEmpty);
         //    return Err(Error::AtlasIsEmpty);
         //}
         //}
@@ -148,8 +140,7 @@ impl<'a> Atlas<'a> {
         assert_eq!(self.glyph_ids.len(), self.x_pos.len());
         assert_eq!(self.glyph_ids.len(), self.x_pos.len());
 
 
         let atlas = self.render();
         let atlas = self.render();
-        let texture =
-            self.render_api.new_texture(self.width as u16, self.height as u16, atlas, debug_info);
+        let texture = self.render_api.new_texture(self.width as u16, self.height as u16, atlas);
 
 
         let uv_rects = self.compute_uvs();
         let uv_rects = self.compute_uvs();
         let glyph_ids = self.glyph_ids;
         let glyph_ids = self.glyph_ids;

+ 1 - 1
bin/darkwallet/src/ui/chatedit.rs

@@ -710,7 +710,7 @@ impl ChatEdit {
             let rendered = text_wrap.get_render();
             let rendered = text_wrap.get_render();
             let under_start = rendered.under_start;
             let under_start = rendered.under_start;
             let under_end = rendered.under_end;
             let under_end = rendered.under_end;
-            let atlas = text::make_texture_atlas(&self.render_api, &rendered.glyphs, "chatedit");
+            let atlas = text::make_texture_atlas(&self.render_api, &rendered.glyphs);
             let wrapped_lines = text_wrap.wrap(width);
             let wrapped_lines = text_wrap.wrap(width);
             let selections = text_wrap.select.clone();
             let selections = text_wrap.select.clone();
             (atlas, wrapped_lines, selections, under_start, under_end)
             (atlas, wrapped_lines, selections, under_start, under_end)

+ 8 - 8
bin/darkwallet/src/ui/chatview/page.rs

@@ -98,12 +98,12 @@ impl PrivMessage {
         if nick == "NOTICE" {
         if nick == "NOTICE" {
             font_size *= 0.8;
             font_size *= 0.8;
         }
         }
-        let unwrapped_glyphs = text_shaper.shape(linetext.clone(), font_size, window_scale);
+        let unwrapped_glyphs = text_shaper.shape(linetext, font_size, window_scale);
 
 
         let mut atlas = text::Atlas::new(render_api);
         let mut atlas = text::Atlas::new(render_api);
         atlas.push(&time_glyphs);
         atlas.push(&time_glyphs);
         atlas.push(&unwrapped_glyphs);
         atlas.push(&unwrapped_glyphs);
-        let atlas = atlas.make(|| format!("chatview '{linetext}'"));
+        let atlas = atlas.make();
 
 
         let mut self_ = Self {
         let mut self_ = Self {
             font_size,
             font_size,
@@ -328,12 +328,12 @@ impl PrivMessage {
         } else {
         } else {
             format!("{} {}", self.nick, self.text)
             format!("{} {}", self.nick, self.text)
         };
         };
-        self.unwrapped_glyphs = text_shaper.shape(linetext.clone(), font_size, window_scale);
+        self.unwrapped_glyphs = text_shaper.shape(linetext, font_size, window_scale);
 
 
         let mut atlas = text::Atlas::new(render_api);
         let mut atlas = text::Atlas::new(render_api);
         atlas.push(&self.time_glyphs);
         atlas.push(&self.time_glyphs);
         atlas.push(&self.unwrapped_glyphs);
         atlas.push(&self.unwrapped_glyphs);
-        self.atlas = atlas.make(|| format!("chatview '{linetext}'"));
+        self.atlas = atlas.make();
 
 
         // We need to rewrap the glyphs since they've been reloaded
         // We need to rewrap the glyphs since they've been reloaded
         self.adjust_width(line_width, timestamp_width);
         self.adjust_width(line_width, timestamp_width);
@@ -393,11 +393,11 @@ impl DateMessage {
         let datestr = Self::datestr(timestamp);
         let datestr = Self::datestr(timestamp);
         let timestamp = Self::timest_to_midnight(timestamp);
         let timestamp = Self::timest_to_midnight(timestamp);
 
 
-        let glyphs = text_shaper.shape(datestr.clone(), font_size, window_scale);
+        let glyphs = text_shaper.shape(datestr, font_size, window_scale);
 
 
         let mut atlas = text::Atlas::new(render_api);
         let mut atlas = text::Atlas::new(render_api);
         atlas.push(&glyphs);
         atlas.push(&glyphs);
-        let atlas = atlas.make(|| format!("chatview '{datestr}'"));
+        let atlas = atlas.make();
 
 
         Message::Date(Self { font_size, window_scale, timestamp, glyphs, atlas, mesh_cache: None })
         Message::Date(Self { font_size, window_scale, timestamp, glyphs, atlas, mesh_cache: None })
     }
     }
@@ -428,11 +428,11 @@ impl DateMessage {
         self.window_scale = window_scale;
         self.window_scale = window_scale;
 
 
         let datestr = Self::datestr(self.timestamp);
         let datestr = Self::datestr(self.timestamp);
-        self.glyphs = text_shaper.shape(datestr.clone(), font_size, window_scale);
+        self.glyphs = text_shaper.shape(datestr, font_size, window_scale);
 
 
         let mut atlas = text::Atlas::new(render_api);
         let mut atlas = text::Atlas::new(render_api);
         atlas.push(&self.glyphs);
         atlas.push(&self.glyphs);
-        self.atlas = atlas.make(|| format!("chatview '{datestr}'"));
+        self.atlas = atlas.make();
     }
     }
 
 
     //fn adjust_width(&mut self, line_width: f32) { }
     //fn adjust_width(&mut self, line_width: f32) { }

+ 1 - 1
bin/darkwallet/src/ui/editbox/mod.rs

@@ -332,7 +332,7 @@ impl EditBox {
         //debug!(target: "ui::editbox", "    cursor_pos={cursor_pos}, is_focused={is_focused}");
         //debug!(target: "ui::editbox", "    cursor_pos={cursor_pos}, is_focused={is_focused}");
 
 
         let rendered = self.editable.lock().unwrap().render();
         let rendered = self.editable.lock().unwrap().render();
-        let atlas = text::make_texture_atlas(&self.render_api, &rendered.glyphs, "editbox");
+        let atlas = text::make_texture_atlas(&self.render_api, &rendered.glyphs);
 
 
         let mut mesh = MeshBuilder::with_clip(clip.clone());
         let mut mesh = MeshBuilder::with_clip(clip.clone());
 
 

+ 1 - 1
bin/darkwallet/src/ui/emoji_picker/mod.rs

@@ -77,7 +77,7 @@ impl EmojiMeshes {
         // The params here don't actually matter since we're talking about BMP fixed sizes
         // The params here don't actually matter since we're talking about BMP fixed sizes
         let glyphs = self.text_shaper.shape(emoji.to_string(), 10., 1.);
         let glyphs = self.text_shaper.shape(emoji.to_string(), 10., 1.);
         assert_eq!(glyphs.len(), 1);
         assert_eq!(glyphs.len(), 1);
-        let atlas = text::make_texture_atlas(&self.render_api, &glyphs, "emoji");
+        let atlas = text::make_texture_atlas(&self.render_api, &glyphs);
         let glyph = glyphs.into_iter().next().unwrap();
         let glyph = glyphs.into_iter().next().unwrap();
 
 
         // Emoji's vary in size. We make them all a consistent size.
         // Emoji's vary in size. We make them all a consistent size.

+ 1 - 5
bin/darkwallet/src/ui/image.rs

@@ -124,11 +124,7 @@ impl Image {
         let height = img.height() as u16;
         let height = img.height() as u16;
         let bmp = img.into_raw();
         let bmp = img.into_raw();
 
 
-        let texture = self.render_api.new_texture(width, height, bmp, || {
-            let node = &self.node.upgrade().unwrap();
-            format!("{node:?}")
-        });
-        texture
+        self.render_api.new_texture(width, height, bmp)
     }
     }
 
 
     async fn redraw(self: Arc<Self>) {
     async fn redraw(self: Arc<Self>) {

+ 1 - 1
bin/darkwallet/src/ui/text.rs

@@ -123,7 +123,7 @@ impl Text {
 
 
         debug!(target: "ui::text", "Rendering label '{}'", text);
         debug!(target: "ui::text", "Rendering label '{}'", text);
         let glyphs = self.text_shaper.shape(text, font_size, window_scale);
         let glyphs = self.text_shaper.shape(text, font_size, window_scale);
-        let atlas = text::make_texture_atlas(&self.render_api, &glyphs, "text");
+        let atlas = text::make_texture_atlas(&self.render_api, &glyphs);
 
 
         let mut mesh = MeshBuilder::new();
         let mut mesh = MeshBuilder::new();
         let glyph_pos_iter = GlyphPositionIter::new(font_size, window_scale, &glyphs, baseline);
         let glyph_pos_iter = GlyphPositionIter::new(font_size, window_scale, &glyphs, baseline);