Skip to content
This repository has been archived by the owner on Jan 20, 2024. It is now read-only.

Releases: r-lyeh/FWK.2022

2023.4

10 Jun 17:24
Compare
Choose a tag to compare

new: added camera_fov()
new: added file checksums (file_crc32, file_md5, file_sha1)
new: added ui_enable() / ui_disable() (fwk_ui)
new: added window_color() (fwk_window)
new: added waypoints in demo/04-actor.c for upcoming AI pass
new: added navmesh test files from mikko mononen for upcoming NAV pass
brk: camera_teleport() signature
brk: deprecated mesh_create(), renamed mesh_upgrade() > mesh_update() (fwk_render)
brk: renamed fourcc > cc4; added cc8
brk: renamed FWK_C > FWK_IMPLEMENTATION directive
brk: renamed os_exec > app_exec, cpu_cores > app_cores, battery > app_battery, signals_install > signal_hooks
chg: reduced hello.c size (/)
chg: tweaked font sizes H1..H6 (fwk_font)
chg: updated roadmap
fix: added missing EASE_FLAGS for ease()
fix: fixed 04-actor.c not being compiled on tcc+linux
fix: fixed hello.c not being compiled as objc file (osx, MAKE.bat)
fix: normalized zero-length vectors (norm2/3/4)
fix: prevented profiler panel from overlapping other panels with PANEL_OPEN flag (fwk_profile)
fix: removed extra arg in array_pop_front()
fix: updated docs
fix: updated doom/anarch makefiles
lab: added 04-lod demo, 3rd_polychop.h (demos/)
lab: added experimental python bindings (demo_python.py, fwk.py)
lab: added behavior tree for upcoming demo

image

2023.3

25 Mar 18:22
Compare
Choose a tag to compare

