12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- #include <al.h>
- // X-RAM Function pointer definitions
- typedef ALboolean (__cdecl *EAXSetBufferMode)(ALsizei n, ALuint *buffers, ALint value);
- typedef ALenum (__cdecl *EAXGetBufferMode)(ALuint buffer, ALint *value);
- //////////////////////////////////////////////////////////////////////////////
- // Query for X-RAM extension
- //
- // if (alIsExtensionPresent("EAX-RAM") == AL_TRUE)
- // X-RAM Extension found
- //
- //////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////////////////////
- // X-RAM enum names
- //
- // "AL_EAX_RAM_SIZE"
- // "AL_EAX_RAM_FREE"
- // "AL_STORAGE_AUTOMATIC"
- // "AL_STORAGE_HARDWARE"
- // "AL_STORAGE_ACCESSIBLE"
- //
- // Query enum values using alGetEnumValue, for example
- //
- // long lRamSizeEnum = alGetEnumValue("AL_EAX_RAM_SIZE")
- //
- //////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////////////////////
- // Query total amount of X-RAM
- //
- // long lTotalSize = alGetInteger(alGetEnumValue("AL_EAX_RAM_SIZE")
- //
- //////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////////////////////
- // Query free X-RAM available
- //
- // long lFreeSize = alGetInteger(alGetEnumValue("AL_EAX_RAM_FREE")
- //
- //////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////////////////////
- // Query X-RAM Function pointers
- //
- // Use typedefs defined above to get the X-RAM function pointers using
- // alGetProcAddress
- //
- // EAXSetBufferMode eaxSetBufferMode;
- // EAXGetBufferMode eaxGetBufferMode;
- //
- // eaxSetBufferMode = (EAXSetBufferMode)alGetProcAddress("EAXSetBufferMode");
- // eaxGetBufferMode = (EAXGetBufferMode)alGetProcAddress("EAXGetBufferMode");
- //
- //////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////////////////////
- // Force an Open AL Buffer into X-RAM (good for non-streaming buffers)
- //
- // ALuint uiBuffer;
- // alGenBuffers(1, &uiBuffer);
- // eaxSetBufferMode(1, &uiBuffer, alGetEnumValue("AL_STORAGE_HARDWARE"));
- // alBufferData(...);
- //
- //////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////////////////////
- // Force an Open AL Buffer into 'accessible' (currently host) RAM (good for streaming buffers)
- //
- // ALuint uiBuffer;
- // alGenBuffers(1, &uiBuffer);
- // eaxSetBufferMode(1, &uiBuffer, alGetEnumValue("AL_STORAGE_ACCESSIBLE"));
- // alBufferData(...);
- //
- //////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////////////////////
- // Put an Open AL Buffer into X-RAM if memory is available, otherwise use
- // host RAM. This is the default mode.
- //
- // ALuint uiBuffer;
- // alGenBuffers(1, &uiBuffer);
- // eaxSetBufferMode(1, &uiBuffer, alGetEnumValue("AL_STORAGE_AUTOMATIC"));
- // alBufferData(...);
- //
- //////////////////////////////////////////////////////////////////////////////
|