ray 0.1.0.pre1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (370) hide show
  1. data/README.md +235 -32
  2. data/Rakefile +20 -49
  3. data/ext/audio.c +68 -0
  4. data/ext/audio_source.c +197 -0
  5. data/ext/buffer_renderer.c +130 -0
  6. data/ext/color.c +179 -0
  7. data/ext/drawable.c +446 -0
  8. data/ext/event.c +337 -0
  9. data/ext/extconf.rb +80 -6
  10. data/ext/font.c +97 -0
  11. data/ext/gl.c +114 -0
  12. data/ext/gl_buffer.c +224 -0
  13. data/ext/gl_index_buffer.c +202 -0
  14. data/ext/gl_int_array.c +139 -0
  15. data/ext/gl_vertex.c +157 -0
  16. data/ext/image.c +263 -0
  17. data/ext/image_target.c +84 -0
  18. data/ext/input.c +53 -0
  19. data/ext/matrix.c +374 -0
  20. data/ext/music.c +113 -0
  21. data/ext/polygon.c +426 -0
  22. data/ext/ray.c +59 -0
  23. data/ext/ray.h +168 -0
  24. data/ext/rect.c +255 -0
  25. data/ext/say.h +31 -0
  26. data/ext/say_all.h +77 -0
  27. data/ext/say_arial.h +14689 -0
  28. data/ext/say_array.c +124 -0
  29. data/ext/say_array.h +34 -0
  30. data/ext/say_audio.c +64 -0
  31. data/ext/say_audio.h +170 -0
  32. data/ext/say_audio_context.c +40 -0
  33. data/ext/say_audio_source.c +96 -0
  34. data/ext/say_basic_type.c +17 -0
  35. data/ext/say_basic_type.h +47 -0
  36. data/ext/say_buffer.c +277 -0
  37. data/ext/say_buffer.h +37 -0
  38. data/ext/say_buffer_renderer.c +121 -0
  39. data/ext/say_buffer_renderer.h +33 -0
  40. data/ext/say_buffer_slice.c +247 -0
  41. data/ext/say_buffer_slice.h +29 -0
  42. data/ext/say_clean_up.c +14 -0
  43. data/ext/say_context.c +163 -0
  44. data/ext/say_context.h +26 -0
  45. data/ext/say_drawable.c +350 -0
  46. data/ext/say_drawable.h +100 -0
  47. data/ext/say_error.c +27 -0
  48. data/ext/say_event.h +213 -0
  49. data/ext/say_font.c +335 -0
  50. data/ext/say_font.h +51 -0
  51. data/ext/say_image.c +283 -0
  52. data/ext/say_image.h +52 -0
  53. data/ext/say_image_target.c +134 -0
  54. data/ext/say_image_target.h +25 -0
  55. data/ext/say_imp.h +70 -0
  56. data/ext/say_index_buffer.c +90 -0
  57. data/ext/say_index_buffer.h +29 -0
  58. data/ext/say_index_buffer_slice.c +227 -0
  59. data/ext/say_index_buffer_slice.h +28 -0
  60. data/ext/say_input.c +35 -0
  61. data/ext/say_matrix.c +314 -0
  62. data/ext/say_matrix.h +55 -0
  63. data/ext/say_music.c +225 -0
  64. data/ext/say_osx.h +62 -0
  65. data/ext/say_osx_context.h +98 -0
  66. data/ext/say_osx_window.h +766 -0
  67. data/ext/say_polygon.c +358 -0
  68. data/ext/say_polygon.h +62 -0
  69. data/ext/say_renderer.c +42 -0
  70. data/ext/say_renderer.h +22 -0
  71. data/ext/say_shader.c +375 -0
  72. data/ext/say_shader.h +91 -0
  73. data/ext/say_sound.c +67 -0
  74. data/ext/say_sound_buffer.c +96 -0
  75. data/ext/say_sprite.c +273 -0
  76. data/ext/say_sprite.h +53 -0
  77. data/ext/say_string.c +9 -0
  78. data/ext/say_table.c +86 -0
  79. data/ext/say_table.h +24 -0
  80. data/ext/say_target.c +264 -0
  81. data/ext/say_target.h +67 -0
  82. data/ext/say_text.c +441 -0
  83. data/ext/say_text.h +56 -0
  84. data/ext/say_thread.c +46 -0
  85. data/ext/say_thread.h +39 -0
  86. data/ext/say_thread_variable.c +44 -0
  87. data/ext/say_utf.c +62 -0
  88. data/ext/say_vertex_type.c +113 -0
  89. data/ext/say_vertex_type.h +40 -0
  90. data/ext/say_vfile.c +57 -0
  91. data/ext/say_view.c +150 -0
  92. data/ext/say_view.h +44 -0
  93. data/ext/say_win.h +24 -0
  94. data/ext/say_win_context.h +91 -0
  95. data/ext/say_win_window.h +670 -0
  96. data/ext/say_window.c +155 -0
  97. data/ext/say_window.h +43 -0
  98. data/ext/say_x11.h +41 -0
  99. data/ext/say_x11_context.h +96 -0
  100. data/ext/say_x11_window.h +818 -0
  101. data/ext/shader.c +302 -0
  102. data/ext/sound.c +118 -0
  103. data/ext/sound_buffer.c +75 -0
  104. data/ext/sprite.c +241 -0
  105. data/ext/stb_image.h +4971 -0
  106. data/ext/stb_image_write.h +511 -0
  107. data/ext/target.c +184 -0
  108. data/ext/text.c +162 -0
  109. data/ext/utils.c +10 -0
  110. data/ext/vector.c +261 -0
  111. data/ext/vendor/freetype/bin/freetype6.dll +0 -0
  112. data/ext/vendor/freetype/bin/zlib1.dll +0 -0
  113. data/ext/vendor/freetype/include/freetype2/freetype/config/ftconfig.h +350 -0
  114. data/ext/vendor/freetype/include/freetype2/freetype/config/ftheader.h +729 -0
  115. data/ext/vendor/freetype/include/freetype2/freetype/config/ftmodule.h +22 -0
  116. data/ext/vendor/freetype/include/freetype2/freetype/config/ftoption.h +695 -0
  117. data/ext/vendor/freetype/include/freetype2/freetype/config/ftstdlib.h +180 -0
  118. data/ext/vendor/freetype/include/freetype2/freetype/freetype.h +3434 -0
  119. data/ext/vendor/freetype/include/freetype2/freetype/ftbbox.h +94 -0
  120. data/ext/vendor/freetype/include/freetype2/freetype/ftbdf.h +200 -0
  121. data/ext/vendor/freetype/include/freetype2/freetype/ftbitmap.h +206 -0
  122. data/ext/vendor/freetype/include/freetype2/freetype/ftcache.h +1110 -0
  123. data/ext/vendor/freetype/include/freetype2/freetype/ftchapters.h +100 -0
  124. data/ext/vendor/freetype/include/freetype2/freetype/fterrdef.h +239 -0
  125. data/ext/vendor/freetype/include/freetype2/freetype/fterrors.h +206 -0
  126. data/ext/vendor/freetype/include/freetype2/freetype/ftgasp.h +113 -0
  127. data/ext/vendor/freetype/include/freetype2/freetype/ftglyph.h +575 -0
  128. data/ext/vendor/freetype/include/freetype2/freetype/ftgxval.h +358 -0
  129. data/ext/vendor/freetype/include/freetype2/freetype/ftgzip.h +102 -0
  130. data/ext/vendor/freetype/include/freetype2/freetype/ftimage.h +1237 -0
  131. data/ext/vendor/freetype/include/freetype2/freetype/ftincrem.h +331 -0
  132. data/ext/vendor/freetype/include/freetype2/freetype/ftlcdfil.h +166 -0
  133. data/ext/vendor/freetype/include/freetype2/freetype/ftlist.h +273 -0
  134. data/ext/vendor/freetype/include/freetype2/freetype/ftlzw.h +99 -0
  135. data/ext/vendor/freetype/include/freetype2/freetype/ftmac.h +272 -0
  136. data/ext/vendor/freetype/include/freetype2/freetype/ftmm.h +378 -0
  137. data/ext/vendor/freetype/include/freetype2/freetype/ftmodapi.h +406 -0
  138. data/ext/vendor/freetype/include/freetype2/freetype/ftmoderr.h +155 -0
  139. data/ext/vendor/freetype/include/freetype2/freetype/ftotval.h +198 -0
  140. data/ext/vendor/freetype/include/freetype2/freetype/ftoutln.h +526 -0
  141. data/ext/vendor/freetype/include/freetype2/freetype/ftpfr.h +172 -0
  142. data/ext/vendor/freetype/include/freetype2/freetype/ftrender.h +229 -0
  143. data/ext/vendor/freetype/include/freetype2/freetype/ftsizes.h +159 -0
  144. data/ext/vendor/freetype/include/freetype2/freetype/ftsnames.h +170 -0
  145. data/ext/vendor/freetype/include/freetype2/freetype/ftstroke.h +716 -0
  146. data/ext/vendor/freetype/include/freetype2/freetype/ftsynth.h +73 -0
  147. data/ext/vendor/freetype/include/freetype2/freetype/ftsystem.h +346 -0
  148. data/ext/vendor/freetype/include/freetype2/freetype/fttrigon.h +350 -0
  149. data/ext/vendor/freetype/include/freetype2/freetype/fttypes.h +583 -0
  150. data/ext/vendor/freetype/include/freetype2/freetype/ftwinfnt.h +263 -0
  151. data/ext/vendor/freetype/include/freetype2/freetype/ftxf86.h +80 -0
  152. data/ext/vendor/freetype/include/freetype2/freetype/t1tables.h +450 -0
  153. data/ext/vendor/freetype/include/freetype2/freetype/ttnameid.h +1132 -0
  154. data/ext/vendor/freetype/include/freetype2/freetype/tttables.h +756 -0
  155. data/ext/vendor/freetype/include/freetype2/freetype/tttags.h +99 -0
  156. data/ext/vendor/freetype/include/freetype2/freetype/ttunpat.h +59 -0
  157. data/ext/vendor/freetype/include/ft2build.h +61 -0
  158. data/ext/vendor/freetype/lib/freetype-bcc.lib +0 -0
  159. data/ext/vendor/freetype/lib/freetype6.def +249 -0
  160. data/ext/vendor/freetype/lib/libfreetype.dll.a +0 -0
  161. data/ext/vendor/freetype/lib/tmp.freetype.lib +0 -0
  162. data/ext/vendor/glew/LICENSE.txt +73 -0
  163. data/ext/vendor/glew/README.txt +18 -0
  164. data/ext/vendor/glew/include/GL/glew.h +15507 -0
  165. data/ext/vendor/glew/include/GL/glxew.h +1568 -0
  166. data/ext/vendor/glew/include/GL/wglew.h +1361 -0
  167. data/ext/vendor/glew/lib/glew32.dll +0 -0
  168. data/ext/vendor/glew/lib/glew32mx.dll +0 -0
  169. data/ext/vendor/glew/lib/libglew32.a +0 -0
  170. data/ext/vendor/glew/lib/libglew32.dll.a +0 -0
  171. data/ext/vendor/glew/lib/libglew32mx.a +0 -0
  172. data/ext/vendor/glew/lib/libglew32mx.dll.a +0 -0
  173. data/ext/vendor/openal/COPYING +484 -0
  174. data/ext/vendor/openal/Win32/soft_oal.dll +0 -0
  175. data/ext/vendor/openal/include/AL/al.h +724 -0
  176. data/ext/vendor/openal/include/AL/alc.h +277 -0
  177. data/ext/vendor/openal/include/AL/alext.h +165 -0
  178. data/ext/vendor/openal/include/AL/efx-creative.h +3 -0
  179. data/ext/vendor/openal/include/AL/efx.h +758 -0
  180. data/ext/vendor/openal/lib/libOpenAL32.dll.a +0 -0
  181. data/ext/vendor/sndfile/bin/libsndfile-1.dll +0 -0
  182. data/ext/vendor/sndfile/include/sndfile.h +666 -0
  183. data/ext/vendor/sndfile/include/sndfile.hh +422 -0
  184. data/ext/vendor/sndfile/lib/libsndfile-1.def +41 -0
  185. data/ext/vendor/sndfile/lib/libsndfile-1.lib +0 -0
  186. data/ext/vertex.c +96 -0
  187. data/ext/view.c +131 -0
  188. data/ext/window.c +183 -0
  189. data/lib/ray/animation.rb +248 -0
  190. data/lib/ray/animation/block_animation.rb +36 -0
  191. data/lib/ray/animation/circular_motion.rb +57 -0
  192. data/lib/ray/animation/color_variation.rb +102 -0
  193. data/lib/ray/animation/combination.rb +71 -0
  194. data/lib/ray/animation/float_variation.rb +76 -0
  195. data/lib/ray/animation/sequence.rb +65 -0
  196. data/lib/ray/animation/sprite_animation.rb +68 -0
  197. data/lib/ray/animation/vector_variation.rb +111 -0
  198. data/lib/ray/animation_list.rb +50 -0
  199. data/lib/ray/audio.rb +4 -7
  200. data/lib/ray/buffer_renderer.rb +9 -0
  201. data/lib/ray/color.rb +41 -6
  202. data/lib/ray/drawable.rb +34 -9
  203. data/lib/ray/dsl.rb +6 -0
  204. data/lib/ray/dsl/event.rb +1 -1
  205. data/lib/ray/dsl/event_listener.rb +14 -10
  206. data/lib/ray/dsl/event_raiser.rb +5 -2
  207. data/lib/ray/dsl/event_runner.rb +4 -10
  208. data/lib/ray/dsl/event_translator.rb +67 -99
  209. data/lib/ray/dsl/handler.rb +1 -1
  210. data/lib/ray/dsl/matcher.rb +40 -27
  211. data/lib/ray/event.rb +22 -0
  212. data/lib/ray/font.rb +0 -42
  213. data/lib/ray/font_set.rb +3 -7
  214. data/lib/ray/game.rb +33 -73
  215. data/lib/ray/gl/int_array.rb +24 -0
  216. data/lib/ray/gl/vertex.rb +106 -0
  217. data/lib/ray/helper.rb +25 -11
  218. data/lib/ray/image.rb +9 -154
  219. data/lib/ray/image_set.rb +3 -8
  220. data/lib/ray/image_target.rb +12 -0
  221. data/lib/ray/matrix.rb +90 -0
  222. data/lib/ray/music.rb +12 -0
  223. data/lib/ray/polygon.rb +77 -0
  224. data/lib/ray/ray.rb +45 -13
  225. data/lib/ray/rect.rb +14 -3
  226. data/lib/ray/resource_set.rb +18 -35
  227. data/lib/ray/scene.rb +43 -81
  228. data/lib/ray/scene_list.rb +12 -5
  229. data/lib/ray/shader.rb +82 -0
  230. data/lib/ray/sound.rb +18 -0
  231. data/lib/ray/sound_buffer.rb +6 -0
  232. data/lib/ray/sound_buffer_set.rb +32 -0
  233. data/lib/ray/sprite.rb +111 -97
  234. data/lib/ray/target.rb +18 -0
  235. data/lib/ray/text.rb +80 -58
  236. data/lib/ray/text_helper.rb +21 -27
  237. data/lib/ray/turtle.rb +49 -38
  238. data/lib/ray/vector.rb +76 -1
  239. data/lib/ray/vertex.rb +24 -0
  240. data/lib/ray/view.rb +47 -0
  241. data/lib/ray/window.rb +23 -0
  242. data/samples/_media/Beep.wav +0 -0
  243. data/samples/_media/CptnRuby Gem.png +0 -0
  244. data/samples/_media/CptnRuby Map.txt +25 -0
  245. data/samples/_media/CptnRuby Tileset.png +0 -0
  246. data/samples/_media/CptnRuby.png +0 -0
  247. data/samples/_media/Space.png +0 -0
  248. data/samples/_media/Star.png +0 -0
  249. data/samples/_media/Starfighter.png +0 -0
  250. data/samples/animation/chain.rb +33 -0
  251. data/samples/animation/circle.rb +38 -0
  252. data/samples/animation/color.rb +18 -0
  253. data/samples/animation/rotation.rb +17 -0
  254. data/samples/animation/sequence.rb +33 -0
  255. data/samples/animation/shader.rb +65 -0
  256. data/samples/animation/sprite_motion.rb +103 -0
  257. data/samples/animation/translation.rb +23 -0
  258. data/samples/audio/spacial.rb +25 -11
  259. data/samples/buffer/buffer.rb +28 -0
  260. data/samples/buffer/index_buffer.rb +36 -0
  261. data/samples/buffer/renderer.rb +27 -0
  262. data/samples/cptn_ruby/cptn_ruby.rb +279 -0
  263. data/samples/hello_world/hello.rb +2 -2
  264. data/samples/hello_world/hello_dsl.rb +3 -3
  265. data/samples/hello_world/text.rb +2 -2
  266. data/samples/opengl/cube.rb +124 -0
  267. data/samples/opengl/image.rb +36 -16
  268. data/samples/opengl/obj_loader.rb +99 -0
  269. data/samples/opengl/opengl.rb +24 -18
  270. data/samples/opengl/shader.rb +36 -26
  271. data/samples/pong/pong.rb +41 -39
  272. data/samples/{run_scene.rb → scenes/run_scene.rb} +21 -7
  273. data/samples/shaders/geometry.rb +98 -0
  274. data/samples/shaders/scene.rb +19 -12
  275. data/samples/shaders/shaders.rb +34 -17
  276. data/samples/shaders/shape.rb +12 -7
  277. data/samples/sokoban/level_1 +11 -7
  278. data/samples/sokoban/sokoban.rb +36 -63
  279. data/samples/starfighter/starfighter.rb +159 -0
  280. data/samples/test/actual_scene.rb +3 -3
  281. data/samples/test/scene_riot.rb +4 -4
  282. data/samples/test/scene_spec.rb +3 -3
  283. data/samples/test/scene_test_unit.rb +1 -1
  284. data/samples/turtle/byzantium.rb +10 -5
  285. data/samples/turtle/hilbert.rb +16 -11
  286. data/samples/turtle/koch.rb +16 -11
  287. data/samples/turtle/mandala.rb +43 -38
  288. data/samples/turtle/tree.rb +13 -8
  289. data/samples/view/resize.rb +26 -0
  290. data/samples/view/view.rb +35 -0
  291. data/samples/window/all_events.rb +44 -0
  292. data/samples/window/change_title.rb +16 -0
  293. data/samples/window/fullscreen.rb +18 -0
  294. data/samples/window/get_pixel.rb +29 -0
  295. data/samples/window/icon.rb +88 -0
  296. data/samples/window/input.rb +27 -0
  297. data/samples/window/no_border.rb +16 -0
  298. data/samples/window/resize.rb +24 -0
  299. data/test/animation/color_variation_test.rb +64 -0
  300. data/test/animation/combination_test.rb +35 -0
  301. data/test/animation/float_variation_test.rb +75 -0
  302. data/test/animation/vector_variation_test.rb +123 -0
  303. data/test/animation_list_test.rb +122 -0
  304. data/test/animation_test.rb +83 -0
  305. data/test/audio_test.rb +88 -33
  306. data/test/buffer_renderer_test.rb +38 -0
  307. data/test/color_test.rb +31 -22
  308. data/test/drawable_test.rb +207 -7
  309. data/test/dsl_test.rb +25 -7
  310. data/test/font_test.rb +6 -40
  311. data/test/game_test.rb +76 -0
  312. data/test/gl_buffer_test.rb +26 -0
  313. data/test/gl_index_buffer_test.rb +17 -0
  314. data/test/gl_vertex_test.rb +117 -0
  315. data/test/helpers.rb +45 -5
  316. data/test/image_target_test.rb +19 -0
  317. data/test/image_test.rb +73 -53
  318. data/test/int_array_test.rb +64 -0
  319. data/test/matrix_test.rb +134 -0
  320. data/test/polygon_test.rb +126 -0
  321. data/test/rect_test.rb +6 -8
  322. data/test/res/frag.c +14 -0
  323. data/test/res/frag3d.c +10 -0
  324. data/test/res/frag_gray.c +17 -0
  325. data/test/res/frag_light3d.c +20 -0
  326. data/test/res/light3d.c +20 -0
  327. data/test/res/sprite.png +0 -0
  328. data/test/res/teapot.obj +12831 -0
  329. data/test/res/vert.c +17 -0
  330. data/test/res/vertex3d.c +14 -0
  331. data/test/resource_set_test.rb +8 -45
  332. data/test/run_all.rb +1 -1
  333. data/test/scene_list_test.rb +79 -0
  334. data/test/scene_test.rb +168 -0
  335. data/test/shader_test.rb +58 -0
  336. data/test/sprite_test.rb +46 -41
  337. data/test/target_test.rb +34 -0
  338. data/test/text_test.rb +20 -31
  339. data/test/turtle_test.rb +35 -20
  340. data/test/vector_test.rb +61 -19
  341. data/test/vertex_test.rb +43 -0
  342. data/test/view_test.rb +61 -0
  343. metadata +347 -126
  344. data/.yardopts +0 -4
  345. data/VERSION +0 -1
  346. data/ext/audio.cpp +0 -723
  347. data/ext/color.cpp +0 -159
  348. data/ext/drawable.cpp +0 -91
  349. data/ext/event.cpp +0 -460
  350. data/ext/font.cpp +0 -190
  351. data/ext/image.cpp +0 -733
  352. data/ext/input.cpp +0 -74
  353. data/ext/ray.cpp +0 -168
  354. data/ext/ray.hpp +0 -356
  355. data/ext/rect.cpp +0 -245
  356. data/ext/shader.cpp +0 -169
  357. data/ext/shape.cpp +0 -409
  358. data/ext/sprite.cpp +0 -306
  359. data/ext/text.cpp +0 -181
  360. data/ext/vector.cpp +0 -215
  361. data/guide.md +0 -619
  362. data/lib/ray/input.rb +0 -10
  363. data/lib/ray/music_set.rb +0 -37
  364. data/lib/ray/rmagick.rb +0 -41
  365. data/lib/ray/shape.rb +0 -132
  366. data/lib/ray/sound_set.rb +0 -37
  367. data/samples/opengl/binding.rb +0 -38
  368. data/test/ray_test.rb +0 -25
  369. data/test/shape_test.rb +0 -101
  370. data/yard_ext.rb +0 -63
