Correction shader + autres choses

This commit is contained in:
Marc-Eric Martel
2021-10-25 10:50:08 -04:00
parent 781c2776b7
commit fbf2e8858e
10 changed files with 99 additions and 46 deletions

View File

@@ -1,14 +1,47 @@
#include "audio.h"
Audio::Audio() { m_WavEngine = irrklang::createIrrKlangDevice(); }
irrklang::vec3df Audio::convertVector(Vector3f& vec) const { return irrklang::vec3df(vec.x, vec.y, vec.z); };
Audio::~Audio() { m_WavEngine->drop(); }
bool Audio::GetState() const { return m_state; }
void Audio::SetState(bool state) {
if (state)
m_WavEngine->play2D(AUDIO_PATH "music01.wav", true);
else m_WavEngine->stopAllSounds();
m_state = state;
Audio::Audio() {
m_engine = irrklang::createIrrKlangDevice();
m_engine->setDopplerEffectParameters(1);
m_engine->setRolloffFactor(1);
m_engine->setDefault3DSoundMinDistance(1);
m_engine->setDefault3DSoundMaxDistance(1000);
}
Audio::Audio(const char * music) {
m_engine = irrklang::createIrrKlangDevice();
m_engine->setDopplerEffectParameters(1);
m_engine->setRolloffFactor(1);
m_engine->setDefault3DSoundMinDistance(1);
m_engine->setDefault3DSoundMaxDistance(1000);
m_music = m_engine->play2D(music, true, true, true, irrklang::ESM_STREAMING);
}
Audio::~Audio() {
m_music->drop();
m_engine->drop();
}
void Audio::Update3DAudio(Vector3f& pos, Vector3f& dir, Vector3f& speed) {
m_engine->setListenerPosition(convertVector(pos),
convertVector(dir),
convertVector(speed));
}
void Audio::Create3DAudioObj(irrklang::ISound* sound, const char* name, Vector3f& pos, Vector3f& speed, float volume = 1) {
sound = m_engine->play3D(name, convertVector(pos), true, false, true, irrklang::ESM_NO_STREAMING, true);
sound->setVelocity(convertVector(speed));
sound->setVolume(volume);
}
void Audio::Render3DAudioObj(irrklang::ISound* sound, Vector3f& pos, Vector3f& speed, float volume = 1) {
sound->setPosition(convertVector(pos));
sound->setVelocity(convertVector(speed));
sound->setVolume(volume);
}
void Audio::ToggleMusicState() { m_music->setIsPaused(!m_music->getIsPaused()); }
void Audio::PauseEngine() { m_engine->setAllSoundsPaused(); }