Ada bindings for Raylib 5.1 library.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4522 lines
134KB

  1. ------------------------------------------------------------------------
  2. --
  3. -- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic
  4. --
  5. -- This program is free software; you can redistribute it and/or modify
  6. -- it under the terms of the GNU General Public License as published by
  7. -- the Free Software Foundation; either version 3 of the License, or
  8. -- (at your option) any later version.
  9. --
  10. -- This file was made by altering original Raylib 5.1 C header file. I
  11. -- used few formatting programs of mine, tho sadly most of the editing
  12. -- was done manually. Contact me if there are license issues.
  13. --
  14. -- Raylib is great game programming library written by 'raysan5', you
  15. -- can check out original C source code here below, it's under zlib
  16. -- license. I wrote this because of the lack of good Ada bindings.
  17. --
  18. -- https://github.com/raysan5/raylib
  19. --
  20. ------------------------------------------------------------------------
  21. with System;
  22. package Raylib is
  23. ------------------------------------------------------------------------
  24. type Logical is new Boolean;
  25. --
  26. for Logical'Size use 32;
  27. type Config_Flags is (
  28. Flag_None,
  29. Flag_Fullscreen_Mode,
  30. Flag_Window_Resizable,
  31. Flag_Window_Undecorated,
  32. Flag_Window_Transparent,
  33. Flag_MSAA_x4_Hint,
  34. Flag_VSync_Hint,
  35. Flag_Window_Hidden,
  36. Flag_Window_Always_Run,
  37. Flag_Window_Minimized,
  38. Flag_Window_Maximized,
  39. Flag_Window_Unfocused,
  40. Flag_Window_Topmost,
  41. Flag_Window_High_DPI,
  42. Flag_Window_Mouse_Passthrough,
  43. Flag_Borderless_Windowed_Mode,
  44. Flag_Interlaced_Hint
  45. ) with Convention => C;
  46. for Config_Flags use (
  47. Flag_None => 16#00000000#,
  48. Flag_Fullscreen_Mode => 16#00000002#,
  49. Flag_Window_Resizable => 16#00000004#,
  50. Flag_Window_Undecorated => 16#00000008#,
  51. Flag_Window_Transparent => 16#00000010#,
  52. Flag_MSAA_x4_Hint => 16#00000020#,
  53. Flag_VSync_Hint => 16#00000040#,
  54. Flag_Window_Hidden => 16#00000080#,
  55. Flag_Window_Always_Run => 16#00000100#,
  56. Flag_Window_Minimized => 16#00000200#,
  57. Flag_Window_Maximized => 16#00000400#,
  58. Flag_Window_Unfocused => 16#00000800#,
  59. Flag_Window_Topmost => 16#00001000#,
  60. Flag_Window_High_DPI => 16#00002000#,
  61. Flag_Window_Mouse_Passthrough => 16#00004000#,
  62. Flag_Borderless_Windowed_Mode => 16#00008000#,
  63. Flag_Interlaced_Hint => 16#00010000#
  64. );
  65. type Trace_Log_Level is (
  66. Log_All,
  67. Log_Trace,
  68. Log_Debug,
  69. Log_Info,
  70. Log_Warning,
  71. Log_Error,
  72. Log_Fatal,
  73. Log_None
  74. ) with Convention => C;
  75. type Keyboard_Key is (
  76. Key_Null,
  77. Key_Space,
  78. Key_Apostrophe,
  79. Key_Comma,
  80. Key_Minus,
  81. Key_Period,
  82. Key_Slash,
  83. Key_0,
  84. Key_1,
  85. Key_2,
  86. Key_3,
  87. Key_4,
  88. Key_5,
  89. Key_6,
  90. Key_7,
  91. Key_8,
  92. Key_9,
  93. Key_Semicolon,
  94. Key_Equal,
  95. Key_A,
  96. Key_B,
  97. Key_C,
  98. Key_D,
  99. Key_E,
  100. Key_F,
  101. Key_G,
  102. Key_H,
  103. Key_I,
  104. Key_J,
  105. Key_K,
  106. Key_L,
  107. Key_M,
  108. Key_N,
  109. Key_O,
  110. Key_P,
  111. Key_Q,
  112. Key_R,
  113. Key_S,
  114. Key_T,
  115. Key_U,
  116. Key_V,
  117. Key_W,
  118. Key_X,
  119. Key_Y,
  120. Key_Z,
  121. Key_Left_Bracket,
  122. Key_Backslash,
  123. Key_Right_Bracket,
  124. Key_Grave,
  125. Key_Escape,
  126. Key_Enter,
  127. Key_Tab,
  128. Key_Backspace,
  129. Key_Insert,
  130. Key_Delete,
  131. Key_Right,
  132. Key_Left,
  133. Key_Down,
  134. Key_Up,
  135. Key_Page_Up,
  136. Key_Page_Down,
  137. Key_Home,
  138. Key_End,
  139. Key_Caps_Lock,
  140. Key_Scroll_Lock,
  141. Key_Num_Lock,
  142. Key_Print_Screen,
  143. Key_Pause,
  144. Key_F1,
  145. Key_F2,
  146. Key_F3,
  147. Key_F4,
  148. Key_F5,
  149. Key_F6,
  150. Key_F7,
  151. Key_F8,
  152. Key_F9,
  153. Key_F10,
  154. Key_F11,
  155. Key_F12,
  156. Key_Pad_0,
  157. Key_Pad_1,
  158. Key_Pad_2,
  159. Key_Pad_3,
  160. Key_Pad_4,
  161. Key_Pad_5,
  162. Key_Pad_6,
  163. Key_Pad_7,
  164. Key_Pad_8,
  165. Key_Pad_9,
  166. Key_Pad_Decimal,
  167. Key_Pad_Divide,
  168. Key_Pad_Multiply,
  169. Key_Pad_Subtract,
  170. Key_Pad_Add,
  171. Key_Pad_Enter,
  172. Key_Pad_Equal,
  173. Key_Left_Shift,
  174. Key_Left_Control,
  175. Key_Left_Alt,
  176. Key_Left_Super,
  177. Key_Right_Shift,
  178. Key_Right_Control,
  179. Key_Right_Alt,
  180. Key_Right_Super,
  181. Key_KB_Menu
  182. ) with Convention => C;
  183. for Keyboard_Key use (
  184. Key_Null => 0,
  185. Key_Space => 32,
  186. Key_Apostrophe => 39,
  187. Key_Comma => 44,
  188. Key_Minus => 45,
  189. Key_Period => 46,
  190. Key_Slash => 47,
  191. Key_0 => 48,
  192. Key_1 => 49,
  193. Key_2 => 50,
  194. Key_3 => 51,
  195. Key_4 => 52,
  196. Key_5 => 53,
  197. Key_6 => 54,
  198. Key_7 => 55,
  199. Key_8 => 56,
  200. Key_9 => 57,
  201. Key_Semicolon => 59,
  202. Key_Equal => 61,
  203. Key_A => 65,
  204. Key_B => 66,
  205. Key_C => 67,
  206. Key_D => 68,
  207. Key_E => 69,
  208. Key_F => 70,
  209. Key_G => 71,
  210. Key_H => 72,
  211. Key_I => 73,
  212. Key_J => 74,
  213. Key_K => 75,
  214. Key_L => 76,
  215. Key_M => 77,
  216. Key_N => 78,
  217. Key_O => 79,
  218. Key_P => 80,
  219. Key_Q => 81,
  220. Key_R => 82,
  221. Key_S => 83,
  222. Key_T => 84,
  223. Key_U => 85,
  224. Key_V => 86,
  225. Key_W => 87,
  226. Key_X => 88,
  227. Key_Y => 89,
  228. Key_Z => 90,
  229. Key_Left_Bracket => 91,
  230. Key_Backslash => 92,
  231. Key_Right_Bracket => 93,
  232. Key_Grave => 96,
  233. Key_Escape => 256,
  234. Key_Enter => 257,
  235. Key_Tab => 258,
  236. Key_Backspace => 259,
  237. Key_Insert => 260,
  238. Key_Delete => 261,
  239. Key_Right => 262,
  240. Key_Left => 263,
  241. Key_Down => 264,
  242. Key_Up => 265,
  243. Key_Page_Up => 266,
  244. Key_Page_Down => 267,
  245. Key_Home => 268,
  246. Key_End => 269,
  247. Key_Caps_Lock => 280,
  248. Key_Scroll_Lock => 281,
  249. Key_Num_Lock => 282,
  250. Key_Print_Screen => 283,
  251. Key_Pause => 284,
  252. Key_F1 => 290,
  253. Key_F2 => 291,
  254. Key_F3 => 292,
  255. Key_F4 => 293,
  256. Key_F5 => 294,
  257. Key_F6 => 295,
  258. Key_F7 => 296,
  259. Key_F8 => 297,
  260. Key_F9 => 298,
  261. Key_F10 => 299,
  262. Key_F11 => 300,
  263. Key_F12 => 301,
  264. Key_Pad_0 => 320,
  265. Key_Pad_1 => 321,
  266. Key_Pad_2 => 322,
  267. Key_Pad_3 => 323,
  268. Key_Pad_4 => 324,
  269. Key_Pad_5 => 325,
  270. Key_Pad_6 => 326,
  271. Key_Pad_7 => 327,
  272. Key_Pad_8 => 328,
  273. Key_Pad_9 => 329,
  274. Key_Pad_Decimal => 330,
  275. Key_Pad_Divide => 331,
  276. Key_Pad_Multiply => 332,
  277. Key_Pad_Subtract => 333,
  278. Key_Pad_Add => 334,
  279. Key_Pad_Enter => 335,
  280. Key_Pad_Equal => 336,
  281. Key_Left_Shift => 340,
  282. Key_Left_Control => 341,
  283. Key_Left_Alt => 342,
  284. Key_Left_Super => 343,
  285. Key_Right_Shift => 344,
  286. Key_Right_Control => 345,
  287. Key_Right_Alt => 346,
  288. Key_Right_Super => 347,
  289. Key_KB_Menu => 348
  290. );
  291. type Mouse_Button is (
  292. Mouse_Button_Left,
  293. Mouse_Button_Right,
  294. Mouse_Button_Middle,
  295. Mouse_Button_Side,
  296. Mouse_Button_Extra,
  297. Mouse_Button_Forward,
  298. Mouse_Button_Back
  299. ) with Convention => C;
  300. type Mouse_Cursor is (
  301. Mouse_Cursor_Default,
  302. Mouse_Cursor_Arrow,
  303. Mouse_Cursor_Ibeam,
  304. Mouse_Cursor_Crosshair,
  305. Mouse_Cursor_Pointing_Hand,
  306. Mouse_Cursor_Resize_EW,
  307. Mouse_Cursor_Resize_NS,
  308. Mouse_Cursor_Resize_NWSE,
  309. Mouse_Cursor_Resize_NESW,
  310. Mouse_Cursor_Resize_All,
  311. Mouse_Cursor_Not_Allowed
  312. ) with Convention => C;
  313. type Gamepad_Button is (
  314. Gamepad_Button_Unknown,
  315. Gamepad_Button_Left_Face_Up,
  316. Gamepad_Button_Left_Face_Right,
  317. Gamepad_Button_Left_Face_Down,
  318. Gamepad_Button_Left_Face_Left,
  319. Gamepad_Button_Right_Face_Up,
  320. Gamepad_Button_Right_Face_Right,
  321. Gamepad_Button_Right_Face_Down,
  322. Gamepad_Button_Right_Face_Left,
  323. Gamepad_Button_Left_Trigger_1,
  324. Gamepad_Button_Left_Trigger_2,
  325. Gamepad_Button_Right_Trigger_1,
  326. Gamepad_Button_Right_Trigger_2,
  327. Gamepad_Button_Middle_Left,
  328. Gamepad_Button_Middle,
  329. Gamepad_Button_Middle_Right,
  330. Gamepad_Button_Left_Thumb,
  331. Gamepad_Button_Right_Thumb
  332. ) with Convention => C;
  333. type Gamepad_Axis is (
  334. Gamepad_Axis_Left_X,
  335. Gamepad_Axis_Left_Y,
  336. Gamepad_Axis_Right_X,
  337. Gamepad_Axis_Right_Y,
  338. Gamepad_Axis_Left_Trigger,
  339. Gamepad_Axis_Right_Trigger
  340. ) with Convention => C;
  341. type Material_Map_Index is (
  342. Material_Map_Diffuse,
  343. Material_Map_Specular,
  344. Material_Map_Normal,
  345. Material_Map_Roughness,
  346. Material_Map_Occlusion,
  347. Material_Map_Emission,
  348. Material_Map_Height,
  349. Material_Map_Cubemap,
  350. Material_Map_Irradiance,
  351. Material_Map_Prefilter,
  352. Material_Map_BRDF
  353. ) with Convention => C;
  354. type Shader_Location_Index is (
  355. Shader_Location_Vertex_Position,
  356. Shader_Location_Vertex_Texcoord_1,
  357. Shader_Location_Vertex_Texcoord_2,
  358. Shader_Location_Vertex_Normal,
  359. Shader_Location_Vertex_Tangent,
  360. Shader_Location_Vertex_Color,
  361. Shader_Location_Matrix_MVP,
  362. Shader_Location_Matrix_View,
  363. Shader_Location_Matrix_Projection,
  364. Shader_Location_Matrix_Model,
  365. Shader_Location_Matrix_Normal,
  366. Shader_Location_Vector_View,
  367. Shader_Location_Color_Diffuse,
  368. Shader_Location_Color_Specular,
  369. Shader_Location_Color_Ambient,
  370. Shader_Location_Map_Diffuse,
  371. Shader_Location_Map_Specular,
  372. Shader_Location_Map_Normal,
  373. Shader_Location_Map_Roughness,
  374. Shader_Location_Map_Occlusion,
  375. Shader_Location_Map_Emission,
  376. Shader_Location_Map_Height,
  377. Shader_Location_Map_Cubemap,
  378. Shader_Location_Map_Irradiance,
  379. Shader_Location_Map_Prefilter,
  380. Shader_Location_Map_BRDF
  381. ) with Convention => C;
  382. type Shader_Uniform_Data_Type is (
  383. Shader_Uniform_FLOAT,
  384. Shader_Uniform_VEC2,
  385. Shader_Uniform_VEC3,
  386. Shader_Uniform_VEC4,
  387. Shader_Uniform_INT,
  388. Shader_Uniform_IVEC2,
  389. Shader_Uniform_IVEC3,
  390. Shader_Uniform_IVEC4,
  391. Shader_Uniform_SAMPLER2D
  392. ) with Convention => C;
  393. type Shader_Attribute_Data_Type is (
  394. Shader_Attribute_FLOAT,
  395. Shader_Attribute_VEC2,
  396. Shader_Attribute_VEC3,
  397. Shader_Attribute_VEC4
  398. ) with Convention => C;
  399. type Pixel_Format is (
  400. Pixel_Format_None,
  401. Pixel_Format_Uncompressed_Grayscale,
  402. Pixel_Format_Uncompressed_Gray_Alpha,
  403. Pixel_Format_Uncompressed_R5G6B5,
  404. Pixel_Format_Uncompressed_R8G8B8,
  405. Pixel_Format_Uncompressed_R5G5B5A1,
  406. Pixel_Format_Uncompressed_R4G4B4A4,
  407. Pixel_Format_Uncompressed_R8G8B8A8,
  408. Pixel_Format_Uncompressed_R32,
  409. Pixel_Format_Uncompressed_R32G32B32,
  410. Pixel_Format_Uncompressed_R32G32B32A32,
  411. Pixel_Format_Uncompressed_R16,
  412. Pixel_Format_Uncompressed_R16G16B16,
  413. Pixel_Format_Uncompressed_R16G16B16A16,
  414. Pixel_Format_Compressed_DXT1_RGB,
  415. Pixel_Format_Compressed_DXT1_RGBA,
  416. Pixel_Format_Compressed_DXT3_RGBA,
  417. Pixel_Format_Compressed_DXT5_RGBA,
  418. Pixel_Format_Compressed_ETC1_RGB,
  419. Pixel_Format_Compressed_ETC2_RGB,
  420. Pixel_Format_Compressed_ETC2_EAC_RGBA,
  421. Pixel_Format_Compressed_PVRT_RGB,
  422. Pixel_Format_Compressed_PVRT_RGBA,
  423. Pixel_Format_Compressed_ASTC_4x4_RGBA,
  424. Pixel_Format_Compressed_ASTC_8x8_RGBA
  425. ) with Convention => C;
  426. type Texture_Filter is (
  427. Texture_Filter_Point,
  428. Texture_Filter_Bilinear,
  429. Texture_Filter_Trilinear,
  430. Texture_Filter_Anisotropic_x4,
  431. Texture_Filter_Anisotropic_x8,
  432. Texture_Filter_Anisotropic_x16
  433. ) with Convention => C;
  434. type Texture_Wrap is (
  435. Texture_Wrap_Repeat,
  436. Texture_Wrap_Clamp,
  437. Texture_Wrap_Mirror_Repeat,
  438. Texture_Wrap_Mirror_Clamp
  439. ) with Convention => C;
  440. type Cubemap_Layout is (
  441. Cubemap_Layout_Auto_Detect,
  442. Cubemap_Layout_Line_Vertical,
  443. Cubemap_Layout_Line_Horizontal,
  444. Cubemap_Layout_Cross_3_By_4,
  445. Cubemap_Layout_Cross_4_By_3,
  446. Cubemap_Layout_Panorama
  447. ) with Convention => C;
  448. type Font_Type is (
  449. Font_Default,
  450. Font_Bitmap,
  451. Font_SDF
  452. ) with Convention => C;
  453. type Blend_Mode is (
  454. Blend_Alpha,
  455. Blend_Additive,
  456. Blend_Multiplied,
  457. Blend_Add_Colors,
  458. Blend_Subtract_Colors,
  459. Blend_Alpha_Premultiply,
  460. Blend_Custom,
  461. Blend_Custom_Separate
  462. ) with Convention => C;
  463. type Gesture is (
  464. Gesture_None,
  465. Gesture_Tap,
  466. Gesture_Doubletap,
  467. Gesture_Hold,
  468. Gesture_Drag,
  469. Gesture_Swipe_Right,
  470. Gesture_Swipe_Left,
  471. Gesture_Swipe_Up,
  472. Gesture_Swipe_Down,
  473. Gesture_Pinch_In,
  474. Gesture_Pinch_Out
  475. ) with Convention => C;
  476. for Gesture use (
  477. Gesture_None => 0,
  478. Gesture_Tap => 1,
  479. Gesture_Doubletap => 2,
  480. Gesture_Hold => 4,
  481. Gesture_Drag => 8,
  482. Gesture_Swipe_Right => 16,
  483. Gesture_Swipe_Left => 32,
  484. Gesture_Swipe_Up => 64,
  485. Gesture_Swipe_Down => 128,
  486. Gesture_Pinch_In => 256,
  487. Gesture_Pinch_Out => 512
  488. );
  489. type Camera_Mode is (
  490. Camera_Custom,
  491. Camera_Free,
  492. Camera_Orbital,
  493. Camera_First_Person,
  494. Camera_Third_Person
  495. ) with Convention => C;
  496. type Camera_Projection is (
  497. Camera_Perspective,
  498. Camera_Orthographic
  499. ) with Convention => C;
  500. type NPatch_Layout is (
  501. NPatch_Nine_Patch,
  502. NPatch_Three_Patch_Vertical,
  503. NPatch_Three_Patch_Horizontal
  504. ) with Convention => C;
  505. ------------------------------------------------------------------------
  506. type Color_Range is range 0 .. 2**8 - 1;
  507. type Index_Range is range 0 .. 2**16 - 1;
  508. for Color_Range'Size use 8;
  509. for Index_Range'Size use 16;
  510. type Pointer is access all System.Address;
  511. type Vector_2D is record
  512. X : Float := 0.0;
  513. Y : Float := 0.0;
  514. end record with Convention => C_Pass_By_Copy;
  515. type Vector_3D is record
  516. X : Float := 0.0;
  517. Y : Float := 0.0;
  518. Z : Float := 0.0;
  519. end record with Convention => C_Pass_By_Copy;
  520. type Vector_4D is record
  521. X : Float := 0.0;
  522. Y : Float := 0.0;
  523. Z : Float := 0.0;
  524. W : Float := 0.0;
  525. end record with Convention => C_Pass_By_Copy;
  526. type Quaternion is new Vector_4D;
  527. type Matrix_4D is record
  528. M00 : Float := 1.0;
  529. M10 : Float := 0.0;
  530. M20 : Float := 0.0;
  531. M30 : Float := 0.0;
  532. M01 : Float := 0.0;
  533. M11 : Float := 1.0;
  534. M21 : Float := 0.0;
  535. M31 : Float := 0.0;
  536. M02 : Float := 0.0;
  537. M12 : Float := 0.0;
  538. M22 : Float := 1.0;
  539. M32 : Float := 0.0;
  540. M03 : Float := 0.0;
  541. M13 : Float := 0.0;
  542. M23 : Float := 0.0;
  543. M33 : Float := 1.0;
  544. end record with Convention => C_Pass_By_Copy;
  545. Id_Matrix : Matrix_4D;
  546. type Color is record
  547. R : Color_Range := 255;
  548. G : Color_Range := 255;
  549. B : Color_Range := 255;
  550. A : Color_Range := 255;
  551. end record with Convention => C_Pass_By_Copy;
  552. No_Color : Color;
  553. type Rectangle is record
  554. X : Float := 0.0;
  555. Y : Float := 0.0;
  556. Width : Float := 0.0;
  557. Height : Float := 0.0;
  558. end record with Convention => C_Pass_By_Copy;
  559. No_Rectangle : Rectangle;
  560. type Image is record
  561. Data : Pointer := null;
  562. Width : Integer := 0;
  563. Height : Integer := 0;
  564. Mipmaps : Integer := 1;
  565. Format : Pixel_Format := Pixel_Format_None;
  566. end record with Convention => C_Pass_By_Copy;
  567. No_Image : Image;
  568. type Texture is record
  569. Id : Natural := 0;
  570. Width : Integer := 0;
  571. Height : Integer := 0;
  572. Mipmaps : Integer := 1;
  573. Format : Pixel_Format := Pixel_Format_None;
  574. end record with Convention => C_Pass_By_Copy;
  575. No_Texture : Texture;
  576. type Render_Texture is record
  577. Id : Natural := 0;
  578. Data : Texture := No_Texture;
  579. Depth : Texture := No_Texture;
  580. end record with Convention => C_Pass_By_Copy;
  581. No_Render_Texture : Render_Texture;
  582. type NPatch_Info is record
  583. Source : Rectangle := No_Rectangle;
  584. Left : Integer := 0;
  585. Top : Integer := 0;
  586. Right : Integer := 0;
  587. Bottom : Integer := 0;
  588. Layout : NPatch_Layout := NPatch_Nine_Patch;
  589. end record with Convention => C_Pass_By_Copy;
  590. type Glyph_Info is record
  591. Value : Integer := 0;
  592. Offset_X : Integer := 0;
  593. Offset_Y : Integer := 0;
  594. Advance_X : Integer := 0;
  595. Data : Image := No_Image;
  596. end record with Convention => C_Pass_By_Copy;
  597. type Font is record
  598. Base_Size : Integer := 0;
  599. Glyph_Count : Integer := 0;
  600. Glyph_Padding : Integer := 0;
  601. Data : Texture := No_Texture;
  602. Rectangles : access Rectangle := null;
  603. Glyphs : access Glyph_Info := null;
  604. end record with Convention => C_Pass_By_Copy;
  605. No_Font : Font;
  606. type Camera_3D is record
  607. Position : Vector_3D := (others => 0.0);
  608. Target : Vector_3D := (others => 0.0);
  609. Up : Vector_3D := (others => 0.0);
  610. Field_Of_View : Float := 0.0;
  611. Projection : Camera_Projection := Camera_Perspective;
  612. end record with Convention => C_Pass_By_Copy;
  613. No_Camera_3D : Camera_3D;
  614. type Camera_2D is record
  615. Offset : Vector_2D := (others => 0.0);
  616. Target : Vector_2D := (others => 0.0);
  617. Rotation : Float := 0.0;
  618. Zoom : Float := 0.0;
  619. end record with Convention => C_Pass_By_Copy;
  620. No_Camera_2D : Camera_2D;
  621. type Mesh is record
  622. Vertex_Count : Integer := 0;
  623. Triangle_Count : Integer := 0;
  624. Vertices : access Float := null;
  625. Texture_Coordinates : access Float := null;
  626. Texture_Coordinates_2 : access Float := null;
  627. Normals : access Float := null;
  628. Tangents : access Float := null;
  629. Colors : access Color_Range := null;
  630. Indices : access Index_Range := null;
  631. Animation_Vertices : access Float := null;
  632. Animation_Normals : access Float := null;
  633. Bone_Ids : access Color_Range := null;
  634. Bone_Weights : access Float := null;
  635. VAO_Id : Natural := 0;
  636. VBO_Id : access Natural := null;
  637. end record with Convention => C_Pass_By_Copy;
  638. No_Mesh : Mesh;
  639. type Shader is record
  640. Id : Natural := 0;
  641. Locations : access Integer := null;
  642. end record with Convention => C_Pass_By_Copy;
  643. No_Shader : Shader;
  644. type Material_Map is record
  645. Data : Texture := No_Texture;
  646. Tint : Color := No_Color;
  647. Value : Float := 0.0;
  648. end record with Convention => C_Pass_By_Copy;
  649. No_Material_Map : Material_Map;
  650. type Float_Array_4 is array (0 .. 3) of Float;
  651. type Material_Map_Array_4 is array (0 .. 3) of Material_Map;
  652. type Material_Map_Array is array (Natural range <>) of Material_Map;
  653. type Material is record
  654. Data : Shader := No_Shader;
  655. Maps : access Material_Map_Array := null;
  656. Parameter : Float_Array_4 := (0.0, 0.0, 0.0, 1.0);
  657. end record with Convention => C_Pass_By_Copy;
  658. No_Material : Material;
  659. type Transform is record
  660. Translation : Vector_3D := (others => 0.0);
  661. Rotation : Vector_4D := (others => 0.0);
  662. Scale : Vector_3D := (others => 0.0);
  663. end record with Convention => C_Pass_By_Copy;
  664. type Character_Array_32 is array (0 .. 31) of Character;
  665. Empty : Character_Array_32 := (others => Character'Val (0));
  666. type Bone_Info is record
  667. Name : Character_Array_32 := Empty;
  668. Parent : Integer := 0;
  669. end record with Convention => C_Pass_By_Copy;
  670. No_Bone_Info : Bone_Info;
  671. type Material_Array_4 is array (0 .. 3) of Material;
  672. type Material_Array is array (Natural range <>) of Material;
  673. type Model is record
  674. Transform : Matrix_4D := Id_Matrix;
  675. Mesh_Count : Integer := 0;
  676. Material_Count : Integer := 0;
  677. Meshes : access Mesh := null;
  678. Materials : access Material_Array := null;
  679. Mesh_Materials : access Integer := null;
  680. Bone_Count : Integer := 0;
  681. Bones : access Bone_Info := null;
  682. --~Bind_Post : access Transform := null; ERROR
  683. end record with Convention => C_Pass_By_Copy;
  684. No_Model : Model;
  685. type Model_Animation is record
  686. Bone_Count : Integer := 0;
  687. Frame_Count : Integer := 0;
  688. Bones : access Bone_Info := null;
  689. Frame_Poses : access Transform := null;
  690. Name : Character_Array_32 := Empty;
  691. end record with Convention => C_Pass_By_Copy;
  692. No_Model_Animation : Model_Animation;
  693. type Ray is record
  694. Position : Vector_3D := (others => 0.0);
  695. Direction : Vector_3D := (others => 0.0);
  696. end record with Convention => C_Pass_By_Copy;
  697. No_Ray : Ray;
  698. type Ray_Collision is record
  699. Hit : Logical := False;
  700. Distance : Float := 0.0;
  701. Point : Vector_3D := (others => 0.0);
  702. Normal : Vector_3D := (others => 0.0);
  703. end record with Convention => C_Pass_By_Copy;
  704. No_Ray_Collision : Ray_Collision;
  705. type Bounding_Box is record
  706. Min : Vector_3D := (others => 0.0);
  707. Max : Vector_3D := (others => 0.0);
  708. end record with Convention => C_Pass_By_Copy;
  709. No_Bounding_Box : Bounding_Box;
  710. type Wave is record
  711. Frame_Count : Natural := 0;
  712. Sample_Rate : Natural := 0;
  713. Sample_Size : Natural := 0;
  714. Channels : Natural := 0;
  715. Data : Pointer := null;
  716. end record with Convention => C_Pass_By_Copy;
  717. No_Wave : Wave;
  718. type Audio_Stream is record
  719. Buffer : Pointer := null;
  720. Processor : Pointer := null;
  721. Sample_Rate : Natural := 0;
  722. Sample_Size : Natural := 0;
  723. Channels : Natural := 0;
  724. end record with Convention => C_Pass_By_Copy;
  725. No_Audio_Stream : Audio_Stream;
  726. type Sound is record
  727. Stream : Audio_Stream := No_Audio_Stream;
  728. Frame_Count : Natural := 0;
  729. end record with Convention => C_Pass_By_Copy;
  730. No_Sound : Sound;
  731. type Music is record
  732. Stream : Audio_Stream := No_Audio_Stream;
  733. Frame_Count : Natural := 0;
  734. Looping : Logical := False;
  735. Context_Type : Integer := 0;
  736. Context_Data : Pointer := null;
  737. end record with Convention => C_Pass_By_Copy;
  738. No_Music : Music;
  739. type VR_Device_Info is record
  740. Horizontal_Resoultion : Integer := 0;
  741. Vertical_Resoultion : Integer := 0;
  742. Horizontal_Screen_Size : Float := 0.0;
  743. Vertical_Screen_Size : Float := 0.0;
  744. Vertical_Screen_Center : Float := 0.0;
  745. Eye_To_Screen_Distance : Float := 0.0;
  746. Lens_Separate_Distance : Float := 0.0;
  747. Interpupillary_Distance : Float := 0.0;
  748. Lens_Distortion_Values : Float_Array_4 := (others => 0.0);
  749. Chroma_Abberation_Correction : Float_Array_4 := (others => 0.0);
  750. end record with Convention => C_Pass_By_Copy;
  751. No_VR_Device_Info : VR_Device_Info;
  752. type Matrix_4D_Array_2 is array (0 .. 1) of Matrix_4D;
  753. type Float_Array_2 is array (0 .. 1) of Float;
  754. type VR_Stereo_Config is record
  755. Projection : Matrix_4D_Array_2 := (Id_Matrix, Id_Matrix);
  756. View_Offset : Matrix_4D_Array_2 := (Id_Matrix, Id_Matrix);
  757. Left_Lens_Center : Float_Array_2 := (others => 0.0);
  758. Right_Lens_Center : Float_Array_2 := (others => 0.0);
  759. Left_Screen_Center : Float_Array_2 := (others => 0.0);
  760. Right_Screen_Center : Float_Array_2 := (others => 0.0);
  761. Scale : Float_Array_2 := (others => 0.0);
  762. Scale_In : Float_Array_2 := (others => 0.0);
  763. end record with Convention => C_Pass_By_Copy;
  764. No_VR_Stereo_Config : VR_Stereo_Config;
  765. type File_Path_List is record
  766. Capacity : Natural := 0;
  767. Count : Natural := 0;
  768. Paths : Pointer := null;
  769. end record with Convention => C_Pass_By_Copy;
  770. type Integer_Array_4 is array (0 .. 3) of Integer;
  771. type Automation_Event is record
  772. Frame : Natural := 0;
  773. Kind : Natural := 0;
  774. Parameters : Integer_Array_4 := (0, 0, 0, 0);
  775. end record with Convention => C_Pass_By_Copy;
  776. type Automation_Event_List is record
  777. Capacity : Natural := 0;
  778. Count : Natural := 0;
  779. Events : access Automation_Event := null;
  780. end record with Convention => C_Pass_By_Copy;
  781. ------------------------------------------------------------------------
  782. Version_Major : constant Integer := 5;
  783. Version_Minor : constant Integer := 1;
  784. Version_Patch : constant Integer := 0;
  785. Version : aliased constant String := "5.1-dev";
  786. Pi : constant Float := 3.14159265358979323846;
  787. Tau : constant Float := 2.0 * Pi;
  788. Degree_To_Radius : constant Float := Pi / 180.0;
  789. Radius_To_Degree : constant Float := 180.0 / Pi;
  790. Light_Gray : constant Color := (200, 200, 200, 255);
  791. Gray : constant Color := (130, 130, 130, 255);
  792. Dark_Gray : constant Color := (80, 80, 80, 255);
  793. Yellow : constant Color := (253, 249, 0, 255);
  794. Gold : constant Color := (255, 203, 0, 255);
  795. Orange : constant Color := (255, 161, 0, 255);
  796. Pink : constant Color := (255, 109, 194, 255);
  797. Red : constant Color := (230, 41, 55, 255);
  798. Maroon : constant Color := (190, 33, 55, 255);
  799. Green : constant Color := (0, 228, 48, 255);
  800. Lime : constant Color := (0, 158, 47, 255);
  801. Dark_Green : constant Color := (0, 117, 44, 255);
  802. Sky_Blue : constant Color := (102, 191, 255, 255);
  803. Blue : constant Color := (0, 121, 241, 255);
  804. Dark_Blue : constant Color := (0, 82, 172, 255);
  805. Purple : constant Color := (200, 122, 255, 255);
  806. Violet : constant Color := (135, 60, 190, 255);
  807. Dark_Purple : constant Color := (112, 31, 126, 255);
  808. Beige : constant Color := (211, 176, 131, 255);
  809. Brown : constant Color := (127, 106, 79, 255);
  810. Dark_Brown : constant Color := (76, 63, 47, 255);
  811. White : constant Color := (255, 255, 255, 255);
  812. Black : constant Color := (0, 0, 0, 255);
  813. Blank : constant Color := (0, 0, 0, 0 );
  814. Magenta : constant Color := (255, 0, 255, 255);
  815. Ray_White : constant Color := (245, 245, 245, 255);
  816. ------------------------------------------------------------------------
  817. procedure Open_Window (
  818. Width : Integer := 640;
  819. Height : Integer := 480;
  820. Title : String := ""
  821. ) with
  822. Import => True,
  823. Convention => C,
  824. External_Name => "InitWindow";
  825. procedure Close_Window with
  826. Import => True,
  827. Convention => C,
  828. External_Name => "CloseWindow";
  829. function Window_Should_Close return Logical with
  830. Import => True,
  831. Convention => C,
  832. External_Name => "WindowShouldClose";
  833. function Is_Window_Ready return Logical with
  834. Import => True,
  835. Convention => C,
  836. External_Name => "IsWindowReady";
  837. function Is_Window_Fullscreen return Logical with
  838. Import => True,
  839. Convention => C,
  840. External_Name => "IsWindowFullscreen";
  841. function Is_Window_Hidden return Logical with
  842. Import => True,
  843. Convention => C,
  844. External_Name => "IsWindowHidden";
  845. function Is_Window_Minimized return Logical with
  846. Import => True,
  847. Convention => C,
  848. External_Name => "IsWindowMinimized";
  849. function Is_Window_Maximized return Logical with
  850. Import => True,
  851. Convention => C,
  852. External_Name => "IsWindowMaximized";
  853. function Is_Window_Focused return Logical with
  854. Import => True,
  855. Convention => C,
  856. External_Name => "IsWindowFocused";
  857. function Is_Window_Resized return Logical with
  858. Import => True,
  859. Convention => C,
  860. External_Name => "IsWindowResized";
  861. function Is_Window_State (
  862. Flags : Natural := 0
  863. ) return Logical with
  864. Import => True,
  865. Convention => C,
  866. External_Name => "IsWindowState";
  867. procedure Set_Window_State (
  868. Flags : Natural := 0
  869. ) with
  870. Import => True,
  871. Convention => C,
  872. External_Name => "SetWindowState";
  873. procedure Clear_Window_State (
  874. Flags : Natural := 0
  875. ) with
  876. Import => True,
  877. Convention => C,
  878. External_Name => "ClearWindowState";
  879. procedure Toggle_Fullscreen with
  880. Import => True,
  881. Convention => C,
  882. External_Name => "ToggleFullscreen";
  883. procedure Toggle_Borderless_Windowed with
  884. Import => True,
  885. Convention => C,
  886. External_Name => "ToggleBorderlessWindowed";
  887. procedure Maximize_Window with
  888. Import => True,
  889. Convention => C,
  890. External_Name => "MaximizeWindow";
  891. procedure Minimize_Window with
  892. Import => True,
  893. Convention => C,
  894. External_Name => "MinimizeWindow";
  895. procedure Restore_Window with
  896. Import => True,
  897. Convention => C,
  898. External_Name => "RestoreWindow";
  899. procedure Set_Window_Icon (
  900. Icon : Image := No_Image
  901. ) with
  902. Import => True,
  903. Convention => C,
  904. External_Name => "SetWindowIcon";
  905. procedure Set_Window_Icons (
  906. Icons : access Image := null;
  907. Count : Integer := 0
  908. ) with
  909. Import => True,
  910. Convention => C,
  911. External_Name => "SetWindowIcons";
  912. procedure Set_Window_Title (
  913. Title : String := ""
  914. ) with
  915. Import => True,
  916. Convention => C,
  917. External_Name => "SetWindowTitle";
  918. procedure Set_Window_Position (
  919. X : Integer := 0;
  920. Y : Integer := 0
  921. ) with
  922. Import => True,
  923. Convention => C,
  924. External_Name => "SetWindowPosition";
  925. procedure Set_Window_Monitor (
  926. Monitor : Integer := 0
  927. ) with
  928. Import => True,
  929. Convention => C,
  930. External_Name => "SetWindowMonitor";
  931. procedure Set_Window_Min_Size (
  932. Width : Integer := 0;
  933. Height : Integer := 0
  934. ) with
  935. Import => True,
  936. Convention => C,
  937. External_Name => "SetWindowMinSize";
  938. procedure Set_Window_Max_Size (
  939. Width : Integer := 0;
  940. Height : Integer := 0
  941. ) with
  942. Import => True,
  943. Convention => C,
  944. External_Name => "SetWindowMaxSize";
  945. procedure Set_Window_Size (
  946. Width : Integer := 0;
  947. Height : Integer := 0
  948. ) with
  949. Import => True,
  950. Convention => C,
  951. External_Name => "SetWindowSize";
  952. procedure Set_WindowZ_Opacity (
  953. Opacity : Float := 0.0
  954. ) with
  955. Import => True,
  956. Convention => C,
  957. External_Name => "SetWindowOpacity";
  958. procedure Set_Window_Focused with
  959. Import => True,
  960. Convention => C,
  961. External_Name => "SetWindowFocused";
  962. function Get_Window_Handle return Pointer with
  963. Import => True,
  964. Convention => C,
  965. External_Name => "GetWindowHandle";
  966. function Get_Screen_Width return Integer with
  967. Import => True,
  968. Convention => C,
  969. External_Name => "GetScreenWidth";
  970. function Get_Screen_Height return Integer with
  971. Import => True,
  972. Convention => C,
  973. External_Name => "GetScreenHeight";
  974. function Get_Render_Width return Integer with
  975. Import => True,
  976. Convention => C,
  977. External_Name => "GetRenderWidth";
  978. function Get_Render_Height return Integer with
  979. Import => True,
  980. Convention => C,
  981. External_Name => "GetRenderHeight";
  982. function Get_Monitor_Count return Integer with
  983. Import => True,
  984. Convention => C,
  985. External_Name => "GetMonitorCount";
  986. function Get_Current_Monitor return Integer with
  987. Import => True,
  988. Convention => C,
  989. External_Name => "GetCurrentMonitor";
  990. function Get_Monitor_Position (
  991. Monitor : Integer := 0
  992. ) return Vector_2D with
  993. Import => True,
  994. Convention => C,
  995. External_Name => "GetMonitorPosition";
  996. function Get_Monitor_Width (
  997. Monitor : Integer := 0
  998. ) return Integer with
  999. Import => True,
  1000. Convention => C,
  1001. External_Name => "GetMonitorWidth";
  1002. function Get_Monitor_Height (
  1003. Monitor : Integer := 0
  1004. ) return Integer with
  1005. Import => True,
  1006. Convention => C,
  1007. External_Name => "GetMonitorHeight";
  1008. function Get_Monitor_Physical_Width (
  1009. Monitor : Integer := 0
  1010. ) return Integer with
  1011. Import => True,
  1012. Convention => C,
  1013. External_Name => "GetMonitorPhysicalWidth";
  1014. function Get_Monitor_Physical_Height (
  1015. Monitor : Integer := 0
  1016. ) return Integer with
  1017. Import => True,
  1018. Convention => C,
  1019. External_Name => "GetMonitorPhysicalHeight";
  1020. function Get_Monitor_Refresh_Rate (
  1021. Monitor : Integer := 0
  1022. ) return Integer with
  1023. Import => True,
  1024. Convention => C,
  1025. External_Name => "GetMonitorRefreshRate";
  1026. function Get_Window_Position return Vector_2D with
  1027. Import => True,
  1028. Convention => C,
  1029. External_Name => "GetWindowPosition";
  1030. function Get_Window_Scale_DPI return Vector_2D with
  1031. Import => True,
  1032. Convention => C,
  1033. External_Name => "GetWindowScaleDPI";
  1034. function Get_Monitor_Name (
  1035. Monitor : Integer := 0
  1036. ) return Pointer with
  1037. Import => True,
  1038. Convention => C,
  1039. External_Name => "GetMonitorName";
  1040. procedure Set_Clipboard_Text (
  1041. Text : String := ""
  1042. ) with
  1043. Import => True,
  1044. Convention => C,
  1045. External_Name => "SetClipboardText";
  1046. function Get_Clipboard_Text return Pointer with
  1047. Import => True,
  1048. Convention => C,
  1049. External_Name => "GetClipboardText";
  1050. procedure Enable_Event_Waiting with
  1051. Import => True,
  1052. Convention => C,
  1053. External_Name => "EnableEventWaiting";
  1054. procedure Disable_Event_Waiting with
  1055. Import => True,
  1056. Convention => C,
  1057. External_Name => "DisableEventWaiting";
  1058. procedure Show_Cursor with
  1059. Import => True,
  1060. Convention => C,
  1061. External_Name => "ShowCursor";
  1062. procedure Hide_Cursor with
  1063. Import => True,
  1064. Convention => C,
  1065. External_Name => "HideCursor";
  1066. function Is_Cursor_Hidden return Logical with
  1067. Import => True,
  1068. Convention => C,
  1069. External_Name => "IsCursorHidden";
  1070. procedure Enable_Cursor with
  1071. Import => True,
  1072. Convention => C,
  1073. External_Name => "EnableCursor";
  1074. procedure Disable_Cursor with
  1075. Import => True,
  1076. Convention => C,
  1077. External_Name => "DisableCursor";
  1078. function Is_Cursor_On_Screen return Logical with
  1079. Import => True,
  1080. Convention => C,
  1081. External_Name => "IsCursorOnScreen";
  1082. procedure Clear_Background (
  1083. Tint : Color := Ray_White
  1084. ) with
  1085. Import => True,
  1086. Convention => C,
  1087. External_Name => "ClearBackground";
  1088. procedure Begin_Drawing with
  1089. Import => True,
  1090. Convention => C,
  1091. External_Name => "BeginDrawing";
  1092. procedure End_Drawing with
  1093. Import => True,
  1094. Convention => C,
  1095. External_Name => "EndDrawing";
  1096. procedure Begin_Mode_2D (
  1097. Camera : Camera_2D
  1098. ) with
  1099. Import => True,
  1100. Convention => C,
  1101. External_Name => "BeginMode2D";
  1102. procedure End_Mode_2D with
  1103. Import => True,
  1104. Convention => C,
  1105. External_Name => "EndMode2D";
  1106. procedure Begin_Mode_3D (
  1107. Camera : Camera_3D
  1108. ) with
  1109. Import => True,
  1110. Convention => C,
  1111. External_Name => "BeginMode3D";
  1112. procedure End_Mode_3D with
  1113. Import => True,
  1114. Convention => C,
  1115. External_Name => "EndMode3D";
  1116. procedure Begin_Texture_Mode (
  1117. Data : Render_Texture := No_Render_Texture
  1118. ) with
  1119. Import => True,
  1120. Convention => C,
  1121. External_Name => "BeginTextureMode";
  1122. procedure End_Texture_Mode with
  1123. Import => True,
  1124. Convention => C,
  1125. External_Name => "EndTextureMode";
  1126. procedure Begin_Shader_Mode (
  1127. Data : Shader := No_Shader
  1128. ) with
  1129. Import => True,
  1130. Convention => C,
  1131. External_Name => "BeginShaderMode";
  1132. procedure End_Shader_Mode with
  1133. Import => True,
  1134. Convention => C,
  1135. External_Name => "EndShaderMode";
  1136. procedure Begin_Blend_Mode (
  1137. Mode : Blend_Mode := Blend_Alpha
  1138. ) with
  1139. Import => True,
  1140. Convention => C,
  1141. External_Name => "BeginBlendMode";
  1142. procedure End_Blend_Mode with
  1143. Import => True,
  1144. Convention => C,
  1145. External_Name => "EndBlendMode";
  1146. procedure Begin_Scissor_Mode (
  1147. X : Integer := 0;
  1148. Y : Integer := 0;
  1149. Width : Integer := 0;
  1150. Height : Integer := 0
  1151. ) with
  1152. Import => True,
  1153. Convention => C,
  1154. External_Name => "BeginScissorMode";
  1155. procedure End_Scissor_Mode with
  1156. Import => True,
  1157. Convention => C,
  1158. External_Name => "EndScissorMode";
  1159. procedure Begin_VR_Stereo_Mode (
  1160. Config : VR_Stereo_Config := No_VR_Stereo_Config
  1161. ) with
  1162. Import => True,
  1163. Convention => C,
  1164. External_Name => "BeginVrStereoMode";
  1165. procedure End_VR_Stereo_Mode with
  1166. Import => True,
  1167. Convention => C,
  1168. External_Name => "EndVrStereoMode";
  1169. function Load_VR_Stereo_Config (
  1170. Device : VR_Device_Info := No_VR_Device_Info
  1171. ) return VR_Stereo_Config with
  1172. Import => True,
  1173. Convention => C,
  1174. External_Name => "LoadVrStereoConfig";
  1175. procedure Unload_VR_Stereo_Config (
  1176. Config : VR_Stereo_Config := No_VR_Stereo_Config
  1177. ) with
  1178. Import => True,
  1179. Convention => C,
  1180. External_Name => "UnloadVrStereoConfig";
  1181. function Load_Shader (
  1182. Vertex_Shader_File_Path : String := "";
  1183. Fragment_Shader_File_Path : String := ""
  1184. ) return Shader with
  1185. Import => True,
  1186. Convention => C,
  1187. External_Name => "LoadShader";
  1188. function Load_Shader_From_Memory (
  1189. Vertex_Shader_Code_Path : String := "";
  1190. Fragment_Shader_Code_Path : String := ""
  1191. ) return Shader with
  1192. Import => True,
  1193. Convention => C,
  1194. External_Name => "LoadShaderFromMemory";
  1195. function Is_Shader_Ready (
  1196. Data : Shader := No_Shader
  1197. ) return Logical with
  1198. Import => True,
  1199. Convention => C,
  1200. External_Name => "IsShaderReady";
  1201. function Get_Shader_Location (
  1202. Data : Shader := No_Shader;
  1203. Name : String := ""
  1204. ) return Integer with
  1205. Import => True,
  1206. Convention => C,
  1207. External_Name => "GetShaderLocation";
  1208. function Get_Shader_Location_Attribute (
  1209. Data : Shader := No_Shader;
  1210. Name : String := ""
  1211. ) return Integer with
  1212. Import => True,
  1213. Convention => C,
  1214. External_Name => "GetShaderLocationAttrib";
  1215. procedure Set_Shader_Value (
  1216. Data : Shader := No_Shader;
  1217. Location_Index : Integer := 0;
  1218. Value : Pointer := null;
  1219. Uniform_Type : Integer := 0
  1220. ) with
  1221. Import => True,
  1222. Convention => C,
  1223. External_Name => "SetShaderValue";
  1224. procedure Set_Shader_Value_Vector (
  1225. Data : Shader := No_Shader;
  1226. Location_Index : Integer := 0;
  1227. Value : Pointer := null;
  1228. Uniform_Type : Integer := 0;
  1229. Count : Integer := 0
  1230. ) with
  1231. Import => True,
  1232. Convention => C,
  1233. External_Name => "SetShaderValueV";
  1234. procedure Set_Shader_Value_Matrix (
  1235. Data : Shader := No_Shader;
  1236. Location_Index : Integer := 0;
  1237. Value : Matrix_4D := Id_Matrix
  1238. ) with
  1239. Import => True,
  1240. Convention => C,
  1241. External_Name => "SetShaderValueMatrix";
  1242. procedure Set_Shader_Value_Texture (
  1243. Data : Shader := No_Shader;
  1244. Location_Index : Integer := 0;
  1245. Value : Texture := No_Texture
  1246. ) with
  1247. Import => True,
  1248. Convention => C,
  1249. External_Name => "SetShaderValueTexture";
  1250. procedure Unload_Shader (
  1251. Data : Shader := No_Shader
  1252. ) with
  1253. Import => True,
  1254. Convention => C,
  1255. External_Name => "UnloadShader";
  1256. function Get_Mouse_Ray (
  1257. Mouse_Position : Vector_2D := (others => 0.0);
  1258. Camera : Camera_3D := No_Camera_3D
  1259. ) return Ray with
  1260. Import => True,
  1261. Convention => C,
  1262. External_Name => "GetMouseRay";
  1263. function Get_Camera_Matrix_3D (
  1264. Camera : Camera_3D := No_Camera_3D
  1265. ) return Matrix_4D with
  1266. Import => True,
  1267. Convention => C,
  1268. External_Name => "GetCameraMatrix";
  1269. function Get_Camera_Matrix_2D (
  1270. Camera : Camera_2D := No_Camera_2D
  1271. ) return Matrix_4D with
  1272. Import => True,
  1273. Convention => C,
  1274. External_Name => "GetCameraMatrix2D";
  1275. function Get_World_To_Screen_3D (
  1276. Position : Vector_3D := (others => 0.0);
  1277. Camera : Camera_3D := No_Camera_3D
  1278. ) return Vector_2D with
  1279. Import => True,
  1280. Convention => C,
  1281. External_Name => "GetWorldToScreen";
  1282. function Get_Screen_To_World_2D (
  1283. Position : Vector_2D := (others => 0.0);
  1284. Camera : Camera_2D := No_Camera_2D
  1285. ) return Vector_2D with
  1286. Import => True,
  1287. Convention => C,
  1288. External_Name => "GetScreenToWorld2D";
  1289. function Get_World_To_Screen_Ex (
  1290. Position : Vector_3D := (others => 0.0);
  1291. Camera : Camera_3D := No_Camera_3D;
  1292. Width : Integer := 0;
  1293. Height : Integer := 0
  1294. ) return Vector_2D with
  1295. Import => True,
  1296. Convention => C,
  1297. External_Name => "GetWorldToScreenEx";
  1298. function Get_World_To_Screen_2D (
  1299. Position : Vector_2D := (others => 0.0);
  1300. Camera : Camera_2D := No_Camera_2D
  1301. ) return Vector_2D with
  1302. Import => True,
  1303. Convention => C,
  1304. External_Name => "GetWorldToScreen2D";
  1305. procedure Set_Target_FPS (
  1306. FPS : Integer := 60
  1307. ) with
  1308. Import => True,
  1309. Convention => C,
  1310. External_Name => "SetTargetFPS";
  1311. function Get_Frame_Time return Float with
  1312. Import => True,
  1313. Convention => C,
  1314. External_Name => "GetFrameTime";
  1315. function Get_Time return Long_Float with
  1316. Import => True,
  1317. Convention => C,
  1318. External_Name => "GetTime";
  1319. function Get_FPS return Integer with
  1320. Import => True,
  1321. Convention => C,
  1322. External_Name => "GetFPS";
  1323. procedure Swap_Screen_Buffer with
  1324. Import => True,
  1325. Convention => C,
  1326. External_Name => "SwapScreenBuffer";
  1327. procedure Poll_Input_Events with
  1328. Import => True,
  1329. Convention => C,
  1330. External_Name => "PollInputEvents";
  1331. procedure Wait_Time (
  1332. Seconds : Long_Float := 0.0
  1333. ) with
  1334. Import => True,
  1335. Convention => C,
  1336. External_Name => "WaitTime";
  1337. procedure Set_Random_Seed (
  1338. Seed : Natural := 16#0EADBEEF#
  1339. ) with
  1340. Import => True,
  1341. Convention => C,
  1342. External_Name => "SetRandomSeed";
  1343. function Get_Random_Value (
  1344. Min : Integer := 0;
  1345. Max : Integer := 255
  1346. ) return Integer with
  1347. Import => True,
  1348. Convention => C,
  1349. External_Name => "GetRandomValue";
  1350. function Load_Random_Sequence (
  1351. Count : Natural := 0;
  1352. Min : Integer := 0;
  1353. Max : Integer := 0
  1354. ) return access Integer with
  1355. Import => True,
  1356. Convention => C,
  1357. External_Name => "LoadRandomSequence";
  1358. procedure Unload_Random_Sequence (
  1359. Sequence : access Integer := null
  1360. ) with
  1361. Import => True,
  1362. Convention => C,
  1363. External_Name => "UnloadRandomSequence";
  1364. procedure Take_Screenshot (
  1365. File_Name : String := "Screenshot.png"
  1366. ) with
  1367. Import => True,
  1368. Convention => C,
  1369. External_Name => "TakeScreenshot";
  1370. procedure Set_Config_Flags (
  1371. Flags : Config_Flags := Flag_None
  1372. ) with
  1373. Import => True,
  1374. Convention => C,
  1375. External_Name => "SetConfigFlags";
  1376. procedure Open_URL (
  1377. URL : String := ""
  1378. ) with
  1379. Import => True,
  1380. Convention => C,
  1381. External_Name => "OpenURL";
  1382. procedure Set_Trace_Log_Level (
  1383. Level : Trace_Log_Level := Log_All
  1384. ) with
  1385. Import => True,
  1386. Convention => C,
  1387. External_Name => "SetTraceLogLevel";
  1388. function Allocate (
  1389. Size : Natural := 0
  1390. ) return Pointer with
  1391. Import => True,
  1392. Convention => C,
  1393. External_Name => "MemAlloc";
  1394. function Reallocate (
  1395. Data : Pointer := null;
  1396. Size : Natural := 0
  1397. ) return Pointer with
  1398. Import => True,
  1399. Convention => C,
  1400. External_Name => "MemRealloc";
  1401. procedure Deallocate (
  1402. Data : Pointer := null
  1403. ) with
  1404. Import => True,
  1405. Convention => C,
  1406. External_Name => "MemFree";
  1407. function Load_File_Data (
  1408. File_Name : String := "";
  1409. Data_Size : access Integer := null
  1410. ) return access Character with
  1411. Import => True,
  1412. Convention => C,
  1413. External_Name => "LoadFileData";
  1414. procedure Unload_File_Data (
  1415. Data : Pointer := null
  1416. ) with
  1417. Import => True,
  1418. Convention => C,
  1419. External_Name => "UnloadFileData";
  1420. --~function bool SaveFileData (const char *fileName, void *data, int dataSize) with
  1421. --~Import => True,
  1422. --~Convention => C,
  1423. --~External_Name => "SaveFileData";
  1424. --~function bool ExportDataAsCode (const unsigned char *data, int dataSize, const char *fileName) with
  1425. --~Import => True,
  1426. --~Convention => C,
  1427. --~External_Name => "ExportDataAsCode";
  1428. --~function char *LoadFileText (const char *fileName) with
  1429. --~Import => True,
  1430. --~Convention => C,
  1431. --~External_Name => "LoadFileText";
  1432. --~procedure UnloadFileText (char *text) with
  1433. --~Import => True,
  1434. --~Convention => C,
  1435. --~External_Name => "UnloadFileText";
  1436. --~function bool SaveFileText (const char *fileName, char *text) with
  1437. --~Import => True,
  1438. --~Convention => C,
  1439. --~External_Name => "SaveFileText";
  1440. --~function bool FileExists (const char *fileName) with
  1441. --~Import => True,
  1442. --~Convention => C,
  1443. --~External_Name => "FileExists";
  1444. --~function bool DirectoryExists (const char *dirPath) with
  1445. --~Import => True,
  1446. --~Convention => C,
  1447. --~External_Name => "DirectoryExists";
  1448. --~function bool IsFileExtension (const char *fileName, const char *ext) with
  1449. --~Import => True,
  1450. --~Convention => C,
  1451. --~External_Name => "IsFileExtension";
  1452. --~function int GetFileLength (const char *fileName) with
  1453. --~Import => True,
  1454. --~Convention => C,
  1455. --~External_Name => "GetFileLength";
  1456. --~function const char *GetFileExtension (const char *fileName) with
  1457. --~Import => True,
  1458. --~Convention => C,
  1459. --~External_Name => "GetFileExtension";
  1460. --~function const char *GetFileName (const char *filePath) with
  1461. --~Import => True,
  1462. --~Convention => C,
  1463. --~External_Name => "GetFileName";
  1464. --~function const char *GetFileNameWithoutExt (const char *filePath) with
  1465. --~Import => True,
  1466. --~Convention => C,
  1467. --~External_Name => "GetFileNameWithoutExt";
  1468. --~function const char *GetDirectoryPath (const char *filePath) with
  1469. --~Import => True,
  1470. --~Convention => C,
  1471. --~External_Name => "GetDirectoryPath";
  1472. --~function const char *GetPrevDirectoryPath (const char *dirPath) with
  1473. --~Import => True,
  1474. --~Convention => C,
  1475. --~External_Name => "GetPrevDirectoryPath";
  1476. --~function const char *GetWorkingDirectory (void) with
  1477. --~Import => True,
  1478. --~Convention => C,
  1479. --~External_Name => "GetWorkingDirectory";
  1480. --~function const char *GetApplicationDirectory (void) with
  1481. --~Import => True,
  1482. --~Convention => C,
  1483. --~External_Name => "GetApplicationDirectory";
  1484. --~function bool ChangeDirectory (const char *dir) with
  1485. --~Import => True,
  1486. --~Convention => C,
  1487. --~External_Name => "ChangeDirectory";
  1488. --~function bool IsPathFile (const char *path) with
  1489. --~Import => True,
  1490. --~Convention => C,
  1491. --~External_Name => "IsPathFile";
  1492. --~function FilePathList LoadDirectoryFiles (const char *dirPath) with
  1493. --~Import => True,
  1494. --~Convention => C,
  1495. --~External_Name => "LoadDirectoryFiles";
  1496. --~function FilePathList LoadDirectoryFilesEx (const char *basePath, const char *filter, bool scanSubdirs) with
  1497. --~Import => True,
  1498. --~Convention => C,
  1499. --~External_Name => "LoadDirectoryFilesEx";
  1500. --~procedure UnloadDirectoryFiles (FilePathList files) with
  1501. --~Import => True,
  1502. --~Convention => C,
  1503. --~External_Name => "UnloadDirectoryFiles";
  1504. --~function bool IsFileDropped (void) with
  1505. --~Import => True,
  1506. --~Convention => C,
  1507. --~External_Name => "IsFileDropped";
  1508. --~function FilePathList LoadDroppedFiles (void) with
  1509. --~Import => True,
  1510. --~Convention => C,
  1511. --~External_Name => "LoadDroppedFiles";
  1512. --~procedure UnloadDroppedFiles (FilePathList files) with
  1513. --~Import => True,
  1514. --~Convention => C,
  1515. --~External_Name => "UnloadDroppedFiles";
  1516. --~function long GetFileModTime (const char *fileName) with
  1517. --~Import => True,
  1518. --~Convention => C,
  1519. --~External_Name => "GetFileModTime";
  1520. --~function unsigned char *CompressData (const unsigned char *data, int dataSize, int *compDataSize) with
  1521. --~Import => True,
  1522. --~Convention => C,
  1523. --~External_Name => "CompressData";
  1524. --~function unsigned char *DecompressData (const unsigned char *compData, int compDataSize, int *dataSize) with
  1525. --~Import => True,
  1526. --~Convention => C,
  1527. --~External_Name => "DecompressData";
  1528. --~function char *EncodeDataBase64 (const unsigned char *data, int dataSize, int *outputSize) with
  1529. --~Import => True,
  1530. --~Convention => C,
  1531. --~External_Name => "EncodeDataBase64";
  1532. --~function unsigned char *DecodeDataBase64 (const unsigned char *data, int *outputSize) with
  1533. --~Import => True,
  1534. --~Convention => C,
  1535. --~External_Name => "DecodeDataBase64";
  1536. --~function AutomationEventList LoadAutomationEventList (const char *fileName) with
  1537. --~Import => True,
  1538. --~Convention => C,
  1539. --~External_Name => "LoadAutomationEventList";
  1540. --~procedure UnloadAutomationEventList (AutomationEventList *list) with
  1541. --~Import => True,
  1542. --~Convention => C,
  1543. --~External_Name => "UnloadAutomationEventList";
  1544. --~function bool ExportAutomationEventList (AutomationEventList list, const char *fileName) with
  1545. --~Import => True,
  1546. --~Convention => C,
  1547. --~External_Name => "ExportAutomationEventList";
  1548. --~procedure SetAutomationEventList (AutomationEventList *list) with
  1549. --~Import => True,
  1550. --~Convention => C,
  1551. --~External_Name => "SetAutomationEventList";
  1552. --~procedure SetAutomationEventBaseFrame (int frame) with
  1553. --~Import => True,
  1554. --~Convention => C,
  1555. --~External_Name => "SetAutomationEventBaseFrame";
  1556. --~procedure StartAutomationEventRecording (void) with
  1557. --~Import => True,
  1558. --~Convention => C,
  1559. --~External_Name => "StartAutomationEventRecording";
  1560. --~procedure StopAutomationEventRecording (void) with
  1561. --~Import => True,
  1562. --~Convention => C,
  1563. --~External_Name => "StopAutomationEventRecording";
  1564. --~procedure PlayAutomationEvent (AutomationEvent event) with
  1565. --~Import => True,
  1566. --~Convention => C,
  1567. --~External_Name => "PlayAutomationEvent";
  1568. function Is_Key_Pressed (
  1569. Key : Keyboard_Key := Key_Null
  1570. ) return Logical with
  1571. Import => True,
  1572. Convention => C,
  1573. External_Name => "IsKeyPressed";
  1574. function Is_Key_Pressed_Repeat (
  1575. Key : Keyboard_Key := Key_Null
  1576. ) return Logical with
  1577. Import => True,
  1578. Convention => C,
  1579. External_Name => "IsKeyPressedRepeat";
  1580. function Is_Key_Down (
  1581. Key : Keyboard_Key := Key_Null
  1582. ) return Logical with
  1583. Import => True,
  1584. Convention => C,
  1585. External_Name => "IsKeyDown";
  1586. function Is_Key_Released (
  1587. Key : Keyboard_Key := Key_Null
  1588. ) return Logical with
  1589. Import => True,
  1590. Convention => C,
  1591. External_Name => "IsKeyReleased";
  1592. function Is_Key_Up (
  1593. Key : Keyboard_Key := Key_Null
  1594. ) return Logical with
  1595. Import => True,
  1596. Convention => C,
  1597. External_Name => "IsKeyUp";
  1598. function Get_Key_Pressed return Keyboard_Key with
  1599. Import => True,
  1600. Convention => C,
  1601. External_Name => "GetKeyPressed";
  1602. function Get_Character_Pressed return Character with
  1603. Import => True,
  1604. Convention => C,
  1605. External_Name => "GetCharPressed";
  1606. procedure Set_Exit_Key (
  1607. Key : Keyboard_Key := Key_Escape
  1608. ) with
  1609. Import => True,
  1610. Convention => C,
  1611. External_Name => "SetExitKey";
  1612. --~function bool IsGamepadAvailable (int gamepad) with
  1613. --~Import => True,
  1614. --~Convention => C,
  1615. --~External_Name => "";
  1616. --~function const char *GetGamepadName (int gamepad) with
  1617. --~Import => True,
  1618. --~Convention => C,
  1619. --~External_Name => "";
  1620. --~function bool IsGamepadButtonPressed (int gamepad, int button) with
  1621. --~Import => True,
  1622. --~Convention => C,
  1623. --~External_Name => "";
  1624. --~function bool IsGamepadButtonDown (int gamepad, int button) with
  1625. --~Import => True,
  1626. --~Convention => C,
  1627. --~External_Name => "";
  1628. --~function bool IsGamepadButtonReleased (int gamepad, int button) with
  1629. --~Import => True,
  1630. --~Convention => C,
  1631. --~External_Name => "";
  1632. --~function bool IsGamepadButtonUp (int gamepad, int button) with
  1633. --~Import => True,
  1634. --~Convention => C,
  1635. --~External_Name => "";
  1636. --~function int GetGamepadButtonPressed (void) with
  1637. --~Import => True,
  1638. --~Convention => C,
  1639. --~External_Name => "";
  1640. --~function int GetGamepadAxisCount (int gamepad) with
  1641. --~Import => True,
  1642. --~Convention => C,
  1643. --~External_Name => "";
  1644. --~function float GetGamepadAxisMovement (int gamepad, int axis) with
  1645. --~Import => True,
  1646. --~Convention => C,
  1647. --~External_Name => "";
  1648. --~function int SetGamepadMappings (const char *mappings) with
  1649. --~Import => True,
  1650. --~Convention => C,
  1651. --~External_Name => "";
  1652. function Is_Mouse_Button_Pressed (
  1653. Button : Mouse_Button := Mouse_Button_Left
  1654. ) return Logical with
  1655. Import => True,
  1656. Convention => C,
  1657. External_Name => "IsMouseButtonPressed";
  1658. function Is_Mouse_Button_Down (
  1659. Button : Mouse_Button := Mouse_Button_Left
  1660. ) return Logical with
  1661. Import => True,
  1662. Convention => C,
  1663. External_Name => "IsMouseButtonDown";
  1664. function Is_Mouse_Button_Released (
  1665. Button : Mouse_Button := Mouse_Button_Left
  1666. ) return Logical with
  1667. Import => True,
  1668. Convention => C,
  1669. External_Name => "IsMouseButtonReleased";
  1670. function Is_Mouse_Button_Up (
  1671. Button : Mouse_Button := Mouse_Button_Left
  1672. ) return Logical with
  1673. Import => True,
  1674. Convention => C,
  1675. External_Name => "IsMouseButtonUp";
  1676. function Get_Mouse_X return Integer with
  1677. Import => True,
  1678. Convention => C,
  1679. External_Name => "GetMouseX";
  1680. function Get_Mouse_Y return Integer with
  1681. Import => True,
  1682. Convention => C,
  1683. External_Name => "GetMouseY";
  1684. function Get_Mouse_Position return Vector_2D with
  1685. Import => True,
  1686. Convention => C,
  1687. External_Name => "GetMousePosition";
  1688. function Get_Mouse_Delta return Vector_2D with
  1689. Import => True,
  1690. Convention => C,
  1691. External_Name => "GetMouseDelta";
  1692. procedure Set_Mouse_Position (
  1693. X : Integer := 0;
  1694. Y : Integer := 0
  1695. ) with
  1696. Import => True,
  1697. Convention => C,
  1698. External_Name => "SetMousePosition";
  1699. procedure Set_Mouse_Offset (
  1700. X : Integer := 0;
  1701. Y : Integer := 0
  1702. ) with
  1703. Import => True,
  1704. Convention => C,
  1705. External_Name => "SetMouseOffset";
  1706. procedure Set_Mouse_Scale (
  1707. X : Float := 0.0;
  1708. Y : Float := 0.0
  1709. ) with
  1710. Import => True,
  1711. Convention => C,
  1712. External_Name => "SetMouseScale";
  1713. function Get_Mouse_Wheel_Move return Float with
  1714. Import => True,
  1715. Convention => C,
  1716. External_Name => "GetMouseWheelMove";
  1717. function Get_Mouse_Wheel_Move_V return Vector_2D with
  1718. Import => True,
  1719. Convention => C,
  1720. External_Name => "GetMouseWheelMoveV";
  1721. procedure Set_Mouse_Cursor (
  1722. Cursor : Mouse_Cursor := Mouse_Cursor_Default
  1723. ) with
  1724. Import => True,
  1725. Convention => C,
  1726. External_Name => "SetMouseCursor";
  1727. --~function int GetTouchX (void) with
  1728. --~Import => True,
  1729. --~Convention => C,
  1730. --~External_Name => "";
  1731. --~function int GetTouchY (void) with
  1732. --~Import => True,
  1733. --~Convention => C,
  1734. --~External_Name => "";
  1735. --~function Vector2 GetTouchPosition (int index) with
  1736. --~Import => True,
  1737. --~Convention => C,
  1738. --~External_Name => "";
  1739. --~function int GetTouchPointId (int index) with
  1740. --~Import => True,
  1741. --~Convention => C,
  1742. --~External_Name => "";
  1743. --~function int GetTouchPointCount (void) with
  1744. --~Import => True,
  1745. --~Convention => C,
  1746. --~External_Name => "";
  1747. --~procedure SetGesturesEnabled (unsigned int flags) with
  1748. --~Import => True,
  1749. --~Convention => C,
  1750. --~External_Name => "";
  1751. --~function bool IsGestureDetected (unsigned int gesture) with
  1752. --~Import => True,
  1753. --~Convention => C,
  1754. --~External_Name => "";
  1755. --~function int GetGestureDetected (void) with
  1756. --~Import => True,
  1757. --~Convention => C,
  1758. --~External_Name => "";
  1759. --~function float GetGestureHoldDuration (void) with
  1760. --~Import => True,
  1761. --~Convention => C,
  1762. --~External_Name => "";
  1763. --~function Vector2 GetGestureDragVector (void) with
  1764. --~Import => True,
  1765. --~Convention => C,
  1766. --~External_Name => "";
  1767. --~function float GetGestureDragAngle (void) with
  1768. --~Import => True,
  1769. --~Convention => C,
  1770. --~External_Name => "";
  1771. --~function Vector2 GetGesturePinchVector (void) with
  1772. --~Import => True,
  1773. --~Convention => C,
  1774. --~External_Name => "";
  1775. --~function float GetGesturePinchAngle (void) with
  1776. --~Import => True,
  1777. --~Convention => C,
  1778. --~External_Name => "";
  1779. procedure Update_Camera (
  1780. Data : access Camera_3D := null;
  1781. Mode : Camera_Mode := Camera_First_Person
  1782. ) with
  1783. Import => True,
  1784. Convention => C,
  1785. External_Name => "UpdateCamera";
  1786. procedure Update_Camera_Pro (
  1787. Data : access Camera_3D := null;
  1788. Movement : Vector_3D := (others => 0.0);
  1789. Rotation : Vector_3D := (others => 0.0);
  1790. Zoom : Float := 0.0
  1791. ) with
  1792. Import => True,
  1793. Convention => C,
  1794. External_Name => "UpdateCameraPro";
  1795. procedure Set_Shapes_Texture (
  1796. Data : Texture := No_Texture;
  1797. Source : Rectangle := No_Rectangle
  1798. ) with
  1799. Import => True,
  1800. Convention => C,
  1801. External_Name => "SetShapesTexture";
  1802. procedure Draw_Pixel (
  1803. X : Integer := 0;
  1804. Y : Integer := 0;
  1805. Tint : Color := White
  1806. ) with
  1807. Import => True,
  1808. Convention => C,
  1809. External_Name => "DrawPixel";
  1810. procedure Draw_Pixel_V (
  1811. Position : Vector_2D := (others => 0.0);
  1812. Tint : Color := White
  1813. ) with
  1814. Import => True,
  1815. Convention => C,
  1816. External_Name => "DrawPixelV";
  1817. procedure Draw_Line (
  1818. X0 : Integer := 0;
  1819. Y0 : Integer := 0;
  1820. X1 : Integer := 0;
  1821. Y1 : Integer := 0;
  1822. Tint : Color := Black
  1823. ) with
  1824. Import => True,
  1825. Convention => C,
  1826. External_Name => "DrawLine";
  1827. procedure Draw_Line_V (
  1828. From : Vector_2D := (others => 0.0);
  1829. To : Vector_2D := (others => 0.0);
  1830. Tint : Color := Black
  1831. ) with
  1832. Import => True,
  1833. Convention => C,
  1834. External_Name => "DrawLineV";
  1835. procedure Draw_Line_Ex (
  1836. From : Vector_2D := (others => 0.0);
  1837. To : Vector_2D := (others => 0.0);
  1838. Thick : Float := 0.0;
  1839. Tint : Color := Black
  1840. ) with
  1841. Import => True,
  1842. Convention => C,
  1843. External_Name => "DrawLineEx";
  1844. procedure Draw_Line_Strip (
  1845. Points : access Vector_2D := null;
  1846. Point_Count : Natural := 0;
  1847. Tint : Color := Black
  1848. ) with
  1849. Import => True,
  1850. Convention => C,
  1851. External_Name => "DrawLineStrip";
  1852. procedure Draw_Line_Bezier (
  1853. From : Vector_2D := (others => 0.0);
  1854. To : Vector_2D := (others => 0.0);
  1855. Thick : Float := 0.0;
  1856. Tint : Color := Black
  1857. ) with
  1858. Import => True,
  1859. Convention => C,
  1860. External_Name => "DrawLineBezier";
  1861. procedure Draw_Circle (
  1862. X : Integer := 0;
  1863. Y : Integer := 0;
  1864. Radius : Float := 0.0;
  1865. Tint : Color := Black
  1866. ) with
  1867. Import => True,
  1868. Convention => C,
  1869. External_Name => "DrawCircle";
  1870. procedure Draw_Circle_Sector (
  1871. Center : Vector_2D := (others => 0.0);
  1872. Radius : Float := 0.0;
  1873. From : Float := 0.0;
  1874. To : Float := 0.0;
  1875. Segments : Integer := 0;
  1876. Tint : Color := Black
  1877. ) with
  1878. Import => True,
  1879. Convention => C,
  1880. External_Name => "DrawCircleSector";
  1881. procedure Draw_Circle_Sector_Lines (
  1882. Center : Vector_2D := (others => 0.0);
  1883. Radius : Float := 0.0;
  1884. From : Float := 0.0;
  1885. To : Float := 0.0;
  1886. Segments : Integer := 0;
  1887. Tint : Color := Black
  1888. ) with
  1889. Import => True,
  1890. Convention => C,
  1891. External_Name => "DrawCircleSectorLines";
  1892. procedure Draw_Circle_Gradient (
  1893. X : Integer := 0;
  1894. Y : Integer := 0;
  1895. Radius : Float := 0.0;
  1896. Tint_1 : Color := Black;
  1897. Tint_2 : Color := White
  1898. ) with
  1899. Import => True,
  1900. Convention => C,
  1901. External_Name => "DrawCircleGradient";
  1902. procedure Draw_Circle_V (
  1903. Center : Vector_2D := (others => 0.0);
  1904. Radius : Float := 0.0;
  1905. Tint : Color := Black
  1906. ) with
  1907. Import => True,
  1908. Convention => C,
  1909. External_Name => "DrawCircleV";
  1910. procedure Draw_Circle_Lines (
  1911. X : Integer := 0;
  1912. Y : Integer := 0;
  1913. Radius : Float := 0.0;
  1914. Tint : Color := Black
  1915. ) with
  1916. Import => True,
  1917. Convention => C,
  1918. External_Name => "DrawCircleLines";
  1919. procedure Draw_Circle_Lines_V (
  1920. Center : Vector_2D := (others => 0.0);
  1921. Radius : Float := 0.0;
  1922. Tint : Color := Black
  1923. ) with
  1924. Import => True,
  1925. Convention => C,
  1926. External_Name => "DrawCircleLinesV";
  1927. procedure Draw_Ellipse (
  1928. X : Integer := 0;
  1929. Y : Integer := 0;
  1930. Horizontal : Float := 0.0;
  1931. Vertical : Float := 0.0;
  1932. Tint : Color := Black
  1933. ) with
  1934. Import => True,
  1935. Convention => C,
  1936. External_Name => "DrawEllipse";
  1937. procedure Draw_Ellipse_Lines (
  1938. X : Integer := 0;
  1939. Y : Integer := 0;
  1940. Horizontal : Float := 0.0;
  1941. Vertical : Float := 0.0;
  1942. Tint : Color := Black
  1943. ) with
  1944. Import => True,
  1945. Convention => C,
  1946. External_Name => "DrawEllipseLines";
  1947. procedure Draw_Ring (
  1948. Center : Vector_2D := (others => 0.0);
  1949. Inner_Radius : Float := 0.0;
  1950. Outer_Radius : Float := 0.0;
  1951. From : Float := 0.0;
  1952. To : Float := 0.0;
  1953. Segments : Integer := 0;
  1954. Tint : Color := Black
  1955. ) with
  1956. Import => True,
  1957. Convention => C,
  1958. External_Name => "DrawRing";
  1959. procedure Draw_Ring_Lines (
  1960. Center : Vector_2D := (others => 0.0);
  1961. Inner_Radius : Float := 0.0;
  1962. Outer_Radius : Float := 0.0;
  1963. From : Float := 0.0;
  1964. To : Float := 0.0;
  1965. Segments : Integer := 0;
  1966. Tint : Color := Black
  1967. ) with
  1968. Import => True,
  1969. Convention => C,
  1970. External_Name => "DrawRingLines";
  1971. procedure Draw_Rectangle (
  1972. X : Integer := 0;
  1973. Y : Integer := 0;
  1974. Width : Integer := 0;
  1975. Height : Integer := 0;
  1976. Tint : Color := Black
  1977. ) with
  1978. Import => True,
  1979. Convention => C,
  1980. External_Name => "DrawRectangle";
  1981. procedure Draw_Rectangle_V (
  1982. Position : Vector_2D := (others => 0.0);
  1983. Size : Vector_2D := (others => 0.0);
  1984. Tint : Color := Black
  1985. ) with
  1986. Import => True,
  1987. Convention => C,
  1988. External_Name => "DrawRectangleV";
  1989. procedure Draw_Rectangle_Rec (
  1990. Data : Rectangle := No_Rectangle;
  1991. Tint : Color := Black
  1992. ) with
  1993. Import => True,
  1994. Convention => C,
  1995. External_Name => "DrawRectangleRec";
  1996. procedure Draw_Rectangle_Pro (
  1997. Data : Rectangle := No_Rectangle;
  1998. Origin : Vector_2D := (others => 0.0);
  1999. Rotation : Float := 0.0;
  2000. Tint : Color := Black
  2001. ) with
  2002. Import => True,
  2003. Convention => C,
  2004. External_Name => "DrawRectanglePro";
  2005. procedure Draw_Rectangle_Gradient_V (
  2006. X : Integer := 0;
  2007. Y : Integer := 0;
  2008. Width : Integer := 0;
  2009. Height : Integer := 0;
  2010. Color_1 : Color := Black;
  2011. Color_2 : Color := White
  2012. ) with
  2013. Import => True,
  2014. Convention => C,
  2015. External_Name => "DrawRectangleGradientV";
  2016. procedure Draw_Rectangle_Gradient_H (
  2017. X : Integer := 0;
  2018. Y : Integer := 0;
  2019. Width : Integer := 0;
  2020. Height : Integer := 0;
  2021. Color_1 : Color := Black;
  2022. Color_2 : Color := White
  2023. ) with
  2024. Import => True,
  2025. Convention => C,
  2026. External_Name => "DrawRectangleGradientH";
  2027. procedure Draw_Rectangle_Gradient_Ex (
  2028. Data : Rectangle := No_Rectangle;
  2029. Color_1 : Color := Red;
  2030. Color_2 : Color := Green;
  2031. Color_3 : Color := Blue;
  2032. Color_4 : Color := Black
  2033. ) with
  2034. Import => True,
  2035. Convention => C,
  2036. External_Name => "DrawRectangleGradientEx";
  2037. procedure Draw_Rectangle_Lines (
  2038. X : Integer := 0;
  2039. Y : Integer := 0;
  2040. Width : Integer := 0;
  2041. Height : Integer := 0;
  2042. Tint : Color := Black
  2043. ) with
  2044. Import => True,
  2045. Convention => C,
  2046. External_Name => "DrawRectangleLines";
  2047. procedure Draw_Rectangle_Lines_Ex (
  2048. Data : Rectangle := No_Rectangle;
  2049. Thickness : Float := 1.0;
  2050. Tint : Color := Black
  2051. ) with
  2052. Import => True,
  2053. Convention => C,
  2054. External_Name => "DrawRectangleLinesEx";
  2055. procedure Draw_Rectangle_Rounded (
  2056. Data : Rectangle := No_Rectangle;
  2057. Roundness : Float := 1.0;
  2058. Segments : Integer := 1;
  2059. Tint : Color := Black
  2060. ) with
  2061. Import => True,
  2062. Convention => C,
  2063. External_Name => "DrawRectangleRounded";
  2064. procedure Draw_Rectangle_Rounded_Lines (
  2065. Data : Rectangle := No_Rectangle;
  2066. Roundness : Float := 1.0;
  2067. Segments : Integer := 1;
  2068. Thickness : Float := 1.0;
  2069. Tint : Color := Black
  2070. ) with
  2071. Import => True,
  2072. Convention => C,
  2073. External_Name => "DrawRectangleRoundedLines";
  2074. --~procedure DrawTriangle (Vector2 v1, Vector2 v2, Vector2 v3, Color color) with
  2075. --~Import => True,
  2076. --~Convention => C,
  2077. --~External_Name => "";
  2078. --~procedure DrawTriangleLines (Vector2 v1, Vector2 v2, Vector2 v3, Color color) with
  2079. --~Import => True,
  2080. --~Convention => C,
  2081. --~External_Name => "";
  2082. --~procedure DrawTriangleFan (Vector2 *points, int pointCount, Color color) with
  2083. --~Import => True,
  2084. --~Convention => C,
  2085. --~External_Name => "";
  2086. --~procedure DrawTriangleStrip (Vector2 *points, int pointCount, Color color) with
  2087. --~Import => True,
  2088. --~Convention => C,
  2089. --~External_Name => "";
  2090. --~procedure DrawPoly (Vector2 center, int sides, float radius, float rotation, Color color) with
  2091. --~Import => True,
  2092. --~Convention => C,
  2093. --~External_Name => "";
  2094. --~procedure DrawPolyLines (Vector2 center, int sides, float radius, float rotation, Color color) with
  2095. --~Import => True,
  2096. --~Convention => C,
  2097. --~External_Name => "";
  2098. --~procedure DrawPolyLinesEx (Vector2 center, int sides, float radius, float rotation, float lineThick, Color color) with
  2099. --~Import => True,
  2100. --~Convention => C,
  2101. --~External_Name => "";
  2102. --~procedure DrawSplineLinear (Vector2 *points, int pointCount, float thick, Color color) with
  2103. --~Import => True,
  2104. --~Convention => C,
  2105. --~External_Name => "";
  2106. --~procedure DrawSplineBasis (Vector2 *points, int pointCount, float thick, Color color) with
  2107. --~Import => True,
  2108. --~Convention => C,
  2109. --~External_Name => "";
  2110. --~procedure DrawSplineCatmullRom (Vector2 *points, int pointCount, float thick, Color color) with
  2111. --~Import => True,
  2112. --~Convention => C,
  2113. --~External_Name => "";
  2114. --~procedure DrawSplineBezierQuadratic (Vector2 *points, int pointCount, float thick, Color color) with
  2115. --~Import => True,
  2116. --~Convention => C,
  2117. --~External_Name => "";
  2118. --~procedure DrawSplineBezierCubic (Vector2 *points, int pointCount, float thick, Color color) with
  2119. --~Import => True,
  2120. --~Convention => C,
  2121. --~External_Name => "";
  2122. --~procedure DrawSplineSegmentLinear (Vector2 p1, Vector2 p2, float thick, Color color) with
  2123. --~Import => True,
  2124. --~Convention => C,
  2125. --~External_Name => "";
  2126. --~procedure DrawSplineSegmentBasis (Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float thick, Color color) with
  2127. --~Import => True,
  2128. --~Convention => C,
  2129. --~External_Name => "";
  2130. --~procedure DrawSplineSegmentCatmullRom (Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float thick, Color color) with
  2131. --~Import => True,
  2132. --~Convention => C,
  2133. --~External_Name => "";
  2134. --~procedure DrawSplineSegmentBezierQuadratic (Vector2 p1, Vector2 c2, Vector2 p3, float thick, Color color) with
  2135. --~Import => True,
  2136. --~Convention => C,
  2137. --~External_Name => "";
  2138. --~procedure DrawSplineSegmentBezierCubic (Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, float thick, Color color) with
  2139. --~Import => True,
  2140. --~Convention => C,
  2141. --~External_Name => "";
  2142. --~function Vector2 GetSplinePointLinear (Vector2 startPos, Vector2 endPos, float t) with
  2143. --~Import => True,
  2144. --~Convention => C,
  2145. --~External_Name => "";
  2146. --~function Vector2 GetSplinePointBasis (Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float t) with
  2147. --~Import => True,
  2148. --~Convention => C,
  2149. --~External_Name => "";
  2150. --~function Vector2 GetSplinePointCatmullRom (Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float t) with
  2151. --~Import => True,
  2152. --~Convention => C,
  2153. --~External_Name => "";
  2154. --~function Vector2 GetSplinePointBezierQuad (Vector2 p1, Vector2 c2, Vector2 p3, float t) with
  2155. --~Import => True,
  2156. --~Convention => C,
  2157. --~External_Name => "";
  2158. --~function Vector2 GetSplinePointBezierCubic (Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, float t) with
  2159. --~Import => True,
  2160. --~Convention => C,
  2161. --~External_Name => "";
  2162. --~function bool CheckCollisionRecs (Rectangle rec1, Rectangle rec2) with
  2163. --~Import => True,
  2164. --~Convention => C,
  2165. --~External_Name => "";
  2166. --~function bool CheckCollisionCircles (Vector2 center1, float radius1, Vector2 center2, float radius2) with
  2167. --~Import => True,
  2168. --~Convention => C,
  2169. --~External_Name => "";
  2170. --~function bool CheckCollisionCircleRec (Vector2 center, float radius, Rectangle rec) with
  2171. --~Import => True,
  2172. --~Convention => C,
  2173. --~External_Name => "";
  2174. --~function bool CheckCollisionPointRec (Vector2 point, Rectangle rec) with
  2175. --~Import => True,
  2176. --~Convention => C,
  2177. --~External_Name => "";
  2178. --~function bool CheckCollisionPointCircle (Vector2 point, Vector2 center, float radius) with
  2179. --~Import => True,
  2180. --~Convention => C,
  2181. --~External_Name => "";
  2182. --~function bool CheckCollisionPointTriangle (Vector2 point, Vector2 p1, Vector2 p2, Vector2 p3) with
  2183. --~Import => True,
  2184. --~Convention => C,
  2185. --~External_Name => "";
  2186. --~function bool CheckCollisionPointPoly (Vector2 point, Vector2 *points, int pointCount) with
  2187. --~Import => True,
  2188. --~Convention => C,
  2189. --~External_Name => "";
  2190. --~function bool CheckCollisionLines (Vector2 startPos1, Vector2 endPos1, Vector2 startPos2, Vector2 endPos2, Vector2 *collisionPoint) with
  2191. --~Import => True,
  2192. --~Convention => C,
  2193. --~External_Name => "";
  2194. --~function bool CheckCollisionPointLine (Vector2 point, Vector2 p1, Vector2 p2, int threshold) with
  2195. --~Import => True,
  2196. --~Convention => C,
  2197. --~External_Name => "";
  2198. --~function Rectangle GetCollisionRec (Rectangle rec1, Rectangle rec2) with
  2199. --~Import => True,
  2200. --~Convention => C,
  2201. --~External_Name => "";
  2202. --~function Image LoadImage (const char *fileName) with
  2203. --~Import => True,
  2204. --~Convention => C,
  2205. --~External_Name => "";
  2206. --~function Image LoadImageRaw (const char *fileName, int width, int height, int format, int headerSize) with
  2207. --~Import => True,
  2208. --~Convention => C,
  2209. --~External_Name => "";
  2210. --~function Image LoadImageSvg (const char *fileNameOrString, int width, int height) with
  2211. --~Import => True,
  2212. --~Convention => C,
  2213. --~External_Name => "";
  2214. --~function Image LoadImageAnim (const char *fileName, int *frames) with
  2215. --~Import => True,
  2216. --~Convention => C,
  2217. --~External_Name => "";
  2218. --~function Image LoadImageFromMemory (const char *fileType, const unsigned char *fileData, int dataSize) with
  2219. --~Import => True,
  2220. --~Convention => C,
  2221. --~External_Name => "";
  2222. --~function Image LoadImageFromTexture (Texture2D texture) with
  2223. --~Import => True,
  2224. --~Convention => C,
  2225. --~External_Name => "";
  2226. --~function Image LoadImageFromScreen (void) with
  2227. --~Import => True,
  2228. --~Convention => C,
  2229. --~External_Name => "";
  2230. --~function bool IsImageReady (Image image) with
  2231. --~Import => True,
  2232. --~Convention => C,
  2233. --~External_Name => "";
  2234. --~procedure UnloadImage (Image image) with
  2235. --~Import => True,
  2236. --~Convention => C,
  2237. --~External_Name => "";
  2238. --~function bool ExportImage (Image image, const char *fileName) with
  2239. --~Import => True,
  2240. --~Convention => C,
  2241. --~External_Name => "";
  2242. --~function unsigned char *ExportImageToMemory (Image image, const char *fileType, int *fileSize) with
  2243. --~Import => True,
  2244. --~Convention => C,
  2245. --~External_Name => "";
  2246. --~function bool ExportImageAsCode (Image image, const char *fileName) with
  2247. --~Import => True,
  2248. --~Convention => C,
  2249. --~External_Name => "";
  2250. --~function Image GenImageColor (int width, int height, Color color) with
  2251. --~Import => True,
  2252. --~Convention => C,
  2253. --~External_Name => "";
  2254. --~function Image GenImageGradientLinear (int width, int height, int direction, Color start, Color end) with
  2255. --~Import => True,
  2256. --~Convention => C,
  2257. --~External_Name => "";
  2258. --~function Image GenImageGradientRadial (int width, int height, float density, Color inner, Color outer) with
  2259. --~Import => True,
  2260. --~Convention => C,
  2261. --~External_Name => "";
  2262. --~function Image GenImageGradientSquare (int width, int height, float density, Color inner, Color outer) with
  2263. --~Import => True,
  2264. --~Convention => C,
  2265. --~External_Name => "";
  2266. --~function Image GenImageChecked (int width, int height, int checksX, int checksY, Color col1, Color col2) with
  2267. --~Import => True,
  2268. --~Convention => C,
  2269. --~External_Name => "";
  2270. --~function Image GenImageWhiteNoise (int width, int height, float factor) with
  2271. --~Import => True,
  2272. --~Convention => C,
  2273. --~External_Name => "";
  2274. --~function Image GenImagePerlinNoise (int width, int height, int offsetX, int offsetY, float scale) with
  2275. --~Import => True,
  2276. --~Convention => C,
  2277. --~External_Name => "";
  2278. --~function Image GenImageCellular (int width, int height, int tileSize) with
  2279. --~Import => True,
  2280. --~Convention => C,
  2281. --~External_Name => "";
  2282. --~function Image GenImageText (int width, int height, const char *text) with
  2283. --~Import => True,
  2284. --~Convention => C,
  2285. --~External_Name => "";
  2286. --~function Image ImageCopy (Image image) with
  2287. --~Import => True,
  2288. --~Convention => C,
  2289. --~External_Name => "";
  2290. --~function Image ImageFromImage (Image image, Rectangle rec) with
  2291. --~Import => True,
  2292. --~Convention => C,
  2293. --~External_Name => "";
  2294. --~function Image ImageText (const char *text, int fontSize, Color color) with
  2295. --~Import => True,
  2296. --~Convention => C,
  2297. --~External_Name => "";
  2298. --~function Image ImageTextEx (Font font, const char *text, float fontSize, float spacing, Color tint) with
  2299. --~Import => True,
  2300. --~Convention => C,
  2301. --~External_Name => "";
  2302. --~procedure ImageFormat (Image *image, int newFormat) with
  2303. --~Import => True,
  2304. --~Convention => C,
  2305. --~External_Name => "";
  2306. --~procedure ImageToPOT (Image *image, Color fill) with
  2307. --~Import => True,
  2308. --~Convention => C,
  2309. --~External_Name => "";
  2310. --~procedure ImageCrop (Image *image, Rectangle crop) with
  2311. --~Import => True,
  2312. --~Convention => C,
  2313. --~External_Name => "";
  2314. --~procedure ImageAlphaCrop (Image *image, float threshold) with
  2315. --~Import => True,
  2316. --~Convention => C,
  2317. --~External_Name => "";
  2318. --~procedure ImageAlphaClear (Image *image, Color color, float threshold) with
  2319. --~Import => True,
  2320. --~Convention => C,
  2321. --~External_Name => "";
  2322. --~procedure ImageAlphaMask (Image *image, Image alphaMask) with
  2323. --~Import => True,
  2324. --~Convention => C,
  2325. --~External_Name => "";
  2326. --~procedure ImageAlphaPremultiply (Image *image) with
  2327. --~Import => True,
  2328. --~Convention => C,
  2329. --~External_Name => "";
  2330. --~procedure ImageBlurGaussian (Image *image, int blurSize) with
  2331. --~Import => True,
  2332. --~Convention => C,
  2333. --~External_Name => "";
  2334. --~procedure ImageKernelConvolution (Image *image, float* kernel, int kernelSize) with
  2335. --~Import => True,
  2336. --~Convention => C,
  2337. --~External_Name => "";
  2338. --~procedure ImageResize (Image *image, int newWidth, int newHeight) with
  2339. --~Import => True,
  2340. --~Convention => C,
  2341. --~External_Name => "";
  2342. --~procedure ImageResizeNN (Image *image, int newWidth,int newHeight) with
  2343. --~Import => True,
  2344. --~Convention => C,
  2345. --~External_Name => "";
  2346. --~procedure ImageResizeCanvas (Image *image, int newWidth, int newHeight, int offsetX, int offsetY, Color fill) with
  2347. --~Import => True,
  2348. --~Convention => C,
  2349. --~External_Name => "";
  2350. --~procedure ImageMipmaps (Image *image) with
  2351. --~Import => True,
  2352. --~Convention => C,
  2353. --~External_Name => "";
  2354. --~procedure ImageDither (Image *image, int rBpp, int gBpp, int bBpp, int aBpp) with
  2355. --~Import => True,
  2356. --~Convention => C,
  2357. --~External_Name => "";
  2358. --~procedure ImageFlipVertical (Image *image) with
  2359. --~Import => True,
  2360. --~Convention => C,
  2361. --~External_Name => "";
  2362. --~procedure ImageFlipHorizontal (Image *image) with
  2363. --~Import => True,
  2364. --~Convention => C,
  2365. --~External_Name => "";
  2366. --~procedure ImageRotate (Image *image, int degrees) with
  2367. --~Import => True,
  2368. --~Convention => C,
  2369. --~External_Name => "";
  2370. --~procedure ImageRotateCW (Image *image) with
  2371. --~Import => True,
  2372. --~Convention => C,
  2373. --~External_Name => "";
  2374. --~procedure ImageRotateCCW (Image *image) with
  2375. --~Import => True,
  2376. --~Convention => C,
  2377. --~External_Name => "";
  2378. --~procedure ImageColorTint (Image *image, Color color) with
  2379. --~Import => True,
  2380. --~Convention => C,
  2381. --~External_Name => "";
  2382. --~procedure ImageColorInvert (Image *image) with
  2383. --~Import => True,
  2384. --~Convention => C,
  2385. --~External_Name => "";
  2386. --~procedure ImageColorGrayscale (Image *image) with
  2387. --~Import => True,
  2388. --~Convention => C,
  2389. --~External_Name => "";
  2390. --~procedure ImageColorContrast (Image *image, float contrast) with
  2391. --~Import => True,
  2392. --~Convention => C,
  2393. --~External_Name => "";
  2394. --~procedure ImageColorBrightness (Image *image, int brightness) with
  2395. --~Import => True,
  2396. --~Convention => C,
  2397. --~External_Name => "";
  2398. --~procedure ImageColorReplace (Image *image, Color color, Color replace) with
  2399. --~Import => True,
  2400. --~Convention => C,
  2401. --~External_Name => "";
  2402. --~function Color *LoadImageColors (Image image) with
  2403. --~Import => True,
  2404. --~Convention => C,
  2405. --~External_Name => "";
  2406. --~function Color *LoadImagePalette (Image image, int maxPaletteSize, int *colorCount) with
  2407. --~Import => True,
  2408. --~Convention => C,
  2409. --~External_Name => "";
  2410. --~procedure UnloadImageColors (Color *colors) with
  2411. --~Import => True,
  2412. --~Convention => C,
  2413. --~External_Name => "";
  2414. --~procedure UnloadImagePalette (Color *colors) with
  2415. --~Import => True,
  2416. --~Convention => C,
  2417. --~External_Name => "";
  2418. --~function Rectangle GetImageAlphaBorder (Image image, float threshold) with
  2419. --~Import => True,
  2420. --~Convention => C,
  2421. --~External_Name => "";
  2422. --~function Color GetImageColor (Image image, int x, int y) with
  2423. --~Import => True,
  2424. --~Convention => C,
  2425. --~External_Name => "";
  2426. --~procedure ImageClearBackground (Image *dst, Color color) with
  2427. --~Import => True,
  2428. --~Convention => C,
  2429. --~External_Name => "";
  2430. --~procedure ImageDrawPixel (Image *dst, int posX, int posY, Color color) with
  2431. --~Import => True,
  2432. --~Convention => C,
  2433. --~External_Name => "";
  2434. --~procedure ImageDrawPixelV (Image *dst, Vector2 position, Color color) with
  2435. --~Import => True,
  2436. --~Convention => C,
  2437. --~External_Name => "";
  2438. --~procedure ImageDrawLine (Image *dst, int startPosX, int startPosY, int endPosX, int endPosY, Color color) with
  2439. --~Import => True,
  2440. --~Convention => C,
  2441. --~External_Name => "";
  2442. --~procedure ImageDrawLineV (Image *dst, Vector2 start, Vector2 end, Color color) with
  2443. --~Import => True,
  2444. --~Convention => C,
  2445. --~External_Name => "";
  2446. --~procedure ImageDrawCircle (Image *dst, int centerX, int centerY, int radius, Color color) with
  2447. --~Import => True,
  2448. --~Convention => C,
  2449. --~External_Name => "";
  2450. --~procedure ImageDrawCircleV (Image *dst, Vector2 center, int radius, Color color) with
  2451. --~Import => True,
  2452. --~Convention => C,
  2453. --~External_Name => "";
  2454. --~procedure ImageDrawCircleLines (Image *dst, int centerX, int centerY, int radius, Color color) with
  2455. --~Import => True,
  2456. --~Convention => C,
  2457. --~External_Name => "";
  2458. --~procedure ImageDrawCircleLinesV (Image *dst, Vector2 center, int radius, Color color) with
  2459. --~Import => True,
  2460. --~Convention => C,
  2461. --~External_Name => "";
  2462. --~procedure ImageDrawRectangle (Image *dst, int posX, int posY, int width, int height, Color color) with
  2463. --~Import => True,
  2464. --~Convention => C,
  2465. --~External_Name => "";
  2466. --~procedure ImageDrawRectangleV (Image *dst, Vector2 position, Vector2 size, Color color) with
  2467. --~Import => True,
  2468. --~Convention => C,
  2469. --~External_Name => "";
  2470. --~procedure ImageDrawRectangleRec (Image *dst, Rectangle rec, Color color) with
  2471. --~Import => True,
  2472. --~Convention => C,
  2473. --~External_Name => "";
  2474. --~procedure ImageDrawRectangleLines (Image *dst, Rectangle rec, int thick, Color color) with
  2475. --~Import => True,
  2476. --~Convention => C,
  2477. --~External_Name => "";
  2478. --~procedure ImageDraw (Image *dst, Image src, Rectangle srcRec, Rectangle dstRec, Color tint) with
  2479. --~Import => True,
  2480. --~Convention => C,
  2481. --~External_Name => "";
  2482. --~procedure ImageDrawText (Image *dst, const char *text, int posX, int posY, int fontSize, Color color) with
  2483. --~Import => True,
  2484. --~Convention => C,
  2485. --~External_Name => "";
  2486. --~procedure ImageDrawTextEx (Image *dst, Font font, const char *text, Vector2 position, float fontSize, float spacing, Color tint) with
  2487. --~Import => True,
  2488. --~Convention => C,
  2489. --~External_Name => "";
  2490. function Load_Texture (
  2491. File_Path : String := ""
  2492. ) return Texture with
  2493. Import => True,
  2494. Convention => C,
  2495. External_Name => "LoadTexture";
  2496. --~function Texture2D LoadTextureFromImage (Image image) with
  2497. --~Import => True,
  2498. --~Convention => C,
  2499. --~External_Name => "";
  2500. --~function TextureCubemap LoadTextureCubemap (Image image, int layout) with
  2501. --~Import => True,
  2502. --~Convention => C,
  2503. --~External_Name => "";
  2504. --~function RenderTexture2D LoadRenderTexture (int width, int height) with
  2505. --~Import => True,
  2506. --~Convention => C,
  2507. --~External_Name => "";
  2508. --~function bool IsTextureReady (Texture2D texture) with
  2509. --~Import => True,
  2510. --~Convention => C,
  2511. --~External_Name => "";
  2512. procedure Unload_Texture (
  2513. Data : Texture := No_Texture
  2514. ) with
  2515. Import => True,
  2516. Convention => C,
  2517. External_Name => "UnloadTexture";
  2518. function Is_Render_Texture_Ready (
  2519. Target : Render_Texture := No_Render_Texture
  2520. ) return Logical with
  2521. Import => True,
  2522. Convention => C,
  2523. External_Name => "IsRenderTextureReady";
  2524. procedure Unload_Render_Texture (
  2525. Target : Render_Texture := No_Render_Texture
  2526. ) with
  2527. Import => True,
  2528. Convention => C,
  2529. External_Name => "UnloadRenderTexture";
  2530. procedure Update_Texture (
  2531. Data : Texture := No_Texture;
  2532. Pixels : Pointer := null
  2533. ) with
  2534. Import => True,
  2535. Convention => C,
  2536. External_Name => "UpdateTexture";
  2537. procedure Update_Texture_Rec (
  2538. Data : Texture := No_Texture;
  2539. Source : Rectangle := No_Rectangle;
  2540. Pixels : Pointer := null
  2541. ) with
  2542. Import => True,
  2543. Convention => C,
  2544. External_Name => "UpdateTextureRec";
  2545. procedure Gen_Texture_Mipmaps (
  2546. Data : Texture := No_Texture
  2547. ) with
  2548. Import => True,
  2549. Convention => C,
  2550. External_Name => "GenTextureMipmaps";
  2551. procedure Set_Texture_Filter (
  2552. Data : Texture := No_Texture;
  2553. Filter : Texture_Filter := Texture_Filter_Point
  2554. ) with
  2555. Import => True,
  2556. Convention => C,
  2557. External_Name => "SetTextureFilter";
  2558. procedure Set_Texture_Wrap (
  2559. Data : Texture := No_Texture;
  2560. Wrap : Texture_Wrap := Texture_Wrap_Repeat
  2561. ) with
  2562. Import => True,
  2563. Convention => C,
  2564. External_Name => "SetTextureWrap";
  2565. procedure Draw_Texture (
  2566. Data : Texture := No_Texture;
  2567. X : Integer := 0;
  2568. Y : Integer := 0;
  2569. Tint : Color := White
  2570. ) with
  2571. Import => True,
  2572. Convention => C,
  2573. External_Name => "DrawTexture";
  2574. procedure Draw_Texture_V (
  2575. Data : Texture := No_Texture;
  2576. Position : Vector_2D := (others => 0.0);
  2577. Tint : Color := White
  2578. ) with
  2579. Import => True,
  2580. Convention => C,
  2581. External_Name => "DrawTextureV";
  2582. procedure Draw_Texture_Ex (
  2583. Data : Texture := No_Texture;
  2584. Position : Vector_2D := (others => 0.0);
  2585. Rotation : Float := 0.0;
  2586. Scale : Float := 0.0;
  2587. Tint : Color := White
  2588. ) with
  2589. Import => True,
  2590. Convention => C,
  2591. External_Name => "DrawTextureEx";
  2592. procedure Draw_Texture_Rec (
  2593. Data : Texture := No_Texture;
  2594. Source : Rectangle := No_Rectangle;
  2595. Position : Vector_2D := (others => 0.0);
  2596. Tint : Color := White
  2597. ) with
  2598. Import => True,
  2599. Convention => C,
  2600. External_Name => "DrawTextureRec";
  2601. procedure Draw_Texture_Pro (
  2602. Data : Texture := No_Texture;
  2603. Source : Rectangle := No_Rectangle;
  2604. Destination : Rectangle := No_Rectangle;
  2605. Origin : Vector_2D := (others => 0.0);
  2606. Rotation : Float := 0.0;
  2607. Tint : Color := White
  2608. ) with
  2609. Import => True,
  2610. Convention => C,
  2611. External_Name => "DrawTexturePro";
  2612. --~procedure DrawTextureNPatch (Texture2D texture, NPatchInfo nPatchInfo, Rectangle dest, Vector2 origin, float rotation, Color tint) with
  2613. --~Import => True,
  2614. --~Convention => C,
  2615. --~External_Name => "";
  2616. --~function Color Fade (Color color, float alpha) with
  2617. --~Import => True,
  2618. --~Convention => C,
  2619. --~External_Name => "";
  2620. --~function int ColorToInt (Color color) with
  2621. --~Import => True,
  2622. --~Convention => C,
  2623. --~External_Name => "";
  2624. --~function Vector4 ColorNormalize (Color color) with
  2625. --~Import => True,
  2626. --~Convention => C,
  2627. --~External_Name => "";
  2628. --~function Color ColorFromNormalized (Vector4 normalized) with
  2629. --~Import => True,
  2630. --~Convention => C,
  2631. --~External_Name => "";
  2632. --~function Vector3 ColorToHSV (Color color) with
  2633. --~Import => True,
  2634. --~Convention => C,
  2635. --~External_Name => "";
  2636. --~function Color ColorFromHSV (float hue, float saturation, float value) with
  2637. --~Import => True,
  2638. --~Convention => C,
  2639. --~External_Name => "";
  2640. --~function Color ColorTint (Color color, Color tint) with
  2641. --~Import => True,
  2642. --~Convention => C,
  2643. --~External_Name => "";
  2644. --~function Color ColorBrightness (Color color, float factor) with
  2645. --~Import => True,
  2646. --~Convention => C,
  2647. --~External_Name => "";
  2648. --~function Color ColorContrast (Color color, float contrast) with
  2649. --~Import => True,
  2650. --~Convention => C,
  2651. --~External_Name => "";
  2652. --~function Color ColorAlpha (Color color, float alpha) with
  2653. --~Import => True,
  2654. --~Convention => C,
  2655. --~External_Name => "";
  2656. --~function Color ColorAlphaBlend (Color dst, Color src, Color tint) with
  2657. --~Import => True,
  2658. --~Convention => C,
  2659. --~External_Name => "";
  2660. --~function Color GetColor (unsigned int hexValue) with
  2661. --~Import => True,
  2662. --~Convention => C,
  2663. --~External_Name => "";
  2664. --~function Color GetPixelColor (void *srcPtr, int format) with
  2665. --~Import => True,
  2666. --~Convention => C,
  2667. --~External_Name => "";
  2668. --~procedure SetPixelColor (void *dstPtr, Color color, int format) with
  2669. --~Import => True,
  2670. --~Convention => C,
  2671. --~External_Name => "";
  2672. --~function int GetPixelDataSize (int width, int height, int format) with
  2673. --~Import => True,
  2674. --~Convention => C,
  2675. --~External_Name => "";
  2676. function Get_Font_Default return Font with
  2677. Import => True,
  2678. Convention => C,
  2679. External_Name => "GetFontDefault";
  2680. function Load_Font (
  2681. File_Name : String := ""
  2682. ) return Font with
  2683. Import => True,
  2684. Convention => C,
  2685. External_Name => "LoadFont";
  2686. function Load_Font_Ex (
  2687. File_Name : String := "";
  2688. Font_Size : Integer := 32;
  2689. Code_Points : access Integer := null;
  2690. Code_Point_Count : Natural := 0
  2691. ) return Font with
  2692. Import => True,
  2693. Convention => C,
  2694. External_Name => "LoadFontEx";
  2695. function Load_Font_From_Image (
  2696. Data : Image := No_Image;
  2697. Key : Color := White;
  2698. First_Character : Integer := 0
  2699. ) return Font with
  2700. Import => True,
  2701. Convention => C,
  2702. External_Name => "LoadFontFromImage";
  2703. function Load_Font_From_Memory (
  2704. File_Type : String := "";
  2705. File_Data : Pointer := null;
  2706. Data_Size : Natural := 0;
  2707. Font_Size : Integer := 32;
  2708. Code_Points : access Integer := null;
  2709. Code_Point_Count : Natural := 0
  2710. ) return Font with
  2711. Import => True,
  2712. Convention => C,
  2713. External_Name => "LoadFontFromMemory";
  2714. function Is_Font_Ready (
  2715. Data : Font := No_Font
  2716. ) return Logical with
  2717. Import => True,
  2718. Convention => C,
  2719. External_Name => "IsFontReady";
  2720. function Load_Font_Data (
  2721. File_Data : Pointer := null;
  2722. Data_Size : Natural := 0;
  2723. Font_Size : Integer := 32;
  2724. Code_Points : access Integer := null;
  2725. Code_Point_Count : Natural := 0;
  2726. Kind : Integer := 0
  2727. ) return access Glyph_Info with
  2728. Import => True,
  2729. Convention => C,
  2730. External_Name => "LoadFontData";
  2731. function Gen_Image_Font_Atlas (
  2732. Glyphs : access Glyph_Info := null;
  2733. Glyph_Rectangles : access Rectangle := null;
  2734. Glyph_Count : Integer := 0;
  2735. Font_Size : Integer := 32;
  2736. Padding : Integer := 0;
  2737. Pack_Method : Integer := 0
  2738. ) return Image with
  2739. Import => True,
  2740. Convention => C,
  2741. External_Name => "GenImageFontAtlas";
  2742. procedure Unload_Font_Data (
  2743. Glyphs : access Glyph_Info := null;
  2744. Glyph_Count : Integer := 0
  2745. ) with
  2746. Import => True,
  2747. Convention => C,
  2748. External_Name => "UnloadFontData";
  2749. procedure Unload_Font (
  2750. Data : Font := No_Font
  2751. ) with
  2752. Import => True,
  2753. Convention => C,
  2754. External_Name => "UnloadFont";
  2755. function Export_Font_As_Code (
  2756. Data : Font := No_Font;
  2757. File_Name : String := ""
  2758. ) return Logical with
  2759. Import => True,
  2760. Convention => C,
  2761. External_Name => "ExportFontAsCode";
  2762. procedure Draw_FPS (
  2763. X : Integer := 0;
  2764. Y : Integer := 0
  2765. ) with
  2766. Import => True,
  2767. Convention => C,
  2768. External_Name => "DrawFPS";
  2769. procedure Draw_Text (
  2770. Text : String := "";
  2771. X : Integer := 0;
  2772. Y : Integer := 0;
  2773. Size : Integer := 32;
  2774. Tint : Color := White
  2775. ) with
  2776. Import => True,
  2777. Convention => C,
  2778. External_Name => "DrawText";
  2779. procedure Draw_Text_Ex (
  2780. Data : Font := Get_Font_Default;
  2781. Text : String := "";
  2782. Position : Vector_2D := (others => 0.0);
  2783. Font_Size : Float := 0.0;
  2784. Spacing : Float := 0.0;
  2785. Tint : Color := White
  2786. ) with
  2787. Import => True,
  2788. Convention => C,
  2789. External_Name => "DrawTextEx";
  2790. procedure Draw_Text_Pro (
  2791. Data : Font := Get_Font_Default;
  2792. Text : String := "";
  2793. Position : Vector_2D := (others => 0.0);
  2794. Origin : Vector_2D := (others => 0.0);
  2795. Rotation : Float := 0.0;
  2796. Font_Size : Float := 0.0;
  2797. Spacing : Float := 0.0;
  2798. Tint : Color := White
  2799. ) with
  2800. Import => True,
  2801. Convention => C,
  2802. External_Name => "DrawTextPro";
  2803. --~procedure DrawTextCodepoint (Font font, int codepoint, Vector2 position, float fontSize, Color tint) with
  2804. --~Import => True,
  2805. --~Convention => C,
  2806. --~External_Name => "";
  2807. --~procedure DrawTextCodepoints (Font font, const int *codepoints, int codepointCount, Vector2 position, float fontSize, float spacing, Color tint) with
  2808. --~Import => True,
  2809. --~Convention => C,
  2810. --~External_Name => "";
  2811. procedure Set_Text_Line_Spacing (
  2812. Spacing : Integer := 0
  2813. ) with
  2814. Import => True,
  2815. Convention => C,
  2816. External_Name => "SetTextLineSpacing";
  2817. function Measure_Text (
  2818. Text : String := "";
  2819. Font_Size : Integer := 0
  2820. ) return Integer with
  2821. Import => True,
  2822. Convention => C,
  2823. External_Name => "MeasureText";
  2824. function Measure_Text_Ex (
  2825. Data : Font := Get_Font_Default;
  2826. Text : String := "";
  2827. Font_Size : Float := 0.0;
  2828. Spacing : Float := 0.0
  2829. ) return Vector_2D with
  2830. Import => True,
  2831. Convention => C,
  2832. External_Name => "MeasureTextEx";
  2833. function Get_Glyph_Index (
  2834. Data : Font := Get_Font_Default;
  2835. Code_Point : Integer := 0
  2836. ) return Integer with
  2837. Import => True,
  2838. Convention => C,
  2839. External_Name => "GetGlyphIndex";
  2840. function Get_Glyph_Info (
  2841. Data : Font := Get_Font_Default;
  2842. Code_Point : Integer := 0
  2843. ) return Glyph_Info with
  2844. Import => True,
  2845. Convention => C,
  2846. External_Name => "GetGlyphInfo";
  2847. function Get_Glyph_Atlas_Rec (
  2848. Data : Font := Get_Font_Default;
  2849. Code_Point : Integer := 0
  2850. ) return Rectangle with
  2851. Import => True,
  2852. Convention => C,
  2853. External_Name => "GetGlyphAtlasRec";
  2854. function Load_UTF8 (
  2855. Code_Points : access Integer := null;
  2856. Length : Integer := 0
  2857. ) return access Character with
  2858. Import => True,
  2859. Convention => C,
  2860. External_Name => "LoadUTF8";
  2861. procedure Unload_UTF8 (
  2862. Text : access Character := null
  2863. ) with
  2864. Import => True,
  2865. Convention => C,
  2866. External_Name => "UnloadUTF8";
  2867. --~function int *LoadCodepoints (const char *text, int *count) with
  2868. --~Import => True,
  2869. --~Convention => C,
  2870. --~External_Name => "";
  2871. --~procedure UnloadCodepoints (int *codepoints) with
  2872. --~Import => True,
  2873. --~Convention => C,
  2874. --~External_Name => "";
  2875. --~function int GetCodepointCount (const char *text) with
  2876. --~Import => True,
  2877. --~Convention => C,
  2878. --~External_Name => "";
  2879. --~function int GetCodepoint (const char *text, int *codepointSize) with
  2880. --~Import => True,
  2881. --~Convention => C,
  2882. --~External_Name => "";
  2883. --~function int GetCodepointNext (const char *text, int *codepointSize) with
  2884. --~Import => True,
  2885. --~Convention => C,
  2886. --~External_Name => "";
  2887. --~function int GetCodepointPrevious (const char *text, int *codepointSize) with
  2888. --~Import => True,
  2889. --~Convention => C,
  2890. --~External_Name => "";
  2891. --~function const char *CodepointToUTF8 (int codepoint, int *utf8Size) with
  2892. --~Import => True,
  2893. --~Convention => C,
  2894. --~External_Name => "";
  2895. --~function int TextCopy (char *dst, const char *src) with
  2896. --~Import => True,
  2897. --~Convention => C,
  2898. --~External_Name => "";
  2899. --~function bool TextIsEqual (const char *text1, const char *text2) with
  2900. --~Import => True,
  2901. --~Convention => C,
  2902. --~External_Name => "";
  2903. --~function unsigned int TextLength (const char *text) with
  2904. --~Import => True,
  2905. --~Convention => C,
  2906. --~External_Name => "";
  2907. --~function const char *TextFormat (const char *text, ...) with
  2908. --~Import => True,
  2909. --~Convention => C,
  2910. --~External_Name => "";
  2911. --~function const char *TextSubtext (const char *text, int position, int length) with
  2912. --~Import => True,
  2913. --~Convention => C,
  2914. --~External_Name => "";
  2915. --~function char *TextReplace (char *text, const char *replace, const char *by) with
  2916. --~Import => True,
  2917. --~Convention => C,
  2918. --~External_Name => "";
  2919. --~function char *TextInsert (const char *text, const char *insert, int position) with
  2920. --~Import => True,
  2921. --~Convention => C,
  2922. --~External_Name => "";
  2923. --~function const char *TextJoin (const char **textList, int count, const char *delimiter) with
  2924. --~Import => True,
  2925. --~Convention => C,
  2926. --~External_Name => "";
  2927. --~function const char **TextSplit (const char *text, char delimiter, int *count) with
  2928. --~Import => True,
  2929. --~Convention => C,
  2930. --~External_Name => "";
  2931. --~procedure TextAppend (char *text, const char *append, int *position) with
  2932. --~Import => True,
  2933. --~Convention => C,
  2934. --~External_Name => "";
  2935. --~function int TextFindIndex (const char *text, const char *find) with
  2936. --~Import => True,
  2937. --~Convention => C,
  2938. --~External_Name => "";
  2939. --~function const char *TextToUpper (const char *text) with
  2940. --~Import => True,
  2941. --~Convention => C,
  2942. --~External_Name => "";
  2943. --~function const char *TextToLower (const char *text) with
  2944. --~Import => True,
  2945. --~Convention => C,
  2946. --~External_Name => "";
  2947. --~function const char *TextToPascal (const char *text) with
  2948. --~Import => True,
  2949. --~Convention => C,
  2950. --~External_Name => "";
  2951. --~function int TextToInteger (const char *text) with
  2952. --~Import => True,
  2953. --~Convention => C,
  2954. --~External_Name => "";
  2955. --~procedure DrawLine3D (Vector3 startPos, Vector3 endPos, Color color) with
  2956. --~Import => True,
  2957. --~Convention => C,
  2958. --~External_Name => "";
  2959. --~procedure DrawPoint3D (Vector3 position, Color color) with
  2960. --~Import => True,
  2961. --~Convention => C,
  2962. --~External_Name => "";
  2963. --~procedure DrawCircle3D (Vector3 center, float radius, Vector3 rotationAxis, float rotationAngle, Color color) with
  2964. --~Import => True,
  2965. --~Convention => C,
  2966. --~External_Name => "";
  2967. --~procedure DrawTriangle3D (Vector3 v1, Vector3 v2, Vector3 v3, Color color) with
  2968. --~Import => True,
  2969. --~Convention => C,
  2970. --~External_Name => "";
  2971. --~procedure DrawTriangleStrip3D (Vector3 *points, int pointCount, Color color) with
  2972. --~Import => True,
  2973. --~Convention => C,
  2974. --~External_Name => "";
  2975. procedure Draw_Cube (
  2976. Position : Vector_3D := (others => 0.0);
  2977. Width : Float := 0.0;
  2978. Height : Float := 0.0;
  2979. Length : Float := 0.0;
  2980. Tint : Color := White
  2981. ) with
  2982. Import => True,
  2983. Convention => C,
  2984. External_Name => "DrawCube";
  2985. --~procedure DrawCubeV (Vector3 position, Vector3 size, Color color) with
  2986. --~Import => True,
  2987. --~Convention => C,
  2988. --~External_Name => "";
  2989. procedure Draw_Cube_Wires (
  2990. Position : Vector_3D := (others => 0.0);
  2991. Width : Float := 0.0;
  2992. Height : Float := 0.0;
  2993. Length : Float := 0.0;
  2994. Tint : Color := Black
  2995. ) with
  2996. Import => True,
  2997. Convention => C,
  2998. External_Name => "DrawCubeWires";
  2999. --~procedure DrawCubeWiresV (Vector3 position, Vector3 size, Color color) with
  3000. --~Import => True,
  3001. --~Convention => C,
  3002. --~External_Name => "";
  3003. --~procedure DrawSphere (Vector3 centerPos, float radius, Color color) with
  3004. --~Import => True,
  3005. --~Convention => C,
  3006. --~External_Name => "";
  3007. --~procedure DrawSphereEx (Vector3 centerPos, float radius, int rings, int slices, Color color) with
  3008. --~Import => True,
  3009. --~Convention => C,
  3010. --~External_Name => "";
  3011. --~procedure DrawSphereWires (Vector3 centerPos, float radius, int rings, int slices, Color color) with
  3012. --~Import => True,
  3013. --~Convention => C,
  3014. --~External_Name => "";
  3015. --~procedure DrawCylinder (Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color) with
  3016. --~Import => True,
  3017. --~Convention => C,
  3018. --~External_Name => "";
  3019. --~procedure DrawCylinderEx (Vector3 startPos, Vector3 endPos, float startRadius, float endRadius, int sides, Color color) with
  3020. --~Import => True,
  3021. --~Convention => C,
  3022. --~External_Name => "";
  3023. --~procedure DrawCylinderWires (Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color) with
  3024. --~Import => True,
  3025. --~Convention => C,
  3026. --~External_Name => "";
  3027. --~procedure DrawCylinderWiresEx (Vector3 startPos, Vector3 endPos, float startRadius, float endRadius, int sides, Color color) with
  3028. --~Import => True,
  3029. --~Convention => C,
  3030. --~External_Name => "";
  3031. --~procedure DrawCapsule (Vector3 startPos, Vector3 endPos, float radius, int slices, int rings, Color color) with
  3032. --~Import => True,
  3033. --~Convention => C,
  3034. --~External_Name => "";
  3035. --~procedure DrawCapsuleWires (Vector3 startPos, Vector3 endPos, float radius, int slices, int rings, Color color) with
  3036. --~Import => True,
  3037. --~Convention => C,
  3038. --~External_Name => "";
  3039. procedure Draw_Plane (
  3040. Center : Vector_3D := (others => 0.0);
  3041. Size : Vector_2D := (others => 0.0);
  3042. Tint : Color := White
  3043. ) with
  3044. Import => True,
  3045. Convention => C,
  3046. External_Name => "DrawPlane";
  3047. --~procedure DrawRay (Ray ray, Color color) with
  3048. --~Import => True,
  3049. --~Convention => C,
  3050. --~External_Name => "";
  3051. --~procedure DrawGrid (int slices, float spacing) with
  3052. --~Import => True,
  3053. --~Convention => C,
  3054. --~External_Name => "";
  3055. function Load_Model (
  3056. File_Name : String := ""
  3057. ) return Model with
  3058. Import => True,
  3059. Convention => C,
  3060. External_Name => "LoadModel";
  3061. --~function Model LoadModelFromMesh (Mesh mesh) with
  3062. --~Import => True,
  3063. --~Convention => C,
  3064. --~External_Name => "";
  3065. --~function bool IsModelReady (Model model) with
  3066. --~Import => True,
  3067. --~Convention => C,
  3068. --~External_Name => "";
  3069. procedure Unload_Model (
  3070. Data : Model := No_Model
  3071. ) with
  3072. Import => True,
  3073. Convention => C,
  3074. External_Name => "UnloadModel";
  3075. function GetModelBoundingBox (
  3076. Data : Model := No_Model
  3077. ) return Bounding_Box with
  3078. Import => True,
  3079. Convention => C,
  3080. External_Name => "GetModelBoundingBox";
  3081. procedure Draw_Model (
  3082. Data : Model := No_Model;
  3083. Position : Vector_3D := (others => 0.0);
  3084. Scale : Float := 1.0;
  3085. Tint : Color := White
  3086. ) with
  3087. Import => True,
  3088. Convention => C,
  3089. External_Name => "DrawModel";
  3090. procedure Draw_Model_Ex (
  3091. Data : Model := No_Model;
  3092. Position : Vector_3D := (others => 0.0);
  3093. Axis : Vector_3D := (others => 0.0);
  3094. Angle : Float := 0.0;
  3095. Scale : Vector_3D := (1.0, 1.0, 1.0);
  3096. Tint : Color := White
  3097. ) with
  3098. Import => True,
  3099. Convention => C,
  3100. External_Name => "DrawModelEx";
  3101. procedure Draw_Model_Wires (
  3102. Data : Model := No_Model;
  3103. Position : Vector_3D := (others => 0.0);
  3104. Scale : Float := 0.0;
  3105. Tint : Color := White
  3106. ) with
  3107. Import => True,
  3108. Convention => C,
  3109. External_Name => "DrawModelWires";
  3110. procedure Draw_Model_Wires_Ex (
  3111. Data : Model := No_Model;
  3112. Position : Vector_3D := (others => 0.0);
  3113. Axis : Vector_3D := (others => 0.0);
  3114. Angle : Float := 0.0;
  3115. Scale : Vector_3D := (1.0, 1.0, 1.0);
  3116. Tint : Color := White
  3117. ) with
  3118. Import => True,
  3119. Convention => C,
  3120. External_Name => "DrawModelWiresEx";
  3121. procedure Draw_Bounding_Box (
  3122. Box : BoundingBox := No_Bounding_Box;
  3123. Tint : Color := White
  3124. ) with
  3125. Import => True,
  3126. Convention => C,
  3127. External_Name => "DrawBoundingBox";
  3128. procedure Draw_Billboard (
  3129. Camera : Camera_3D := No_Camera_3D;
  3130. Billboard : Texture := No_Texture;
  3131. Position : Vector_3D := (others => 0.0);
  3132. Size : Float := 0.0;
  3133. Tint : Color := White
  3134. ) with
  3135. Import => True,
  3136. Convention => C,
  3137. External_Name => "DrawBillboard";
  3138. procedure Draw_Billboard_Rec (
  3139. Camera : Camera_3D := No_Camera_3D;
  3140. Billboard : Texture := No_Texture;
  3141. Source : Rectangle := No_Rectangle;
  3142. Position : Vector_3D := (others => 0.0);
  3143. Size : Vector_2D := (others => 0.0);
  3144. Tint : Color := White
  3145. ) with
  3146. Import => True,
  3147. Convention => C,
  3148. External_Name => "DrawBillboardRec";
  3149. procedure Draw_Billboard_Pro (
  3150. Camera : Camera_3D := No_Camera_3D;
  3151. Billboard : Texture := No_Texture;
  3152. Source : Rectangle := No_Rectangle;
  3153. Position : Vector_3D := (others => 0.0);
  3154. Up : Vector_3D := (others => 0.0);
  3155. Size : Vector_2D := (others => 0.0);
  3156. Origin : Vector_2D := (others => 0.0);
  3157. Rotation : Float := 0.0;
  3158. Tint : Color := White
  3159. ) with
  3160. Import => True,
  3161. Convention => C,
  3162. External_Name => "DrawBillboardPro";
  3163. procedure Upload_Mesh (
  3164. Data : access Mesh := null;
  3165. Dynamic : Logical := False
  3166. ) with
  3167. Import => True,
  3168. Convention => C,
  3169. External_Name => "UploadMesh";
  3170. procedure Update_Mesh_Buffer (
  3171. Data : Mesh := No_Mesh;
  3172. Index : Integer := 0;
  3173. This : Pointer := null;
  3174. Data_Size : Natural := 0;
  3175. Offset : Integer := 0
  3176. ) with
  3177. Import => True,
  3178. Convention => C,
  3179. External_Name => "UpdateMeshBuffer";
  3180. procedure Unload_Mesh (
  3181. Data : Mesh := No_Mesh
  3182. ) with
  3183. Import => True,
  3184. Convention => C,
  3185. External_Name => "UnloadMesh";
  3186. procedure Draw_Mesh (
  3187. Data : Mesh := No_Mesh;
  3188. Pixels : Material := No_Material;
  3189. Transform : Matrix_4D := (others => 0.0)
  3190. ) with
  3191. Import => True,
  3192. Convention => C,
  3193. External_Name => "DrawMesh";
  3194. procedure Draw_Mesh_Instanced (
  3195. Data : Mesh := No_Mesh;
  3196. Use_Material : Material := No_Material;
  3197. Transforms : access Matrix_4D := null;
  3198. Instances : Integer := 0
  3199. ) with
  3200. Import => True,
  3201. Convention => C,
  3202. External_Name => "DrawMeshInstanced";
  3203. function Get_Mesh_Bounding_Box (
  3204. Data : Mesh := No_Mesh
  3205. ) return Bounding_Box with
  3206. Import => True,
  3207. Convention => C,
  3208. External_Name => "GetMeshBoundingBox";
  3209. procedure Gen_Mesh_Tangents (
  3210. Data : access Mesh := null
  3211. ) with
  3212. Import => True,
  3213. Convention => C,
  3214. External_Name => "GenMeshTangents";
  3215. function Export_Mesh (
  3216. Data : Mesh := No_Mesh;
  3217. File_Name : String := ""
  3218. ) return Logical with
  3219. Import => True,
  3220. Convention => C,
  3221. External_Name => "ExportMesh";
  3222. function Export_Mesh_As_Code (
  3223. Data : Mesh := No_Mesh;
  3224. File_Name : String := ""
  3225. ) return Logical with
  3226. Import => True,
  3227. Convention => C,
  3228. External_Name => "ExportMeshAsCode";
  3229. function Gen_Mesh_Poly (
  3230. Sides : Integer := 0;
  3231. Radius : Float := 0.0
  3232. ) return Mesh with
  3233. Import => True,
  3234. Convention => C,
  3235. External_Name => "GenMeshPoly";
  3236. function Gen_Mesh_Plane (
  3237. Width : Float := 1.0;
  3238. Height : Float := 1.0;
  3239. X : Integer := 1;
  3240. Z : Integer := 1
  3241. ) return Mesh with
  3242. Import => True,
  3243. Convention => C,
  3244. External_Name => "GenMeshPlane";
  3245. function Gen_Mesh_Cube (
  3246. Width : Float := 0.0;
  3247. Height : Float := 0.0;
  3248. Length : Float := 0.0
  3249. ) return Mesh with
  3250. Import => True,
  3251. Convention => C,
  3252. External_Name => "GenMeshCube";
  3253. function Gen_Mesh_Sphere (
  3254. Radius : Float := 0.0;
  3255. Rings : Integer := 0;
  3256. Slices : Integer := 0
  3257. ) return Mesh with
  3258. Import => True,
  3259. Convention => C,
  3260. External_Name => "GenMeshSphere";
  3261. function Gen_Mesh_Hemisphere (
  3262. Radius : Float := 0.0;
  3263. Rings : Integer := 0;
  3264. Slices : Integer := 0
  3265. ) return Mesh with
  3266. Import => True,
  3267. Convention => C,
  3268. External_Name => "GenMeshHemiSphere";
  3269. function Gen_Mesh_Cylinder (
  3270. Radius : Float := 0.0;
  3271. Height : Float := 0.0;
  3272. Slices : Integer := 0
  3273. ) return Mesh with
  3274. Import => True,
  3275. Convention => C,
  3276. External_Name => "GenMeshCylinder";
  3277. function Gen_Mesh_Cone (
  3278. Radius : Float := 0.0;
  3279. Height : Float := 0.0;
  3280. Slices : Integer := 0
  3281. ) return Mesh with
  3282. Import => True,
  3283. Convention => C,
  3284. External_Name => "GenMeshCone";
  3285. function Gen_Mesh_Torus (
  3286. Radius : Float := 0.0;
  3287. Size : Float := 0.0;
  3288. Segments : Integer := 0;
  3289. Sides : Integer := 0
  3290. ) return Mesh with
  3291. Import => True,
  3292. Convention => C,
  3293. External_Name => "GenMeshTorus";
  3294. function Gen_Mesh_Knot (
  3295. Radius : Float := 0.0;
  3296. Size : Float := 0.0;
  3297. Segments : Integer := 0;
  3298. Sides : Integer := 0
  3299. ) return Mesh with
  3300. Import => True,
  3301. Convention => C,
  3302. External_Name => "GenMeshKnot";
  3303. function Gen_Mesh_Height_Map (
  3304. Height_Map : Image := No_Image;
  3305. Size : Vector_3D := (others => 0.0)
  3306. ) return Mesh with
  3307. Import => True,
  3308. Convention => C,
  3309. External_Name => "GenMeshHeightmap";
  3310. function Gen_Mesh_Cubic_Map (
  3311. Cubic_Map : Image := No_Image;
  3312. Size : Vector_3D := (others => 0.0)
  3313. ) return Mesh with
  3314. Import => True,
  3315. Convention => C,
  3316. External_Name => "GenMeshCubicmap";
  3317. function Load_Materials (
  3318. File_Name : String := "";
  3319. Counts : access Integer := null
  3320. ) return access Material with
  3321. Import => True,
  3322. Convention => C,
  3323. External_Name => "LoadMaterials";
  3324. function Load_Material_Default return Material with
  3325. Import => True,
  3326. Convention => C,
  3327. External_Name => "LoadMaterialDefault";
  3328. function Is_Material_Ready (
  3329. Data : Material := No_Material
  3330. ) return Logical with
  3331. Import => True,
  3332. Convention => C,
  3333. External_Name => "IsMaterialReady";
  3334. procedure Unload_Material (
  3335. Data : Material := No_Material
  3336. ) with
  3337. Import => True,
  3338. Convention => C,
  3339. External_Name => "UnloadMaterial";
  3340. procedure Set_Material_Texture (
  3341. Data : access Material := null;
  3342. Kind : Material_Map_Index := Material_Map_Height;
  3343. This : Texture := No_Texture
  3344. ) with
  3345. Import => True,
  3346. Convention => C,
  3347. External_Name => "SetMaterialTexture";
  3348. procedure Set_Model_Mesh_Material (
  3349. Data : access Model := null;
  3350. Mesh_Id : Integer := 0;
  3351. Material_Id : Integer := 0
  3352. ) with
  3353. Import => True,
  3354. Convention => C,
  3355. External_Name => "SetModelMeshMaterial";
  3356. function Load_Model_Animations (
  3357. File_Name : String := "";
  3358. Counts : access Integer := null
  3359. ) return access Model_Animation with
  3360. Import => True,
  3361. Convention => C,
  3362. External_Name => "LoadModelAnimations";
  3363. procedure Update_Model_Animation (
  3364. Data : Model := No_Model;
  3365. Animation : Model_Animation := No_Model_Animation;
  3366. Frame : Integer := 0
  3367. ) with
  3368. Import => True,
  3369. Convention => C,
  3370. External_Name => "UpdateModelAnimation";
  3371. procedure Unload_Model_Animation (
  3372. Animation : Model_Animation := No_Model_Animation
  3373. ) with
  3374. Import => True,
  3375. Convention => C,
  3376. External_Name => "UnloadModelAnimation";
  3377. procedure Unload_Model_Animations (
  3378. Animations : access Model_Animation := null;
  3379. Animation_Count : Natural := 0
  3380. ) with
  3381. Import => True,
  3382. Convention => C,
  3383. External_Name => "UnloadModelAnimations";
  3384. function Is_Model_Animation_Valid (
  3385. Data : Model := No_Model;
  3386. Animation : Model_Animation := No_Model_Animation
  3387. ) return Logical with
  3388. Import => True,
  3389. Convention => C,
  3390. External_Name => "IsModelAnimationValid";
  3391. function Check_Collision_Spheres (
  3392. Center_1 : Vector_3D := (others => 0.0);
  3393. Radius_1 : Float := 0.0;
  3394. Center_2 : Vector_3D := (others => 0.0);
  3395. Radius_2 : Float := 0.0
  3396. ) return Logical with
  3397. Import => True,
  3398. Convention => C,
  3399. External_Name => "CheckCollisionSpheres";
  3400. function Check_Collision_Boxes (
  3401. Box_1 : Bounding_Box := No_Bounding_Box;
  3402. Box_2 : Bounding_Box := No_Bounding_Box
  3403. ) return Logical with
  3404. Import => True,
  3405. Convention => C,
  3406. External_Name => "CheckCollisionBoxes";
  3407. function Check_Collision_Box_Sphere (
  3408. Box : Bounding_Box := No_Bounding_Box;
  3409. Center : Vector_3D := (others => 0.0);
  3410. Radius : Float := 0.0
  3411. ) return Logical with
  3412. Import => True,
  3413. Convention => C,
  3414. External_Name => "CheckCollisionBoxSphere";
  3415. function Get_Ray_Collision_Sphere (
  3416. Hit : Ray := No_Ray;
  3417. Center : Vector_3D := (others => 0.0);
  3418. Radius : Float := 0.0
  3419. ) return Ray_Collision with
  3420. Import => True,
  3421. Convention => C,
  3422. External_Name => "GetRayCollisionSphere";
  3423. function Get_Ray_Collision_Box (
  3424. Hit : Ray := No_Ray;
  3425. Box : Bounding_Box := No_Bounding_Box
  3426. ) return Ray_Collision with
  3427. Import => True,
  3428. Convention => C,
  3429. External_Name => "GetRayCollisionBox";
  3430. function Get_Ray_Collision_Mesh (
  3431. Hit : Ray := No_Ray;
  3432. Data : Mesh := No_Mesh;
  3433. Transform : Matrix_4D := Id_Matrix
  3434. ) return Ray_Collision with
  3435. Import => True,
  3436. Convention => C,
  3437. External_Name => "GetRayCollisionMesh";
  3438. function Get_Ray_Collision_Triangle (
  3439. Hit : Ray := No_Ray;
  3440. Point_1 : Vector_3D := (others => 0.0);
  3441. Point_2 : Vector_3D := (others => 0.0);
  3442. Point_3 : Vector_3D := (others => 0.0)
  3443. ) return Ray_Collision with
  3444. Import => True,
  3445. Convention => C,
  3446. External_Name => "GetRayCollisionTriangle";
  3447. function Get_Ray_Collision_Quad (
  3448. Hit : Ray := No_Ray;
  3449. Point_1 : Vector_3D := (others => 0.0);
  3450. Point_2 : Vector_3D := (others => 0.0);
  3451. Point_3 : Vector_3D := (others => 0.0);
  3452. Point_4 : Vector_3D := (others => 0.0)
  3453. ) return Ray_Collision with
  3454. Import => True,
  3455. Convention => C,
  3456. External_Name => "GetRayCollisionQuad";
  3457. procedure Open_Audio_Device with
  3458. Import => True,
  3459. Convention => C,
  3460. External_Name => "InitAudioDevice";
  3461. procedure Close_Audio_Device with
  3462. Import => True,
  3463. Convention => C,
  3464. External_Name => "CloseAudioDevice";
  3465. function Is_Audio_Device_Ready return Logical with
  3466. Import => True,
  3467. Convention => C,
  3468. External_Name => "IsAudioDeviceReady";
  3469. procedure Set_Master_Volume (
  3470. Volume : Float := 1.0
  3471. ) with
  3472. Import => True,
  3473. Convention => C,
  3474. External_Name => "SetMasterVolume";
  3475. function Get_Master_Volume return Float with
  3476. Import => True,
  3477. Convention => C,
  3478. External_Name => "GetMasterVolume";
  3479. function Load_Wave (
  3480. File_Name : String := ""
  3481. ) return Wave with
  3482. Import => True,
  3483. Convention => C,
  3484. External_Name => "LoadWave";
  3485. function Load_Wave_From_Memory (
  3486. File_Type : String := "";
  3487. File_Data : Pointer := null;
  3488. Data_Size : Natural := 0
  3489. ) return Wave with
  3490. Import => True,
  3491. Convention => C,
  3492. External_Name => "LoadWaveFromMemory";
  3493. function Is_Wave_Ready (
  3494. Data : Wave := No_Wave
  3495. ) return Logical with
  3496. Import => True,
  3497. Convention => C,
  3498. External_Name => "IsWaveReady";
  3499. function Load_Sound (
  3500. File_Name : String := ""
  3501. ) return Sound with
  3502. Import => True,
  3503. Convention => C,
  3504. External_Name => "LoadSound";
  3505. function Load_Sound_From_Wave (
  3506. Data : Wave := No_Wave
  3507. ) return Sound with
  3508. Import => True,
  3509. Convention => C,
  3510. External_Name => "LoadSoundFromWave";
  3511. function Load_Sound_Alias (
  3512. Source : Sound := No_Sound
  3513. ) return Sound with
  3514. Import => True,
  3515. Convention => C,
  3516. External_Name => "LoadSoundAlias";
  3517. function Is_Sound_Ready (
  3518. Source : Sound := No_Sound
  3519. ) return Logical with
  3520. Import => True,
  3521. Convention => C,
  3522. External_Name => "IsSoundReady";
  3523. procedure Update_Sound (
  3524. Source : Sound := No_Sound;
  3525. Data : Pointer := null;
  3526. Sample_Count : Integer := 0
  3527. ) with
  3528. Import => True,
  3529. Convention => C,
  3530. External_Name => "UpdateSound";
  3531. procedure Unload_Wave (
  3532. Data : Wave := No_Wave
  3533. ) with
  3534. Import => True,
  3535. Convention => C,
  3536. External_Name => "UnloadWave";
  3537. procedure Unload_Sound (
  3538. Data : Sound := No_Sound
  3539. ) with
  3540. Import => True,
  3541. Convention => C,
  3542. External_Name => "UnloadSound";
  3543. procedure Unload_Sound_Alias (
  3544. Alias : Sound := No_Sound
  3545. ) with
  3546. Import => True,
  3547. Convention => C,
  3548. External_Name => "UnloadSoundAlias";
  3549. function Export_Wave (
  3550. Data : Wave := No_Wave;
  3551. File_Name : String := ""
  3552. ) return Logical with
  3553. Import => True,
  3554. Convention => C,
  3555. External_Name => "ExportWave";
  3556. function Export_Wave_As_Code (
  3557. Data : Wave := No_Wave;
  3558. File_Name : String := ""
  3559. ) return Logical with
  3560. Import => True,
  3561. Convention => C,
  3562. External_Name => "ExportWaveAsCode";
  3563. procedure Play_Sound (
  3564. Data : Sound := No_Sound
  3565. ) with
  3566. Import => True,
  3567. Convention => C,
  3568. External_Name => "PlaySound";
  3569. procedure Stop_Sound (
  3570. Data : Sound := No_Sound
  3571. ) with
  3572. Import => True,
  3573. Convention => C,
  3574. External_Name => "StopSound";
  3575. procedure Pause_Sound (
  3576. Data : Sound := No_Sound
  3577. ) with
  3578. Import => True,
  3579. Convention => C,
  3580. External_Name => "PauseSound";
  3581. procedure Resume_Sound (
  3582. Data : Sound := No_Sound
  3583. ) with
  3584. Import => True,
  3585. Convention => C,
  3586. External_Name => "ResumeSound";
  3587. function Is_Sound_Playing (
  3588. Data : Sound := No_Sound
  3589. ) return Logical with
  3590. Import => True,
  3591. Convention => C,
  3592. External_Name => "IsSoundPlaying";
  3593. procedure Set_Sound_Volume (
  3594. Data : Sound := No_Sound;
  3595. Volume : Float := 0.0
  3596. ) with
  3597. Import => True,
  3598. Convention => C,
  3599. External_Name => "SetSoundVolume";
  3600. procedure Set_Sound_Pitch (
  3601. Data : Sound := No_Sound;
  3602. Pitch : Float := 0.0
  3603. ) with
  3604. Import => True,
  3605. Convention => C,
  3606. External_Name => "SetSoundPitch";
  3607. procedure Set_Sound_Pan (
  3608. Data : Sound := No_Sound;
  3609. Pan : Float := 0.0
  3610. ) with
  3611. Import => True,
  3612. Convention => C,
  3613. External_Name => "SetSoundPan";
  3614. function Wave_Copy (
  3615. Data : Wave := No_Wave
  3616. ) return Wave with
  3617. Import => True,
  3618. Convention => C,
  3619. External_Name => "WaveCopy";
  3620. procedure Wave_Crop (
  3621. Data : access Wave := null;
  3622. First_Sample : Integer := 0;
  3623. Final_Sample : Integer := 0
  3624. ) with
  3625. Import => True,
  3626. Convention => C,
  3627. External_Name => "WaveCrop";
  3628. procedure Wave_Format (
  3629. Data : access Wave := null;
  3630. Sample_Rate : Integer := 0;
  3631. Sample_Size : Integer := 0;
  3632. Channels : Integer := 0
  3633. ) with
  3634. Import => True,
  3635. Convention => C,
  3636. External_Name => "WaveFormat";
  3637. function Load_Wave_Samples (
  3638. Data : Wave := No_Wave
  3639. ) return access Float with
  3640. Import => True,
  3641. Convention => C,
  3642. External_Name => "LoadWaveSamples";
  3643. procedure Unload_Wave_Samples (
  3644. Samples : access Float := null
  3645. ) with
  3646. Import => True,
  3647. Convention => C,
  3648. External_Name => "UnloadWaveSamples";
  3649. function Load_Music_Stream (
  3650. File_Name : String := ""
  3651. ) return Music with
  3652. Import => True,
  3653. Convention => C,
  3654. External_Name => "LoadMusicStream";
  3655. function Load_Music_Stream_From_Memory (
  3656. File_Type : String := "";
  3657. Data : Pointer := null;
  3658. Data_Size : Integer := 0
  3659. ) return Music with
  3660. Import => True,
  3661. Convention => C,
  3662. External_Name => "LoadMusicStreamFromMemory";
  3663. function Is_Music_Ready (
  3664. Data : Music := No_Music
  3665. ) return Logical with
  3666. Import => True,
  3667. Convention => C,
  3668. External_Name => "IsMusicReady";
  3669. procedure Unload_Music_Stream (
  3670. Data : Music := No_Music
  3671. ) with
  3672. Import => True,
  3673. Convention => C,
  3674. External_Name => "UnloadMusicStream";
  3675. procedure Play_Music_Stream (
  3676. Data : Music := No_Music
  3677. ) with
  3678. Import => True,
  3679. Convention => C,
  3680. External_Name => "PlayMusicStream";
  3681. function Is_Music_Stream_Playing (
  3682. Data : Music := No_Music
  3683. ) return Logical with
  3684. Import => True,
  3685. Convention => C,
  3686. External_Name => "IsMusicStreamPlaying";
  3687. procedure Update_Music_Stream (
  3688. Data : Music := No_Music
  3689. ) with
  3690. Import => True,
  3691. Convention => C,
  3692. External_Name => "UpdateMusicStream";
  3693. procedure Stop_Music_Stream (
  3694. Data : Music := No_Music
  3695. ) with
  3696. Import => True,
  3697. Convention => C,
  3698. External_Name => "StopMusicStream";
  3699. procedure Pause_Music_Stream (
  3700. Data : Music := No_Music
  3701. ) with
  3702. Import => True,
  3703. Convention => C,
  3704. External_Name => "PauseMusicStream";
  3705. procedure Resume_Music_Stream (
  3706. Data : Music := No_Music
  3707. ) with
  3708. Import => True,
  3709. Convention => C,
  3710. External_Name => "ResumeMusicStream";
  3711. procedure Seek_Music_Stream (
  3712. Data : Music := No_Music;
  3713. Position : Float := 0.0
  3714. ) with
  3715. Import => True,
  3716. Convention => C,
  3717. External_Name => "SeekMusicStream";
  3718. procedure Set_Music_Volume (
  3719. Data : Music := No_Music;
  3720. Volume : Float := 0.0
  3721. ) with
  3722. Import => True,
  3723. Convention => C,
  3724. External_Name => "SetMusicVolume";
  3725. procedure Set_Music_Pitch (
  3726. Data : Music := No_Music;
  3727. Pitch : Float := 0.0
  3728. ) with
  3729. Import => True,
  3730. Convention => C,
  3731. External_Name => "SetMusicPitch";
  3732. procedure Set_Music_Pan (
  3733. Data : Music := No_Music;
  3734. Pan : Float := 0.0
  3735. ) with
  3736. Import => True,
  3737. Convention => C,
  3738. External_Name => "SetMusicPan";
  3739. function Get_Music_Time_Length (
  3740. Data : Music := No_Music
  3741. ) return Float with
  3742. Import => True,
  3743. Convention => C,
  3744. External_Name => "GetMusicTimeLength";
  3745. function Get_Music_Time_Played (
  3746. Data : Music := No_Music
  3747. ) return Float with
  3748. Import => True,
  3749. Convention => C,
  3750. External_Name => "GetMusicTimePlayed";
  3751. function Load_Audio_Stream (
  3752. Sample_Rate : Natural := 0;
  3753. Sample_Size : Natural := 0;
  3754. Channels : Natural := 0
  3755. ) return Audio_Stream with
  3756. Import => True,
  3757. Convention => C,
  3758. External_Name => "LoadAudioStream";
  3759. function Is_Audio_Stream_Ready (
  3760. Data : Audio_Stream := No_Audio_Stream
  3761. ) return Logical with
  3762. Import => True,
  3763. Convention => C,
  3764. External_Name => "IsAudioStreamReady";
  3765. procedure Unload_Audio_Stream (
  3766. Data : Audio_Stream := No_Audio_Stream
  3767. ) with
  3768. Import => True,
  3769. Convention => C,
  3770. External_Name => "UnloadAudioStream";
  3771. procedure Update_Audio_Stream (
  3772. Data : Audio_Stream := No_Audio_Stream;
  3773. Raw_Data : Pointer := null;
  3774. Frame_Count : Integer := 0
  3775. ) with
  3776. Import => True,
  3777. Convention => C,
  3778. External_Name => "UpdateAudioStream";
  3779. function Is_Audio_Stream_Processed (
  3780. Data : Audio_Stream := No_Audio_Stream
  3781. ) return Logical with
  3782. Import => True,
  3783. Convention => C,
  3784. External_Name => "IsAudioStreamProcessed";
  3785. procedure Play_Audio_Stream (
  3786. Data : Audio_Stream := No_Audio_Stream
  3787. ) with
  3788. Import => True,
  3789. Convention => C,
  3790. External_Name => "PlayAudioStream";
  3791. procedure Pause_Audio_Stream (
  3792. Data : Audio_Stream := No_Audio_Stream
  3793. ) with
  3794. Import => True,
  3795. Convention => C,
  3796. External_Name => "PauseAudioStream";
  3797. procedure Resume_Audio_Stream (
  3798. Data : Audio_Stream := No_Audio_Stream
  3799. ) with
  3800. Import => True,
  3801. Convention => C,
  3802. External_Name => "ResumeAudioStream";
  3803. function Is_Audio_Stream_Playing (
  3804. Data : Audio_Stream := No_Audio_Stream
  3805. ) return Logical with
  3806. Import => True,
  3807. Convention => C,
  3808. External_Name => "IsAudioStreamPlaying";
  3809. procedure Stop_Audio_Stream (
  3810. Data : Audio_Stream := No_Audio_Stream
  3811. ) with
  3812. Import => True,
  3813. Convention => C,
  3814. External_Name => "StopAudioStream";
  3815. procedure Set_Audio_Stream_Volume (
  3816. Data : Audio_Stream := No_Audio_Stream;
  3817. Volume : Float := 0.0
  3818. ) with
  3819. Import => True,
  3820. Convention => C,
  3821. External_Name => "SetAudioStreamVolume";
  3822. procedure Set_Audio_Stream_Pitch (
  3823. Data : Audio_Stream := No_Audio_Stream;
  3824. Pitch : Float := 0.0
  3825. ) with
  3826. Import => True,
  3827. Convention => C,
  3828. External_Name => "SetAudioStreamPitch";
  3829. procedure Set_Audio_Stream_Pan (
  3830. Data : Audio_Stream := No_Audio_Stream;
  3831. Pan : Float := 0.0
  3832. ) with
  3833. Import => True,
  3834. Convention => C,
  3835. External_Name => "SetAudioStreamPan";
  3836. procedure Set_Audio_Stream_Buffer_Size_Default (
  3837. Size : Integer := 0
  3838. ) with
  3839. Import => True,
  3840. Convention => C,
  3841. External_Name => "SetAudioStreamBufferSizeDefault";
  3842. procedure Attach_Audio_Stream_Processor (
  3843. Stream : Audio_Stream := No_Audio_Stream;
  3844. Processor : Pointer := null
  3845. ) with
  3846. Import => True,
  3847. Convention => C,
  3848. External_Name => "AttachAudioStreamProcessor";
  3849. procedure Detach_Audio_Stream_Processor (
  3850. Stream : Audio_Stream := No_Audio_Stream;
  3851. Processor : Pointer := null
  3852. ) with
  3853. Import => True,
  3854. Convention => C,
  3855. External_Name => "DetachAudioStreamProcessor";
  3856. procedure Attach_Audio_Mixed_Processor (
  3857. Processor : Pointer := null
  3858. ) with
  3859. Import => True,
  3860. Convention => C,
  3861. External_Name => "AttachAudioMixedProcessor";
  3862. procedure Detach_Audio_Mixed_Processor (
  3863. Processor : Pointer := null
  3864. ) with
  3865. Import => True,
  3866. Convention => C,
  3867. External_Name => "DetachAudioMixedProcessor";
  3868. ------------------------------------------------------------------------
  3869. end Raylib;