Add animation effects + double-buffered FPS optimization
- Add 5 new animation effects (strobe, sparkle, pulse, candle, rainbow fade) to both static and gradient color strip streams - Fix FPS drops (30→25) by using 5ms re-poll on frame skip instead of full frame_time, preventing synchronization misses between animation thread and processing loop - Double-buffer animation output arrays to eliminate per-frame numpy allocations and reduce GC pressure - Use uint16 integer math for gradient brightness scaling instead of float32 intermediates - Update animation type dropdowns and locale strings (en + ru) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -57,13 +57,23 @@ export function onCSSTypeChange() {
|
||||
if (type === 'static') {
|
||||
animSection.style.display = '';
|
||||
animTypeSelect.innerHTML =
|
||||
`<option value="breathing">${t('color_strip.animation.type.breathing')}</option>`;
|
||||
`<option value="breathing">${t('color_strip.animation.type.breathing')}</option>` +
|
||||
`<option value="strobe">${t('color_strip.animation.type.strobe')}</option>` +
|
||||
`<option value="sparkle">${t('color_strip.animation.type.sparkle')}</option>` +
|
||||
`<option value="pulse">${t('color_strip.animation.type.pulse')}</option>` +
|
||||
`<option value="candle">${t('color_strip.animation.type.candle')}</option>` +
|
||||
`<option value="rainbow_fade">${t('color_strip.animation.type.rainbow_fade')}</option>`;
|
||||
} else if (type === 'gradient') {
|
||||
animSection.style.display = '';
|
||||
animTypeSelect.innerHTML =
|
||||
`<option value="breathing">${t('color_strip.animation.type.breathing')}</option>` +
|
||||
`<option value="gradient_shift">${t('color_strip.animation.type.gradient_shift')}</option>` +
|
||||
`<option value="wave">${t('color_strip.animation.type.wave')}</option>`;
|
||||
`<option value="wave">${t('color_strip.animation.type.wave')}</option>` +
|
||||
`<option value="strobe">${t('color_strip.animation.type.strobe')}</option>` +
|
||||
`<option value="sparkle">${t('color_strip.animation.type.sparkle')}</option>` +
|
||||
`<option value="pulse">${t('color_strip.animation.type.pulse')}</option>` +
|
||||
`<option value="candle">${t('color_strip.animation.type.candle')}</option>` +
|
||||
`<option value="rainbow_fade">${t('color_strip.animation.type.rainbow_fade')}</option>`;
|
||||
} else {
|
||||
animSection.style.display = 'none';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user