v2.6.5 

  • added setFrameRate(float)
  • improved gamepad ( e.g added rumble )
  • added automated build tests for macOS and RPI
  • print available video and render drivers at startup
  • added PeriodicTimer
  • added pushStyle() + popStyle() ( WIP )
  • added curveVertex() ( WIP, mix with vertex() behaves strange )
  • started documentation thread for small devices ( incl handhelds )
  • added hint to fix gamepad on some handhelds with hint(ENABLE_HANDHELD_GAMEPAD_FIX)
  • audio subsystems handle weird sample rates and audioblock sizes more gracefully
  • OpenGL ES renderer can now also handle window resize
  • @library added Ableton Link support
  • linux systems can now pin a thread to a specific core with pin_thread_to_core(int core_id) which might improve e.g audio performance
  • Sampler can replay() a sample ( rewind + play ) and set a buffer from std::vector
  • greatly improved build system to exclude almost all external libraries ( helpful for thin system e.g PlayStation Portable (PSP) )
  • logging functions ( e.g console(), warning(), error() ) can now be redirected to file with set_error_output_function(...), set_warning_output_function(...), and set_console_output_function(...)
  • in PGraphics reduced pre-allocated vertex buffer size and thined initialization sequence to help devices with smaller memory
  • renamed PGraphicsDefault2D to PGraphicsSDL2D
  • PGraphicsSDL2D now renders basic shapes with transforms ( basic texture support but no 3D yet )
  • PFont now uses power-of-two (POT) texture to comply with older systems ( e.g pre OpenGL 2.0 or PSP )
  • improved stability with more nullptr checks
  • OpenGL headers are now exposed
  • added option to controll subsystem initialization order with umfeld::initialize_client_side_subsystems_deferred
  • added an alternative capture implementation based on SDL SDLCapture ( Capture is based on FFmpeg )
  • fixed and improved color conversion functions
  • improved pixel operations ( download from GPU is still VERY slow )
  • loadShader is more robust now
  • add bayer dither shader ShaderSourceBayerDither ( with example )
  • changed shader uniforms to comply to a_ naming convention