diff options
author | Chris Robinson <[email protected]> | 2023-05-14 01:27:42 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2023-05-14 01:27:42 -0700 |
commit | 1b2e5ba854c5c7fa35deb8cfb17f413341596a77 (patch) | |
tree | c1c785f4952b8b6a7b43d8e3be6cf6c6ad0e5b61 /alc | |
parent | 6a007660fb7bac51f01ef0b9466bfcc6ade7389b (diff) |
Implement direct functions for extension queries and EAX
Diffstat (limited to 'alc')
-rw-r--r-- | alc/alc.cpp | 10 | ||||
-rw-r--r-- | alc/context.cpp | 25 |
2 files changed, 21 insertions, 14 deletions
diff --git a/alc/alc.cpp b/alc/alc.cpp index c9a56d90..23ed101d 100644 --- a/alc/alc.cpp +++ b/alc/alc.cpp @@ -485,6 +485,11 @@ const struct { DECL(alGetFloatDirect), DECL(alGetDoubleDirect), + DECL(alGetErrorDirect), + DECL(alIsExtensionPresentDirect), + DECL(alGetProcAddress), + DECL(alGetEnumValueDirect), + DECL(alDeferUpdatesDirectSOFT), DECL(alProcessUpdatesDirectSOFT), DECL(alGetStringiDirectSOFT), @@ -495,6 +500,11 @@ const struct { DECL(EAXSet), DECL(EAXGetBufferMode), DECL(EAXSetBufferMode), + + DECL(EAXGetDirect), + DECL(EAXSetDirect), + DECL(EAXGetBufferModeDirect), + DECL(EAXSetBufferModeDirect), #endif }; #undef DECL diff --git a/alc/context.cpp b/alc/context.cpp index d920d4b6..81529adf 100644 --- a/alc/context.cpp +++ b/alc/context.cpp @@ -1049,16 +1049,14 @@ public: } // namespace -FORCE_ALIGN ALenum AL_APIENTRY EAXSet( - const GUID* property_set_id, - ALuint property_id, - ALuint property_source_id, - ALvoid* property_value, +FORCE_ALIGN ALenum AL_APIENTRY EAXSet(const GUID *property_set_id, ALuint property_id, + ALuint property_source_id, ALvoid *property_value, ALuint property_value_size) noexcept +{ return EAXSetDirect(GetContextRef().get(), property_set_id, property_id, property_source_id, property_value, property_value_size); } +FORCE_ALIGN ALenum AL_APIENTRY EAXSetDirect(ALCcontext *context, const GUID *property_set_id, + ALuint property_id, ALuint property_source_id, ALvoid *property_value, ALuint property_value_size) noexcept try { - auto context = GetContextRef(); - if(!context) eax_fail_set("No current context."); @@ -1077,16 +1075,15 @@ catch (...) return AL_INVALID_OPERATION; } -FORCE_ALIGN ALenum AL_APIENTRY EAXGet( - const GUID* property_set_id, - ALuint property_id, - ALuint property_source_id, - ALvoid* property_value, + +FORCE_ALIGN ALenum AL_APIENTRY EAXGet(const GUID *property_set_id, ALuint property_id, + ALuint property_source_id, ALvoid *property_value, ALuint property_value_size) noexcept +{ return EAXGetDirect(GetContextRef().get(), property_set_id, property_id, property_source_id, property_value, property_value_size); } +FORCE_ALIGN ALenum AL_APIENTRY EAXGetDirect(ALCcontext *context, const GUID *property_set_id, + ALuint property_id, ALuint property_source_id, ALvoid *property_value, ALuint property_value_size) noexcept try { - auto context = GetContextRef(); - if(!context) eax_fail_get("No current context."); |