feat: implemented game of life
feat: implemented automatic stepping
fix: operator< Cell Cell now sorts by y first, then x
fix: equalized scroll x/y
fix: removed unused code path
fix: marked simulation::living as static since it's no longer forward
declared
tweak: decreased number of cells on random initialization
feat: defined Toggle element
feat: added debug information toggle to UI
feat: implemented simulation multithreading
feat: improved simulation frame delta controls
feat: inverted direction of panel colours
fix: removed leftover die colors
feat: reorganized and cleaned up style namespace
chore: increased button border width
feat: added SDL3 submodule
feat: added SDL3_ttf submodule
feat: moved clay to vendor (rather than include)
feat: replaced premake5 with CMake to vendor SDL3
chore: translated more C stuff to C++ in main.cpp
fix: stepping being inconsistent while running
feat: fixed incorrect behaviour on simulation and added benchmarking
code
feat: minor adjustments to UI layout
feat: increased thread count for pool
feat: improved simulation benchmarking
feat: simulation tasks can now be subdivided into separate workloads for
separate threads
feat: improved task counting thread safety
chore: massively increased random field
fix: target delta time is now enforced
feat: added toggle for locked framerate
fix: replaced manual .lock()/.unlock() calls with std::scoped_lock
fix: benchmarking code was off by a magnitude of 1
feat: separated cell state checking into separate function in case
another algo is faster than .contains
chore: some comments on variables in simulation.cpp
feat: set task split to hardware_concurrency()
feat: added basic culling to cell renderer
feat: implemented simulation threading toggle
chore: lowered random button's field size
chore: reduced padding on panel containers
chore: minor formatting adjustment
feat: added README.md
fix: inverted x scroll
feat: converted project to template
feat: added .clangd