FWK Versions Save

💎 3D game framework in C.

2022.12

1 year ago

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

1 year ago

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

2022.6

2 years ago

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

2 years ago

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

2 years ago

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

2 years ago

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

2022.2

2 years ago

new: experiment with different art/ layout, new: OSX .dylib instructions (@whoamigo) new: expose window aspect ratio lock (@zaklaus) new: improve vsync control + window pacing improvements (@zaklaus) new: update assimp to latest (5.2.1) new: new demos/lua/debugger.lua new: MAKE.bat demo (@zaklaus), MAKE.bat checkmem (minimize false positives), MAKE.bat dll (MT) new: add PROGRESS cook symbol, extra clarifications in fwk.ini new: add audio playback params (@zaklaus) new: object texture push/pop state mechanism (@zaklaus) chg: dll, bindings, docs. chg: sfxr2wav.osx (@RafaVico), sfxr2wav.linux (@procedural), libassimp.so.5.1.4 (@procedural) chg: window keep_aspect() > lock_aspect(); window lock() > lock_fps(); window unlock_fps() fix: archLinux packages (MAKE.bat), fix: cosmetic fixes (README.md), fix: do not process vc c/c++ .obj files as wavefront .obj files, fix: edge case while launching from subfolder without any tools folder (Thx Sushil!), fix: fix docs displaying on some browsers by moving markdeep section to eof fix: https://github.com/r-lyeh/FWK/issues/13, variadic data_count(...) fix: https://github.com/r-lyeh/FWK/issues/14 crash when no fwk.ini is present (@whoamigo), fix: reduce tcc folder size a little bit, fix: support for PBR compressed textures, fix: yield instead of sleep_ns() if min amount time cannot be satisfied fix: prevent cpu hogging if no fps lock is given during cook

image

2021.11

2 years ago

new: PBR metallic-roughness workflow pipeline, demo_pbr.c new: PBR renderer, materials and colormaps new: cooking stage is now optional (able to work without the art/tools folder) new: window_lock() fps, time_ns(), sleep_ns(), --with-adaptive-vsync new: rebase sprite camera origin to center of screen, which eases camera panning/zooming (@SushilRagoonath), update demo_sprite.c new: ui_bits8/16(), va(), use high-resolution timers now new: smooth sprite scaling (hopefully), battery() new: rotatex3(), rotatey3(), rotatez3() new: data_find() new: dialog_load(), dialog_save() new: IMAGE_FLOAT, colormap_t, pbr_material_t new: shader_bool(), shader_uint(), shader_texture(), shader_colormap() new: camera_orbit() new: ui_color3f(), ui_color4f(), ui_radio(), ui_colormap(), ui_labelf() new: window_frame() chg: fwk.x > fwk, shader_texture() -> shader_texture_unit() chg: profile(x) -> profile("x") chg: ui_image() signature, tile() signature chg: remove mesh_push_state() + mesh_pop_state() fix: add ART= symbol support in fwk.ini, unclutter root folder again, >64k shader logs fix: potential strsplit() overflow, billboards, ui_hovering() fix: .hdr pipeline, linux cooking TOOLS folder, fxFXAA3

image

2021.10

2 years ago

new: extract all 3rd libs into a separate header new: configurable asset pipeline (see fwk.ini file), Cooker optimizations, new: standalone tools/cooker.c, --with-wine, --with-jobs=N, cuttlefish.exe, pvrtextoolcli.exe, new: .ttf/ttc truetype support, .sfxr/.s3m/.it support, .glb support, new: enable matcaps, demo_material.c, demo_easing.c, VIDEO_RGB, VIDEO_NO_AUDIO, video_textures(), new: support for compressed textures, KTX/2,PVRI/II,ASTC,BASIS new: texture_compressed(), texture_compressed_from_mem() new: camera_enable(), --with-camera-smooth, date_epoch(), file_exist(), file_move(), file_delete() new: RELEASE/OPTIMIZE/O_FLAG directives, sort_u64(), clampi(), PUTS(), str(), strupper(), strlower(), new: font_face(), font_scales(), font_color(), font atlases, font ranges, --debug-font-atlas, chg: remove MOD/XM/FLAC decoders gone (albeit formats still supported), chg: stringf_cat() > strcatf(), change strcatf() signature, chg: date_human() > date(), file_stamp_human() > file_stamp(), file_stamp() > file_stamp_epoch() chg: sprite_update() > sprite_flush(), viewport_color() > viewport_color3() fix: plausible fixes for cooker_stop(), option() and flag() (from @edubart) fix: tcc stat() so paths end with no slashes fix: bump up miniaudio+tl versions, tweak README fix: reduce reserved mem for OOM handler, silent os_exec(), tweak hash_ptr(), linux file_list(), mingw-gcc11-seh fixes fix: simplify each_array(), bugfix array_unique()+each_set()+each_set_ptr(), art: sponza model, shaderball model, newer fonts,

image image

2021.9

2 years ago

new: luajit bindings, DLL support, documentation generator and website new: versioning fwk.dll file now new: video_pause(), argc/v flag(), -DWITH_SELFIES=1, ui_image() new: window_icon(), cooker_config() new: die(), hexdump(), hexdumpf(), new: RGB3(), RGB4(), sprite_update(), new: app_name(), time_us(), sleep_us() chg: sprite()->tile(), sprite_ex()->sprite(), chg: time_human()->date_human(), chg: ui_bool/float/string_const()->ui_const_bool/float/string() fix: udp_sendto(), clock_gettime(), screenshot() fix: fix #9, fix compilation on vanilla windows (no msvc, no gcc); embed vc140 runtime deps for ass2iqe.exe fix: updated gamepad mappings fix: tcc+win warnings, mingw64 warnings fix: improved mingw detection fix: OSX/Linux fixes

image