OpenAL Specification and Reference | ||
---|---|---|
<<< Previous | Next >>> |
Extensions are a way to provide for future expansion of the AL API. Typically, extensions are specified and proposed by a vendor, and can be treated as vendor neutral if no intellectual property restrictions apply. Extensions can also be specified as, or promoted to be, ARB extensions, which is usually the final step before adding a tried and true extension to the core API. ARB extensions, once specified, have mandatory presence for backwards compatibility. The handling of vendors-specific or multi-vendor extensions is left to the implementation. The IA-SIG I3DL2 Extension is an example of multi-vender extensions to the current AL core API.
To use an extension, the application will have to obtain function addresses and enumeration values. Before an extension can be used, the application will have to verify the presence of an extension using IsExtensionPresent(). The application can then retrieve the address (function pointer) of an extension entry point using GetProcAddress. Extensions and entry points can be Context-specific, and the application can not count on an Extension being available based on the mere return of an entry point. The application also has to maintain pointers on a per-Context basis.
Returns TRUE if the given extension is supported for the current context, FALSE otherwise.![]() | Annotation (IsExtensionPresent) |
---|---|
This function is inspired by the GLU addition, but placed in the core API as we intend to avoid a separate ALU. This function avoids potential string overflow and string parsing issues (strstr) raised by GetString( EXTENSIONS ). |
![]() | Annotation/ EXTENSIONS |
---|---|
GetString( EXTENSIONS ) is supported as well, as it allows for easy archiving and priting of the list of supported extensions. |
<<< Previous | Home | Next >>> |
Global Constants | Retrieving Function Entry Addresses |