Skip to content

C++ Mode v0.4.6

Choose a tag to compare

@pepc84 pepc84 released this 11 Aug 22:43
· 56 commits to main since this release

Input

  • Fixed stuck/ghost keys under multi-key chords — key/keyCode now translated atomically from GLFW key constant on release, not from stale globals (Bug A)
  • Fixed phantom key releases on Windows from GLFW virtual key mismatch (GLFW #2417) — scancode-based press tracking drops phantom releases (Bug B)
  • Added isKeyDown(int keyCode) API for querying held-key state
  • Renamed internal keysDown[256] to _keysDown to avoid collision with user variables

Windows

  • Fixed Sketch exited with code -1073741515 (DLL not found) — DLLs now copied from bundled libs/windows-x64/ to sketch folder at launch
  • Fixed undefined reference to nanosleep64 with GCC 14.2 — replaced usleep with std::this_thread::sleep_for
  • Added libssp-0.dll to runtime DLL copy list
  • Removed all MSYS2 references from Windows DLL check
  • Fixed extraction progress bar using ZipInputStream with real percentage
  • Fixed NoClassDefFoundError for com.sun.management on non-HotSpot JVMs

macOS

  • Fixed std::string not in namespace std errors on Apple clang — added #include <string> to Processing_api.h
  • Fixed RAND_MAX implicit int-to-float conversion warnings
  • Fixed char >= 128 tautological comparison warning
  • Fixed sprintf deprecated warning in stb headers
  • Fixed ::std:: namespace ambiguity in Processing.cpp on Apple clang
  • Bundled universal dylibs (arm64 + x64) in libs/macos/ — no Homebrew required on Apple Silicon or Intel
  • checkMacLibs checks bundled dylibs first before falling back to Homebrew

Performance

  • Cache no longer invalidated by timestamp — precompiled .o and .gch used if present
  • macOS ships precompiled Processing.o and Processing.h.gch for both arm64 and x64
  • Low memory threshold raised to 3GB before skipping PCH

Linter

  • Fixed double -std flag in PCH generation
  • Fixed linter using system g++ instead of portable WinLibs on Windows
  • PCH validity now checked by existence only

CI

  • macOS dylibs built as universal binaries from source using lipo
  • macOS build-cache produces Processing.o and Processing.h.gch for both arm64 and x64
  • Integration tests on all 3 platforms
  • Upgraded to actions/setup-java@v5