fix clippy warnings in scene and host paths

This commit is contained in:
bQUARKz 2026-04-24 15:47:53 +01:00
parent 92be3b90fb
commit 0c8de434cf
Signed by: bquarkz
SSH Key Fingerprint: SHA256:Z7dgqoglWwoK6j6u4QC87OveEq74WOhFN+gitsxtkf8
5 changed files with 69 additions and 70 deletions

View File

@ -1395,9 +1395,9 @@ mod tests {
assert_eq!(decoded.layers[1].glyph_asset_id, 101); assert_eq!(decoded.layers[1].glyph_asset_id, 101);
assert_eq!(decoded.layers[1].parallax_factor.x, 0.5); assert_eq!(decoded.layers[1].parallax_factor.x, 0.5);
assert_eq!(decoded.layers[2].tile_size, TileSize::Size32); assert_eq!(decoded.layers[2].tile_size, TileSize::Size32);
assert_eq!(decoded.layers[0].tilemap.tiles[1].flip_x, true); assert!(decoded.layers[0].tilemap.tiles[1].flip_x);
assert_eq!(decoded.layers[2].tilemap.tiles[2].flip_y, true); assert!(decoded.layers[2].tilemap.tiles[2].flip_y);
assert_eq!(decoded.layers[3].active, false); assert!(!decoded.layers[3].active);
} }
#[test] #[test]

View File

