git/grrs/main

fix: art actually looks good now

art was rendering poorly. turns out that after some research, this was due to nearest neighbor downsampling (was not originally aware this could cause this issue). i resolved it and am now using catmull-rom for downsampling, despite it adding some latency to the covers showing. looks much nicer. closes 69b50fc
diff --git a/src/ui.rs b/src/ui.rs
index d4c7f38..c231b05 100644
--- a/src/ui.rs
+++ b/src/ui.rs
@@ -7,7 +7,7 @@ use ratatui::{
text::{Line, Span},
widgets::{Block, Borders, Clear, Gauge, List, ListItem, Paragraph, Row, Table, Tabs, Wrap},
};
-use ratatui_image::StatefulImage;
+use ratatui_image::{FilterType, Resize, StatefulImage};
use crate::app::{AppMode, AppState};
@@ -213,7 +213,11 @@ fn draw_player(
if hide_art {
f.render_widget(Clear, left_col[0]);
} else if let Some(ref mut protocol) = state.art_protocol {
- f.render_stateful_widget(StatefulImage::new(), left_col[0], protocol);
+ f.render_stateful_widget(
+ StatefulImage::default().resize(Resize::Fit(Some(FilterType::CatmullRom))),
+ left_col[0],
+ protocol,
+ );
} else {
f.render_widget(Paragraph::new("Loading Art...").alignment(Alignment::Center), left_col[0]);
}
@@ -346,7 +350,11 @@ fn draw_library(f: &mut Frame, state: &mut AppState, content: Rc<[Rect]>, bottom
if hide_art {
f.render_widget(Clear, left_col[0]);
} else if let Some(ref mut protocol) = state.selected_art {
- f.render_stateful_widget(StatefulImage::new(), left_col[0], protocol);
+ f.render_stateful_widget(
+ StatefulImage::default().resize(Resize::Fit(Some(FilterType::CatmullRom))),
+ left_col[0],
+ protocol,
+ );
} else if has_art {
f.render_widget(Paragraph::new("Loading Art...").alignment(Alignment::Center), left_col[0]);
} else {
@@ -415,7 +423,11 @@ fn draw_history(f: &mut Frame, state: &mut AppState, content: Rc<[Rect]>, bottom
if hide_art {
f.render_widget(Clear, left_col[0]);
} else if let Some(ref mut protocol) = state.selected_history_art {
- f.render_stateful_widget(StatefulImage::new(), left_col[0], protocol);
+ f.render_stateful_widget(
+ StatefulImage::default().resize(Resize::Fit(Some(FilterType::CatmullRom))),
+ left_col[0],
+ protocol,
+ );
} else if has_art {
f.render_widget(Paragraph::new("Loading Art...").alignment(Alignment::Center), left_col[0]);
} else {