Skip to content

Releases: Applelyyyy/MORPHIX

v4.0.2

Choose a tag to compare

@Applelyyyy Applelyyyy released this 29 Apr 15:45

MORPHIX v4.0.1

fix: keep global hotkeys active when minimizing to tray

Full Changelog: v4.0.1...v4.0.2

v4.0.1

Choose a tag to compare

@Applelyyyy Applelyyyy released this 06 Apr 14:50

MORPHIX v4.0.1

What changed

  • Added a helper that reads both vibrance inputs from the UI, clamps values to 0-100, and syncs runtime state.
  • Updated Save flow to reuse that helper before writing vibrance to config.
  • Updated color hotkey handlers to refresh vibrance from UI before applying the selected preset.

Bug fixed

Color hotkeys sometimes used stale vibrance values until config was saved again.
Hotkeys now apply the current UI values immediately.

v4.0.0

Choose a tag to compare

@Applelyyyy Applelyyyy released this 07 Mar 16:42

MORPHIX v4.0.0

Features

  • Added a dedicated Color tab with two independent presets: Color 1 and Color 2.
  • Added per-preset Vibrance controls (0-100).
  • Added config persistence for:
    • Color1.Vibrance
    • Color2.Vibrance
    • ColorHotkey1
    • ColorHotkey2

Improvements

  • Color and resolution controls now toggle correctly when switching tabs.
  • Preset titles now switch dynamically between Resolution and COLOR.
  • Save & Apply now applies color settings immediately.

Bug Fixes and Error Handling

  • Improved NVAPI loading reliability (nvapi64.dll fallback to nvapi.dll).
  • Added compatibility fallback for older NVIDIA driver API paths.
  • Added input validation:
    • Vibrance clamped to 0-100
    • Invalid monitor index guarded
  • Improved monitor targeting:
    • Applies to selected monitor first
    • Falls back to enumerated NVIDIA displays if needed
  • Added clearer debug logging for NVAPI init/apply failures.

Support


3.2.0

Choose a tag to compare

@Applelyyyy Applelyyyy released this 06 Mar 16:34

MORPHIX v3.2.0

Release date: 2026-03-06


Bug Fixes

  • Refresh Res button reset selections — clicking Refresh Res read config.ini from disk to restore combo selections; if the INI was stale or the drive was slow, selections could silently fall back to the first item. Now reads from an in-memory cache that is always in sync with the last Save & Apply.

  • Full-window repaint on hotkey press — pressing F7 or F8 invalidated the entire 666×448 window even though only the preset card area (y 132–304) changes. On slower integrated GPUs this caused a visible flicker. Invalidation is now scoped to the preset card rect only.

  • GDI handle leak risk in paint paths — every WM_PAINT, WM_DRAWITEM, and combo repaint event was calling CreateSolidBrush / CreatePen followed by DeleteObject. Across rapid mouse movement over buttons or scrolling the dropdown, this produced bursty GDI heap traffic. All transient GDI objects in hot paths have been replaced with pre-created handles.


Key Changes

GDI object caching

Nine GDI objects that were previously allocated and freed on every render event are now created once at WM_CREATE and destroyed at WM_DESTROY:

Handle Value Used in
hBrushAccent COL_ACCENT monitor accent bar, combo selected row
hBrushAccent2 COL_ACCENT2 Save & Apply button normal state
hBrushGreen COL_GREEN active preset top bar and bottom bar
hBrushHotlight RGB(38, 38, 52) Refresh Res hover state
hBrushText2 COL_TEXT2 combo dropdown chevron fill
hPenGreen 2 px COL_GREEN active preset card border
hPenAccent3 1 px COL_ACCENT3 Save & Apply button border
hPenAccent2Thin 1 px COL_ACCENT2 Refresh Res hover border
hPenText2 1 px COL_TEXT2 combo dropdown chevron outline

Before: up to 14 GDI alloc/free pairs per frame (5 in WM_PAINT + up to 9 across three combo repaints).
After: zero allocations in any paint or draw path.

Resolution string cache

g_savedRes1[64] and g_savedRes2[64] hold the last-written resolution strings from SaveConfig() and are populated on startup by LoadConfig(). The Refresh Res click handler now reads these instead of calling GetPrivateProfileStringA twice.

Partial window invalidation

All three InvalidateRect(hwnd, NULL, FALSE) calls in WM_HOTKEY changed to InvalidateRect(hwnd, &rcPresets, FALSE) where rcPresets = {12, 132, 654, 304}. The header, monitor card, and footer rows are not repainted on hotkey-triggered preset switches.


Internal

  • Split monolithic main.cpp into focused translation units: globals.h, utils.cpp, display.cpp, config.cpp, font.cpp, controls.cpp, wndproc.cpp, main.cpp.
  • compile.bat updated for multi-file build.

Support


v3.1.2

Choose a tag to compare

@Applelyyyy Applelyyyy released this 06 Mar 15:51

MORPHIX v3.1.2

Bug Fixes

  • Fixed resolution compatibility check falsely marking valid resolutions as incompatible — CDS_TEST now tests width and height only, ignoring refresh rate and bit depth during validation
  • Fixed font install path writing to exe directory instead of the proper Windows Fonts folder (%LOCALAPPDATA%\Microsoft\Windows\Fonts\)
  • Fixed variable expansion bug in compile.bat that caused the font registry entry to be written with an empty path
  • Fixed font not persisting across reboots when installed from embedded resource

Changes

  • Font is now installed to %LOCALAPPDATA%\Microsoft\Windows\Fonts\ — no administrator rights required
  • compile.bat now automatically downloads JetBrainsMono-Bold.ttf if the file is missing before compiling
  • compile.bat installs the font for the current user at build time so it is available immediately on first run
  • Application now falls back to loading the font from a disk file next to the exe if the embedded resource is absent, instead of silently skipping installation

Requirements

  • Windows 7 or later
  • MinGW-w64 (for building from source)
  • Internet connection required only if font file is missing at build time

Support


v3.0.0

Choose a tag to compare

@Applelyyyy Applelyyyy released this 06 Mar 12:41

MORPHIX v3.0.0

Resolution Manager for Windows — switch display resolutions instantly with hotkeys.


🚀 What's New

  • Dark Theme — Deep black (#0B0B0E) with violet accent (#7C3AED)

📦 Requirements

  • Windows 7 or later
  • GPU drivers with EnumDisplaySettingsEx support

⚠️ Known Issues

  • JetBrains Mono font must be installed separately for preset labels
    (falls back to Consolas if not found)

💬 Support


v2.1.0

Choose a tag to compare

@Applelyyyy Applelyyyy released this 31 Jan 18:49

MORPHIX v2.1.0

🎮 Fast resolution switching for Windows with custom hotkeys

Features

  • 🎯 Dual resolution profiles with instant hotkey switching
  • ⌨️ Customizable hotkeys (default F7 & F8)
  • 🖥️ Multi-monitor support
  • 💾 Configuration persistence
  • 🔄 Quick reset to original resolution (Ctrl+Alt+Shift+R)
  • 📦 System tray integration

💬 Support