@@ -0,0 +1,724 @@
1
+ #ifndef AL_AL_H
2
+ #define AL_AL_H
3
+
4
+ #if defined(__cplusplus)
5
+ extern "C" {
6
+ #endif
7
+
8
+ #if defined(AL_LIBTYPE_STATIC)
9
+ #define AL_API
10
+ #elif defined(_WIN32) && !defined(_XBOX)
11
+ #if defined(AL_BUILD_LIBRARY)
12
+ #define AL_API __declspec(dllexport)
13
+ #else
14
+ #define AL_API __declspec(dllimport)
15
+ #endif
16
+ #else
17
+ #if defined(AL_BUILD_LIBRARY) && defined(HAVE_GCC_VISIBILITY)
18
+ #define AL_API __attribute__((visibility("protected")))
19
+ #else
20
+ #define AL_API extern
21
+ #endif
22
+ #endif
23
+
24
+ #if defined(_WIN32)
25
+ #define AL_APIENTRY __cdecl
26
+ #else
27
+ #define AL_APIENTRY
28
+ #endif
29
+
30
+ #if defined(TARGET_OS_MAC) && TARGET_OS_MAC
31
+ #pragma export on
32
+ #endif
33
+
34
+ /*
35
+ * The OPENAL, ALAPI, ALAPIENTRY, AL_INVALID, AL_ILLEGAL_ENUM, and
36
+ * AL_ILLEGAL_COMMAND macros are deprecated, but are included for
37
+ * applications porting code from AL 1.0
38
+ */
39
+ #define OPENAL
40
+ #define ALAPI AL_API
41
+ #define ALAPIENTRY AL_APIENTRY
42
+ #define AL_INVALID (-1)
43
+ #define AL_ILLEGAL_ENUM AL_INVALID_ENUM
44
+ #define AL_ILLEGAL_COMMAND AL_INVALID_OPERATION
45
+
46
+ #define AL_VERSION_1_0
47
+ #define AL_VERSION_1_1
48
+
49
+
50
+ /** 8-bit boolean */
51
+ typedef char ALboolean;
52
+
53
+ /** character */
54
+ typedef char ALchar;
55
+
56
+ /** signed 8-bit 2's complement integer */
57
+ typedef signed char ALbyte;
58
+
59
+ /** unsigned 8-bit integer */
60
+ typedef unsigned char ALubyte;
61
+
62
+ /** signed 16-bit 2's complement integer */
63
+ typedef short ALshort;
64
+
65
+ /** unsigned 16-bit integer */
66
+ typedef unsigned short ALushort;
67
+
68
+ /** signed 32-bit 2's complement integer */
69
+ typedef int ALint;
70
+
71
+ /** unsigned 32-bit integer */
72
+ typedef unsigned int ALuint;
73
+
74
+ /** non-negative 32-bit binary integer size */
75
+ typedef int ALsizei;
76
+
77
+ /** enumerated 32-bit value */
78
+ typedef int ALenum;
79
+
80
+ /** 32-bit IEEE754 floating-point */
81
+ typedef float ALfloat;
82
+
83
+ /** 64-bit IEEE754 floating-point */
84
+ typedef double ALdouble;
85
+
86
+ /** void type (for opaque pointers only) */
87
+ typedef void ALvoid;
88
+
89
+
90
+ /* Enumerant values begin at column 50. No tabs. */
91
+
92
+ /* "no distance model" or "no buffer" */
93
+ #define AL_NONE 0
94
+
95
+ /* Boolean False. */
96
+ #define AL_FALSE 0
97
+
98
+ /** Boolean True. */
99
+ #define AL_TRUE 1
100
+
101
+ /** Indicate Source has relative coordinates. */
102
+ #define AL_SOURCE_RELATIVE 0x202
103
+
104
+
105
+
106
+ /**
107
+ * Directional source, inner cone angle, in degrees.
108
+ * Range: [0-360]
109
+ * Default: 360
110
+ */
111
+ #define AL_CONE_INNER_ANGLE 0x1001
112
+
113
+ /**
114
+ * Directional source, outer cone angle, in degrees.
115
+ * Range: [0-360]
116
+ * Default: 360
117
+ */
118
+ #define AL_CONE_OUTER_ANGLE 0x1002
119
+
120
+ /**
121
+ * Specify the pitch to be applied at source.
122
+ * Range: [0.5-2.0]
123
+ * Default: 1.0
124
+ */
125
+ #define AL_PITCH 0x1003
126
+
127
+ /**
128
+ * Specify the current location in three dimensional space.
129
+ * OpenAL, like OpenGL, uses a right handed coordinate system,
130
+ * where in a frontal default view X (thumb) points right,
131
+ * Y points up (index finger), and Z points towards the
132
+ * viewer/camera (middle finger).
133
+ * To switch from a left handed coordinate system, flip the
134
+ * sign on the Z coordinate.
135
+ * Listener position is always in the world coordinate system.
136
+ */
137
+ #define AL_POSITION 0x1004
138
+
139
+ /** Specify the current direction. */
140
+ #define AL_DIRECTION 0x1005
141
+
142
+ /** Specify the current velocity in three dimensional space. */
143
+ #define AL_VELOCITY 0x1006
144
+
145
+ /**
146
+ * Indicate whether source is looping.
147
+ * Type: ALboolean?
148
+ * Range: [AL_TRUE, AL_FALSE]
149
+ * Default: FALSE.
150
+ */
151
+ #define AL_LOOPING 0x1007
152
+
153
+ /**
154
+ * Indicate the buffer to provide sound samples.
155
+ * Type: ALuint.
156
+ * Range: any valid Buffer id.
157
+ */
158
+ #define AL_BUFFER 0x1009
159
+
160
+ /**
161
+ * Indicate the gain (volume amplification) applied.
162
+ * Type: ALfloat.
163
+ * Range: ]0.0- ]
164
+ * A value of 1.0 means un-attenuated/unchanged.
165
+ * Each division by 2 equals an attenuation of -6dB.
166
+ * Each multiplicaton with 2 equals an amplification of +6dB.
167
+ * A value of 0.0 is meaningless with respect to a logarithmic
168
+ * scale; it is interpreted as zero volume - the channel
169
+ * is effectively disabled.
170
+ */
171
+ #define AL_GAIN 0x100A
172
+
173
+ /*
174
+ * Indicate minimum source attenuation
175
+ * Type: ALfloat
176
+ * Range: [0.0 - 1.0]
177
+ *
178
+ * Logarthmic
179
+ */
180
+ #define AL_MIN_GAIN 0x100D
181
+
182
+ /**
183
+ * Indicate maximum source attenuation
184
+ * Type: ALfloat
185
+ * Range: [0.0 - 1.0]
186
+ *
187
+ * Logarthmic
188
+ */
189
+ #define AL_MAX_GAIN 0x100E
190
+
191
+ /**
192
+ * Indicate listener orientation.
193
+ *
194
+ * at/up
195
+ */
196
+ #define AL_ORIENTATION 0x100F
197
+
198
+ /**
199
+ * Source state information.
200
+ */
201
+ #define AL_SOURCE_STATE 0x1010
202
+ #define AL_INITIAL 0x1011
203
+ #define AL_PLAYING 0x1012
204
+ #define AL_PAUSED 0x1013
205
+ #define AL_STOPPED 0x1014
206
+
207
+ /**
208
+ * Buffer Queue params
209
+ */
210
+ #define AL_BUFFERS_QUEUED 0x1015
211
+ #define AL_BUFFERS_PROCESSED 0x1016
212
+
213
+ /**
214
+ * Source buffer position information
215
+ */
216
+ #define AL_SEC_OFFSET 0x1024
217
+ #define AL_SAMPLE_OFFSET 0x1025
218
+ #define AL_BYTE_OFFSET 0x1026
219
+
220
+ /*
221
+ * Source type (Static, Streaming or undetermined)
222
+ * Source is Static if a Buffer has been attached using AL_BUFFER
223
+ * Source is Streaming if one or more Buffers have been attached using alSourceQueueBuffers
224
+ * Source is undetermined when it has the NULL buffer attached
225
+ */
226
+ #define AL_SOURCE_TYPE 0x1027
227
+ #define AL_STATIC 0x1028
228
+ #define AL_STREAMING 0x1029
229
+ #define AL_UNDETERMINED 0x1030
230
+
231
+ /** Sound samples: format specifier. */
232
+ #define AL_FORMAT_MONO8 0x1100
233
+ #define AL_FORMAT_MONO16 0x1101
234
+ #define AL_FORMAT_STEREO8 0x1102
235
+ #define AL_FORMAT_STEREO16 0x1103
236
+
237
+ /**
238
+ * source specific reference distance
239
+ * Type: ALfloat
240
+ * Range: 0.0 - +inf
241
+ *
242
+ * At 0.0, no distance attenuation occurs. Default is
243
+ * 1.0.
244
+ */
245
+ #define AL_REFERENCE_DISTANCE 0x1020
246
+
247
+ /**
248
+ * source specific rolloff factor
249
+ * Type: ALfloat
250
+ * Range: 0.0 - +inf
251
+ *
252
+ */
253
+ #define AL_ROLLOFF_FACTOR 0x1021
254
+
255
+ /**
256
+ * Directional source, outer cone gain.
257
+ *
258
+ * Default: 0.0
259
+ * Range: [0.0 - 1.0]
260
+ * Logarithmic
261
+ */
262
+ #define AL_CONE_OUTER_GAIN 0x1022
263
+
264
+ /**
265
+ * Indicate distance above which sources are not
266
+ * attenuated using the inverse clamped distance model.
267
+ *
268
+ * Default: +inf
269
+ * Type: ALfloat
270
+ * Range: 0.0 - +inf
271
+ */
272
+ #define AL_MAX_DISTANCE 0x1023
273
+
274
+ /**
275
+ * Sound samples: frequency, in units of Hertz [Hz].
276
+ * This is the number of samples per second. Half of the
277
+ * sample frequency marks the maximum significant
278
+ * frequency component.
279
+ */
280
+ #define AL_FREQUENCY 0x2001
281
+ #define AL_BITS 0x2002
282
+ #define AL_CHANNELS 0x2003
283
+ #define AL_SIZE 0x2004
284
+
285
+ /**
286
+ * Buffer state.
287
+ *
288
+ * Not supported for public use (yet).
289
+ */
290
+ #define AL_UNUSED 0x2010
291
+ #define AL_PENDING 0x2011
292
+ #define AL_PROCESSED 0x2012
293
+
294
+
295
+ /** Errors: No Error. */
296
+ #define AL_NO_ERROR AL_FALSE
297
+
298
+ /**
299
+ * Invalid Name paramater passed to AL call.
300
+ */
301
+ #define AL_INVALID_NAME 0xA001
302
+
303
+ /**
304
+ * Invalid parameter passed to AL call.
305
+ */
306
+ #define AL_INVALID_ENUM 0xA002
307
+
308
+ /**
309
+ * Invalid enum parameter value.
310
+ */
311
+ #define AL_INVALID_VALUE 0xA003
312
+
313
+ /**
314
+ * Illegal call.
315
+ */
316
+ #define AL_INVALID_OPERATION 0xA004
317
+
318
+
319
+ /**
320
+ * No mojo.
321
+ */
322
+ #define AL_OUT_OF_MEMORY 0xA005
323
+
324
+
325
+ /** Context strings: Vendor Name. */
326
+ #define AL_VENDOR 0xB001
327
+ #define AL_VERSION 0xB002
328
+ #define AL_RENDERER 0xB003
329
+ #define AL_EXTENSIONS 0xB004
330
+
331
+ /** Global tweakage. */
332
+
333
+ /**
334
+ * Doppler scale. Default 1.0
335
+ */
336
+ #define AL_DOPPLER_FACTOR 0xC000
337
+
338
+ /**
339
+ * Tweaks speed of propagation.
340
+ */
341
+ #define AL_DOPPLER_VELOCITY 0xC001
342
+
343
+ /**
344
+ * Speed of Sound in units per second
345
+ */
346
+ #define AL_SPEED_OF_SOUND 0xC003
347
+
348
+ /**
349
+ * Distance models
350
+ *
351
+ * used in conjunction with DistanceModel
352
+ *
353
+ * implicit: NONE, which disances distance attenuation.
354
+ */
355
+ #define AL_DISTANCE_MODEL 0xD000
356
+ #define AL_INVERSE_DISTANCE 0xD001
357
+ #define AL_INVERSE_DISTANCE_CLAMPED 0xD002
358
+ #define AL_LINEAR_DISTANCE 0xD003
359
+ #define AL_LINEAR_DISTANCE_CLAMPED 0xD004
360
+ #define AL_EXPONENT_DISTANCE 0xD005
361
+ #define AL_EXPONENT_DISTANCE_CLAMPED 0xD006
362
+
363
+ /*
364
+ * Renderer State management
365
+ */
366
+ AL_API void AL_APIENTRY alEnable( ALenum capability );
367
+
368
+ AL_API void AL_APIENTRY alDisable( ALenum capability );
369
+
370
+ AL_API ALboolean AL_APIENTRY alIsEnabled( ALenum capability );
371
+
372
+
373
+ /*
374
+ * State retrieval
375
+ */
376
+ AL_API const ALchar* AL_APIENTRY alGetString( ALenum param );
377
+
378
+ AL_API void AL_APIENTRY alGetBooleanv( ALenum param, ALboolean* data );
379
+
380
+ AL_API void AL_APIENTRY alGetIntegerv( ALenum param, ALint* data );
381
+
382
+ AL_API void AL_APIENTRY alGetFloatv( ALenum param, ALfloat* data );
383
+
384
+ AL_API void AL_APIENTRY alGetDoublev( ALenum param, ALdouble* data );
385
+
386
+ AL_API ALboolean AL_APIENTRY alGetBoolean( ALenum param );
387
+
388
+ AL_API ALint AL_APIENTRY alGetInteger( ALenum param );
389
+
390
+ AL_API ALfloat AL_APIENTRY alGetFloat( ALenum param );
391
+
392
+ AL_API ALdouble AL_APIENTRY alGetDouble( ALenum param );
393
+
394
+
395
+ /*
396
+ * Error support.
397
+ * Obtain the most recent error generated in the AL state machine.
398
+ */
399
+ AL_API ALenum AL_APIENTRY alGetError( void );
400
+
401
+
402
+ /*
403
+ * Extension support.
404
+ * Query for the presence of an extension, and obtain any appropriate
405
+ * function pointers and enum values.
406
+ */
407
+ AL_API ALboolean AL_APIENTRY alIsExtensionPresent( const ALchar* extname );
408
+
409
+ AL_API void* AL_APIENTRY alGetProcAddress( const ALchar* fname );
410
+
411
+ AL_API ALenum AL_APIENTRY alGetEnumValue( const ALchar* ename );
412
+
413
+
414
+ /*
415
+ * LISTENER
416
+ * Listener represents the location and orientation of the
417
+ * 'user' in 3D-space.
418
+ *
419
+ * Properties include: -
420
+ *
421
+ * Gain AL_GAIN ALfloat
422
+ * Position AL_POSITION ALfloat[3]
423
+ * Velocity AL_VELOCITY ALfloat[3]
424
+ * Orientation AL_ORIENTATION ALfloat[6] (Forward then Up vectors)
425
+ */
426
+
427
+ /*
428
+ * Set Listener parameters
429
+ */
430
+ AL_API void AL_APIENTRY alListenerf( ALenum param, ALfloat value );
431
+
432
+ AL_API void AL_APIENTRY alListener3f( ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
433
+
434
+ AL_API void AL_APIENTRY alListenerfv( ALenum param, const ALfloat* values );
435
+
436
+ AL_API void AL_APIENTRY alListeneri( ALenum param, ALint value );
437
+
438
+ AL_API void AL_APIENTRY alListener3i( ALenum param, ALint value1, ALint value2, ALint value3 );
439
+
440
+ AL_API void AL_APIENTRY alListeneriv( ALenum param, const ALint* values );
441
+
442
+ /*
443
+ * Get Listener parameters
444
+ */
445
+ AL_API void AL_APIENTRY alGetListenerf( ALenum param, ALfloat* value );
446
+
447
+ AL_API void AL_APIENTRY alGetListener3f( ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3 );
448
+
449
+ AL_API void AL_APIENTRY alGetListenerfv( ALenum param, ALfloat* values );
450
+
451
+ AL_API void AL_APIENTRY alGetListeneri( ALenum param, ALint* value );
452
+
453
+ AL_API void AL_APIENTRY alGetListener3i( ALenum param, ALint *value1, ALint *value2, ALint *value3 );
454
+
455
+ AL_API void AL_APIENTRY alGetListeneriv( ALenum param, ALint* values );
456
+
457
+
458
+ /**
459
+ * SOURCE
460
+ * Sources represent individual sound objects in 3D-space.
461
+ * Sources take the PCM data provided in the specified Buffer,
462
+ * apply Source-specific modifications, and then
463
+ * submit them to be mixed according to spatial arrangement etc.
464
+ *
465
+ * Properties include: -
466
+ *
467
+ * Gain AL_GAIN ALfloat
468
+ * Min Gain AL_MIN_GAIN ALfloat
469
+ * Max Gain AL_MAX_GAIN ALfloat
470
+ * Position AL_POSITION ALfloat[3]
471
+ * Velocity AL_VELOCITY ALfloat[3]
472
+ * Direction AL_DIRECTION ALfloat[3]
473
+ * Head Relative Mode AL_SOURCE_RELATIVE ALint (AL_TRUE or AL_FALSE)
474
+ * Reference Distance AL_REFERENCE_DISTANCE ALfloat
475
+ * Max Distance AL_MAX_DISTANCE ALfloat
476
+ * RollOff Factor AL_ROLLOFF_FACTOR ALfloat
477
+ * Inner Angle AL_CONE_INNER_ANGLE ALint or ALfloat
478
+ * Outer Angle AL_CONE_OUTER_ANGLE ALint or ALfloat
479
+ * Cone Outer Gain AL_CONE_OUTER_GAIN ALint or ALfloat
480
+ * Pitch AL_PITCH ALfloat
481
+ * Looping AL_LOOPING ALint (AL_TRUE or AL_FALSE)
482
+ * MS Offset AL_MSEC_OFFSET ALint or ALfloat
483
+ * Byte Offset AL_BYTE_OFFSET ALint or ALfloat
484
+ * Sample Offset AL_SAMPLE_OFFSET ALint or ALfloat
485
+ * Attached Buffer AL_BUFFER ALint
486
+ * State (Query only) AL_SOURCE_STATE ALint
487
+ * Buffers Queued (Query only) AL_BUFFERS_QUEUED ALint
488
+ * Buffers Processed (Query only) AL_BUFFERS_PROCESSED ALint
489
+ */
490
+
491
+ /* Create Source objects */
492
+ AL_API void AL_APIENTRY alGenSources( ALsizei n, ALuint* sources );
493
+
494
+ /* Delete Source objects */
495
+ AL_API void AL_APIENTRY alDeleteSources( ALsizei n, const ALuint* sources );
496
+
497
+ /* Verify a handle is a valid Source */
498
+ AL_API ALboolean AL_APIENTRY alIsSource( ALuint sid );
499
+
500
+ /*
501
+ * Set Source parameters
502
+ */
503
+ AL_API void AL_APIENTRY alSourcef( ALuint sid, ALenum param, ALfloat value );
504
+
505
+ AL_API void AL_APIENTRY alSource3f( ALuint sid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
506
+
507
+ AL_API void AL_APIENTRY alSourcefv( ALuint sid, ALenum param, const ALfloat* values );
508
+
509
+ AL_API void AL_APIENTRY alSourcei( ALuint sid, ALenum param, ALint value );
510
+
511
+ AL_API void AL_APIENTRY alSource3i( ALuint sid, ALenum param, ALint value1, ALint value2, ALint value3 );
512
+
513
+ AL_API void AL_APIENTRY alSourceiv( ALuint sid, ALenum param, const ALint* values );
514
+
515
+ /*
516
+ * Get Source parameters
517
+ */
518
+ AL_API void AL_APIENTRY alGetSourcef( ALuint sid, ALenum param, ALfloat* value );
519
+
520
+ AL_API void AL_APIENTRY alGetSource3f( ALuint sid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3);
521
+
522
+ AL_API void AL_APIENTRY alGetSourcefv( ALuint sid, ALenum param, ALfloat* values );
523
+
524
+ AL_API void AL_APIENTRY alGetSourcei( ALuint sid, ALenum param, ALint* value );
525
+
526
+ AL_API void AL_APIENTRY alGetSource3i( ALuint sid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
527
+
528
+ AL_API void AL_APIENTRY alGetSourceiv( ALuint sid, ALenum param, ALint* values );
529
+
530
+
531
+ /*
532
+ * Source vector based playback calls
533
+ */
534
+
535
+ /* Play, replay, or resume (if paused) a list of Sources */
536
+ AL_API void AL_APIENTRY alSourcePlayv( ALsizei ns, const ALuint *sids );
537
+
538
+ /* Stop a list of Sources */
539
+ AL_API void AL_APIENTRY alSourceStopv( ALsizei ns, const ALuint *sids );
540
+
541
+ /* Rewind a list of Sources */
542
+ AL_API void AL_APIENTRY alSourceRewindv( ALsizei ns, const ALuint *sids );
543
+
544
+ /* Pause a list of Sources */
545
+ AL_API void AL_APIENTRY alSourcePausev( ALsizei ns, const ALuint *sids );
546
+
547
+ /*
548
+ * Source based playback calls
549
+ */
550
+
551
+ /* Play, replay, or resume a Source */
552
+ AL_API void AL_APIENTRY alSourcePlay( ALuint sid );
553
+
554
+ /* Stop a Source */
555
+ AL_API void AL_APIENTRY alSourceStop( ALuint sid );
556
+
557
+ /* Rewind a Source (set playback postiton to beginning) */
558
+ AL_API void AL_APIENTRY alSourceRewind( ALuint sid );
559
+
560
+ /* Pause a Source */
561
+ AL_API void AL_APIENTRY alSourcePause( ALuint sid );
562
+
563
+ /*
564
+ * Source Queuing
565
+ */
566
+ AL_API void AL_APIENTRY alSourceQueueBuffers( ALuint sid, ALsizei numEntries, const ALuint *bids );
567
+
568
+ AL_API void AL_APIENTRY alSourceUnqueueBuffers( ALuint sid, ALsizei numEntries, ALuint *bids );
569
+
570
+
571
+ /**
572
+ * BUFFER
573
+ * Buffer objects are storage space for sample data.
574
+ * Buffers are referred to by Sources. One Buffer can be used
575
+ * by multiple Sources.
576
+ *
577
+ * Properties include: -
578
+ *
579
+ * Frequency (Query only) AL_FREQUENCY ALint
580
+ * Size (Query only) AL_SIZE ALint
581
+ * Bits (Query only) AL_BITS ALint
582
+ * Channels (Query only) AL_CHANNELS ALint
583
+ */
584
+
585
+ /* Create Buffer objects */
586
+ AL_API void AL_APIENTRY alGenBuffers( ALsizei n, ALuint* buffers );
587
+
588
+ /* Delete Buffer objects */
589
+ AL_API void AL_APIENTRY alDeleteBuffers( ALsizei n, const ALuint* buffers );
590
+
591
+ /* Verify a handle is a valid Buffer */
592
+ AL_API ALboolean AL_APIENTRY alIsBuffer( ALuint bid );
593
+
594
+ /* Specify the data to be copied into a buffer */
595
+ AL_API void AL_APIENTRY alBufferData( ALuint bid, ALenum format, const ALvoid* data, ALsizei size, ALsizei freq );
596
+
597
+ /*
598
+ * Set Buffer parameters
599
+ */
600
+ AL_API void AL_APIENTRY alBufferf( ALuint bid, ALenum param, ALfloat value );
601
+
602
+ AL_API void AL_APIENTRY alBuffer3f( ALuint bid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
603
+
604
+ AL_API void AL_APIENTRY alBufferfv( ALuint bid, ALenum param, const ALfloat* values );
605
+
606
+ AL_API void AL_APIENTRY alBufferi( ALuint bid, ALenum param, ALint value );
607
+
608
+ AL_API void AL_APIENTRY alBuffer3i( ALuint bid, ALenum param, ALint value1, ALint value2, ALint value3 );
609
+
610
+ AL_API void AL_APIENTRY alBufferiv( ALuint bid, ALenum param, const ALint* values );
611
+
612
+ /*
613
+ * Get Buffer parameters
614
+ */
615
+ AL_API void AL_APIENTRY alGetBufferf( ALuint bid, ALenum param, ALfloat* value );
616
+
617
+ AL_API void AL_APIENTRY alGetBuffer3f( ALuint bid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3);
618
+
619
+ AL_API void AL_APIENTRY alGetBufferfv( ALuint bid, ALenum param, ALfloat* values );
620
+
621
+ AL_API void AL_APIENTRY alGetBufferi( ALuint bid, ALenum param, ALint* value );
622
+
623
+ AL_API void AL_APIENTRY alGetBuffer3i( ALuint bid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
624
+
625
+ AL_API void AL_APIENTRY alGetBufferiv( ALuint bid, ALenum param, ALint* values );
626
+
627
+
628
+ /*
629
+ * Global Parameters
630
+ */
631
+ AL_API void AL_APIENTRY alDopplerFactor( ALfloat value );
632
+
633
+ AL_API void AL_APIENTRY alDopplerVelocity( ALfloat value );
634
+
635
+ AL_API void AL_APIENTRY alSpeedOfSound( ALfloat value );
636
+
637
+ AL_API void AL_APIENTRY alDistanceModel( ALenum distanceModel );
638
+
639
+ /*
640
+ * Pointer-to-function types, useful for dynamically getting AL entry points.
641
+ */
642
+ typedef void (AL_APIENTRY *LPALENABLE)( ALenum capability );
643
+ typedef void (AL_APIENTRY *LPALDISABLE)( ALenum capability );
644
+ typedef ALboolean (AL_APIENTRY *LPALISENABLED)( ALenum capability );
645
+ typedef const ALchar* (AL_APIENTRY *LPALGETSTRING)( ALenum param );
646
+ typedef void (AL_APIENTRY *LPALGETBOOLEANV)( ALenum param, ALboolean* data );
647
+ typedef void (AL_APIENTRY *LPALGETINTEGERV)( ALenum param, ALint* data );
648
+ typedef void (AL_APIENTRY *LPALGETFLOATV)( ALenum param, ALfloat* data );
649
+ typedef void (AL_APIENTRY *LPALGETDOUBLEV)( ALenum param, ALdouble* data );
650
+ typedef ALboolean (AL_APIENTRY *LPALGETBOOLEAN)( ALenum param );
651
+ typedef ALint (AL_APIENTRY *LPALGETINTEGER)( ALenum param );
652
+ typedef ALfloat (AL_APIENTRY *LPALGETFLOAT)( ALenum param );
653
+ typedef ALdouble (AL_APIENTRY *LPALGETDOUBLE)( ALenum param );
654
+ typedef ALenum (AL_APIENTRY *LPALGETERROR)( void );
655
+ typedef ALboolean (AL_APIENTRY *LPALISEXTENSIONPRESENT)(const ALchar* extname );
656
+ typedef void* (AL_APIENTRY *LPALGETPROCADDRESS)( const ALchar* fname );
657
+ typedef ALenum (AL_APIENTRY *LPALGETENUMVALUE)( const ALchar* ename );
658
+ typedef void (AL_APIENTRY *LPALLISTENERF)( ALenum param, ALfloat value );
659
+ typedef void (AL_APIENTRY *LPALLISTENER3F)( ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
660
+ typedef void (AL_APIENTRY *LPALLISTENERFV)( ALenum param, const ALfloat* values );
661
+ typedef void (AL_APIENTRY *LPALLISTENERI)( ALenum param, ALint value );
662
+ typedef void (AL_APIENTRY *LPALLISTENER3I)( ALenum param, ALint value1, ALint value2, ALint value3 );
663
+ typedef void (AL_APIENTRY *LPALLISTENERIV)( ALenum param, const ALint* values );
664
+ typedef void (AL_APIENTRY *LPALGETLISTENERF)( ALenum param, ALfloat* value );
665
+ typedef void (AL_APIENTRY *LPALGETLISTENER3F)( ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3 );
666
+ typedef void (AL_APIENTRY *LPALGETLISTENERFV)( ALenum param, ALfloat* values );
667
+ typedef void (AL_APIENTRY *LPALGETLISTENERI)( ALenum param, ALint* value );
668
+ typedef void (AL_APIENTRY *LPALGETLISTENER3I)( ALenum param, ALint *value1, ALint *value2, ALint *value3 );
669
+ typedef void (AL_APIENTRY *LPALGETLISTENERIV)( ALenum param, ALint* values );
670
+ typedef void (AL_APIENTRY *LPALGENSOURCES)( ALsizei n, ALuint* sources );
671
+ typedef void (AL_APIENTRY *LPALDELETESOURCES)( ALsizei n, const ALuint* sources );
672
+ typedef ALboolean (AL_APIENTRY *LPALISSOURCE)( ALuint sid );
673
+ typedef void (AL_APIENTRY *LPALSOURCEF)( ALuint sid, ALenum param, ALfloat value);
674
+ typedef void (AL_APIENTRY *LPALSOURCE3F)( ALuint sid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
675
+ typedef void (AL_APIENTRY *LPALSOURCEFV)( ALuint sid, ALenum param, const ALfloat* values );
676
+ typedef void (AL_APIENTRY *LPALSOURCEI)( ALuint sid, ALenum param, ALint value);
677
+ typedef void (AL_APIENTRY *LPALSOURCE3I)( ALuint sid, ALenum param, ALint value1, ALint value2, ALint value3 );
678
+ typedef void (AL_APIENTRY *LPALSOURCEIV)( ALuint sid, ALenum param, const ALint* values );
679
+ typedef void (AL_APIENTRY *LPALGETSOURCEF)( ALuint sid, ALenum param, ALfloat* value );
680
+ typedef void (AL_APIENTRY *LPALGETSOURCE3F)( ALuint sid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3);
681
+ typedef void (AL_APIENTRY *LPALGETSOURCEFV)( ALuint sid, ALenum param, ALfloat* values );
682
+ typedef void (AL_APIENTRY *LPALGETSOURCEI)( ALuint sid, ALenum param, ALint* value );
683
+ typedef void (AL_APIENTRY *LPALGETSOURCE3I)( ALuint sid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
684
+ typedef void (AL_APIENTRY *LPALGETSOURCEIV)( ALuint sid, ALenum param, ALint* values );
685
+ typedef void (AL_APIENTRY *LPALSOURCEPLAYV)( ALsizei ns, const ALuint *sids );
686
+ typedef void (AL_APIENTRY *LPALSOURCESTOPV)( ALsizei ns, const ALuint *sids );
687
+ typedef void (AL_APIENTRY *LPALSOURCEREWINDV)( ALsizei ns, const ALuint *sids );
688
+ typedef void (AL_APIENTRY *LPALSOURCEPAUSEV)( ALsizei ns, const ALuint *sids );
689
+ typedef void (AL_APIENTRY *LPALSOURCEPLAY)( ALuint sid );
690
+ typedef void (AL_APIENTRY *LPALSOURCESTOP)( ALuint sid );
691
+ typedef void (AL_APIENTRY *LPALSOURCEREWIND)( ALuint sid );
692
+ typedef void (AL_APIENTRY *LPALSOURCEPAUSE)( ALuint sid );
693
+ typedef void (AL_APIENTRY *LPALSOURCEQUEUEBUFFERS)(ALuint sid, ALsizei numEntries, const ALuint *bids );
694
+ typedef void (AL_APIENTRY *LPALSOURCEUNQUEUEBUFFERS)(ALuint sid, ALsizei numEntries, ALuint *bids );
695
+ typedef void (AL_APIENTRY *LPALGENBUFFERS)( ALsizei n, ALuint* buffers );
696
+ typedef void (AL_APIENTRY *LPALDELETEBUFFERS)( ALsizei n, const ALuint* buffers );
697
+ typedef ALboolean (AL_APIENTRY *LPALISBUFFER)( ALuint bid );
698
+ typedef void (AL_APIENTRY *LPALBUFFERDATA)( ALuint bid, ALenum format, const ALvoid* data, ALsizei size, ALsizei freq );
699
+ typedef void (AL_APIENTRY *LPALBUFFERF)( ALuint bid, ALenum param, ALfloat value);
700
+ typedef void (AL_APIENTRY *LPALBUFFER3F)( ALuint bid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
701
+ typedef void (AL_APIENTRY *LPALBUFFERFV)( ALuint bid, ALenum param, const ALfloat* values );
702
+ typedef void (AL_APIENTRY *LPALBUFFERI)( ALuint bid, ALenum param, ALint value);
703
+ typedef void (AL_APIENTRY *LPALBUFFER3I)( ALuint bid, ALenum param, ALint value1, ALint value2, ALint value3 );
704
+ typedef void (AL_APIENTRY *LPALBUFFERIV)( ALuint bid, ALenum param, const ALint* values );
705
+ typedef void (AL_APIENTRY *LPALGETBUFFERF)( ALuint bid, ALenum param, ALfloat* value );
706
+ typedef void (AL_APIENTRY *LPALGETBUFFER3F)( ALuint bid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3);
707
+ typedef void (AL_APIENTRY *LPALGETBUFFERFV)( ALuint bid, ALenum param, ALfloat* values );
708
+ typedef void (AL_APIENTRY *LPALGETBUFFERI)( ALuint bid, ALenum param, ALint* value );
709
+ typedef void (AL_APIENTRY *LPALGETBUFFER3I)( ALuint bid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
710
+ typedef void (AL_APIENTRY *LPALGETBUFFERIV)( ALuint bid, ALenum param, ALint* values );
711
+ typedef void (AL_APIENTRY *LPALDOPPLERFACTOR)( ALfloat value );
712
+ typedef void (AL_APIENTRY *LPALDOPPLERVELOCITY)( ALfloat value );
713
+ typedef void (AL_APIENTRY *LPALSPEEDOFSOUND)( ALfloat value );
714
+ typedef void (AL_APIENTRY *LPALDISTANCEMODEL)( ALenum distanceModel );
715
+
716
+ #if defined(TARGET_OS_MAC) && TARGET_OS_MAC
717
+ #pragma export off
718
+ #endif
719
+
720
+ #if defined(__cplusplus)
721
+ } /* extern "C" */
722
+ #endif
723
+
724
+ #endif /* AL_AL_H */