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

Commit

Permalink
New: PBR rendering, materials and colormaps.
Browse files Browse the repository at this point in the history
New: PBR metallic-roughness workflow pipeline, demo_pbr.c
New: able to work without the art/tools folder (which eliminates the cooking stage completely)
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(),
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,
Ren: fwk.x > fwk, shader_texture() -> shader_texture_unit(),
Chg: profile(x) -> profile("x")
Chg: ui_image() signature, tile() signature,
Del: mesh_push_state(), mesh_pop_state(),
  • Loading branch information
r-lyeh committed Nov 1, 2021
1 parent dddb5cd commit 39e0d66
Show file tree
Hide file tree
Showing 156 changed files with 16,039 additions and 9,766 deletions.
86 changes: 52 additions & 34 deletions MAKE.bat
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
cd `dirname $0`

# copy demos to root folder. local changes are preserved
cp art/demos/*.c . -n
cp demos/*.c . -n

if [ "$(uname)" != "Darwin" ]; then
# setup (linux)
Expand All @@ -30,22 +30,23 @@ if [ "$(uname)" != "Darwin" ]; then
chmod +x art/tools/PVRTexToolCLI.linux

# framework
echo fwk && cc -c fwk.c -w -g
echo fwk && cc -c fwk.c -w -g $*

# demos
echo demo && cc -o demo demo.c fwk.o -lm -ldl -lpthread -w -g &
echo demo_cubemap && cc -o demo_cubemap demo_cubemap.c fwk.o -lm -ldl -lpthread -w -g &
echo demo_collide && cc -o demo_collide demo_collide.c fwk.o -lm -ldl -lpthread -w -g &
echo demo_model && cc -o demo_model demo_model.c fwk.o -lm -ldl -lpthread -w -g &
echo demo_scene && cc -o demo_scene demo_scene.c fwk.o -lm -ldl -lpthread -w -g &
echo demo_shadertoy && cc -o demo_shadertoy demo_shadertoy.c fwk.o -lm -ldl -lpthread -w -g &
echo demo_sprite && cc -o demo_sprite demo_sprite.c fwk.o -lm -ldl -lpthread -w -g &
echo demo_video && cc -o demo_video demo_video.c fwk.o -lm -ldl -lpthread -w -g &
echo demo_script && cc -o demo_script demo_script.c fwk.o -lm -ldl -lpthread -w -g &
echo demo_socket && cc -o demo_socket demo_socket.c fwk.o -lm -ldl -lpthread -w -g &
echo demo_easing && cc -o demo_easing demo_easing.c fwk.o -lm -ldl -lpthread -w -g &
echo demo_font && cc -o demo_font demo_font.c fwk.o -lm -ldl -lpthread -w -g &
echo demo_material && cc -o demo_material demo_material.c fwk.o -lm -ldl -lpthread -w -g &
echo demo && cc -o demo demo.c fwk.o -lm -ldl -lpthread -w -g $* &
echo demo_cubemap && cc -o demo_cubemap demo_cubemap.c fwk.o -lm -ldl -lpthread -w -g $* &
echo demo_collide && cc -o demo_collide demo_collide.c fwk.o -lm -ldl -lpthread -w -g $* &
echo demo_model && cc -o demo_model demo_model.c fwk.o -lm -ldl -lpthread -w -g $* &
echo demo_scene && cc -o demo_scene demo_scene.c fwk.o -lm -ldl -lpthread -w -g $* &
echo demo_shadertoy && cc -o demo_shadertoy demo_shadertoy.c fwk.o -lm -ldl -lpthread -w -g $* &
echo demo_sprite && cc -o demo_sprite demo_sprite.c fwk.o -lm -ldl -lpthread -w -g $* &
echo demo_video && cc -o demo_video demo_video.c fwk.o -lm -ldl -lpthread -w -g $* &
echo demo_script && cc -o demo_script demo_script.c fwk.o -lm -ldl -lpthread -w -g $* &
echo demo_socket && cc -o demo_socket demo_socket.c fwk.o -lm -ldl -lpthread -w -g $* &
echo demo_easing && cc -o demo_easing demo_easing.c fwk.o -lm -ldl -lpthread -w -g $* &
echo demo_font && cc -o demo_font demo_font.c fwk.o -lm -ldl -lpthread -w -g $* &
echo demo_material && cc -o demo_material demo_material.c fwk.o -lm -ldl -lpthread -w -g $* &
echo demo_pbr && cc -o demo_pbr demo_pbr.c fwk.o -lm -ldl -lpthread -w -g $*
fi

if [ "$(uname)" = "Darwin" ]; then
Expand All @@ -69,22 +70,23 @@ if [ "$(uname)" = "Darwin" ]; then
chmod +x art/tools/PVRTexToolCLI.osx

# framework
echo fwk && cc -c -ObjC fwk.c -w -g
echo fwk && cc -c -ObjC fwk.c -w -g $*

# demos
echo demo && cc -o demo demo.c fwk.o -framework cocoa -framework iokit -w -g &
echo demo_cubemap && cc -o demo_cubemap demo_cubemap.c fwk.o -framework cocoa -framework iokit -w -g &
echo demo_collide && cc -o demo_collide demo_collide.c fwk.o -framework cocoa -framework iokit -w -g &
echo demo_model && cc -o demo_model demo_model.c fwk.o -framework cocoa -framework iokit -w -g &
echo demo_scene && cc -o demo_scene demo_scene.c fwk.o -framework cocoa -framework iokit -w -g &
echo demo_shadertoy && cc -o demo_shadertoy demo_shadertoy.c fwk.o -framework cocoa -framework iokit -w -g &
echo demo_sprite && cc -o demo_sprite demo_sprite.c fwk.o -framework cocoa -framework iokit -w -g &
echo demo_video && cc -o demo_video demo_video.c fwk.o -framework cocoa -framework iokit -w -g &
echo demo_script && cc -o demo_script demo_script.c fwk.o -framework cocoa -framework iokit -w -g &
echo demo_socket && cc -o demo_socket demo_socket.c fwk.o -framework cocoa -framework iokit -w -g &
echo demo_easing && cc -o demo_easing demo_easing.c fwk.o -framework cocoa -framework iokit -w -g &
echo demo_font && cc -o demo_font demo_font.c fwk.o -framework cocoa -framework iokit -w -g &
echo demo_material && cc -o demo_material demo_material.c fwk.o -framework cocoa -framework iokit -w -g &
echo demo && cc -o demo demo.c fwk.o -framework cocoa -framework iokit -w -g $* &
echo demo_cubemap && cc -o demo_cubemap demo_cubemap.c fwk.o -framework cocoa -framework iokit -w -g $* &
echo demo_collide && cc -o demo_collide demo_collide.c fwk.o -framework cocoa -framework iokit -w -g $* &
echo demo_model && cc -o demo_model demo_model.c fwk.o -framework cocoa -framework iokit -w -g $* &
echo demo_scene && cc -o demo_scene demo_scene.c fwk.o -framework cocoa -framework iokit -w -g $* &
echo demo_shadertoy && cc -o demo_shadertoy demo_shadertoy.c fwk.o -framework cocoa -framework iokit -w -g $* &
echo demo_sprite && cc -o demo_sprite demo_sprite.c fwk.o -framework cocoa -framework iokit -w -g $* &
echo demo_video && cc -o demo_video demo_video.c fwk.o -framework cocoa -framework iokit -w -g $* &
echo demo_script && cc -o demo_script demo_script.c fwk.o -framework cocoa -framework iokit -w -g $* &
echo demo_socket && cc -o demo_socket demo_socket.c fwk.o -framework cocoa -framework iokit -w -g $* &
echo demo_easing && cc -o demo_easing demo_easing.c fwk.o -framework cocoa -framework iokit -w -g $* &
echo demo_font && cc -o demo_font demo_font.c fwk.o -framework cocoa -framework iokit -w -g $* &
echo demo_material && cc -o demo_material demo_material.c fwk.o -framework cocoa -framework iokit -w -g $* &
echo demo_pbr && cc -o demo_pbr demo_pbr.c fwk.o -framework cocoa -framework iokit -w -g $*
fi

exit
Expand Down Expand Up @@ -128,14 +130,15 @@ rem generate bindings
if "%1"=="bindings" (
rem luajit
art\tools\luajit art\tools\make_luajit_bindings.lua > fwk.lua
move /y fwk.lua demos\lua

exit /b
)
rem generate documentation
if "%1"=="docs" (

rem set symbols for upcoming doc generation
set VERSION=2021.10
set VERSION=2021.11
date /t > info.obj
set /p LAST_MODIFIED=<info.obj
rem set git symbols too
Expand All @@ -146,13 +149,23 @@ if "%1"=="docs" (

cl art\docs\docs.c fwk.c -I. %2
docs fwk.h --excluded=3rd_glad.h,fwk.h,fwk_compat.h, > fwk.html
copy /y fwk.html art\docs\docs.html
move /y fwk.html art\docs\docs.html

exit /b
)

rem copy demos to root folder. local changes are preserved
echo n | copy /-y art\demos\*.c 1> nul 2> nul
echo n | copy /-y demos\*.c 1> nul 2> nul

if "%1"=="split" (
call art\tools\split
exit /b
)

if "%1"=="join" (
call art\tools\join
exit /b
)

rem check memory api calls
if "%1"=="checkmem" (
Expand All @@ -169,14 +182,15 @@ if "%1"=="dll" (
rem cl fwk.c /LD /DAPI=EXPORT && rem 6.6MiB
rem cl fwk.c /LD /DAPI=EXPORT /O2 && rem 5.3MiB
cl fwk.c /LD /DAPI=EXPORT /Os /Ox /O2 /Oy /GL /GF && rem 4.7MiB
move /y fwk.dll demos\lua

exit /b
)

rem tidy environment
if "%1"=="tidy" (
move /y demo_*.png art\demos
move /y demo_*.c art\demos
move /y demo_*.png demos
move /y demo_*.c demos
del .temp*.*
del *.zip
del *.mem
Expand All @@ -193,6 +207,7 @@ if "%1"=="tidy" (
del 3rd_*.*
del fwk_*.*
del demo_*.*
del temp_*.*
rd /q /s .vs
del tcc.bat
exit /b
Expand Down Expand Up @@ -239,6 +254,7 @@ if "%Platform%"=="x64" (
cl demo_easing.c /nologo /openmp /Zi fwk.obj %*
cl demo_font.c /nologo /openmp /Zi fwk.obj %*
cl demo_material.c /nologo /openmp /Zi fwk.obj %*
cl demo_pbr.c /nologo /openmp /Zi fwk.obj %*

) else if "%Platform%"=="mingw64" (
rem pipeline
Expand All @@ -264,6 +280,7 @@ if "%Platform%"=="x64" (
echo demo_easing && gcc -o demo_easing demo_easing.c fwk.o -lws2_32 -lgdi32 -lwinmm -ldbghelp -std=c99 -w -g
echo demo_font && gcc -o demo_font demo_font.c fwk.o -lws2_32 -lgdi32 -lwinmm -ldbghelp -std=c99 -w -g
echo demo_material && gcc -o demo_material demo_material.c fwk.o -lws2_32 -lgdi32 -lwinmm -ldbghelp -std=c99 -w -g
echo demo_pbr && gcc -o demo_pbr demo_pbr.c fwk.o -lws2_32 -lgdi32 -lwinmm -ldbghelp -std=c99 -w -g

) else (
rem pipeline
Expand All @@ -289,6 +306,7 @@ if "%Platform%"=="x64" (
echo demo_easing && tcc demo_easing.c fwk.o %*
echo demo_font && tcc demo_font.c fwk.o %*
echo demo_material && tcc demo_material.c fwk.o %*
echo demo_pbr && tcc demo_pbr.c fwk.o %*
)

rem PAUSE only if double-clicked from Windows
Expand Down
Loading

0 comments on commit 39e0d66

Please sign in to comment.