Releases: relmer/MatrixRain
Releases · relmer/MatrixRain
MatrixRain 1.2.1973
[Unreleased]
[1.2.1973] - 2026-03-23
Fixed
- Render loop double-pacing: VSync (
Present(1, 0)) andsleep_for(16ms)both ran per frame, capping FPS at ~32 instead of 60 - Input latency for overlay show/dismiss: moved
Present()outside the overlay mutex so the UI thread'sOnKeyDownno longer blocks up to 16ms waiting on VSync
[1.2.1954] - 2026-03-23
Fixed
- Infinite recursion in WindowsFileSystemProvider due to Win32 macro name collision
- Silent failure on uninstall errors — now shows user-facing error messages
- Use non-assert error handling for runtime file system failures in uninstall path
Added
- VS Code "Attach to MatrixRain" debug configuration for attaching to running processes
[1.2.1953] - 2026-03-22
Added
- Screensaver install/uninstall via
/installand/uninstallswitches - UAC elevation prompt for install/uninstall operations
- Group Policy and MDM/Intune policy detection before install
/forceor--forceswitch to bypass policy warnings on installIFileSystemProviderinterface for testable file system operationsMockFileSystemProviderfor fully isolated unit tests
Changed
Uninstall()andCleanupRegistryForUninstall()acceptIFileSystemProviderfor testability- Elevation check uses injectable function pointer for mock support
Fixed
- CI test failures: screensaver installer tests no longer assume elevation state
- All unit tests fully mocked — no real filesystem, registry, or OS calls
[1.1.1819] - 2026-03-21
Added
- Added usage dialog (
/?or-?) showing command-line options - Help hint overlay on startup showing Settings/Help/Exit keys with auto-dismiss
- Hotkey reference overlay toggled via
?key listing all keyboard shortcuts
Changed
- Default rain density reduced for better visual balance
Fixed
- Config dialog cancel not restoring keyboard input
- Overlay character cycling and initial glyph display
[1.1.1307] - 2026-03-09
Added
- Per-monitor DPI awareness for consistent character sizing across displays
- Multi-pass Gaussian blur for smoother, wider bloom glow
- Glow size slider now controls blur kernel radius in real time
Changed
- Bloom compositing uses exponential soft-saturation to prevent clipping
- Lowered bloom extraction threshold for a more visible glow at normal brightness
Fixed
- Character size and spacing now scale correctly on high-DPI displays
[1.0.1001] - 2026-02-23
Added
- MIT LICENSE file
- WinGet package manifest (
relmer.MatrixRain) and automated publish step - VERSIONINFO resource block for Windows file properties
Changed
- Conventional commits convention adopted
- Improved thread safety: extended mutex scope in game loop, thread-local RNG
- Extracted shared color scheme parsing; removed
void*casts - Reuse temp vectors in
RemoveExcessStreaksfor reduced allocations - Validate string length on registry reads
- Statically link the C runtime (eliminates vcruntime140.dll dependency)
- Explicit diagnostic when D3D debug layer is unavailable (Graphics Tools)
Fixed
- Strengthened unit test assertions and fixed CharacterSet initialization
- WinGet workflow: use
envcontext for PAT secret in step conditions
[1.0.1000] - 2026-01-17
Added
- ARM64 native build support (x64 + ARM64)
- VS Code C++ IntelliSense configuration for both architectures
- Test tasks for Release configurations
Fixed
- Incorrect default in settings tests
- PCH configuration error for the profiler build flavor
- Glow effect for red and blue color schemes (luminance threshold fix)
[0.9] - 2025-12-13
Added
- Full screensaver mode (
/s,/c,/pcommand-line switches) - Configuration dialog with live overlay on the running animation
- Live wiring of animation speed, glow sliders, checkboxes, and color scheme to running app
- Preview mode in the Windows Screen Saver control panel
- Dual-mode
/chandling: modal dialog or live overlay depending on context - Registry-based settings persistence
- CLI argument parser with
/s,/c,/c:HWND,/p:HWNDsupport .scrbuild artifact generation (post-build copy of.exe)- Input exit state tracking for screensaver mode (mouse/keyboard triggers exit)
- ScreenSaverModeContext runtime enforcement
- Error handling and unit tests for command-line parsing
Fixed
- Reset button on settings dialog not updating color scheme of running app
- Debug overlay suppression and dialog centering issues in screensaver mode
[0.8] - 2025-11-30
Added
- README with project description and screenshots
- Application icon
- Robust VS Code build scripts, tasks, and launch configurations
- VS Code workspace file
Changed
- Default to full-screen mode on launch
Skey toggles statistics overlay on/off- Refactored application startup with EHM (Error Handling Macros) support
Fixed
- Statistics text wrapping at window edge
[0.7] - 2025-11-28
Added
- Color cycling animation option
- Active head-based streak spawning system
- Full-screen mode (borderless window, not exclusive)
- Window drag support via
WM_NCHITTESThandler - API awareness manifest; profiler build configuration
Changed
- Improved scaling behavior when switching to/from full screen
- Streak density test coverage expanded
Fixed
- Viewport resize assertions during head-based spawning
- Streak lifetime edge cases and debug lifetime counter
- Fade timer expiration when bright time expires
- Window drag disabled in full-screen mode
[0.6] - 2025-11-25
Added
- Gaussian blur bloom post-processing effect
- Feathered glow effect on FPS overlay for legibility against rain streaks
- Redesigned density system: percentage-based (0–100%), reference-based viewport, doubled max streaks, 50 ms spawn interval
- FPS overlay with rain statistics
- Color cycling keyboard toggle
Changed
- Refactored
UpdateInstanceBuffer,ApplyBloom, and shader creation code
Fixed
- Bloom rendering in full-screen mode
- Animation stopping while in full-screen mode
- Full-screen mode switched from DirectX exclusive to borderless window
[0.5] - 2025-11-22
Added
- Rain density control system with
+/-keyboard input - Depth sorting, zoom wrapping, and color transition
- D3D11 texture creation for character mutation
- RenderSystem wiring and integration tests
- Perspective projection
Changed
- Drop interval no longer changes during a streak's lifetime
Fixed
- Fade behavior; added pause/resume (
Pkey)
[0.4] - 2025-11-06
Added
- Direct2D + DirectWrite text rendering for texture atlas (replaces placeholder glyphs)
- Discrete cell-based character dropping
- Stationary characters with fade-in-place animation
ESCkey to exit application
Changed
- Adjusted rain drop speed for better visual experience
- Removed horizontal drift
Fixed
- Despawn logic at viewport boundaries
[0.3] - 2025-11-06
Added
- MVP COMPLETE: Matrix Rain renders with placeholder glyphs
- DirectX 11 rendering pipeline (RenderSystem)
- Application class and WinMain entry point
- AnimationSystem: streak lifecycle, character mutation, fade
- CharacterSet texture atlas via Direct2D
- Viewport with TDD
- CharacterStreak and CharacterInstance with TDD
Fixed
- Window creation error (
ERROR_INVALID_WINDOW_HANDLE)
[0.2] - 2025-11-05
Added
- Math types and utility functions (Vector2, Vector3, Color)
- CharacterSet singleton and GlyphInfo struct
- Character constants for Matrix Rain glyphs (Katakana, Latin, numerals)
- High-resolution Timer utility
- Comprehensive unit tests for Phase 2 components (100% coverage)
- Precompiled headers for MatrixRain executable project
[0.1] - 2025-11-05
Added
- Initial project: Visual Studio solution with MatrixRainCore (static lib), MatrixRain (app), MatrixRainTests
- Matrix Rain visual effect specification
- Implementation plan and design documentation
- Task breakdown (157 tasks across 5 phases)
MatrixRain 1.2.1965
[Unreleased]
MatrixRain 1.2.1953
[Unreleased]
[1.2.1953] - 2026-03-22
Added
- Screensaver install/uninstall via
/installand/uninstallswitches - UAC elevation prompt for install/uninstall operations
- Group Policy and MDM/Intune policy detection before install
/forceor--forceswitch to bypass policy warnings on installIFileSystemProviderinterface for testable file system operationsMockFileSystemProviderfor fully isolated unit tests
Changed
Uninstall()andCleanupRegistryForUninstall()acceptIFileSystemProviderfor testability- Elevation check uses injectable function pointer for mock support
Fixed
- CI test failures: screensaver installer tests no longer assume elevation state
- All unit tests fully mocked — no real filesystem, registry, or OS calls
[1.1.1819] - 2026-03-21
Added
- Added usage dialog (
/?or-?) showing command-line options - Help hint overlay on startup showing Settings/Help/Exit keys with auto-dismiss
- Hotkey reference overlay toggled via
?key listing all keyboard shortcuts
Changed
- Default rain density reduced for better visual balance
Fixed
- Config dialog cancel not restoring keyboard input
- Overlay character cycling and initial glyph display
[1.1.1307] - 2026-03-09
Added
- Per-monitor DPI awareness for consistent character sizing across displays
- Multi-pass Gaussian blur for smoother, wider bloom glow
- Glow size slider now controls blur kernel radius in real time
Changed
- Bloom compositing uses exponential soft-saturation to prevent clipping
- Lowered bloom extraction threshold for a more visible glow at normal brightness
Fixed
- Character size and spacing now scale correctly on high-DPI displays
[1.0.1001] - 2026-02-23
Added
- MIT LICENSE file
- WinGet package manifest (
relmer.MatrixRain) and automated publish step - VERSIONINFO resource block for Windows file properties
Changed
- Conventional commits convention adopted
- Improved thread safety: extended mutex scope in game loop, thread-local RNG
- Extracted shared color scheme parsing; removed
void*casts - Reuse temp vectors in
RemoveExcessStreaksfor reduced allocations - Validate string length on registry reads
- Statically link the C runtime (eliminates vcruntime140.dll dependency)
- Explicit diagnostic when D3D debug layer is unavailable (Graphics Tools)
Fixed
- Strengthened unit test assertions and fixed CharacterSet initialization
- WinGet workflow: use
envcontext for PAT secret in step conditions
[1.0.1000] - 2026-01-17
Added
- ARM64 native build support (x64 + ARM64)
- VS Code C++ IntelliSense configuration for both architectures
- Test tasks for Release configurations
Fixed
- Incorrect default in settings tests
- PCH configuration error for the profiler build flavor
- Glow effect for red and blue color schemes (luminance threshold fix)
[0.9] - 2025-12-13
Added
- Full screensaver mode (
/s,/c,/pcommand-line switches) - Configuration dialog with live overlay on the running animation
- Live wiring of animation speed, glow sliders, checkboxes, and color scheme to running app
- Preview mode in the Windows Screen Saver control panel
- Dual-mode
/chandling: modal dialog or live overlay depending on context - Registry-based settings persistence
- CLI argument parser with
/s,/c,/c:HWND,/p:HWNDsupport .scrbuild artifact generation (post-build copy of.exe)- Input exit state tracking for screensaver mode (mouse/keyboard triggers exit)
- ScreenSaverModeContext runtime enforcement
- Error handling and unit tests for command-line parsing
Fixed
- Reset button on settings dialog not updating color scheme of running app
- Debug overlay suppression and dialog centering issues in screensaver mode
[0.8] - 2025-11-30
Added
- README with project description and screenshots
- Application icon
- Robust VS Code build scripts, tasks, and launch configurations
- VS Code workspace file
Changed
- Default to full-screen mode on launch
Skey toggles statistics overlay on/off- Refactored application startup with EHM (Error Handling Macros) support
Fixed
- Statistics text wrapping at window edge
[0.7] - 2025-11-28
Added
- Color cycling animation option
- Active head-based streak spawning system
- Full-screen mode (borderless window, not exclusive)
- Window drag support via
WM_NCHITTESThandler - API awareness manifest; profiler build configuration
Changed
- Improved scaling behavior when switching to/from full screen
- Streak density test coverage expanded
Fixed
- Viewport resize assertions during head-based spawning
- Streak lifetime edge cases and debug lifetime counter
- Fade timer expiration when bright time expires
- Window drag disabled in full-screen mode
[0.6] - 2025-11-25
Added
- Gaussian blur bloom post-processing effect
- Feathered glow effect on FPS overlay for legibility against rain streaks
- Redesigned density system: percentage-based (0–100%), reference-based viewport, doubled max streaks, 50 ms spawn interval
- FPS overlay with rain statistics
- Color cycling keyboard toggle
Changed
- Refactored
UpdateInstanceBuffer,ApplyBloom, and shader creation code
Fixed
- Bloom rendering in full-screen mode
- Animation stopping while in full-screen mode
- Full-screen mode switched from DirectX exclusive to borderless window
[0.5] - 2025-11-22
Added
- Rain density control system with
+/-keyboard input - Depth sorting, zoom wrapping, and color transition
- D3D11 texture creation for character mutation
- RenderSystem wiring and integration tests
- Perspective projection
Changed
- Drop interval no longer changes during a streak's lifetime
Fixed
- Fade behavior; added pause/resume (
Pkey)
[0.4] - 2025-11-06
Added
- Direct2D + DirectWrite text rendering for texture atlas (replaces placeholder glyphs)
- Discrete cell-based character dropping
- Stationary characters with fade-in-place animation
ESCkey to exit application
Changed
- Adjusted rain drop speed for better visual experience
- Removed horizontal drift
Fixed
- Despawn logic at viewport boundaries
[0.3] - 2025-11-06
Added
- MVP COMPLETE: Matrix Rain renders with placeholder glyphs
- DirectX 11 rendering pipeline (RenderSystem)
- Application class and WinMain entry point
- AnimationSystem: streak lifecycle, character mutation, fade
- CharacterSet texture atlas via Direct2D
- Viewport with TDD
- CharacterStreak and CharacterInstance with TDD
Fixed
- Window creation error (
ERROR_INVALID_WINDOW_HANDLE)
[0.2] - 2025-11-05
Added
- Math types and utility functions (Vector2, Vector3, Color)
- CharacterSet singleton and GlyphInfo struct
- Character constants for Matrix Rain glyphs (Katakana, Latin, numerals)
- High-resolution Timer utility
- Comprehensive unit tests for Phase 2 components (100% coverage)
- Precompiled headers for MatrixRain executable project
[0.1] - 2025-11-05
Added
- Initial project: Visual Studio solution with MatrixRainCore (static lib), MatrixRain (app), MatrixRainTests
- Matrix Rain visual effect specification
- Implementation plan and design documentation
- Task breakdown (157 tasks across 5 phases)
MatrixRain 1.1.1826
[Unreleased]
[1.1.1819] - 2026-03-21
Added
- Added usage dialog (
/?or-?) showing command-line options - Help hint overlay on startup showing Settings/Help/Exit keys with auto-dismiss
- Hotkey reference overlay toggled via
?key listing all keyboard shortcuts
Changed
- Default rain density reduced for better visual balance
Fixed
- Config dialog cancel not restoring keyboard input
- Overlay character cycling and initial glyph display
[1.1.1307] - 2026-03-09
Added
- Per-monitor DPI awareness for consistent character sizing across displays
- Multi-pass Gaussian blur for smoother, wider bloom glow
- Glow size slider now controls blur kernel radius in real time
Changed
- Bloom compositing uses exponential soft-saturation to prevent clipping
- Lowered bloom extraction threshold for a more visible glow at normal brightness
Fixed
- Character size and spacing now scale correctly on high-DPI displays
MatrixRain 1.0.1001
[Unreleased]
[1.0.1001] - 2026-02-23
Added
- MIT LICENSE file
- WinGet package manifest (
relmer.MatrixRain) and automated publish step - VERSIONINFO resource block for Windows file properties
Changed
- Conventional commits convention adopted
- Improved thread safety: extended mutex scope in game loop, thread-local RNG
- Extracted shared color scheme parsing; removed
void*casts - Reuse temp vectors in
RemoveExcessStreaksfor reduced allocations - Validate string length on registry reads
- Statically link the C runtime (eliminates vcruntime140.dll dependency)
- Explicit diagnostic when D3D debug layer is unavailable (Graphics Tools)
Fixed
- Strengthened unit test assertions and fixed CharacterSet initialization
- WinGet workflow: use
envcontext for PAT secret in step conditions
MatrixRain 1.0.1000
[Unreleased]
Changed
- Conventional commits convention adopted
- Improved thread safety: extended mutex scope in game loop, thread-local RNG
- Extracted shared color scheme parsing; removed
void*casts - Reuse temp vectors in
RemoveExcessStreaksfor reduced allocations - Validate string length on registry reads
Fixed
- Strengthened unit test assertions and fixed CharacterSet initialization
[1.0.1000] - 2026-01-17
Added
- ARM64 native build support (x64 + ARM64)
- VS Code C++ IntelliSense configuration for both architectures
- Test tasks for Release configurations
Fixed
- Incorrect default in settings tests
- PCH configuration error for the profiler build flavor
- Glow effect for red and blue color schemes (luminance threshold fix)
[0.9] - 2025-12-13
Added
- Full screensaver mode (
/s,/c,/pcommand-line switches) - Configuration dialog with live overlay on the running animation
- Live wiring of animation speed, glow sliders, checkboxes, and color scheme to running app
- Preview mode in the Windows Screen Saver control panel
- Dual-mode
/chandling: modal dialog or live overlay depending on context - Registry-based settings persistence
- CLI argument parser with
/s,/c,/c:HWND,/p:HWNDsupport .scrbuild artifact generation (post-build copy of.exe)- Input exit state tracking for screensaver mode (mouse/keyboard triggers exit)
- ScreenSaverModeContext runtime enforcement
- Error handling and unit tests for command-line parsing
Fixed
- Reset button on settings dialog not updating color scheme of running app
- Debug overlay suppression and dialog centering issues in screensaver mode
[0.8] - 2025-11-30
Added
- README with project description and screenshots
- Application icon
- Robust VS Code build scripts, tasks, and launch configurations
- VS Code workspace file
Changed
- Default to full-screen mode on launch
Skey toggles statistics overlay on/off- Refactored application startup with EHM (Error Handling Macros) support
Fixed
- Statistics text wrapping at window edge
[0.7] - 2025-11-28
Added
- Color cycling animation option
- Active head-based streak spawning system
- Full-screen mode (borderless window, not exclusive)
- Window drag support via
WM_NCHITTESThandler - API awareness manifest; profiler build configuration
Changed
- Improved scaling behavior when switching to/from full screen
- Streak density test coverage expanded
Fixed
- Viewport resize assertions during head-based spawning
- Streak lifetime edge cases and debug lifetime counter
- Fade timer expiration when bright time expires
- Window drag disabled in full-screen mode
[0.6] - 2025-11-25
Added
- Gaussian blur bloom post-processing effect
- Feathered glow effect on FPS overlay for legibility against rain streaks
- Redesigned density system: percentage-based (0–100%), reference-based viewport, doubled max streaks, 50 ms spawn interval
- FPS overlay with rain statistics
- Color cycling keyboard toggle
Changed
- Refactored
UpdateInstanceBuffer,ApplyBloom, and shader creation code
Fixed
- Bloom rendering in full-screen mode
- Animation stopping while in full-screen mode
- Full-screen mode switched from DirectX exclusive to borderless window
[0.5] - 2025-11-22
Added
- Rain density control system with
+/-keyboard input - Depth sorting, zoom wrapping, and color transition
- D3D11 texture creation for character mutation
- RenderSystem wiring and integration tests
- Perspective projection
Changed
- Drop interval no longer changes during a streak's lifetime
Fixed
- Fade behavior; added pause/resume (
Pkey)
[0.4] - 2025-11-06
Added
- Direct2D + DirectWrite text rendering for texture atlas (replaces placeholder glyphs)
- Discrete cell-based character dropping
- Stationary characters with fade-in-place animation
ESCkey to exit application
Changed
- Adjusted rain drop speed for better visual experience
- Removed horizontal drift
Fixed
- Despawn logic at viewport boundaries
[0.3] - 2025-11-06
Added
- MVP COMPLETE: Matrix Rain renders with placeholder glyphs
- DirectX 11 rendering pipeline (RenderSystem)
- Application class and WinMain entry point
- AnimationSystem: streak lifecycle, character mutation, fade
- CharacterSet texture atlas via Direct2D
- Viewport with TDD
- CharacterStreak and CharacterInstance with TDD
Fixed
- Window creation error (
ERROR_INVALID_WINDOW_HANDLE)
[0.2] - 2025-11-05
Added
- Math types and utility functions (Vector2, Vector3, Color)
- CharacterSet singleton and GlyphInfo struct
- Character constants for Matrix Rain glyphs (Katakana, Latin, numerals)
- High-resolution Timer utility
- Comprehensive unit tests for Phase 2 components (100% coverage)
- Precompiled headers for MatrixRain executable project
[0.1] - 2025-11-05
Added
- Initial project: Visual Studio solution with MatrixRainCore (static lib), MatrixRain (app), MatrixRainTests
- Matrix Rain visual effect specification
- Implementation plan and design documentation
- Task breakdown (157 tasks across 5 phases)