Mac now automatically remaps keys and modifies the incoming string to reflect it
automatically converts:
Ctrl -> Cmd
Alt -> Option
if you absolutely need a specific set on macos you will still need to check the platform in script and set the required key otherwise this will allow menus to be built with just providing the windows key or the mac key and it will display correclty for the platform.
Adds reverb functionality to sound system
TODO: Make a proper sfxMixer api that will route voices to channels that have the effects slots added to them. this is just a place holder for a more complete implementation
DSound has since been deprecated and xaudio2 would require us to write our own 3d spatialization and mixer
Load devices the same way we load in the gfx end
setup sfx provider
run sfx devices on startup
various fixes around sfx null device
added the bitrate and samplerate globals
added the hrtf global code is in to use this but not setup yet
Adds speed of sound to the sound system
SFXAmbience now has a property for speed of sound for different mediums, can also be set directly
update bitmapPng reading from libpng to have context in warnings and errors, also add a bit of a better structure around the read and write functions.
Interlaced PNG's were never being accounted for before so add the png_set_interlace_handling for interlaced pngs
clearing the active program caused issues during a target bake as we call glClear after setting the shader etc. As this warning id 131204 seems to be a product of doing this, everything i read up on it says it is safe to silence it.
The core of this issue was the unlock on the GFXGLTextureObject
Few other bug fixes around setting a texture binding to 0, notice in clear function we now also clear the glprogram and the buffers. This seems to fix most of the warnings around id 131204
This warning was triggered every frame, now it just triggers when a shader expects a texture but none is active.
player and vehicle were not loading some of thier sounds.
we'll want to revisit this with a more comprehensive solution in the future, but this will at least allow folks to use the systems in place
There is an exception on teardown usually during a debug build that is caused during shapeBase onRemove calling hasAccumulation.
This fix reorders the hasAccumulation check to be before shapebase calls Parent::onRemove, and also hard sets the mMaterialList to NULL when setMaterialList is called
from marauder:
Fixing transform plane as some descrepencies between the simd function and the c math caused issues with precision.
Use c math for inverse functions until a proper simd implementation can be found.
In Player::updatePos(), when processing physics collision results, the code was incorrectly using col.object instead of colCheck.object when checking if the collision object is a player.
This caused:
- First iteration: col.object is uninitialized (zeroed), leading to null pointer access
- Subsequent iterations: col.object contains the previous iteration's value, causing incorrect type checks
The fix changes col.object to colCheck.object to properly check the current collision object.