new: Tiled API
new: Swarm/Boids API
new: Shadertoy API
new: Threads API
new: Spine API (wip)
new: 00-ui demo (supersedes 00-hello,00-video)
new: 01-sprite demo (supersedes 00-audio,00-font,00-spine,00-sprite,00-tiled,00-tilemap,00-demo)
new: 02-ddraw demo (supersedes 00-collide)
new: 03-anims demo (supersedes 00-anims,00-instanced)
new: 04-actor demo
new: 04-controller demo
new: 07-network demo (supersedes 00-socket,00-script,00-demo)
new: Added animation blending support
new: Added build support for files that use single-header (MAKE.bat hello.c)
new: Added errorlevels (MAKE.bat+win)
new: Added maximize/restore buttons to ui_window() (3rd_nuklear.h)
new: Added PANEL_OPEN flag to allow ui panels to be initially open (fwk_ui)
new: Added partial atomics support (tcc+linux)
new: Added premake5+ninja binaries (win,lin,osx)
new: Added premake5 support: vs,xcode,ninja,gmake solutions (MAKE.bat sln)
new: Added UI theme flag --ui-hue=0.XX (fwk_ui)
new: Added UI_FONT_LARGE,UI_FONT_SMALL,UI_ICONS_SMALL,UI_LESSER_SPACING directives (fwk_ui)
new: Added zooming to filebrowser (3rd_nuklear_filebrowser.h)
new: Enabled profiler+memory poisoning on debug/devel builds by default
new: Tweaked UI hue palette so colors combine better with default dark theme
add: Added ddraw_ring()
add: Added file_base() (fwk_file)
add: Added fx_find(), fx_load_from_mem()
add: Added input_mappings() (fwk_input)
add: Added model_animate_blends()
add: Added skybox_render()
brk: Changed WITH_LEAK_DETECTOR > WITH_MEMORY_LEAKS
brk: Renamed Data API > JSON API
brk: Deprecated vfs_find() and renamed it: vfs_find() > vfs_extract()
brk: Merged os_exec_output() into os_exec()
brk: Simplified ui_label2_toolbar() signature (fwk_ui.c)
chg: Added editor2 to makefile (MAKE.bat)
chg: Added is_resolution_independant arg to sprite_sheet() (fwk_render)
chg: Added loop/frame anim controls (demos/03-anims)
chg: Added parallel init mode that shaves some millisecs during fwk_init() boot time (msvc)
chg: Added support in ui sections to display any leading icon (fwk_ui.c)
chg: Added support for globbing files (fx_load)
chg: Added symbols to MSVC release builds (MAKE.bat)
chg: Added toggle view button in ui_browse() (fwk_ui)
chg: Added UI to sockets demo (demos/07-network)
chg: Added window demos to ui_demo()
chg: Bumped up versions (3rd_thread.h)
chg: Changed windowed/inlined ui_browse() calls to use grid/list view modes by default (fwk_ui)
chg: Made apps to abort execution on cancelled cooks
chg: Made optional argument in breakpoint()
chg: Made smoother blend on transparent pixels (sprite)
chg: Made UI most widgets to fit 100% of horizontal space when not specifying label (fwk_ui)
chg: Moved old demos into demos/old/
chg: Optimized cook-on-demand by cooking extra files on same batch (fwk_cook)
chg: Optimized cook-on-demand by verifying that files do exist before actually invoking tools/cook (fwk_cook)
chg: Rebuilt tools/cook (win,lin,osx) (tools/cook)
chg: Removed extra malloc when decoding mp1 files (fwk_audio)
chg: Removed extra compilation step when invoking make cook (MAKE.bat)
chg: Renamed demos/00-demo.c as /hello.c
chg: Renamed ui_string() > ui_buffer(), ui_stringf() > ui_string()
chg: Reworked ui_console() (not working yet) (fwk_ui)
chg: Renamed tools/split > engine/split, tools/fwk** > engine/fwk**
chg: Updated docs
chg: Updated Luajit bindings
fix: Buffer overruns in audio_queue() (AUDIO_FLOAT, AUDIO_1CH cases) (fwk_audio.c)
fix: Do not write tempfiles on filesystem (removed all vfs_find accesses)
fix: Exhausted audio buffers in audio_queue() (fwk_audio.c)
fix: Fixed incorrect estimation for width browser while being instanced inside a ui_panel()
fix: Fixed argc()/argv()/flag() on tcc+linux (fwk_system)
fix: Fixed crash on cook-on-demand + demos/00-shadertoy combo
fix: Fixed incorrect ART_SKIP_ROOT estimation, which was truncating PRETTY symbol on some edge cases (fwk_cook)
fix: Fixed incorrect hovering after resetting window layouts (fwk_ui)
fix: Fixed invalid texture width in ui_colormap()
fix: Fixed multithreaded accesses (vfs_load)
fix: Fixed postfx shaders not being mounted on vfs (fx_load)
fix: Fixed reset layout not working on maximized panels/windows (fwk_ui)
fix: Fixed small typo in FREE() that was suboptimal, perf wise (fwk_memory)
fix: Improved pattern matching on supplied wildcards (tools/cook)
fix: Removed 64 panels/windows max limit (fwk_ui)
fix: Removed alpha component from ui_color3() widget (fwk_ui)
fix: Silenced const warning (each_array_ptr)
fix: UB when no voices were available in audio_queue() (fwk_audio.c)
del: Deprecated UI_THEME_MONOCHROME directive (fwk_ui)
lab: Resumed editor2 work

image

2023.2

25 Feb 22:19
Compare
Choose a tag to compare

Stability release:

