v2.7.0 

  • add Umfeld Processing Mode
    • run sketches :: compile and launch Umfeld C++ sketches
    • data folder :: data/ folder in the sketch directory is automatically copied next to the compiled executable
    • auto format :: uses clang-format with a .clang-format config file ( from sketch folder or bundled default )
    • C/C++ syntax highlighting :: keywords for Umfeld API, C++ language keywords, preprocessor directives ( #include, #define ), comments, and string literals
    • multiple file tabs :: supports .pde, .cpp, .c, .h, and .hpp tabs in the same sketch
    • CMake integration :: generates CMakeLists.txt automatically or uses a custom script from the sketch folder; configures, builds, and runs via CMake
    • custom CMake scripts :: place a CMakeLists.txt in the sketch folder to override the auto-generated one
  • add Linux box to build test. we now have three build test running on every commit:
    • macOS ( arm64 )
    • Raspberry Pi OS ( aarch64 )
    • Ubuntu 22.4 ( x86_64 )
  • add keycodes ( e.g ENTER, TAB, BACKSPACE and F keys )
  • get_files() now returns just filenames ( not the full path )
  • apply fix to prevent CPU burns at low framerates( thx marcus )
  • improve performance of reading pixels back from GPU
  • improve CaptureSDL performance ( now discards buffered frames )
  • vendor portmidi and glm libraries ( for better compatibility with ROCKNIX and other small systems )
  • replaced rtmidi with portmidi
  • add instance cloud + point cloud to render A LOT of shapes at high speed
  • add shader state stack
  • add debug_begin + debug_print + debug_end
  • add option to always interpret textured shapes as transparent interpret_textured_shapes_as_transparent
  • println etcetera can now print glm vectors
  • add option to configure font atlas in PFont via loadFont(file, size, character_atlas) ( i.e the characters that are available. this allows e.g to add Umlaute )
  • add get_ticks()
  • add a few shaders for your pleasure ( e.g blur, dither )
  • fix background bug where color range is not interpreted properly

with this release not we are switching past tense to present tense ( <- still don t like it but that s what they mostly do in the git world … hmmm )