xram.h 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #include <al.h>
  2. // X-RAM Function pointer definitions
  3. typedef ALboolean (__cdecl *EAXSetBufferMode)(ALsizei n, ALuint *buffers, ALint value);
  4. typedef ALenum (__cdecl *EAXGetBufferMode)(ALuint buffer, ALint *value);
  5. //////////////////////////////////////////////////////////////////////////////
  6. // Query for X-RAM extension
  7. //
  8. // if (alIsExtensionPresent("EAX-RAM") == AL_TRUE)
  9. // X-RAM Extension found
  10. //
  11. //////////////////////////////////////////////////////////////////////////////
  12. //////////////////////////////////////////////////////////////////////////////
  13. // X-RAM enum names
  14. //
  15. // "AL_EAX_RAM_SIZE"
  16. // "AL_EAX_RAM_FREE"
  17. // "AL_STORAGE_AUTOMATIC"
  18. // "AL_STORAGE_HARDWARE"
  19. // "AL_STORAGE_ACCESSIBLE"
  20. //
  21. // Query enum values using alGetEnumValue, for example
  22. //
  23. // long lRamSizeEnum = alGetEnumValue("AL_EAX_RAM_SIZE")
  24. //
  25. //////////////////////////////////////////////////////////////////////////////
  26. //////////////////////////////////////////////////////////////////////////////
  27. // Query total amount of X-RAM
  28. //
  29. // long lTotalSize = alGetInteger(alGetEnumValue("AL_EAX_RAM_SIZE")
  30. //
  31. //////////////////////////////////////////////////////////////////////////////
  32. //////////////////////////////////////////////////////////////////////////////
  33. // Query free X-RAM available
  34. //
  35. // long lFreeSize = alGetInteger(alGetEnumValue("AL_EAX_RAM_FREE")
  36. //
  37. //////////////////////////////////////////////////////////////////////////////
  38. //////////////////////////////////////////////////////////////////////////////
  39. // Query X-RAM Function pointers
  40. //
  41. // Use typedefs defined above to get the X-RAM function pointers using
  42. // alGetProcAddress
  43. //
  44. // EAXSetBufferMode eaxSetBufferMode;
  45. // EAXGetBufferMode eaxGetBufferMode;
  46. //
  47. // eaxSetBufferMode = (EAXSetBufferMode)alGetProcAddress("EAXSetBufferMode");
  48. // eaxGetBufferMode = (EAXGetBufferMode)alGetProcAddress("EAXGetBufferMode");
  49. //
  50. //////////////////////////////////////////////////////////////////////////////
  51. //////////////////////////////////////////////////////////////////////////////
  52. // Force an Open AL Buffer into X-RAM (good for non-streaming buffers)
  53. //
  54. // ALuint uiBuffer;
  55. // alGenBuffers(1, &uiBuffer);
  56. // eaxSetBufferMode(1, &uiBuffer, alGetEnumValue("AL_STORAGE_HARDWARE"));
  57. // alBufferData(...);
  58. //
  59. //////////////////////////////////////////////////////////////////////////////
  60. //////////////////////////////////////////////////////////////////////////////
  61. // Force an Open AL Buffer into 'accessible' (currently host) RAM (good for streaming buffers)
  62. //
  63. // ALuint uiBuffer;
  64. // alGenBuffers(1, &uiBuffer);
  65. // eaxSetBufferMode(1, &uiBuffer, alGetEnumValue("AL_STORAGE_ACCESSIBLE"));
  66. // alBufferData(...);
  67. //
  68. //////////////////////////////////////////////////////////////////////////////
  69. //////////////////////////////////////////////////////////////////////////////
  70. // Put an Open AL Buffer into X-RAM if memory is available, otherwise use
  71. // host RAM. This is the default mode.
  72. //
  73. // ALuint uiBuffer;
  74. // alGenBuffers(1, &uiBuffer);
  75. // eaxSetBufferMode(1, &uiBuffer, alGetEnumValue("AL_STORAGE_AUTOMATIC"));
  76. // alBufferData(...);
  77. //
  78. //////////////////////////////////////////////////////////////////////////////