new: Ability to cook assets on demand. Via -DCOOK_ON_DEMAND directive or --cook-on-demand flag (cook limited to 1 thread for now, though)
new: SF3 soundfont support (3rd_tsf.h)
new: FUR audio modules support
new: clang-cl compiler support (MAKE clang-cl)
new: MIDI API (no linux, no mingw)
new: Timer API
new: Cursors API
new: Signal traps API
new: DOOM game port (demos/ports/doom)
new: Anarch game port (no mouse) (demos/ports/anarch)
new: Capture software mouse when recording videos
new: Install signal handlers on debug builds automatically (signals_install)
new: Tweak tcc batch files to emit 64-bit binaries always (win)
new: Switch to a much better quality soundfont (midi2wav)
new: Do not memory poison on release builds (fwk_memory)
new: Allow makefile to compile demos individually: MAKE.bat demos/00-sprite.c (MAKE.bat)
new: New makefile flags: nofwk,nodemos,noeditor to prevent from building extra stuff (MAKE.bat)
new: New cook flags: --cook-ini, --cook-debug, --cook-additive, --cook-jobs=N, --cook-compressor=type, COOK_DEBUGLOG
new: ui_menu_editbox(), ui_stringf(), ui_double(), ui_unsigned()
new: is(32), is(64), is(debug), is(release)
new: profile_setstat()
new: app_cmdline()
new: ini_destroy()
new: tty_attach()
new: AUDIO_8KHZ, AUDIO_11KHZ
new: ASSERT_ONCE()
brk: vfs() API handles cooked assets now: use file() API for raw file processing
brk: cooker() API > cook() API
brk: FWK_INI > COOK_INI, fwk.ini > tools/cook.ini
brk: --with-wine > --cook-wine
brk: new signatures for cook_config(), cook_start()
brk: fullscreen_rgb_quad() > fullscreen_quad_rgb(), fullscreen_ycbcr_quad() > fullscreen_quad_ycbcr()
brk: download() > download_file(), ui_context/end() > ui_contextual/end()
brk: --with-camera-smooth > --camera-smooth, --with-vsync > --vsync, --with-vsync-adaptive > --vsync-adaptive
brk: split/ > tools/split/
brk: threadlocal > __thread
brk: WITH_XREALLOC_POISON > WITH_MEMORY_POISON, WITH_PROFILE > WITH_PROFILER
chg: Simplify project structure again
chg: Allow tcc builds to display the progress bar screen as well (cook)
chg: Bump up tcc(win), (HEAD b4df681-mod, pre-0.9.28), 3rd_tsf.h (0.8 > 0.9), 3rd_miniaudio.h (0.11.8 > 0.11.11), tlse version (TLS13)
chg: Decrease framerate rendering on progress bar screen (cook)
chg: Generate dev builds by default now (MAKE.bat)
chg: Generate symbols on dbg or dev targets now (MAKE.bat)
chg: Increase thread priority for cook thread #0 (cook)
chg: Print cmdline args into window title as well (window)
chg: Unify infos for all existing profiler markers
chg: Remove ui_section() separator
fix: All existing bugs in tcc -m64 builds (win)
fix: Use ASAN on debug targets when possible (MAKE.bat)
fix: Allow .ini values to contain ~ char on them (ini)
fix: Audio queue API can consume mono samples now (audio_queue)
fix: Crash on audio decoding
fix: Division by zero (stbtt)
fix: Downloads on dll builds (download() + fwk.dll combo on win+cl,gcc,clang-cl)
fix: Improve input logic/response rate (fwk_input)
fix: Memory stomp (file_pathabs)
fix: Panels and windows incorrectly resizing to a minimum area (tcc+linux only) (fwk_ui)
fix: Process malformed cooked assets only once (optimization)
fix: Fix libm ABI issues (tcc64+win)
fix: nk_dtoa() not parsing UINT_MAX (3rd_nuklear.h)
fix: Allow up to 256 cooks
fix: Bug preventing to use --cook-on-demand flag on lua demos
fix: Clang warnings (osx)
fix: Do not assert when invalid args are provided (cache_insert)
fix: Optimized cook times (~2s)
fix: Optimized window creation time
fix: Incorrect vfs paths when mounting ./ virtual folders (vfs_load)
fix: Missing profiler tab when cook_on_demand was enabled (profile_render)
fix: Multiple ui_string() calls not blurring widget focus when editing was done (enter key)
fix: Promote 64 mib static allocation to heap (3rd_https.h)
fix: Rebuilt mid2wav (win,lin,osx)
fix: Rebuilt tools/cook (win,lin,osx)
fix: Reenable old implementation for each_substring() which is more recursive friendly
fix: Silence jo_mp1, 3rd_compress, fwk_string warnings (gcc+clang,ubuntu16)
fix: Silence warnings (clang-cl)
fix: Ubuntu16 linking flags (MAKE.bat)
fix: Update docs
fix: Update roadmap
fix: Use a more robust base64 decoder (fwk_data)
del: Simplify directives: removed OPTIMIZE, O_FLAG, RELEASE, WITH_DLL, FINAL flags
lab: Start new editor iteration
lab: Experimental zig-cc compiler support
lab: Draft for a fair hybrid p2p model paper (editor/labs.vm/hybrid-p2p.md)

image

2023.1

29 Jan 01:37
Compare
Choose a tag to compare

