mirror of
https://github.com/darkrenaissance/darkfi.git
synced 2026-01-10 15:17:57 -05:00
wallet: remove unused freed_textures field from DrawUpdate, and make RenderApi::*_unmanaged_texture() methods private.
This commit is contained in:
@@ -79,7 +79,7 @@ pub struct ManagedTexture {
|
||||
|
||||
impl Drop for ManagedTexture {
|
||||
fn drop(&mut self) {
|
||||
self.render_api.delete_texture(self.id);
|
||||
self.render_api.delete_unmanaged_texture(self.id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -89,6 +89,27 @@ impl std::fmt::Debug for ManagedTexture {
|
||||
}
|
||||
}
|
||||
|
||||
pub type ManagedBufferPtr = Arc<ManagedBuffer>;
|
||||
|
||||
/// Auto-deletes buffer on drop
|
||||
#[derive(Clone)]
|
||||
pub struct ManagedBuffer {
|
||||
id: GfxBufferId,
|
||||
render_api: RenderApi,
|
||||
}
|
||||
|
||||
impl Drop for ManagedBuffer {
|
||||
fn drop(&mut self) {
|
||||
//self.render_api.delete_unmanaged_buffer(self.id);
|
||||
}
|
||||
}
|
||||
|
||||
impl std::fmt::Debug for ManagedBuffer {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
f.debug_struct("ManagedBuffer").field("id", &self.id).finish()
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct RenderApi {
|
||||
method_req: mpsc::Sender<GraphicsMethod>,
|
||||
@@ -99,7 +120,7 @@ impl RenderApi {
|
||||
Self { method_req }
|
||||
}
|
||||
|
||||
pub fn new_unmanaged_texture(&self, width: u16, height: u16, data: Vec<u8>) -> GfxTextureId {
|
||||
fn new_unmanaged_texture(&self, width: u16, height: u16, data: Vec<u8>) -> GfxTextureId {
|
||||
let gfx_texture_id = rand::random();
|
||||
|
||||
let method = GraphicsMethod::NewTexture((width, height, data, gfx_texture_id));
|
||||
@@ -115,7 +136,7 @@ impl RenderApi {
|
||||
})
|
||||
}
|
||||
|
||||
pub fn delete_texture(&self, texture: GfxTextureId) {
|
||||
fn delete_unmanaged_texture(&self, texture: GfxTextureId) {
|
||||
let method = GraphicsMethod::DeleteTexture(texture);
|
||||
let _ = self.method_req.send(method);
|
||||
}
|
||||
|
||||
@@ -812,7 +812,6 @@ impl UIObject for ChatView {
|
||||
self.dc_key,
|
||||
GfxDrawCall { instrs, dcs: vec![], z_index: self.z_index.get() },
|
||||
)],
|
||||
freed_textures: freed.textures,
|
||||
freed_buffers: freed.buffers,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1273,7 +1273,6 @@ impl EditBox {
|
||||
GfxDrawCall { instrs: cursor_instrs, dcs: vec![], z_index: self.z_index.get() },
|
||||
),
|
||||
],
|
||||
freed_textures: vec![],
|
||||
freed_buffers: freed.buffers,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -135,7 +135,6 @@ impl Image {
|
||||
};
|
||||
self.render_api.replace_draw_calls(draw_update.draw_calls);
|
||||
debug!(target: "ui::image", "replace draw calls done");
|
||||
assert!(draw_update.freed_textures.is_empty());
|
||||
for buff in draw_update.freed_buffers {
|
||||
self.render_api.delete_buffer(buff);
|
||||
}
|
||||
@@ -188,7 +187,6 @@ impl Image {
|
||||
z_index: self.z_index.get(),
|
||||
},
|
||||
)],
|
||||
freed_textures: vec![],
|
||||
freed_buffers,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -102,7 +102,6 @@ impl Layer {
|
||||
|
||||
let mut draw_calls = vec![];
|
||||
let mut child_calls = vec![];
|
||||
let mut freed_textures = vec![];
|
||||
let mut freed_buffers = vec![];
|
||||
|
||||
// We should return a draw call so that if the layer is made visible, we can just
|
||||
@@ -117,7 +116,6 @@ impl Layer {
|
||||
|
||||
draw_calls.append(&mut draw_update.draw_calls);
|
||||
child_calls.push(draw_update.key);
|
||||
freed_textures.append(&mut draw_update.freed_textures);
|
||||
freed_buffers.append(&mut draw_update.freed_buffers);
|
||||
}
|
||||
}
|
||||
@@ -128,7 +126,7 @@ impl Layer {
|
||||
z_index: self.z_index(),
|
||||
};
|
||||
draw_calls.push((self.dc_key, dc));
|
||||
Some(DrawUpdate { key: self.dc_key, draw_calls, freed_textures, freed_buffers })
|
||||
Some(DrawUpdate { key: self.dc_key, draw_calls, freed_buffers })
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -96,7 +96,6 @@ pub trait UIObject: Sync {
|
||||
pub struct DrawUpdate {
|
||||
pub key: u64,
|
||||
pub draw_calls: Vec<(u64, GfxDrawCall)>,
|
||||
pub freed_textures: Vec<GfxTextureId>,
|
||||
pub freed_buffers: Vec<GfxBufferId>,
|
||||
}
|
||||
|
||||
|
||||
@@ -213,7 +213,6 @@ impl Text {
|
||||
z_index: self.z_index.get(),
|
||||
},
|
||||
)],
|
||||
freed_textures: vec![],
|
||||
freed_buffers: vec![
|
||||
old_render_info.mesh.vertex_buffer,
|
||||
old_render_info.mesh.index_buffer,
|
||||
|
||||
@@ -97,7 +97,6 @@ impl VectorArt {
|
||||
return;
|
||||
};
|
||||
self.render_api.replace_draw_calls(draw_update.draw_calls);
|
||||
assert!(draw_update.freed_textures.is_empty());
|
||||
for buff in draw_update.freed_buffers {
|
||||
self.render_api.delete_buffer(buff);
|
||||
}
|
||||
@@ -141,7 +140,6 @@ impl VectorArt {
|
||||
z_index: self.z_index.get(),
|
||||
},
|
||||
)],
|
||||
freed_textures: vec![],
|
||||
freed_buffers,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -421,7 +421,6 @@ impl Window {
|
||||
|
||||
let mut draw_calls = vec![];
|
||||
let mut child_calls = vec![];
|
||||
let mut freed_textures = vec![];
|
||||
let mut freed_buffers = vec![];
|
||||
|
||||
for child in self.get_children() {
|
||||
@@ -433,7 +432,6 @@ impl Window {
|
||||
|
||||
draw_calls.append(&mut draw_update.draw_calls);
|
||||
child_calls.push(draw_update.key);
|
||||
freed_textures.append(&mut draw_update.freed_textures);
|
||||
freed_buffers.append(&mut draw_update.freed_buffers);
|
||||
}
|
||||
|
||||
@@ -447,9 +445,6 @@ impl Window {
|
||||
|
||||
self.render_api.replace_draw_calls(draw_calls);
|
||||
|
||||
for texture in freed_textures {
|
||||
self.render_api.delete_texture(texture);
|
||||
}
|
||||
for buff in freed_buffers {
|
||||
self.render_api.delete_buffer(buff);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user