* BugFix: Correct convexDecomp compilation by setting the LINUX flag when necessary.

* BugFix: Update OpenAL to correct a compilation error on Linux.
This commit is contained in:
Robert MacGregor 2022-05-30 16:32:45 -04:00
parent e071f1d901
commit 7380161054
234 changed files with 30864 additions and 7523 deletions

View file

@ -20,7 +20,7 @@ struct FuncExportEntry {
const char *funcName;
void *address;
};
static const std::array<FuncExportEntry,95> alcFunctions{{
static const std::array<FuncExportEntry,128> alcFunctions{{
DECL(alcCreateContext),
DECL(alcMakeContextCurrent),
DECL(alcProcessContext),
@ -435,21 +435,21 @@ ALC_API ALCboolean ALC_APIENTRY alcMakeContextCurrent(ALCcontext *context)
*/
if(idx < 0)
{
DriverIface *oldiface = ThreadCtxDriver;
DriverIface *oldiface = GetThreadDriver();
if(oldiface) oldiface->alcSetThreadContext(nullptr);
oldiface = CurrentCtxDriver.exchange(nullptr);
if(oldiface) oldiface->alcMakeContextCurrent(nullptr);
}
else
{
DriverIface *oldiface = ThreadCtxDriver;
DriverIface *oldiface = GetThreadDriver();
if(oldiface && oldiface != &DriverList[idx])
oldiface->alcSetThreadContext(nullptr);
oldiface = CurrentCtxDriver.exchange(&DriverList[idx]);
if(oldiface && oldiface != &DriverList[idx])
oldiface->alcMakeContextCurrent(nullptr);
}
ThreadCtxDriver = nullptr;
SetThreadDriver(nullptr);
return ALC_TRUE;
}
@ -492,7 +492,7 @@ ALC_API void ALC_APIENTRY alcDestroyContext(ALCcontext *context)
ALC_API ALCcontext* ALC_APIENTRY alcGetCurrentContext(void)
{
DriverIface *iface = ThreadCtxDriver;
DriverIface *iface = GetThreadDriver();
if(!iface) iface = CurrentCtxDriver.load();
return iface ? iface->alcGetCurrentContext() : nullptr;
}
@ -898,10 +898,10 @@ ALC_API ALCboolean ALC_APIENTRY alcSetThreadContext(ALCcontext *context)
if(!context)
{
DriverIface *oldiface = ThreadCtxDriver;
DriverIface *oldiface = GetThreadDriver();
if(oldiface && !oldiface->alcSetThreadContext(nullptr))
return ALC_FALSE;
ThreadCtxDriver = nullptr;
SetThreadDriver(nullptr);
return ALC_TRUE;
}
@ -910,10 +910,10 @@ ALC_API ALCboolean ALC_APIENTRY alcSetThreadContext(ALCcontext *context)
{
if(DriverList[idx].alcSetThreadContext(context))
{
DriverIface *oldiface = ThreadCtxDriver;
DriverIface *oldiface = GetThreadDriver();
if(oldiface != &DriverList[idx])
{
ThreadCtxDriver = &DriverList[idx];
SetThreadDriver(&DriverList[idx]);
if(oldiface) oldiface->alcSetThreadContext(nullptr);
}
return ALC_TRUE;
@ -926,7 +926,7 @@ ALC_API ALCboolean ALC_APIENTRY alcSetThreadContext(ALCcontext *context)
ALC_API ALCcontext* ALC_APIENTRY alcGetThreadContext(void)
{
DriverIface *iface = ThreadCtxDriver;
DriverIface *iface = GetThreadDriver();
if(iface) return iface->alcGetThreadContext();
return nullptr;
}