new: XML API (fwk_data.c)
new: Compression API (fwk_data.c)
new: Tilemap + Tileset APIs (fwk_render.c)
new: Tiled demo (00-tiled.c)
new: Tilemap demo (00-tilemap.c)
new: Pinned windows are movable now (fwk_ui.c)
new: Pipeline allows specification of multiple ART dirs now (fwk.ini)
new: Logos from midjourney (editor/logos)
new: fractf() (fwk_math.c)
new: array_shuffle() (fwk_ds.h)
new: sprite_rect() (fwk_render.c)
new: ddraw_push2d()/ddraw_pop2d() (fwk_renderdd.c)
new: ui_label2_toolbar(), ui_texture()/ui_subtexture()/ui_subimage() (fwk_ui.c)
new: audio_stop(), AUDIO_SINGLE_INSTANCE/AUDIO_MULTIPLE_INSTANCES flags (fwk_audio.c)
chg: demo_model.c > demo_anims.c
chg: Better anim controls (demos/demo_model.c)
fix: Allow json ints to be parsed as floats as well (data_float)
fix: Allow json maps to be accessed by index as well (fwk_data.c)
fix: Allow json nulls to be parsed as empty strings as well (data_string)
fix: Expose ICON_MD symbols when generating single-header distribution (MAKE.bat)
fix: Fixed couple of minor gcc/clang warnings (linux)
fix: Improve anim controller on small deltas + anim boundaries edge cases (model_animate_clip)
fix: Initial frame after kicking new animation (demo_anims.c)
fix: Support cross 32/64-bits builds mingw64 -m32 (x64->x86), tcc -m64 (x86->x64) (win)
fix: tcc can produce/consume artwork from/to vc/gcc/clang cooks now
fix: tcc -run flag
fix: Rebuilt tools/cook (win,osx,lin)
fix: Ubuntu16 fixes (MAKE.bat, mod2wav.linux)
fix: Set random seed during boot (fwk_main.c)
fix: Simplified animlist.txt spec format (animlist.txt+demo_anims.c)
fix: Reworked pipeline tutorial so it's hopefully easier to follow (fwk.ini)
fix: ui_subimage() variants can accept null captions now (fwk_ui.c)
fix: Update docs
fix: Update make checkmem (MAKE.bat)
brk: tile() > sprite(), sprite() > sprite_sheet()
brk: Deprecate rng() (fwk_math.c)
brk: Remove xml2json tools (tools/)
lab: Incomplete Spine loader demo (00-spine.c)

image

2022.12

31 Dec 17:59
Compare
Choose a tag to compare

maintenance release as follows:

new: reorganized project tree layout
new: distribute single-header fwk.h by default
new: split sources in split/ folder, which can be extra split further by visiting split/split/ folder
new: install linux packages only once
chg: changed close button icon, right aligned now (3rd_nuklear)
chg: forced display of pushpin button, used alpha to highlight status, right aligned now (3rd_nuklear)
chg: auto colorize ui buttons (ui_button*)
chg: increased saturation in hue colors (fwk_ui)
chg: allow 1-story/oneliners in notifications (ui_notify)
fix: PBR transparency pass (demo_pbr.c)
fix: dll linkage/symbol visibility (physics demos)(thx sushil!)
fix: compress source and html files in asset folders now
fix: strcatf() incorrectly not appending an empty input string
fix: compilation error (emscripten+swrap)
fix: do not panic on failed udp connections
fix: bug preventing single-header distribution to be included twice into single compilation unit
fix: hexdump/f() not displaying empty blobs
fix: revert markdeep to v1.13 as newer versions are rendering colors wrongly (docs)
fix: argv(X) will return safe string to parse even if no argument is actually provided (out-of-range args)
fix: udp sockets can be used now even if no window/context is actually created
fix: retry on udp_send() when app failed to send
fix: missing libmath flag required on debian distros (MAKE.bat on linux)
fix: delete editor/labs/vault/ folder
lab: OSC/UDP network driven remote UI editor (editor/oscedit.c)

image

2022.7

26 Jun 11:43
Compare
Choose a tag to compare

