Skip to content

Releases: ModMaker101/KeyLighting.NET

v1.4.0

20 May 07:14
bd7dcbf

Choose a tag to compare

What's New

1. Console String Formatting Improvements

  • Introduced UTF-8 buffer-based formatting using Utf8.TryWrite and Encoding.UTF8 for debug messages and file names in Program.cs.
  • Added a shared debugBuffer for efficient string construction and output.
  • Implemented helper methods for formatted console output and buffer pooling.

2. Debug Image Saving Refactor

  • Refactored debug image saving logic to use UTF-8 buffers for filename formatting, improving performance and consistency.
  • Enhanced exception handling for image saving; now outputs errors via the new buffer-based method.

3. Cleanup and Comments

  • Removed or condensed outdated comments and unused code, particularly in platform-specific sections.
  • Cleaned up redundant comments and dead code related to fading and transition logic.

4. Platform Abstraction Cleanliness

  • Simplified placeholder implementations for Linux and macOS screen capture (no new functionality added).
  • Maintained fallback monitors and test patterns for non-Windows platforms with reduced code clutter.

5. Minor Logic and Readability Tweaks

  • Improved logic clarity in fading and color transition code.
  • Consolidated and simplified transition handling in CPUImageProcessor for better maintainability.

What's Changed

Full Changelog: v1.3.0...v1.4.0

v1.3.0

19 May 04:20
fc46881

Choose a tag to compare

Key Changes & Improvements

1. Fading & Transition Logic Refactor

Fade Speed Handling:

  • Fading is now only applied if fadeSpeed (or FadeFactor) is less than 1.0. If set to 1.0 (or near), transitions are instant.
  • The logic for fading solid color frames and column effects is unified and clarified.

ProcessSolidColor Method:

  • Rewritten to better handle fading between different solid colors, including brightness transitions.
  • Fade calculations are now more direct and use the configured fade speed.
  • Removed redundant/unused logic and variables.

ApplyFading Method:

  • Simplified: Now only applies fading if needed, with clear comments.
  • Removed fadeProgress Array:
    • The per-LED fade progress tracking mechanism (fadeProgress) was removed, simplifying color updates and reducing unnecessary state.

2. Keyboard Color Update Logic

UpdateLedColors Refactored:

  • Instantly applies color if fade factor is very high (>= 0.99).
  • Otherwise, uses a simple, fast lerp (linear interpolation) with a strong weight for fast but not instant transitions.
  • WASD key handling improved—special color application is clearer.
  • Previous per-LED fade progress and cubic easing removed for code clarity and speed.

3. Configuration Tweaks

config.json:

  • Lowered the default fadeFactor from 0.9 to 0.3 for a slower, more noticeable fade by default.

4. Code Cleanup

  • Removed unused variables and legacy code.
  • Added comments for clarity, especially around fading logic.
  • Improved code readability and maintainability.

What's Changed

Full Changelog: v1.2.0...v1.3.0

v1.2.0

19 May 03:16
99f5a8a

Choose a tag to compare

Update Summary

Transitions & Fading

  • Added fade/transition logic for color changes to enable smoother visual transitions.
  • Solid color frame detection introduced to optimize fading performance.

Color Processing Refactor

  • Separated column extraction from effect application for better modularity.
  • Optimized column processing:
    • Loop unrolling
    • Parallelism for performance boost

Configuration Changes

  • Constructor updated: CPUImageProcessor now requires a LightingConfig, allowing configurable fade speed.
  • fadeFactor changed from int to float (e.g., 0.9 instead of 3) to better support blending logic.

Code & Memory Management

  • Improved memory cleanup: Added proper disposal for newly allocated buffers.
  • General code cleanup:
    • Better LUT initialization
    • Value clamping
    • Added performance hints where applicable

What's Changed

New Contributors

Full Changelog: v1.1.0...v1.2.0

v1.1.0

18 May 01:18

Choose a tag to compare

Full Changelog: v1.0.0...v1.1.0

v1.0.0

18 May 00:31

Choose a tag to compare