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.

4575 lines
136KB

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