new: editor v1 (almost),
new: file_append(), strmatchi(), camera_teleport(), gizmo_hover(),
new: ini api, ecs api (stub),
new: pinnable panels and windows (ui),
new: ui_collapse/_end(),
new: ui_context/_end(), ui_submenu(), ui_button_transparent(), ui_console(),
new: ui_label modifiers (<,=,>,!,*)
new: ui_show(), ui_visible(),
new: ui_window_show(), ui_window_visible(),
new: vec2i, file_overwrite(), file_counter(), input_anykey(),
new: save ui window layout (editor),
new: chrono (editor), battery levels (editor),
new: add jump & kick anims (editor sample), change anim controller (editor sample),
chg: redo MAKE.bat (win,lin,osx),
chg: bump up teal,
chg: extra editor work,
chg: M_CAST > C_CAST, M_FINITE > FINITE,
chg: more vivid color scheme (ddraw),
chg: ui_begin > ui_panel, ui_end > ui_panel_end,
chg: window_un/lock_fps() > window_fps_un/lock(), window_un/lock_aspect() > window_aspect_un/lock(),
chg: zipfile_*() > file_zip_*(), videorec_*() > record_*(),
del: os_exec_(),
fix: a more adaptive ui_browse(),
fix: add mod2wav tool for those ffmpeg builds that lack music module support on them,
fix: optimize boot time
fix: faster MAKE.bat (vc/tcc+dynamic) (win),
fix: build docs, bindings,
fix: decrease opengl log severity,
fix: displaying ui tooltips on partially minimized windows/panels,
fix: outline depth (editor),
fix: discard redundant saves (editor),
fix: save on click (editor),
fix: unify shortcuts and ui actions (editor),
fix: honor disabled profiling,
fix: incorrect download() retcode,
fix: input_demo() with gamepad>0,
fix: leak detector crashes present since callstack() switched to array(),
fix: msvc dll import (glad),
fix: rebuild ass2iqe, assimp 5.0.1, xlsx2ini, cuttlefish (ubuntu 16.04),
fix: support up to 256 zipfiles when mounting vfs,
fix: ui tooltips when windows are not on focus, issue 37
fix: ui windows centered by default now,

editor1 editor2
vaF3tXu.mp4
A44IbhN.mp4

2022.6

28 May 10:08
Compare
Choose a tag to compare

new: editor v0
new: editor: undo/redo, load/save (in-mem), load/save (disk),
new: editor: renders at low framerate if using battery,
new: improve font sharpness,
new: add 3rd_stb_sprintf.h (lin/osx),
new: add .otf truetypes into pipeline
new: any ico/png file matching the executable name will be used as app icon,
new: array_push_front(), array_pop_front(),
new: simplify repo tree layout,
new: cook can be canceled by pressing ESC now (although not recommended), cooker_cancel(), COOKER_CANCELABLE,
new: cook clarifications on README,
new: date_string(),
new: ddraw_text2d(), iFrame uniform (demo_shadertoy.c),
new: duplicate number of cooking jobs
new: glfw 3.3.6 -> 3.3.7,
new: html5 fullscreen button,
new: html5 gamepad (@procedural),
new: html5 multi-touch input (@procedural),

new: lockit api (i18n/l10n),
new: demo_audio.c,
new: merge CORE repo into art/editor/labs/ folder for further usage,
new: popcnt64(),
new: provide binaries for tools/xlsx2ini (win,lin,osx),
new: ui dynamic animations while resizing and snapping,
new: ui monospaced font,
new: ui window relayout when app resizing,
new: ui window snapping on edges,
new: ui_notify(), ui_section(), ui_buttons(),
new: ui_toolbar(), ui_has_menubar(),
new: ui_window(), ui_browse(),

