Umfeld v2.8.0 Released
v2.8.0
- update logo ( + icon )
- add
close_window()that closes the window but keeps the application running - greatly improved headless behavior and performance
- add clipboard interactions for text and images with
clipboard_set()+clipboard_get()+clipboard_copy_image()+clipboard_paste_image() - remove deprecated configuration properties. use
configto configure application e.gconfig.antialiasing(8)
backend abstraction
- introduce
umfeld::backendnamespace as a platform abstraction layer. SDL3 remains the default backend but the interface is now replaceable - add SDL2 backend (
UMFELD_BACKEND_SDL2) for compatibility with older systems - add external backend mechanism. plug in a fully custom backend via
UMFELD_BACKEND_EXTERNAL - add terminal backend as library. runs without any SDL dependency
get_window()is deprecated. useget_native_window()which returnsvoid*and is backend-agnostic- key scan codes are now defined per-backend; external backends use ncurses
KEY_*values
core + API
- add
print_console_info_during_initialization. set tofalseto suppress subsystem startup messages error(),warning(), andconsole()now emit ANSI colors when the terminal supports it ( respectsNO_COLORenv var andTERM=dumb)- color output is prefix-only: label is colored, message text is not
- fix
list()function Capturenow selects default camera when no device is specified- add XML support (
loadXML()/parseXML()) - add
now()( current time helper ) max()now accepts arrays /std::vector
build + tooling
- installer now exports
UMFELD_PATH( +UMFELD_LIBRARIES_PATH) into shell automatically - fix
--branchoption in installer script - remove template application stub from main repo ( template app lives in codeberg.org/Umfeld/umfeld-application )
- greatly expanded automated tests
PShape
- PShape is fully implemented
- umfeld-only ::
set_buffered()opt-in GPU caching: tessellate a static fill once, replay it from the GPU every frame. seeumfeld-examples/Advanced/shape-buffered - umfeld-only ::
rasterize(w, h)/loadSVGImage(file, scale)turn an SVG into a PImage bitmap on demand or at load time. seeumfeld-examples/Advanced/shape-rasterize
graphics
- (multisample) anti-aliasing (MSAA) is now on by default ( 4× MSAA ); configure with
config.antialiasing(int) - fix offscreen / FBO rendering with antialiasing (MSAA). covers 4 commits: fix MSAA + offscreen bug on linux, fix MSAA rendering bug, fix no-MSAA glitch on RPI, resolve offscreen MSAA in endDraw.
- fix depth sorting in 2D and 3D paths. improve depth behavior in 2D and 3D paths
- add
bezierVertex() - add shaped / transparent windows:
config.shaped_window(true)+window_shape(mask) - add system cursors:
cursor(CursorKind), image cursorcursor(img, x, y),noCursor() debug_text()is now the default font i.e whentextFont()not set or set totextFont(nullptr)debug_text()renders Unicode characters
audio
- improve audio backends ( SDL3 + PortAudio )
- improve audio modules
- ⚠️ breaking change ⚠️ :: audio backend now runs in its own thread by default
- ⚠️ breaking change ⚠️ :: remove
replay()fromSampler - 20+ new header-only audio DSP modules in
umfeld/include/audio/: oscillators +Noise+FMSynthesis, envelopes (Envelope,ShapedEnvelope,Ramp), filters (Resonator,FilterVowelFormant), dynamics (Gain,Distortion,Waveshaper),Delay, analysis (RootMeanSquare,EnvelopeFollower,BeatDSP,FFT), music theory (Note,Scale), speech (SAM,Vocoder) - add
WavetableFasta faster wavetable oscillator ( with platform specific accelerations e.g NEON SIMD instructions on Arm Cortex )
libraries
new libraries
- audio-plugin — build same unmodified app as standalone, VST3, or AU/AudioUnit. Audio I/O + parameter control + MIDI in/out + native GL editor view on macOS and Linux.
- terminal — terminal renderer backend (ncurses); merged old in-mainline terminal renderer into a standalone library.
- offline-renderer — offline/headless rendering: OSPRay ray-tracing backend + Blender offline renderer. ⚠️ WIP ⚠️
- screenshot — cross-platform screen capture
- gpu-bridge — GPUBridge, moved out of mainline into own library. ⚠️ WIP ⚠️
- arduino-bridge — Arduino UNO Q bridge, separated MCU + MPU code.
- yolo — YOLO object detection library.
- template-library + template-library-backend — scaffolding templates for new libs / renderer backends, with documentation.
existing libraries
- opencv — proper library reimplementation; multi-threaded capture for speed; new examples: contour-finder, edge-detection, find-lines, histogram, image-filters, region-of-interest.
- imgui — updated for new renderer-backend mechanism.