Still a lot more to do, but it's a good checkpoint.
* Rigged monkey for test animation
* Update Ogre for my pull request to fix Release Samples build
* Note that this commit also requires
https://github.com/OGRECave/ogre-next/pull/181 , which fixes animation
in my current setup
* https://discourse.libsdl.org/t/sdl-moving-to-github/28700 announced
SDL's move to GitHub. While I'm sad they give more power to GitHub,
I'm happy I can include SDL as a submodule
* Change register -> def in order to match other functions
* Convert VocalGame to use Math.cake instead of hand-rolled vectors
* Update cakelisp for HotReloading const variable filtering
* Add "HandmadeMath" build label as a temporary workaround to
unnecessary rebuilding of non-math libs
* Rename vec accessors to be dimension agnostic
* Add more useful vector math functions
I had to educate myself via
https://github.com/HandmadeMath/Handmade-Math/issues/124 to figure out
how to properly write my matrix wrapping.
I implemented some of the most commonly useful functions I like for
matrix and vector interactions
* Math.cake now has a small number of useful 3D vector and matrix
math types/constants/functions. I will add more as projects demand
more exposed features
* Added HandmadeMath (public domain) for common game math
* AutoTest now builds its own configuration, because it was causing
SDL to rebuild
* Added c-function-alias code, partly as a test to see if I had
everything I needed to make a more fundamental feature, all in
user-space. It is used to wrap Handmade functions in case I want to
swap that math library out for another one (more likely than you
might think)
* Upgraded cakelisp for registerEvaluateGenerator()
* Build Ogre meshes and convert .png textures to dds, all in a
pre-build step. There's plenty of room for improvement, but it's a
good stop-gap for now
* Added more ignores
* Removed extra BuildDependencies.sh because it's no longer needed!
* Build_Debug.sh will now build Cakelisp itself, keeping it up-to-date
in case you update or are iterating on it
* Update Cakelisp for run-process-sequential-or and comptime function
fix (building build-ogre and build-sdl is how the bug emerged)
* Ogre and Ogre's dependencies now built via run-process functions
* Updated Ogre because I thought it might have issues (I caused the
issues). It's good to be more up-to-date anyways
* Removed extra BuildDependencies.sh because it's no longer needed!
* Build_Debug.sh will now build Cakelisp itself, keeping it up-to-date
in case you update or are iterating on it
* Update Cakelisp for run-process-sequential-or and comptime function
fix (building build-ogre and build-sdl is how the bug emerged)
* Ogre and Ogre's dependencies now built via run-process functions
* I had to make changes to remove unnecessary global includes, which
caused command changes on files across projects
* Added Math.cake, which revealed a problem in macro
evaluation (delimiters need to be part of the context when evaluating
macros after the first evaluation)
* Cleaned up namings in OgreInitialize.cake
* Added ogre-create-light
* Created OgreHlms.cpp, which is copied from Ogre's Sample
PbsMaterialsGameState.cpp and modified
* Moved declare-extern-function so I could avoid making a header file
for test file OgreHlms.cpp
* Reorganized where build options are in a few files
* Update Cakelisp for HotReloading copy lib to Active version so it
the original can be modified (otherwise, it can cause a crash)
* Only reload on key release so it isn't reloaded for as long as the
user holds the key (many times per quick press, even)
* Update Cakelisp for proper executable copy procedure
* Use C linkage only because HotReloadingCodeModifier imports
HotReloading.cake with C linkage. If it didn't it could be removed
It's janky, but it's a good first step!
* Update Cakelisp for module vs. global C search directories. This was
necessary so HotReloading.hpp can be found by every module in the
hot-reloading library
* command-add-string-argument is now part of Cakelisp
* Created Loader, which handles main, hot-reloading, and links the
libraries the reloadable library needs. By having those libraries in
the loader, they will not be destroyed when the reloadable is
destroyed
* Moved state variables and changed array to pointer for VocalGame to
support hot-reloading
* Ogre materials are now loading, though my Monkey material is
incompatible with Ogre 2
* Convert audio from recording format to playback format. This was
necessary because I record at 48kHz but playback is at
44.1kHz. Without this conversion, recorded audio would sound lower,
because it was being played at a slower rate
* Initialize audio buffer to correct silence value. This prevents
popping when the recording didn't set the entire buffer
* Select different devices when pulseaudio is the active
driver. Evidently launching from Emacs will cause a different audio
driver to be active (alsa from Emacs, pulseaudio from the command
line)
* Abort audio initialization if either device fails
* Update Cakelisp for --execute option
* Discovered problem where recording device is sampled at a higher
rate than playback device. I'll need to resample in order to
playback properly
* Added some missing audio-close places
* Monkey now moves forward/backward depending on loudness of sample
* Make sure to close audio devices, else the operating system will
think the device is still busy, and no other apps will play audio
* Removed unused code and comments which are likely to get out of sync
* Added audio-dump-recorded-buffer, which outputs in a format gnuplot
can easily read
* Added configuration for a pretty plot of the audio data
* Update Cakelisp for parentheses around deref and addr, resolving
ambiguities
* Added audio output to VocalGame. I had a few false starts due to not
having my good device selected as default. The current version won't
work on any other machine because I hard-coded the audio device
* Moved test files into src/ so the test directory can accumulate
necessary data without it being hard to find the code
* Fix SDL build including the '-I', which breaks things
* Only build all tests if they're succeeding
* Update cakelisp for add-c-search-directory and add-build-options
* Replace some remaining nullptrs with null