new: wip console window,
new: bold ui_label() text by adding a leading '*' character
new: reduce editor fps if app loses focus
fix: bugfix crash in app_name(),
fix: bugfix crash while minimizing UI menubar,
fix: vsnprintf()->stbsp_vsnprintf() because of ui_browse() overruns while accessing / (lin/osx),
fix: ddraw_text2d() reverse Y direction,
fix: dll export/import (tcc+win), 3rd_https.h warnings (tcc+win)
fix: faulty dragging during nk_window_scale_left (3rd_nuklear.h)
fix: file_list() removed a few divergences on posix platforms,
fix: fix 3rd_nuklear.h uninitialized value,
fix: fix diverse UB / unaligned issues
fix: fix fullscreen and MOUSE_W regressions from last release, fix #26,
fix: fix MSVC x86, docs titlebar,
fix: leak when inserting into dicts (kit),
fix: non-recursive file_list() on linux/osx,
fix: optimized file_load() for reentrant calls, fixed file_load() leaks,
fix: potential array_resize() memory overrun,
fix: prevent fwk-single-header.h from including "fwk" file, diverse fixes for vc ide + fwk-single-header.h combo
fix: rebuild docs and bindings
fix: restore depth test state after postfx pass
fix: smaller bjork videoclip (x265)
fix: stylize ui_browse() icons,
fix: update single-header instructions,
fix: video_recording on low fps (video),
fix: extra clarifications in README,
chg: --with-jobs > --with-cook-jobs,
chg: app_reload() > window_reload(),
chg: improve determinism when bucketing cooked assets into zipfiles,
chg: remove fontawesome.ttf, add material-design.ttf,
chg: removed ui_labelf(),
chg: strutf32() -> string32(), str16to8() -> string8(),
chg: unify the way desktop and html5 systems do initialize and tick
chg: videorec_start() > window_record(),

image

2022.5

02 May 10:10
Compare
Choose a tag to compare

new: partial HTML5 support (see demos/html5/)
new: zipfile api,
new: provide pre-built cookers (osx,win,lin)
new: provide luajit binaries (osx,win,lin),
new: texture_rec_begin/end(),
new: allow single icon glyphs in UI menus, ui_float4(),

new: alternate tree repo layout,
new: xstats(), ddraw_flush_projview(), WINDOW_ASPECT,
fix: stylised UI a bit,
fix: invalid videorec pipe (osx/linux), fix #22, fix #23,
fix: potential each_substring() crash,
fix: hovering ui over gizmos,
fix: capture nk_assert(),

image

2022.4

03 Apr 09:30
Compare
Choose a tag to compare

new: videorec api, screenshot_async() with fast PBOs
new: demos/physics/ (tokamak)
new: rewrote glfw_gen.py (10 MiB smaller output)
new: glfw 3.4.0-wip -> 3.3.6-stable, lua 5.4.3 -> 5.4.4, miniaudio 0.10.42 -> 0.11.8, nuklear 4.04.1 -> 4.9.6
new: ddraw_cube33(), ddraw_cylinder(), ddraw_prism(), rgbaf()/bgraf(), profile_enable()
new: strbeg(), strend()
chg: non-variadic ddraw_text()
chg: do not version fwk.dll anymore
fix: remove most compiler warnings (gcc/clang/tcc, linux/osx)
fix: prevent crash when binding lua on top of luajit (linux),
fix: GL resource leak when rendering instanced models
fix: GLad API visibility from C++
fix: reduce clutter in vfs_load() log
fix: remove double slashes in file_list() (osx)
fix: rgba()/bgra(), cooker_progress() when cooking disabled, ui_bits() order

image
image

2022.3

12 Mar 21:10
Compare
Choose a tag to compare

new: object api
new: enable vertex color stream
new: support for embedded textures
new: linux dynamic library support (libfwk.so)
new: model_render_instanced(), model_render_skeleton(), model_get_bone_pose()
new: cook encodes diffuse color and embedded textures into material name
new: update ass2iqe.osx, update libassimp.dylib (osx)
new: ddraw_color_push/pop(), ddraw_ontop_push/pop()
new: demo_instanced.c, demo_luajit_model.lua
new: %platform% > %cc%, MAKE.bat can use %cc% symbol to compile with your specific gcc/clang/zigcc toolchains now
new: docs retrieve version from git
new: file_pathabs(), DIR_MAX
new: map sorted iterator
new: wip model blendshapes
chg: stringf() from heap, va() from temporary heap, tempva(), tempvl()
chg: less_u64 > less_64, sort_u64 > sort_64
chg: refactored system callstack()
chg: rebuilt dll, docs, bindings
chg: deprecate a few unused old transform() functions
fix: allow ../ and absolute paths in ART and TOOLS folders (fix #20), do not process ";comment files"
fix: create window with srgb hint
fix: do not cook TOOLS folder (osx/linux)
fix: exposed editor_pick()
fix: fixed potential heap corruption in CALLOC+STRDUP call
fix: linux callstacks, WITH_LINUX_CALLSTACKS
fix: reduce log severity when materials are not found
fix: remove user prompts (archlinux)
fix: removed a few warnings

image
image