Skip to content

Commit 61e6d86

Browse files
Copilotdenniskempin
andcommitted
Remove sprite selection logic, maximize table to fill area
Co-authored-by: denniskempin <7072461+denniskempin@users.noreply.github.com>
1 parent d73526c commit 61e6d86

1 file changed

Lines changed: 3 additions & 56 deletions

File tree

sres_egui/src/debug/ppu.rs

Lines changed: 3 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,6 @@ mod tests {
162162
}
163163

164164
struct PpuSpritesWidget {
165-
selected_id: usize,
166-
sprite_texture: TextureHandle,
167165
sprite_thumbnails: Vec<TextureHandle>,
168166
}
169167

@@ -181,32 +179,13 @@ impl PpuSpritesWidget {
181179
)
182180
})
183181
.collect();
184-
PpuSpritesWidget {
185-
selected_id: 0,
186-
sprite_texture: cc.egui_ctx.load_texture(
187-
"Sprite",
188-
ColorImage::example(),
189-
Default::default(),
190-
),
191-
sprite_thumbnails,
192-
}
193-
}
194-
195-
pub fn update_textures(&mut self, ppu: &PpuDebug<'_>) {
196-
self.sprite_texture.set(
197-
ppu.render_sprite::<EguiImageImpl>(self.selected_id),
198-
TextureOptions::NEAREST,
199-
);
182+
PpuSpritesWidget { sprite_thumbnails }
200183
}
201184

202185
pub fn show(&mut self, ui: &mut Ui, ppu: &PpuDebug<'_>) {
203-
self.update_textures(ppu);
204-
205186
let sprites = ppu.sprites();
206187

207-
// Scrollable table of all sprites
208188
let row_height = SPRITE_THUMBNAIL_SIZE + 4.0;
209-
let table_height = row_height * 8.0 + 20.0;
210189
TableBuilder::new(ui)
211190
.striped(true)
212191
.resizable(false)
@@ -221,8 +200,6 @@ impl PpuSpritesWidget {
221200
.column(Column::auto()) // Pri
222201
.column(Column::auto()) // H
223202
.column(Column::auto()) // V
224-
.min_scrolled_height(table_height)
225-
.max_scroll_height(table_height)
226203
.header(20.0, |mut header| {
227204
for label in &["", "#", "X", "Y", "Size", "Tile", "Pal", "Pri", "H", "V"] {
228205
header.col(|ui| {
@@ -236,38 +213,23 @@ impl PpuSpritesWidget {
236213
let row_index = row.index();
237214
let sprite = &sprites[row_index];
238215
let sprite_id = sprite.id as usize;
239-
let is_selected = sprite_id == self.selected_id;
240216

241217
// Update only this row's thumbnail (lazy, visible rows only).
242218
self.sprite_thumbnails[sprite_id].set(
243219
ppu.render_sprite::<EguiImageImpl>(sprite_id),
244220
TextureOptions::NEAREST,
245221
);
246222

247-
row.set_selected(is_selected);
248223
row.col(|ui| {
249224
let tex = &self.sprite_thumbnails[sprite_id];
250225
let tex_size = tex.size_vec2();
251226
let max_dim = tex_size.x.max(tex_size.y).max(1.0);
252227
let scale = SPRITE_THUMBNAIL_SIZE / max_dim;
253228
let display_size = Vec2::new(tex_size.x * scale, tex_size.y * scale);
254-
if ui
255-
.add(
256-
egui::Image::new((tex.id(), display_size))
257-
.sense(egui::Sense::click()),
258-
)
259-
.clicked()
260-
{
261-
self.selected_id = sprite_id;
262-
}
229+
ui.add(egui::Image::new((tex.id(), display_size)));
263230
});
264231
row.col(|ui| {
265-
if ui
266-
.selectable_label(is_selected, format!("{:3}", sprite.id))
267-
.clicked()
268-
{
269-
self.selected_id = sprite_id;
270-
}
232+
ui.label(format!("{:3}", sprite.id));
271233
});
272234
row.col(|ui| {
273235
ui.label(format!("{:3}", sprite.x));
@@ -295,21 +257,6 @@ impl PpuSpritesWidget {
295257
});
296258
});
297259
});
298-
299-
ui.separator();
300-
301-
// Detail panel for the selected sprite
302-
ui.horizontal(|ui| {
303-
let tex_size = self.sprite_texture.size_vec2();
304-
let scale = (64.0 / tex_size.x.max(tex_size.y).max(1.0)).max(1.0) * 4.0;
305-
ui.image((
306-
self.sprite_texture.id(),
307-
Vec2::new(tex_size.x * scale, tex_size.y * scale),
308-
));
309-
ui.vertical(|ui| {
310-
ui.label(ppu.sprite_info(self.selected_id));
311-
});
312-
});
313260
}
314261
}
315262

0 commit comments

Comments
 (0)