Browse Source

Audio: Fix listener.update() and add regression test.

Any empty group would result in application crash.

Signed-off-by: Squareys <Squareys@googlemail.com>
pull/116/head
Squareys 11 years ago
parent
commit
90dfaa02ee
  1. 2
      src/Magnum/Audio/Listener.cpp
  2. 3
      src/Magnum/Audio/Test/ListenerTest.cpp

2
src/Magnum/Audio/Listener.cpp

@ -88,7 +88,7 @@ template<UnsignedInt dimensions> void Listener<dimensions>::update(std::initiali
objects.push_back(this->object());
for(PlayableGroup<dimensions>& group : groups) {
for(UnsignedInt i = 0; i < groups.size(); ++i) {
for(UnsignedInt i = 0; i < group.size(); ++i) {
objects.push_back(group[i].object());
}
}

3
src/Magnum/Audio/Test/ListenerTest.cpp

@ -89,6 +89,7 @@ void ListenerTest::testUpdateGroups() {
Object3D sourceObject{&scene};
Object3D object{&scene};
PlayableGroup3D group;
PlayableGroup3D emptyGroup;
Playable3D playable{sourceObject, &group};
Listener3D listener{object};
@ -97,7 +98,7 @@ void ListenerTest::testUpdateGroups() {
object.translate(offset);
sourceObject.translate(offset*13.0f);
listener.update({group});
listener.update({group, emptyGroup});
CORRADE_COMPARE(Renderer::listenerPosition(), offset);
constexpr Vector3 rotatedFwd{-1.0f, 0.0f, 0.0f};

Loading…
Cancel
Save