@ -660,7 +660,9 @@ impl Gfx {
self.back.fill(Color::BLACK.raw()); self.back.fill(Color::BLACK.raw());
self.populate_layer_buckets(); self.populate_layer_buckets();
for layer_index in 0..cache.layers.len() { for (layer_index, glyph_slot) in
resolved_glyph_slots.iter().enumerate().take(cache.layers.len())
{
Self::draw_bucket_on_buffer( Self::draw_bucket_on_buffer(
&mut self.back, &mut self.back,
self.w, self.w,
@ -675,7 +677,7 @@ impl Gfx {
self.h, self.h,
cache, cache,
&update.copy_requests[layer_index], &update.copy_requests[layer_index],
resolved_glyph_slots[layer_index], *glyph_slot,
&*self.glyph_banks, &*self.glyph_banks,
); );
} }
@ -906,6 +908,56 @@ impl Gfx {
} }
} }
/// Blends in RGB565 per channel with saturation.
/// `dst` and `src` are RGB565 pixels (u16).
fn blend_rgb565(dst: u16, src: u16, mode: BlendMode) -> u16 {
match mode {
BlendMode::None => src,
BlendMode::Half => {
let (dr, dg, db) = Color::unpack_to_native(dst);
let (sr, sg, sb) = Color::unpack_to_native(src);
let r = ((dr as u16 + sr as u16) >> 1) as u8;
let g = ((dg as u16 + sg as u16) >> 1) as u8;
let b = ((db as u16 + sb as u16) >> 1) as u8;
Color::pack_from_native(r, g, b)
}
BlendMode::HalfPlus => {
let (dr, dg, db) = Color::unpack_to_native(dst);
let (sr, sg, sb) = Color::unpack_to_native(src);
let r = (dr as u16 + ((sr as u16) >> 1)).min(31) as u8;
let g = (dg as u16 + ((sg as u16) >> 1)).min(63) as u8;
let b = (db as u16 + ((sb as u16) >> 1)).min(31) as u8;
Color::pack_from_native(r, g, b)
}
BlendMode::HalfMinus => {
let (dr, dg, db) = Color::unpack_to_native(dst);
let (sr, sg, sb) = Color::unpack_to_native(src);
let r = (dr as i16 - ((sr as i16) >> 1)).max(0) as u8;
let g = (dg as i16 - ((sg as i16) >> 1)).max(0) as u8;
let b = (db as i16 - ((sb as i16) >> 1)).max(0) as u8;
Color::pack_from_native(r, g, b)
}
BlendMode::Full => {
let (dr, dg, db) = Color::unpack_to_native(dst);
let (sr, sg, sb) = Color::unpack_to_native(src);
let r = (dr as u16 + sr as u16).min(31) as u8;
let g = (dg as u16 + sg as u16).min(63) as u8;
let b = (db as u16 + sb as u16).min(31) as u8;
Color::pack_from_native(r, g, b)
}
}
}
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
@ -1055,9 +1107,7 @@ mod tests {
gfx.begin_overlay_frame(); gfx.begin_overlay_frame();
gfx.draw_square(2, 2, 6, 6, Color::WHITE, Color::BLACK); gfx.draw_square(2, 2, 6, 6, Color::WHITE, Color::BLACK);
gfx.drain_overlay_debug(); gfx.drain_overlay_debug();
// Border
assert_eq!(gfx.back[2 * 10 + 2], Color::WHITE.0); assert_eq!(gfx.back[2 * 10 + 2], Color::WHITE.0);
// Fill
assert_eq!(gfx.back[3 * 10 + 3], Color::BLACK.0); assert_eq!(gfx.back[3 * 10 + 3], Color::BLACK.0);
assert_eq!(gfx.overlay().command_count(), 0); assert_eq!(gfx.overlay().command_count(), 0);
} }
@ -1220,53 +1270,3 @@ mod tests {
assert_eq!(gfx.sprites[1].glyph.glyph_id, 5); assert_eq!(gfx.sprites[1].glyph.glyph_id, 5);
} }
} }
/// Blends in RGB565 per channel with saturation.
/// `dst` and `src` are RGB565 pixels (u16).
fn blend_rgb565(dst: u16, src: u16, mode: BlendMode) -> u16 {
match mode {
BlendMode::None => src,
BlendMode::Half => {
let (dr, dg, db) = Color::unpack_to_native(dst);
let (sr, sg, sb) = Color::unpack_to_native(src);
let r = ((dr as u16 + sr as u16) >> 1) as u8;
let g = ((dg as u16 + sg as u16) >> 1) as u8;
let b = ((db as u16 + sb as u16) >> 1) as u8;
Color::pack_from_native(r, g, b)
}
BlendMode::HalfPlus => {
let (dr, dg, db) = Color::unpack_to_native(dst);
let (sr, sg, sb) = Color::unpack_to_native(src);
let r = (dr as u16 + ((sr as u16) >> 1)).min(31) as u8;
let g = (dg as u16 + ((sg as u16) >> 1)).min(63) as u8;
let b = (db as u16 + ((sb as u16) >> 1)).min(31) as u8;
Color::pack_from_native(r, g, b)
}
BlendMode::HalfMinus => {
let (dr, dg, db) = Color::unpack_to_native(dst);
let (sr, sg, sb) = Color::unpack_to_native(src);
let r = (dr as i16 - ((sr as i16) >> 1)).max(0) as u8;
let g = (dg as i16 - ((sg as i16) >> 1)).max(0) as u8;
let b = (db as i16 - ((sb as i16) >> 1)).max(0) as u8;
Color::pack_from_native(r, g, b)
}
BlendMode::Full => {
let (dr, dg, db) = Color::unpack_to_native(dst);
let (sr, sg, sb) = Color::unpack_to_native(src);
let r = (dr as u16 + sr as u16).min(31) as u8;
let g = (dg as u16 + sg as u16).min(63) as u8;
let b = (db as u16 + sb as u16).min(31) as u8;
Color::pack_from_native(r, g, b)
}
}
}

View File

@ -175,6 +175,7 @@ impl HostAudio {
} }
#[cfg(test)] #[cfg(test)]
#[allow(clippy::items_after_test_module)]
mod tests { mod tests {
use super::*; use super::*;
use crate::stats::HostStats; use crate::stats::HostStats;

View File

@ -54,15 +54,13 @@ impl HostInputHandler {
self.signals.y_pos = v.1; self.signals.y_pos = v.1;
} }
WindowEvent::MouseInput { state, button, .. } => { WindowEvent::MouseInput { state, button, .. } if *button == MouseButton::Left => {
if *button == MouseButton::Left { match state {
match state { ElementState::Pressed => {
ElementState::Pressed => { self.signals.f_signal = true;
self.signals.f_signal = true; }
} ElementState::Released => {
ElementState::Released => { self.signals.f_signal = false;
self.signals.f_signal = false;
}
} }
} }
} }

View File

@ -782,10 +782,10 @@ mod tests {
break; break;
} }
if let Ok(resp) = serde_json::from_str::<serde_json::Value>(&line) { if let Ok(resp) = serde_json::from_str::<serde_json::Value>(&line)
if resp["type"] == "getState" { && resp["type"] == "getState"
return; {
} return;
} }
} }
panic!("Did not receive getState response"); panic!("Did not receive getState response");