aboutsummaryrefslogtreecommitdiffstats
path: root/alc/export_list.h
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2023-09-12 22:32:34 -0700
committerChris Robinson <[email protected]>2023-09-12 22:32:34 -0700
commita7fc952036668d6e6bdf7737cc13e92b4002259c (patch)
tree9a48f5faa59cb9ef82f5e2f746ddb0e04846de71 /alc/export_list.h
parent6722ad196145ef7334d7478bdd375308801e7096 (diff)
Add a alcGetProcAddress2 function
This is essentially just a copy of alcGetProcAddress. It's purpose is to bypass Creative's router's alcGetProcAddress implementation, which returns its own functions even if given a device handle. When combined with it also wrapping the drivers' device and context handles, that prevents any extention function that needs a recognizable device or context handle from working, like the *Direct functions, as there's no way for the app to get a device or context handle the driver can know about). An alternate function to get function pointers allows a driver to return its own implementation for standard and extension functions, which an application can use to "bootstrap" audio to use a particular driver directly, enabling use of extensions that the router gets in the way of (and also avoid the overhead of the router, however small that may be).
Diffstat (limited to 'alc/export_list.h')
-rw-r--r--alc/export_list.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/alc/export_list.h b/alc/export_list.h
index 9e92570e..cefe7a09 100644
--- a/alc/export_list.h
+++ b/alc/export_list.h
@@ -220,6 +220,7 @@ inline const FuncExport alcFunctions[]{
DECL(alGetDebugMessageLogEXT),
/* Direct Context functions */
+ DECL(alcGetProcAddress2),
DECL(alEnableDirect),
DECL(alDisableDirect),
DECL(alIsEnabledDirect),