From d3dfdb4d821448b4d9767cdc0489612df95ec970 Mon Sep 17 00:00:00 2001 From: Ivan Li Date: Tue, 17 Jan 2023 00:41:03 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=BD=93=E9=85=8D=E7=BD=AE=E5=8F=8D?= =?UTF-8?q?=E5=90=91=E6=97=B6=EF=BC=8C=E9=A2=9C=E8=89=B2=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src-tauri/src/core/core.rs | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/src-tauri/src/core/core.rs b/src-tauri/src/core/core.rs index a4deee6..4f91560 100644 --- a/src-tauri/src/core/core.rs +++ b/src-tauri/src/core/core.rs @@ -150,26 +150,34 @@ impl CoreManager { ] { match config { Some(config) => { - let (sign, start) = if config.global_start_position <= config.global_end_position - { - (1, config.global_start_position as isize * 3) - } else { - (-1, (config.global_start_position as isize + 1) * 3 - 1) - }; + let (sign, start) = + if config.global_start_position <= config.global_end_position { + (1, config.global_start_position as isize * 3) + } else { + (-1, (config.global_start_position as isize + 1) * 3 - 1) + }; for (index, color) in colors.into_iter().enumerate() { - global_sub_pixels - .insert((sign * index as isize + start) as usize, color); + let pixel_index = index / 3; + let sub_pixel_index = index % 3; + let offset = if sign < 0 { + 2 - sub_pixel_index + } else { + sub_pixel_index + }; + let global_sub_pixel_index = + (sign * (pixel_index as isize * 3 + offset as isize) + start ) as usize; + global_sub_pixels.insert(global_sub_pixel_index, color); } } None => {} } } - info!( - "led count: {}, spend: {:?}", - global_sub_pixels.len(), - start_at.elapsed() - ); + // info!( + // "led count: {}, spend: {:?}", + // global_sub_pixels.len(), + // start_at.elapsed() + // ); if global_sub_pixels.len() >= total_colors_count * 3 { let mut colors = vec![];