0 meters per unit is invalid

This commit is contained in:
Chris Robinson 2017-08-21 00:27:52 -07:00
parent 877ecda14d
commit e7c4681e9a
2 changed files with 3 additions and 3 deletions

View File

@ -2515,7 +2515,7 @@ static ALvoid InitContext(ALCcontext *Context)
//Initialise listener
listener->Gain = 1.0f;
listener->MetersPerUnit = 1.0f;
listener->MetersPerUnit = AL_DEFAULT_METERS_PER_UNIT;
listener->Position[0] = 0.0f;
listener->Position[1] = 0.0f;
listener->Position[2] = 0.0f;
@ -2537,7 +2537,7 @@ static ALvoid InitContext(ALCcontext *Context)
);
aluVectorSet(&listener->Params.Velocity, 0.0f, 0.0f, 0.0f, 0.0f);
listener->Params.Gain = 1.0f;
listener->Params.MetersPerUnit = 1.0f;
listener->Params.MetersPerUnit = listener->MetersPerUnit;
listener->Params.DopplerFactor = 1.0f;
listener->Params.SpeedOfSound = SPEEDOFSOUNDMETRESPERSEC;

View File

@ -43,7 +43,7 @@ AL_API ALvoid AL_APIENTRY alListenerf(ALenum param, ALfloat value)
break;
case AL_METERS_PER_UNIT:
if(!(value >= 0.0f && isfinite(value)))
if(!(value >= AL_MIN_METERS_PER_UNIT && value <= AL_MAX_METERS_PER_UNIT))
SET_ERROR_AND_GOTO(context, AL_INVALID_VALUE, done);
context->Listener->MetersPerUnit = value;
break;