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.

5331 line
152KB

  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 Strings is access all Character;
  516. type Vector_2D is record
  517. X : Float := 0.0;
  518. Y : Float := 0.0;
  519. end record with Convention => C_Pass_By_Copy;
  520. type Vector_3D is record
  521. X : Float := 0.0;
  522. Y : Float := 0.0;
  523. Z : Float := 0.0;
  524. end record with Convention => C_Pass_By_Copy;
  525. type Vector_4D is record
  526. X : Float := 0.0;
  527. Y : Float := 0.0;
  528. Z : Float := 0.0;
  529. W : Float := 0.0;
  530. end record with Convention => C_Pass_By_Copy;
  531. type Quaternion is new Vector_4D;
  532. type Matrix_4D is record
  533. M00 : Float := 1.0;
  534. M10 : Float := 0.0;
  535. M20 : Float := 0.0;
  536. M30 : Float := 0.0;
  537. M01 : Float := 0.0;
  538. M11 : Float := 1.0;
  539. M21 : Float := 0.0;
  540. M31 : Float := 0.0;
  541. M02 : Float := 0.0;
  542. M12 : Float := 0.0;
  543. M22 : Float := 1.0;
  544. M32 : Float := 0.0;
  545. M03 : Float := 0.0;
  546. M13 : Float := 0.0;
  547. M23 : Float := 0.0;
  548. M33 : Float := 1.0;
  549. end record with Convention => C_Pass_By_Copy;
  550. Id_Matrix : Matrix_4D;
  551. type Color is record
  552. R : Color_Range := 255;
  553. G : Color_Range := 255;
  554. B : Color_Range := 255;
  555. A : Color_Range := 255;
  556. end record with Convention => C_Pass_By_Copy;
  557. No_Color : Color;
  558. type Rectangle is record
  559. X : Float := 0.0;
  560. Y : Float := 0.0;
  561. Width : Float := 0.0;
  562. Height : Float := 0.0;
  563. end record with Convention => C_Pass_By_Copy;
  564. No_Rectangle : Rectangle;
  565. type Image is record
  566. Data : Pointer := null;
  567. Width : Integer := 0;
  568. Height : Integer := 0;
  569. Mipmaps : Integer := 1;
  570. Format : Pixel_Format := Pixel_Format_None;
  571. end record with Convention => C_Pass_By_Copy;
  572. No_Image : Image;
  573. type Texture is record
  574. Id : Natural := 0;
  575. Width : Integer := 0;
  576. Height : Integer := 0;
  577. Mipmaps : Integer := 1;
  578. Format : Pixel_Format := Pixel_Format_None;
  579. end record with Convention => C_Pass_By_Copy;
  580. No_Texture : Texture;
  581. type Render_Texture is record
  582. Id : Natural := 0;
  583. Data : Texture := No_Texture;
  584. Depth : Texture := No_Texture;
  585. end record with Convention => C_Pass_By_Copy;
  586. No_Render_Texture : Render_Texture;
  587. type NPatch_Info is record
  588. Source : Rectangle := No_Rectangle;
  589. Left : Integer := 0;
  590. Top : Integer := 0;
  591. Right : Integer := 0;
  592. Bottom : Integer := 0;
  593. Layout : NPatch_Layout := NPatch_Nine_Patch;
  594. end record with Convention => C_Pass_By_Copy;
  595. No_NPatch_Info : NPatch_Info;
  596. type Glyph_Info is record
  597. Value : Integer := 0;
  598. Offset_X : Integer := 0;
  599. Offset_Y : Integer := 0;
  600. Advance_X : Integer := 0;
  601. Data : Image := No_Image;
  602. end record with Convention => C_Pass_By_Copy;
  603. No_Glyph_Info : Glyph_Info;
  604. type Font is record
  605. Base_Size : Integer := 0;
  606. Glyph_Count : Integer := 0;
  607. Glyph_Padding : Integer := 0;
  608. Data : Texture := No_Texture;
  609. Rectangles : access Rectangle := null;
  610. Glyphs : access Glyph_Info := null;
  611. end record with Convention => C_Pass_By_Copy;
  612. No_Font : Font;
  613. type Camera_3D is record
  614. Position : Vector_3D := (others => 0.0);
  615. Target : Vector_3D := (others => 0.0);
  616. Up : Vector_3D := (others => 0.0);
  617. Field_Of_View : Float := 0.0;
  618. Projection : Camera_Projection := Camera_Perspective;
  619. end record with Convention => C_Pass_By_Copy;
  620. No_Camera_3D : Camera_3D;
  621. type Camera_2D is record
  622. Offset : Vector_2D := (others => 0.0);
  623. Target : Vector_2D := (others => 0.0);
  624. Rotation : Float := 0.0;
  625. Zoom : Float := 0.0;
  626. end record with Convention => C_Pass_By_Copy;
  627. No_Camera_2D : Camera_2D;
  628. type Mesh is record
  629. Vertex_Count : Integer := 0;
  630. Triangle_Count : Integer := 0;
  631. Vertices : access Float := null;
  632. Texture_Coordinates : access Float := null;
  633. Texture_Coordinates_2 : access Float := null;
  634. Normals : access Float := null;
  635. Tangents : access Float := null;
  636. Colors : access Color_Range := null;
  637. Indices : access Index_Range := null;
  638. Animation_Vertices : access Float := null;
  639. Animation_Normals : access Float := null;
  640. Bone_Ids : access Color_Range := null;
  641. Bone_Weights : access Float := null;
  642. VAO_Id : Natural := 0;
  643. VBO_Id : access Natural := null;
  644. end record with Convention => C_Pass_By_Copy;
  645. No_Mesh : Mesh;
  646. type Shader is record
  647. Id : Natural := 0;
  648. Locations : access Integer := null;
  649. end record with Convention => C_Pass_By_Copy;
  650. No_Shader : Shader;
  651. type Material_Map is record
  652. Data : Texture := No_Texture;
  653. Tint : Color := No_Color;
  654. Value : Float := 0.0;
  655. end record with Convention => C_Pass_By_Copy;
  656. No_Material_Map : Material_Map;
  657. type Float_Array_4 is array (0 .. 3) of Float;
  658. type Material_Map_Array_4 is array (0 .. 3) of Material_Map;
  659. type Material_Map_Array is array (Natural range <>) of Material_Map;
  660. type Material is record
  661. Data : Shader := No_Shader;
  662. Maps : access Material_Map_Array := null;
  663. Parameter : Float_Array_4 := (0.0, 0.0, 0.0, 1.0);
  664. end record with Convention => C_Pass_By_Copy;
  665. No_Material : Material;
  666. type Transform is record
  667. Translation : Vector_3D := (others => 0.0);
  668. Rotation : Vector_4D := (others => 0.0);
  669. Scale : Vector_3D := (others => 0.0);
  670. end record with Convention => C_Pass_By_Copy;
  671. No_Transform : Transform;
  672. type Character_Array_32 is array (0 .. 31) of Character;
  673. Empty : Character_Array_32 := (others => Character'Val (0));
  674. type Bone_Info is record
  675. Name : Character_Array_32 := Empty;
  676. Parent : Integer := 0;
  677. end record with Convention => C_Pass_By_Copy;
  678. No_Bone_Info : Bone_Info;
  679. type Material_Array_4 is array (0 .. 3) of Material;
  680. type Material_Array is array (Natural range <>) of Material;
  681. type Model is record
  682. Transform : Matrix_4D := Id_Matrix;
  683. Mesh_Count : Integer := 0;
  684. Material_Count : Integer := 0;
  685. Meshes : access Mesh := null;
  686. Materials : access Material_Array := null;
  687. Mesh_Materials : access Integer := null;
  688. Bone_Count : Integer := 0;
  689. Bones : access Bone_Info := null;
  690. --ERRORBind_Post : access Transform := null;
  691. end record with Convention => C_Pass_By_Copy;
  692. No_Model : Model;
  693. type Model_Animation is record
  694. Bone_Count : Integer := 0;
  695. Frame_Count : Integer := 0;
  696. Bones : access Bone_Info := null;
  697. Frame_Poses : access Transform := null;
  698. Name : Character_Array_32 := Empty;
  699. end record with Convention => C_Pass_By_Copy;
  700. No_Model_Animation : Model_Animation;
  701. type Ray is record
  702. Position : Vector_3D := (others => 0.0);
  703. Direction : Vector_3D := (others => 0.0);
  704. end record with Convention => C_Pass_By_Copy;
  705. No_Ray : Ray;
  706. type Ray_Collision is record
  707. Hit : Logical := False;
  708. Distance : Float := 0.0;
  709. Point : Vector_3D := (others => 0.0);
  710. Normal : Vector_3D := (others => 0.0);
  711. end record with Convention => C_Pass_By_Copy;
  712. No_Ray_Collision : Ray_Collision;
  713. type Bounding_Box is record
  714. Min : Vector_3D := (others => 0.0);
  715. Max : Vector_3D := (others => 0.0);
  716. end record with Convention => C_Pass_By_Copy;
  717. No_Bounding_Box : Bounding_Box;
  718. type Wave is record
  719. Frame_Count : Natural := 0;
  720. Sample_Rate : Natural := 0;
  721. Sample_Size : Natural := 0;
  722. Channels : Natural := 0;
  723. Data : Pointer := null;
  724. end record with Convention => C_Pass_By_Copy;
  725. No_Wave : Wave;
  726. type Audio_Stream is record
  727. Buffer : Pointer := null;
  728. Processor : Pointer := null;
  729. Sample_Rate : Natural := 0;
  730. Sample_Size : Natural := 0;
  731. Channels : Natural := 0;
  732. end record with Convention => C_Pass_By_Copy;
  733. No_Audio_Stream : Audio_Stream;
  734. type Sound is record
  735. Stream : Audio_Stream := No_Audio_Stream;
  736. Frame_Count : Natural := 0;
  737. end record with Convention => C_Pass_By_Copy;
  738. No_Sound : Sound;
  739. type Music is record
  740. Stream : Audio_Stream := No_Audio_Stream;
  741. Frame_Count : Natural := 0;
  742. Looping : Logical := False;
  743. Context_Type : Integer := 0;
  744. Context_Data : Pointer := null;
  745. end record with Convention => C_Pass_By_Copy;
  746. No_Music : Music;
  747. type VR_Device_Info is record
  748. Horizontal_Resoultion : Integer := 0;
  749. Vertical_Resoultion : Integer := 0;
  750. Horizontal_Screen_Size : Float := 0.0;
  751. Vertical_Screen_Size : Float := 0.0;
  752. Vertical_Screen_Center : Float := 0.0;
  753. Eye_To_Screen_Distance : Float := 0.0;
  754. Lens_Separate_Distance : Float := 0.0;
  755. Interpupillary_Distance : Float := 0.0;
  756. Lens_Distortion_Values : Float_Array_4 := (others => 0.0);
  757. Chroma_Abberation_Correction : Float_Array_4 := (others => 0.0);
  758. end record with Convention => C_Pass_By_Copy;
  759. No_VR_Device_Info : VR_Device_Info;
  760. type Matrix_4D_Array_2 is array (0 .. 1) of Matrix_4D;
  761. type Float_Array_2 is array (0 .. 1) of Float;
  762. type VR_Stereo_Config is record
  763. Projection : Matrix_4D_Array_2 := (Id_Matrix, Id_Matrix);
  764. View_Offset : Matrix_4D_Array_2 := (Id_Matrix, Id_Matrix);
  765. Left_Lens_Center : Float_Array_2 := (others => 0.0);
  766. Right_Lens_Center : Float_Array_2 := (others => 0.0);
  767. Left_Screen_Center : Float_Array_2 := (others => 0.0);
  768. Right_Screen_Center : Float_Array_2 := (others => 0.0);
  769. Scale : Float_Array_2 := (others => 0.0);
  770. Scale_In : Float_Array_2 := (others => 0.0);
  771. end record with Convention => C_Pass_By_Copy;
  772. No_VR_Stereo_Config : VR_Stereo_Config;
  773. type File_Path_List is record
  774. Capacity : Natural := 0;
  775. Count : Natural := 0;
  776. Paths : Pointer := null;
  777. end record with Convention => C_Pass_By_Copy;
  778. No_File_Path_List : File_Path_List;
  779. type Integer_Array_4 is array (0 .. 3) of Integer;
  780. type Automation_Event is record
  781. Frame : Natural := 0;
  782. Kind : Natural := 0;
  783. Parameters : Integer_Array_4 := (others => 0);
  784. end record with Convention => C_Pass_By_Copy;
  785. No_Automation_Event : Automation_Event;
  786. type Automation_Event_List is record
  787. Capacity : Natural := 0;
  788. Count : Natural := 0;
  789. Events : access Automation_Event := null;
  790. end record with Convention => C_Pass_By_Copy;
  791. No_Automation_Event_List : Automation_Event_List;
  792. ------------------------------------------------------------------------
  793. Version_Major : constant Integer := 5;
  794. Version_Minor : constant Integer := 1;
  795. Version_Patch : constant Integer := 0;
  796. Version : aliased constant String := "5.1-dev";
  797. Pi : constant Float := 3.14159265358979323846;
  798. Tau : constant Float := 2.0 * Pi;
  799. Degree_To_Radius : constant Float := Pi / 180.0;
  800. Radius_To_Degree : constant Float := 180.0 / Pi;
  801. Light_Gray : constant Color := (200, 200, 200, 255);
  802. Gray : constant Color := (130, 130, 130, 255);
  803. Dark_Gray : constant Color := (80, 80, 80, 255);
  804. Yellow : constant Color := (253, 249, 0, 255);
  805. Gold : constant Color := (255, 203, 0, 255);
  806. Orange : constant Color := (255, 161, 0, 255);
  807. Pink : constant Color := (255, 109, 194, 255);
  808. Red : constant Color := (230, 41, 55, 255);
  809. Maroon : constant Color := (190, 33, 55, 255);
  810. Green : constant Color := (0, 228, 48, 255);
  811. Lime : constant Color := (0, 158, 47, 255);
  812. Dark_Green : constant Color := (0, 117, 44, 255);
  813. Sky_Blue : constant Color := (102, 191, 255, 255);
  814. Blue : constant Color := (0, 121, 241, 255);
  815. Dark_Blue : constant Color := (0, 82, 172, 255);
  816. Purple : constant Color := (200, 122, 255, 255);
  817. Violet : constant Color := (135, 60, 190, 255);
  818. Dark_Purple : constant Color := (112, 31, 126, 255);
  819. Beige : constant Color := (211, 176, 131, 255);
  820. Brown : constant Color := (127, 106, 79, 255);
  821. Dark_Brown : constant Color := (76, 63, 47, 255);
  822. White : constant Color := (255, 255, 255, 255);
  823. Black : constant Color := (0, 0, 0, 255);
  824. Blank : constant Color := (0, 0, 0, 0 );
  825. Magenta : constant Color := (255, 0, 255, 255);
  826. Ray_White : constant Color := (245, 245, 245, 255);
  827. ------------------------------------------------------------------------
  828. procedure Open_Window (
  829. Width : Integer := 640;
  830. Height : Integer := 480;
  831. Title : String := "Raylib-Ada" & Character'Val (0)
  832. ) with
  833. Import => True,
  834. Convention => C,
  835. External_Name => "InitWindow";
  836. procedure Close_Window with
  837. Import => True,
  838. Convention => C,
  839. External_Name => "CloseWindow";
  840. function Window_Should_Close return Logical with
  841. Import => True,
  842. Convention => C,
  843. External_Name => "WindowShouldClose";
  844. function Is_Window_Ready return Logical with
  845. Import => True,
  846. Convention => C,
  847. External_Name => "IsWindowReady";
  848. function Is_Window_Fullscreen return Logical with
  849. Import => True,
  850. Convention => C,
  851. External_Name => "IsWindowFullscreen";
  852. function Is_Window_Hidden return Logical with
  853. Import => True,
  854. Convention => C,
  855. External_Name => "IsWindowHidden";
  856. function Is_Window_Minimized return Logical with
  857. Import => True,
  858. Convention => C,
  859. External_Name => "IsWindowMinimized";
  860. function Is_Window_Maximized return Logical with
  861. Import => True,
  862. Convention => C,
  863. External_Name => "IsWindowMaximized";
  864. function Is_Window_Focused return Logical with
  865. Import => True,
  866. Convention => C,
  867. External_Name => "IsWindowFocused";
  868. function Is_Window_Resized return Logical with
  869. Import => True,
  870. Convention => C,
  871. External_Name => "IsWindowResized";
  872. function Is_Window_State (
  873. Flags : Natural := 0
  874. ) return Logical with
  875. Import => True,
  876. Convention => C,
  877. External_Name => "IsWindowState";
  878. procedure Set_Window_State (
  879. Flags : Natural := 0
  880. ) with
  881. Import => True,
  882. Convention => C,
  883. External_Name => "SetWindowState";
  884. procedure Clear_Window_State (
  885. Flags : Natural := 0
  886. ) with
  887. Import => True,
  888. Convention => C,
  889. External_Name => "ClearWindowState";
  890. procedure Toggle_Fullscreen with
  891. Import => True,
  892. Convention => C,
  893. External_Name => "ToggleFullscreen";
  894. procedure Toggle_Borderless_Windowed with
  895. Import => True,
  896. Convention => C,
  897. External_Name => "ToggleBorderlessWindowed";
  898. procedure Maximize_Window with
  899. Import => True,
  900. Convention => C,
  901. External_Name => "MaximizeWindow";
  902. procedure Minimize_Window with
  903. Import => True,
  904. Convention => C,
  905. External_Name => "MinimizeWindow";
  906. procedure Restore_Window with
  907. Import => True,
  908. Convention => C,
  909. External_Name => "RestoreWindow";
  910. procedure Set_Window_Icon (
  911. Icon : Image := No_Image
  912. ) with
  913. Import => True,
  914. Convention => C,
  915. External_Name => "SetWindowIcon";
  916. procedure Set_Window_Icons (
  917. Icons : access Image := null;
  918. Count : Integer := 0
  919. ) with
  920. Import => True,
  921. Convention => C,
  922. External_Name => "SetWindowIcons";
  923. procedure Set_Window_Title (
  924. Title : String := ""
  925. ) with
  926. Import => True,
  927. Convention => C,
  928. External_Name => "SetWindowTitle";
  929. procedure Set_Window_Position (
  930. X : Integer := 0;
  931. Y : Integer := 0
  932. ) with
  933. Import => True,
  934. Convention => C,
  935. External_Name => "SetWindowPosition";
  936. procedure Set_Window_Monitor (
  937. Monitor : Integer := 0
  938. ) with
  939. Import => True,
  940. Convention => C,
  941. External_Name => "SetWindowMonitor";
  942. procedure Set_Window_Min_Size (
  943. Width : Integer := 0;
  944. Height : Integer := 0
  945. ) with
  946. Import => True,
  947. Convention => C,
  948. External_Name => "SetWindowMinSize";
  949. procedure Set_Window_Max_Size (
  950. Width : Integer := 0;
  951. Height : Integer := 0
  952. ) with
  953. Import => True,
  954. Convention => C,
  955. External_Name => "SetWindowMaxSize";
  956. procedure Set_Window_Size (
  957. Width : Integer := 0;
  958. Height : Integer := 0
  959. ) with
  960. Import => True,
  961. Convention => C,
  962. External_Name => "SetWindowSize";
  963. procedure Set_WindowZ_Opacity (
  964. Opacity : Float := 0.0
  965. ) with
  966. Import => True,
  967. Convention => C,
  968. External_Name => "SetWindowOpacity";
  969. procedure Set_Window_Focused with
  970. Import => True,
  971. Convention => C,
  972. External_Name => "SetWindowFocused";
  973. function Get_Window_Handle return Pointer with
  974. Import => True,
  975. Convention => C,
  976. External_Name => "GetWindowHandle";
  977. function Get_Screen_Width return Integer with
  978. Import => True,
  979. Convention => C,
  980. External_Name => "GetScreenWidth";
  981. function Get_Screen_Height return Integer with
  982. Import => True,
  983. Convention => C,
  984. External_Name => "GetScreenHeight";
  985. function Get_Render_Width return Integer with
  986. Import => True,
  987. Convention => C,
  988. External_Name => "GetRenderWidth";
  989. function Get_Render_Height return Integer with
  990. Import => True,
  991. Convention => C,
  992. External_Name => "GetRenderHeight";
  993. function Get_Monitor_Count return Integer with
  994. Import => True,
  995. Convention => C,
  996. External_Name => "GetMonitorCount";
  997. function Get_Current_Monitor return Integer with
  998. Import => True,
  999. Convention => C,
  1000. External_Name => "GetCurrentMonitor";
  1001. function Get_Monitor_Position (
  1002. Monitor : Integer := 0
  1003. ) return Vector_2D with
  1004. Import => True,
  1005. Convention => C,
  1006. External_Name => "GetMonitorPosition";
  1007. function Get_Monitor_Width (
  1008. Monitor : Integer := 0
  1009. ) return Integer with
  1010. Import => True,
  1011. Convention => C,
  1012. External_Name => "GetMonitorWidth";
  1013. function Get_Monitor_Height (
  1014. Monitor : Integer := 0
  1015. ) return Integer with
  1016. Import => True,
  1017. Convention => C,
  1018. External_Name => "GetMonitorHeight";
  1019. function Get_Monitor_Physical_Width (
  1020. Monitor : Integer := 0
  1021. ) return Integer with
  1022. Import => True,
  1023. Convention => C,
  1024. External_Name => "GetMonitorPhysicalWidth";
  1025. function Get_Monitor_Physical_Height (
  1026. Monitor : Integer := 0
  1027. ) return Integer with
  1028. Import => True,
  1029. Convention => C,
  1030. External_Name => "GetMonitorPhysicalHeight";
  1031. function Get_Monitor_Refresh_Rate (
  1032. Monitor : Integer := 0
  1033. ) return Integer with
  1034. Import => True,
  1035. Convention => C,
  1036. External_Name => "GetMonitorRefreshRate";
  1037. function Get_Window_Position return Vector_2D with
  1038. Import => True,
  1039. Convention => C,
  1040. External_Name => "GetWindowPosition";
  1041. function Get_Window_Scale_DPI return Vector_2D with
  1042. Import => True,
  1043. Convention => C,
  1044. External_Name => "GetWindowScaleDPI";
  1045. function Get_Monitor_Name (
  1046. Monitor : Integer := 0
  1047. ) return Strings with
  1048. Import => True,
  1049. Convention => C,
  1050. External_Name => "GetMonitorName";
  1051. procedure Set_Clipboard_Text (
  1052. Text : String := ""
  1053. ) with
  1054. Import => True,
  1055. Convention => C,
  1056. External_Name => "SetClipboardText";
  1057. function Get_Clipboard_Text return Strings with
  1058. Import => True,
  1059. Convention => C,
  1060. External_Name => "GetClipboardText";
  1061. procedure Enable_Event_Waiting with
  1062. Import => True,
  1063. Convention => C,
  1064. External_Name => "EnableEventWaiting";
  1065. procedure Disable_Event_Waiting with
  1066. Import => True,
  1067. Convention => C,
  1068. External_Name => "DisableEventWaiting";
  1069. procedure Show_Cursor with
  1070. Import => True,
  1071. Convention => C,
  1072. External_Name => "ShowCursor";
  1073. procedure Hide_Cursor with
  1074. Import => True,
  1075. Convention => C,
  1076. External_Name => "HideCursor";
  1077. function Is_Cursor_Hidden return Logical with
  1078. Import => True,
  1079. Convention => C,
  1080. External_Name => "IsCursorHidden";
  1081. procedure Enable_Cursor with
  1082. Import => True,
  1083. Convention => C,
  1084. External_Name => "EnableCursor";
  1085. procedure Disable_Cursor with
  1086. Import => True,
  1087. Convention => C,
  1088. External_Name => "DisableCursor";
  1089. function Is_Cursor_On_Screen return Logical with
  1090. Import => True,
  1091. Convention => C,
  1092. External_Name => "IsCursorOnScreen";
  1093. procedure Clear_Background (
  1094. Tint : Color := Ray_White
  1095. ) with
  1096. Import => True,
  1097. Convention => C,
  1098. External_Name => "ClearBackground";
  1099. procedure Begin_Drawing with
  1100. Import => True,
  1101. Convention => C,
  1102. External_Name => "BeginDrawing";
  1103. procedure End_Drawing with
  1104. Import => True,
  1105. Convention => C,
  1106. External_Name => "EndDrawing";
  1107. procedure Begin_Mode_2D (
  1108. Camera : Camera_2D
  1109. ) with
  1110. Import => True,
  1111. Convention => C,
  1112. External_Name => "BeginMode2D";
  1113. procedure End_Mode_2D with
  1114. Import => True,
  1115. Convention => C,
  1116. External_Name => "EndMode2D";
  1117. procedure Begin_Mode_3D (
  1118. Camera : Camera_3D
  1119. ) with
  1120. Import => True,
  1121. Convention => C,
  1122. External_Name => "BeginMode3D";
  1123. procedure End_Mode_3D with
  1124. Import => True,
  1125. Convention => C,
  1126. External_Name => "EndMode3D";
  1127. procedure Begin_Texture_Mode (
  1128. Data : Render_Texture := No_Render_Texture
  1129. ) with
  1130. Import => True,
  1131. Convention => C,
  1132. External_Name => "BeginTextureMode";
  1133. procedure End_Texture_Mode with
  1134. Import => True,
  1135. Convention => C,
  1136. External_Name => "EndTextureMode";
  1137. procedure Begin_Shader_Mode (
  1138. Data : Shader := No_Shader
  1139. ) with
  1140. Import => True,
  1141. Convention => C,
  1142. External_Name => "BeginShaderMode";
  1143. procedure End_Shader_Mode with
  1144. Import => True,
  1145. Convention => C,
  1146. External_Name => "EndShaderMode";
  1147. procedure Begin_Blend_Mode (
  1148. Mode : Blend_Mode := Blend_Alpha
  1149. ) with
  1150. Import => True,
  1151. Convention => C,
  1152. External_Name => "BeginBlendMode";
  1153. procedure End_Blend_Mode with
  1154. Import => True,
  1155. Convention => C,
  1156. External_Name => "EndBlendMode";
  1157. procedure Begin_Scissor_Mode (
  1158. X : Integer := 0;
  1159. Y : Integer := 0;
  1160. Width : Integer := 0;
  1161. Height : Integer := 0
  1162. ) with
  1163. Import => True,
  1164. Convention => C,
  1165. External_Name => "BeginScissorMode";
  1166. procedure End_Scissor_Mode with
  1167. Import => True,
  1168. Convention => C,
  1169. External_Name => "EndScissorMode";
  1170. procedure Begin_VR_Stereo_Mode (
  1171. Config : VR_Stereo_Config := No_VR_Stereo_Config
  1172. ) with
  1173. Import => True,
  1174. Convention => C,
  1175. External_Name => "BeginVrStereoMode";
  1176. procedure End_VR_Stereo_Mode with
  1177. Import => True,
  1178. Convention => C,
  1179. External_Name => "EndVrStereoMode";
  1180. function Load_VR_Stereo_Config (
  1181. Device : VR_Device_Info := No_VR_Device_Info
  1182. ) return VR_Stereo_Config with
  1183. Import => True,
  1184. Convention => C,
  1185. External_Name => "LoadVrStereoConfig";
  1186. procedure Unload_VR_Stereo_Config (
  1187. Config : VR_Stereo_Config := No_VR_Stereo_Config
  1188. ) with
  1189. Import => True,
  1190. Convention => C,
  1191. External_Name => "UnloadVrStereoConfig";
  1192. function Load_Shader (
  1193. Vertex_Shader_File_Path : String := "";
  1194. Fragment_Shader_File_Path : String := ""
  1195. ) return Shader with
  1196. Import => True,
  1197. Convention => C,
  1198. External_Name => "LoadShader";
  1199. function Load_Shader_From_Memory (
  1200. Vertex_Shader_Code_Path : String := "";
  1201. Fragment_Shader_Code_Path : String := ""
  1202. ) return Shader with
  1203. Import => True,
  1204. Convention => C,
  1205. External_Name => "LoadShaderFromMemory";
  1206. function Is_Shader_Ready (
  1207. Data : Shader := No_Shader
  1208. ) return Logical with
  1209. Import => True,
  1210. Convention => C,
  1211. External_Name => "IsShaderReady";
  1212. function Get_Shader_Location (
  1213. Data : Shader := No_Shader;
  1214. Name : String := ""
  1215. ) return Integer with
  1216. Import => True,
  1217. Convention => C,
  1218. External_Name => "GetShaderLocation";
  1219. function Get_Shader_Location_Attribute (
  1220. Data : Shader := No_Shader;
  1221. Name : String := ""
  1222. ) return Integer with
  1223. Import => True,
  1224. Convention => C,
  1225. External_Name => "GetShaderLocationAttrib";
  1226. procedure Set_Shader_Value (
  1227. Data : Shader := No_Shader;
  1228. Location_Index : Integer := 0;
  1229. Value : Pointer := null;
  1230. Uniform_Type : Integer := 0
  1231. ) with
  1232. Import => True,
  1233. Convention => C,
  1234. External_Name => "SetShaderValue";
  1235. procedure Set_Shader_Value_Vector (
  1236. Data : Shader := No_Shader;
  1237. Location_Index : Integer := 0;
  1238. Value : Pointer := null;
  1239. Uniform_Type : Integer := 0;
  1240. Count : Integer := 0
  1241. ) with
  1242. Import => True,
  1243. Convention => C,
  1244. External_Name => "SetShaderValueV";
  1245. procedure Set_Shader_Value_Matrix (
  1246. Data : Shader := No_Shader;
  1247. Location_Index : Integer := 0;
  1248. Value : Matrix_4D := Id_Matrix
  1249. ) with
  1250. Import => True,
  1251. Convention => C,
  1252. External_Name => "SetShaderValueMatrix";
  1253. procedure Set_Shader_Value_Texture (
  1254. Data : Shader := No_Shader;
  1255. Location_Index : Integer := 0;
  1256. Value : Texture := No_Texture
  1257. ) with
  1258. Import => True,
  1259. Convention => C,
  1260. External_Name => "SetShaderValueTexture";
  1261. procedure Unload_Shader (
  1262. Data : Shader := No_Shader
  1263. ) with
  1264. Import => True,
  1265. Convention => C,
  1266. External_Name => "UnloadShader";
  1267. function Get_Mouse_Ray (
  1268. Mouse_Position : Vector_2D := (others => 0.0);
  1269. Camera : Camera_3D := No_Camera_3D
  1270. ) return Ray with
  1271. Import => True,
  1272. Convention => C,
  1273. External_Name => "GetMouseRay";
  1274. function Get_Camera_Matrix_3D (
  1275. Camera : Camera_3D := No_Camera_3D
  1276. ) return Matrix_4D with
  1277. Import => True,
  1278. Convention => C,
  1279. External_Name => "GetCameraMatrix";
  1280. function Get_Camera_Matrix_2D (
  1281. Camera : Camera_2D := No_Camera_2D
  1282. ) return Matrix_4D with
  1283. Import => True,
  1284. Convention => C,
  1285. External_Name => "GetCameraMatrix2D";
  1286. function Get_World_To_Screen_3D (
  1287. Position : Vector_3D := (others => 0.0);
  1288. Camera : Camera_3D := No_Camera_3D
  1289. ) return Vector_2D with
  1290. Import => True,
  1291. Convention => C,
  1292. External_Name => "GetWorldToScreen";
  1293. function Get_Screen_To_World_2D (
  1294. Position : Vector_2D := (others => 0.0);
  1295. Camera : Camera_2D := No_Camera_2D
  1296. ) return Vector_2D with
  1297. Import => True,
  1298. Convention => C,
  1299. External_Name => "GetScreenToWorld2D";
  1300. function Get_World_To_Screen_Ex (
  1301. Position : Vector_3D := (others => 0.0);
  1302. Camera : Camera_3D := No_Camera_3D;
  1303. Width : Integer := 0;
  1304. Height : Integer := 0
  1305. ) return Vector_2D with
  1306. Import => True,
  1307. Convention => C,
  1308. External_Name => "GetWorldToScreenEx";
  1309. function Get_World_To_Screen_2D (
  1310. Position : Vector_2D := (others => 0.0);
  1311. Camera : Camera_2D := No_Camera_2D
  1312. ) return Vector_2D with
  1313. Import => True,
  1314. Convention => C,
  1315. External_Name => "GetWorldToScreen2D";
  1316. procedure Set_Target_FPS (
  1317. FPS : Integer := 60
  1318. ) with
  1319. Import => True,
  1320. Convention => C,
  1321. External_Name => "SetTargetFPS";
  1322. function Get_Frame_Time return Float with
  1323. Import => True,
  1324. Convention => C,
  1325. External_Name => "GetFrameTime";
  1326. function Get_Time return Long_Float with
  1327. Import => True,
  1328. Convention => C,
  1329. External_Name => "GetTime";
  1330. function Get_FPS return Integer with
  1331. Import => True,
  1332. Convention => C,
  1333. External_Name => "GetFPS";
  1334. procedure Swap_Screen_Buffer with
  1335. Import => True,
  1336. Convention => C,
  1337. External_Name => "SwapScreenBuffer";
  1338. procedure Poll_Input_Events with
  1339. Import => True,
  1340. Convention => C,
  1341. External_Name => "PollInputEvents";
  1342. procedure Wait_Time (
  1343. Seconds : Long_Float := 0.0
  1344. ) with
  1345. Import => True,
  1346. Convention => C,
  1347. External_Name => "WaitTime";
  1348. procedure Set_Random_Seed (
  1349. Seed : Natural := 16#0EADBEEF#
  1350. ) with
  1351. Import => True,
  1352. Convention => C,
  1353. External_Name => "SetRandomSeed";
  1354. function Get_Random_Value (
  1355. Min : Integer := 0;
  1356. Max : Integer := 255
  1357. ) return Integer with
  1358. Import => True,
  1359. Convention => C,
  1360. External_Name => "GetRandomValue";
  1361. function Load_Random_Sequence (
  1362. Count : Natural := 0;
  1363. Min : Integer := 0;
  1364. Max : Integer := 0
  1365. ) return access Integer with
  1366. Import => True,
  1367. Convention => C,
  1368. External_Name => "LoadRandomSequence";
  1369. procedure Unload_Random_Sequence (
  1370. Sequence : access Integer := null
  1371. ) with
  1372. Import => True,
  1373. Convention => C,
  1374. External_Name => "UnloadRandomSequence";
  1375. procedure Take_Screenshot (
  1376. File_Name : String := "Screenshot.png"
  1377. ) with
  1378. Import => True,
  1379. Convention => C,
  1380. External_Name => "TakeScreenshot";
  1381. procedure Set_Config_Flags (
  1382. Flags : Config_Flags := Flag_None
  1383. ) with
  1384. Import => True,
  1385. Convention => C,
  1386. External_Name => "SetConfigFlags";
  1387. procedure Open_URL (
  1388. URL : String := ""
  1389. ) with
  1390. Import => True,
  1391. Convention => C,
  1392. External_Name => "OpenURL";
  1393. procedure Set_Trace_Log_Level (
  1394. Level : Trace_Log_Level := Log_All
  1395. ) with
  1396. Import => True,
  1397. Convention => C,
  1398. External_Name => "SetTraceLogLevel";
  1399. function Allocate (
  1400. Size : Natural := 0
  1401. ) return Pointer with
  1402. Import => True,
  1403. Convention => C,
  1404. External_Name => "MemAlloc";
  1405. function Reallocate (
  1406. Data : Pointer := null;
  1407. Size : Natural := 0
  1408. ) return Pointer with
  1409. Import => True,
  1410. Convention => C,
  1411. External_Name => "MemRealloc";
  1412. procedure Deallocate (
  1413. Data : Pointer := null
  1414. ) with
  1415. Import => True,
  1416. Convention => C,
  1417. External_Name => "MemFree";
  1418. function Load_File_Data (
  1419. File_Name : String := "";
  1420. Data_Size : access Integer := null
  1421. ) return access Character with
  1422. Import => True,
  1423. Convention => C,
  1424. External_Name => "LoadFileData";
  1425. procedure Unload_File_Data (
  1426. Data : Pointer := null
  1427. ) with
  1428. Import => True,
  1429. Convention => C,
  1430. External_Name => "UnloadFileData";
  1431. function Save_File_Data (
  1432. File_Name : String := "";
  1433. Data : Pointer := null;
  1434. Data_Size : Natural := 0
  1435. ) return Logical with
  1436. Import => True,
  1437. Convention => C,
  1438. External_Name => "SaveFileData";
  1439. function Export_Data_As_Code (
  1440. Data : Pointer := null;
  1441. Data_Size : Natural := 0;
  1442. File_Name : String := ""
  1443. ) return Logical with
  1444. Import => True,
  1445. Convention => C,
  1446. External_Name => "ExportDataAsCode";
  1447. function Load_File_Text (
  1448. File_Name : String := ""
  1449. ) return Strings with
  1450. Import => True,
  1451. Convention => C,
  1452. External_Name => "LoadFileText";
  1453. procedure Unload_File_Text (
  1454. Text : String := ""
  1455. ) with
  1456. Import => True,
  1457. Convention => C,
  1458. External_Name => "UnloadFileText";
  1459. function Save_File_Text (
  1460. File_Name : String := "";
  1461. Text : String := ""
  1462. ) return Logical with
  1463. Import => True,
  1464. Convention => C,
  1465. External_Name => "SaveFileText";
  1466. function File_Exists (
  1467. File_Name : String := ""
  1468. ) return Logical with
  1469. Import => True,
  1470. Convention => C,
  1471. External_Name => "FileExists";
  1472. function Directory_Exists (
  1473. Directory_Path : String := ""
  1474. ) return Logical with
  1475. Import => True,
  1476. Convention => C,
  1477. External_Name => "DirectoryExists";
  1478. function Is_File_Extension (
  1479. File_Name : String := "";
  1480. Extension : String := ""
  1481. ) return Logical with
  1482. Import => True,
  1483. Convention => C,
  1484. External_Name => "IsFileExtension";
  1485. function Get_File_Length (
  1486. File_Name : String := ""
  1487. ) return Integer with
  1488. Import => True,
  1489. Convention => C,
  1490. External_Name => "GetFileLength";
  1491. function Get_File_Extension (
  1492. File_Name : String := ""
  1493. ) return Strings with
  1494. Import => True,
  1495. Convention => C,
  1496. External_Name => "GetFileExtension";
  1497. function Get_File_Name (
  1498. File_Path : String := ""
  1499. ) return Strings with
  1500. Import => True,
  1501. Convention => C,
  1502. External_Name => "GetFileName";
  1503. function Get_File_Name_Without_Ext (
  1504. File_Path : String := ""
  1505. ) return Strings with
  1506. Import => True,
  1507. Convention => C,
  1508. External_Name => "GetFileNameWithoutExt";
  1509. function Get_Directory_Path (
  1510. File_Path : String := ""
  1511. ) return Strings with
  1512. Import => True,
  1513. Convention => C,
  1514. External_Name => "GetDirectoryPath";
  1515. function Get_Prev_Directory_Path (
  1516. Directory_Path : String := ""
  1517. ) return Strings with
  1518. Import => True,
  1519. Convention => C,
  1520. External_Name => "GetPrevDirectoryPath";
  1521. function Get_Working_Directory return Strings with
  1522. Import => True,
  1523. Convention => C,
  1524. External_Name => "GetWorkingDirectory";
  1525. function Get_Application_Directory return Strings with
  1526. Import => True,
  1527. Convention => C,
  1528. External_Name => "GetApplicationDirectory";
  1529. function Change_Directory (
  1530. Directory_Path : String := ""
  1531. ) return Logical with
  1532. Import => True,
  1533. Convention => C,
  1534. External_Name => "ChangeDirectory";
  1535. function Is_Path_File (
  1536. Path : String := ""
  1537. ) return Logical with
  1538. Import => True,
  1539. Convention => C,
  1540. External_Name => "IsPathFile";
  1541. function Load_Directory_Files (
  1542. Directory_Path : String := ""
  1543. ) return File_Path_List with
  1544. Import => True,
  1545. Convention => C,
  1546. External_Name => "LoadDirectoryFiles";
  1547. function Load_Directory_Files_Ex (
  1548. Base_Path : String := "";
  1549. Filter : String := "";
  1550. Scan_Subdirectories : Logical := False
  1551. ) return File_Path_List with
  1552. Import => True,
  1553. Convention => C,
  1554. External_Name => "LoadDirectoryFilesEx";
  1555. procedure Unload_Directory_Files (
  1556. Files : File_Path_List := No_File_Path_List
  1557. ) with
  1558. Import => True,
  1559. Convention => C,
  1560. External_Name => "UnloadDirectoryFiles";
  1561. function Is_File_Dropped return Logical with
  1562. Import => True,
  1563. Convention => C,
  1564. External_Name => "IsFileDropped";
  1565. function Load_Dropped_Files return File_Path_List with
  1566. Import => True,
  1567. Convention => C,
  1568. External_Name => "LoadDroppedFiles";
  1569. procedure Unload_Dropped_Files (
  1570. Files : File_Path_List := No_File_Path_List
  1571. ) with
  1572. Import => True,
  1573. Convention => C,
  1574. External_Name => "UnloadDroppedFiles";
  1575. function Get_File_Mod_Time (
  1576. File_Name : String := ""
  1577. ) return Natural with
  1578. Import => True,
  1579. Convention => C,
  1580. External_Name => "GetFileModTime";
  1581. function Compress_Data (
  1582. Data : Pointer := null;
  1583. Data_Size : Natural := 0;
  1584. Compressed_Data_Size : access Integer := null
  1585. ) return Pointer with
  1586. Import => True,
  1587. Convention => C,
  1588. External_Name => "CompressData";
  1589. function Decompress_Data (
  1590. Compressed_Data : Pointer := null;
  1591. Compressed_Data_Size : Natural := 0;
  1592. Data_Size : Natural := 0
  1593. ) return Pointer with
  1594. Import => True,
  1595. Convention => C,
  1596. External_Name => "DecompressData";
  1597. function Encode_Data_Base_64 (
  1598. Data : Pointer := null;
  1599. Data_Size : Natural := 0;
  1600. Output_Size : access Integer := null
  1601. ) return Pointer with
  1602. Import => True,
  1603. Convention => C,
  1604. External_Name => "EncodeDataBase64";
  1605. function Decode_Data_Base_64 (
  1606. Data : Pointer := null;
  1607. Output_Size : access Integer := null
  1608. ) return Pointer with
  1609. Import => True,
  1610. Convention => C,
  1611. External_Name => "DecodeDataBase64";
  1612. function Load_Automation_Event_List (
  1613. File_Name : String := ""
  1614. ) return Automation_Event_List with
  1615. Import => True,
  1616. Convention => C,
  1617. External_Name => "LoadAutomationEventList";
  1618. procedure Unload_Automation_Event_List (
  1619. Data : access Automation_Event_List := null
  1620. ) with
  1621. Import => True,
  1622. Convention => C,
  1623. External_Name => "UnloadAutomationEventList";
  1624. function Export_Automation_Event_List (
  1625. Data : Automation_Event_List := No_Automation_Event_List;
  1626. File_Name : String := ""
  1627. ) return Logical with
  1628. Import => True,
  1629. Convention => C,
  1630. External_Name => "ExportAutomationEventList";
  1631. procedure Set_Automation_Event_List (
  1632. Data : access Automation_Event_List := null
  1633. ) with
  1634. Import => True,
  1635. Convention => C,
  1636. External_Name => "SetAutomationEventList";
  1637. procedure Set_Automation_Event_Base_Frame (
  1638. Frame : Integer := 0
  1639. ) with
  1640. Import => True,
  1641. Convention => C,
  1642. External_Name => "SetAutomationEventBaseFrame";
  1643. procedure Start_Automation_Event_Recording with
  1644. Import => True,
  1645. Convention => C,
  1646. External_Name => "StartAutomationEventRecording";
  1647. procedure Stop_Automation_Event_Recording with
  1648. Import => True,
  1649. Convention => C,
  1650. External_Name => "StopAutomationEventRecording";
  1651. procedure Play_Automation_Event (
  1652. Event : Automation_Event := No_Automation_Event
  1653. ) with
  1654. Import => True,
  1655. Convention => C,
  1656. External_Name => "PlayAutomationEvent";
  1657. function Is_Key_Pressed (
  1658. Key : Keyboard_Key := Key_Null
  1659. ) return Logical with
  1660. Import => True,
  1661. Convention => C,
  1662. External_Name => "IsKeyPressed";
  1663. function Is_Key_Pressed_Repeat (
  1664. Key : Keyboard_Key := Key_Null
  1665. ) return Logical with
  1666. Import => True,
  1667. Convention => C,
  1668. External_Name => "IsKeyPressedRepeat";
  1669. function Is_Key_Down (
  1670. Key : Keyboard_Key := Key_Null
  1671. ) return Logical with
  1672. Import => True,
  1673. Convention => C,
  1674. External_Name => "IsKeyDown";
  1675. function Is_Key_Released (
  1676. Key : Keyboard_Key := Key_Null
  1677. ) return Logical with
  1678. Import => True,
  1679. Convention => C,
  1680. External_Name => "IsKeyReleased";
  1681. function Is_Key_Up (
  1682. Key : Keyboard_Key := Key_Null
  1683. ) return Logical with
  1684. Import => True,
  1685. Convention => C,
  1686. External_Name => "IsKeyUp";
  1687. function Get_Key_Pressed return Keyboard_Key with
  1688. Import => True,
  1689. Convention => C,
  1690. External_Name => "GetKeyPressed";
  1691. function Get_Character_Pressed return Character with
  1692. Import => True,
  1693. Convention => C,
  1694. External_Name => "GetCharPressed";
  1695. procedure Set_Exit_Key (
  1696. Key : Keyboard_Key := Key_Escape
  1697. ) with
  1698. Import => True,
  1699. Convention => C,
  1700. External_Name => "SetExitKey";
  1701. function Is_Gamepad_Available (
  1702. Gamepad : Integer := 0
  1703. ) return Logical with
  1704. Import => True,
  1705. Convention => C,
  1706. External_Name => "IsGamepadAvailable";
  1707. function Get_Gamepad_Name (
  1708. Gamepad : Integer := 0
  1709. ) return Strings with
  1710. Import => True,
  1711. Convention => C,
  1712. External_Name => "GetGamepadName";
  1713. function Is_Gamepad_Button_Pressed (
  1714. Gamepad : Integer := 0;
  1715. Button : Gamepad_Button := Gamepad_Button_Left_Thumb
  1716. ) return Logical with
  1717. Import => True,
  1718. Convention => C,
  1719. External_Name => "IsGamepadButtonPressed";
  1720. function Is_Gamepad_Button_Down (
  1721. Gamepad : Integer := 0;
  1722. Button : Gamepad_Button := Gamepad_Button_Left_Thumb
  1723. ) return Logical with
  1724. Import => True,
  1725. Convention => C,
  1726. External_Name => "IsGamepadButtonDown";
  1727. function Is_Gamepad_Button_Released (
  1728. Gamepad : Integer := 0;
  1729. Button : Gamepad_Button := Gamepad_Button_Left_Thumb
  1730. ) return Logical with
  1731. Import => True,
  1732. Convention => C,
  1733. External_Name => "IsGamepadButtonReleased";
  1734. function Is_Gamepad_Button_Up (
  1735. Gamepad : Integer := 0;
  1736. Button : Gamepad_Button := Gamepad_Button_Left_Thumb
  1737. ) return Logical with
  1738. Import => True,
  1739. Convention => C,
  1740. External_Name => "IsGamepadButtonUp";
  1741. function Get_Gamepad_Button_Pressed return Integer with
  1742. Import => True,
  1743. Convention => C,
  1744. External_Name => "GetGamepadButtonPressed";
  1745. function Get_Gamepad_Axis_Count (
  1746. Gamepad : Integer := 0
  1747. ) return Integer with
  1748. Import => True,
  1749. Convention => C,
  1750. External_Name => "GetGamepadAxisCount";
  1751. function Get_Gamepad_Axis_Movement (
  1752. Gamepad : Integer := 0;
  1753. Axis : Gamepad_Axis := Gamepad_Axis_Left_Trigger
  1754. ) return Float with
  1755. Import => True,
  1756. Convention => C,
  1757. External_Name => "GetGamepadAxisMovement";
  1758. function Set_Gamepad_Mappings (
  1759. Mappings : String := ""
  1760. ) return Integer with
  1761. Import => True,
  1762. Convention => C,
  1763. External_Name => "SetGamepadMappings";
  1764. function Is_Mouse_Button_Pressed (
  1765. Button : Mouse_Button := Mouse_Button_Left
  1766. ) return Logical with
  1767. Import => True,
  1768. Convention => C,
  1769. External_Name => "IsMouseButtonPressed";
  1770. function Is_Mouse_Button_Down (
  1771. Button : Mouse_Button := Mouse_Button_Left
  1772. ) return Logical with
  1773. Import => True,
  1774. Convention => C,
  1775. External_Name => "IsMouseButtonDown";
  1776. function Is_Mouse_Button_Released (
  1777. Button : Mouse_Button := Mouse_Button_Left
  1778. ) return Logical with
  1779. Import => True,
  1780. Convention => C,
  1781. External_Name => "IsMouseButtonReleased";
  1782. function Is_Mouse_Button_Up (
  1783. Button : Mouse_Button := Mouse_Button_Left
  1784. ) return Logical with
  1785. Import => True,
  1786. Convention => C,
  1787. External_Name => "IsMouseButtonUp";
  1788. function Get_Mouse_X return Integer with
  1789. Import => True,
  1790. Convention => C,
  1791. External_Name => "GetMouseX";
  1792. function Get_Mouse_Y return Integer with
  1793. Import => True,
  1794. Convention => C,
  1795. External_Name => "GetMouseY";
  1796. function Get_Mouse_Position return Vector_2D with
  1797. Import => True,
  1798. Convention => C,
  1799. External_Name => "GetMousePosition";
  1800. function Get_Mouse_Delta return Vector_2D with
  1801. Import => True,
  1802. Convention => C,
  1803. External_Name => "GetMouseDelta";
  1804. procedure Set_Mouse_Position (
  1805. X : Integer := 0;
  1806. Y : Integer := 0
  1807. ) with
  1808. Import => True,
  1809. Convention => C,
  1810. External_Name => "SetMousePosition";
  1811. procedure Set_Mouse_Offset (
  1812. X : Integer := 0;
  1813. Y : Integer := 0
  1814. ) with
  1815. Import => True,
  1816. Convention => C,
  1817. External_Name => "SetMouseOffset";
  1818. procedure Set_Mouse_Scale (
  1819. X : Float := 0.0;
  1820. Y : Float := 0.0
  1821. ) with
  1822. Import => True,
  1823. Convention => C,
  1824. External_Name => "SetMouseScale";
  1825. function Get_Mouse_Wheel_Move return Float with
  1826. Import => True,
  1827. Convention => C,
  1828. External_Name => "GetMouseWheelMove";
  1829. function Get_Mouse_Wheel_Move_V return Vector_2D with
  1830. Import => True,
  1831. Convention => C,
  1832. External_Name => "GetMouseWheelMoveV";
  1833. procedure Set_Mouse_Cursor (
  1834. Cursor : Mouse_Cursor := Mouse_Cursor_Default
  1835. ) with
  1836. Import => True,
  1837. Convention => C,
  1838. External_Name => "SetMouseCursor";
  1839. function Get_Touch_X return Integer with
  1840. Import => True,
  1841. Convention => C,
  1842. External_Name => "GetTouchX";
  1843. function Get_Touch_Y return Integer with
  1844. Import => True,
  1845. Convention => C,
  1846. External_Name => "GetTouchY";
  1847. function Get_Touch_Position (
  1848. Index : Integer := 0
  1849. ) return Vector_2D with
  1850. Import => True,
  1851. Convention => C,
  1852. External_Name => "GetTouchPosition";
  1853. function Get_Touch_Point_Id (
  1854. Index : Integer := 0
  1855. ) return Integer with
  1856. Import => True,
  1857. Convention => C,
  1858. External_Name => "GetTouchPointId";
  1859. function Get_Touch_Point_Count return Integer with
  1860. Import => True,
  1861. Convention => C,
  1862. External_Name => "GetTouchPointCount";
  1863. procedure Set_Gestures_Enabled (
  1864. Data : Gesture := Gesture_None
  1865. ) with
  1866. Import => True,
  1867. Convention => C,
  1868. External_Name => "SetGesturesEnabled";
  1869. function Is_Gesture_Detected (
  1870. Data : Gesture := Gesture_None
  1871. ) return Logical with
  1872. Import => True,
  1873. Convention => C,
  1874. External_Name => "IsGestureDetected";
  1875. function Get_Gesture_Detected return Integer with
  1876. Import => True,
  1877. Convention => C,
  1878. External_Name => "GetGestureDetected";
  1879. function Get_Gesture_Hold_Duration return Float with
  1880. Import => True,
  1881. Convention => C,
  1882. External_Name => "GetGestureHoldDuration";
  1883. function Get_Gesture_Drag_Vector return Vector_2D with
  1884. Import => True,
  1885. Convention => C,
  1886. External_Name => "GetGestureDragVector";
  1887. function Get_Gesture_Drag_Angle return Float with
  1888. Import => True,
  1889. Convention => C,
  1890. External_Name => "GetGestureDragAngle";
  1891. function Get_Gesture_Pinch_Vector return Vector_2D with
  1892. Import => True,
  1893. Convention => C,
  1894. External_Name => "GetGesturePinchVector";
  1895. function Get_Gesture_Pinch_Angle return Float with
  1896. Import => True,
  1897. Convention => C,
  1898. External_Name => "GetGesturePinchAngle";
  1899. procedure Update_Camera (
  1900. Data : access Camera_3D := null;
  1901. Mode : Camera_Mode := Camera_First_Person
  1902. ) with
  1903. Import => True,
  1904. Convention => C,
  1905. External_Name => "UpdateCamera";
  1906. procedure Update_Camera_Pro (
  1907. Data : access Camera_3D := null;
  1908. Movement : Vector_3D := (others => 0.0);
  1909. Rotation : Vector_3D := (others => 0.0);
  1910. Zoom : Float := 0.0
  1911. ) with
  1912. Import => True,
  1913. Convention => C,
  1914. External_Name => "UpdateCameraPro";
  1915. procedure Set_Shapes_Texture (
  1916. Data : Texture := No_Texture;
  1917. Source : Rectangle := No_Rectangle
  1918. ) with
  1919. Import => True,
  1920. Convention => C,
  1921. External_Name => "SetShapesTexture";
  1922. procedure Draw_Pixel (
  1923. X : Integer := 0;
  1924. Y : Integer := 0;
  1925. Tint : Color := White
  1926. ) with
  1927. Import => True,
  1928. Convention => C,
  1929. External_Name => "DrawPixel";
  1930. procedure Draw_Pixel_V (
  1931. Position : Vector_2D := (others => 0.0);
  1932. Tint : Color := White
  1933. ) with
  1934. Import => True,
  1935. Convention => C,
  1936. External_Name => "DrawPixelV";
  1937. procedure Draw_Line (
  1938. X0 : Integer := 0;
  1939. Y0 : Integer := 0;
  1940. X1 : Integer := 0;
  1941. Y1 : Integer := 0;
  1942. Tint : Color := Black
  1943. ) with
  1944. Import => True,
  1945. Convention => C,
  1946. External_Name => "DrawLine";
  1947. procedure Draw_Line_V (
  1948. From : Vector_2D := (others => 0.0);
  1949. To : Vector_2D := (others => 0.0);
  1950. Tint : Color := Black
  1951. ) with
  1952. Import => True,
  1953. Convention => C,
  1954. External_Name => "DrawLineV";
  1955. procedure Draw_Line_Ex (
  1956. From : Vector_2D := (others => 0.0);
  1957. To : Vector_2D := (others => 0.0);
  1958. Thick : Float := 0.0;
  1959. Tint : Color := Black
  1960. ) with
  1961. Import => True,
  1962. Convention => C,
  1963. External_Name => "DrawLineEx";
  1964. procedure Draw_Line_Strip (
  1965. Points : access Vector_2D := null;
  1966. Point_Count : Natural := 0;
  1967. Tint : Color := Black
  1968. ) with
  1969. Import => True,
  1970. Convention => C,
  1971. External_Name => "DrawLineStrip";
  1972. procedure Draw_Line_Bezier (
  1973. From : Vector_2D := (others => 0.0);
  1974. To : Vector_2D := (others => 0.0);
  1975. Thick : Float := 0.0;
  1976. Tint : Color := Black
  1977. ) with
  1978. Import => True,
  1979. Convention => C,
  1980. External_Name => "DrawLineBezier";
  1981. procedure Draw_Circle (
  1982. X : Integer := 0;
  1983. Y : Integer := 0;
  1984. Radius : Float := 0.0;
  1985. Tint : Color := Black
  1986. ) with
  1987. Import => True,
  1988. Convention => C,
  1989. External_Name => "DrawCircle";
  1990. procedure Draw_Circle_Sector (
  1991. Center : Vector_2D := (others => 0.0);
  1992. Radius : Float := 0.0;
  1993. From : Float := 0.0;
  1994. To : Float := 0.0;
  1995. Segments : Integer := 0;
  1996. Tint : Color := Black
  1997. ) with
  1998. Import => True,
  1999. Convention => C,
  2000. External_Name => "DrawCircleSector";
  2001. procedure Draw_Circle_Sector_Lines (
  2002. Center : Vector_2D := (others => 0.0);
  2003. Radius : Float := 0.0;
  2004. From : Float := 0.0;
  2005. To : Float := 0.0;
  2006. Segments : Integer := 0;
  2007. Tint : Color := Black
  2008. ) with
  2009. Import => True,
  2010. Convention => C,
  2011. External_Name => "DrawCircleSectorLines";
  2012. procedure Draw_Circle_Gradient (
  2013. X : Integer := 0;
  2014. Y : Integer := 0;
  2015. Radius : Float := 0.0;
  2016. Tint_1 : Color := Black;
  2017. Tint_2 : Color := White
  2018. ) with
  2019. Import => True,
  2020. Convention => C,
  2021. External_Name => "DrawCircleGradient";
  2022. procedure Draw_Circle_V (
  2023. Center : Vector_2D := (others => 0.0);
  2024. Radius : Float := 0.0;
  2025. Tint : Color := Black
  2026. ) with
  2027. Import => True,
  2028. Convention => C,
  2029. External_Name => "DrawCircleV";
  2030. procedure Draw_Circle_Lines (
  2031. X : Integer := 0;
  2032. Y : Integer := 0;
  2033. Radius : Float := 0.0;
  2034. Tint : Color := Black
  2035. ) with
  2036. Import => True,
  2037. Convention => C,
  2038. External_Name => "DrawCircleLines";
  2039. procedure Draw_Circle_Lines_V (
  2040. Center : Vector_2D := (others => 0.0);
  2041. Radius : Float := 0.0;
  2042. Tint : Color := Black
  2043. ) with
  2044. Import => True,
  2045. Convention => C,
  2046. External_Name => "DrawCircleLinesV";
  2047. procedure Draw_Ellipse (
  2048. X : Integer := 0;
  2049. Y : Integer := 0;
  2050. Horizontal : Float := 0.0;
  2051. Vertical : Float := 0.0;
  2052. Tint : Color := Black
  2053. ) with
  2054. Import => True,
  2055. Convention => C,
  2056. External_Name => "DrawEllipse";
  2057. procedure Draw_Ellipse_Lines (
  2058. X : Integer := 0;
  2059. Y : Integer := 0;
  2060. Horizontal : Float := 0.0;
  2061. Vertical : Float := 0.0;
  2062. Tint : Color := Black
  2063. ) with
  2064. Import => True,
  2065. Convention => C,
  2066. External_Name => "DrawEllipseLines";
  2067. procedure Draw_Ring (
  2068. Center : Vector_2D := (others => 0.0);
  2069. Inner_Radius : Float := 0.0;
  2070. Outer_Radius : Float := 0.0;
  2071. From : Float := 0.0;
  2072. To : Float := 0.0;
  2073. Segments : Integer := 0;
  2074. Tint : Color := Black
  2075. ) with
  2076. Import => True,
  2077. Convention => C,
  2078. External_Name => "DrawRing";
  2079. procedure Draw_Ring_Lines (
  2080. Center : Vector_2D := (others => 0.0);
  2081. Inner_Radius : Float := 0.0;
  2082. Outer_Radius : Float := 0.0;
  2083. From : Float := 0.0;
  2084. To : Float := 0.0;
  2085. Segments : Integer := 0;
  2086. Tint : Color := Black
  2087. ) with
  2088. Import => True,
  2089. Convention => C,
  2090. External_Name => "DrawRingLines";
  2091. procedure Draw_Rectangle (
  2092. X : Integer := 0;
  2093. Y : Integer := 0;
  2094. Width : Integer := 0;
  2095. Height : Integer := 0;
  2096. Tint : Color := Black
  2097. ) with
  2098. Import => True,
  2099. Convention => C,
  2100. External_Name => "DrawRectangle";
  2101. procedure Draw_Rectangle_V (
  2102. Position : Vector_2D := (others => 0.0);
  2103. Size : Vector_2D := (others => 0.0);
  2104. Tint : Color := Black
  2105. ) with
  2106. Import => True,
  2107. Convention => C,
  2108. External_Name => "DrawRectangleV";
  2109. procedure Draw_Rectangle_Rec (
  2110. Data : Rectangle := No_Rectangle;
  2111. Tint : Color := Black
  2112. ) with
  2113. Import => True,
  2114. Convention => C,
  2115. External_Name => "DrawRectangleRec";
  2116. procedure Draw_Rectangle_Pro (
  2117. Data : Rectangle := No_Rectangle;
  2118. Origin : Vector_2D := (others => 0.0);
  2119. Rotation : Float := 0.0;
  2120. Tint : Color := Black
  2121. ) with
  2122. Import => True,
  2123. Convention => C,
  2124. External_Name => "DrawRectanglePro";
  2125. procedure Draw_Rectangle_Gradient_V (
  2126. X : Integer := 0;
  2127. Y : Integer := 0;
  2128. Width : Integer := 0;
  2129. Height : Integer := 0;
  2130. Color_1 : Color := Black;
  2131. Color_2 : Color := White
  2132. ) with
  2133. Import => True,
  2134. Convention => C,
  2135. External_Name => "DrawRectangleGradientV";
  2136. procedure Draw_Rectangle_Gradient_H (
  2137. X : Integer := 0;
  2138. Y : Integer := 0;
  2139. Width : Integer := 0;
  2140. Height : Integer := 0;
  2141. Color_1 : Color := Black;
  2142. Color_2 : Color := White
  2143. ) with
  2144. Import => True,
  2145. Convention => C,
  2146. External_Name => "DrawRectangleGradientH";
  2147. procedure Draw_Rectangle_Gradient_Ex (
  2148. Data : Rectangle := No_Rectangle;
  2149. Color_1 : Color := Red;
  2150. Color_2 : Color := Green;
  2151. Color_3 : Color := Blue;
  2152. Color_4 : Color := Black
  2153. ) with
  2154. Import => True,
  2155. Convention => C,
  2156. External_Name => "DrawRectangleGradientEx";
  2157. procedure Draw_Rectangle_Lines (
  2158. X : Integer := 0;
  2159. Y : Integer := 0;
  2160. Width : Integer := 0;
  2161. Height : Integer := 0;
  2162. Tint : Color := Black
  2163. ) with
  2164. Import => True,
  2165. Convention => C,
  2166. External_Name => "DrawRectangleLines";
  2167. procedure Draw_Rectangle_Lines_Ex (
  2168. Data : Rectangle := No_Rectangle;
  2169. Thickness : Float := 1.0;
  2170. Tint : Color := Black
  2171. ) with
  2172. Import => True,
  2173. Convention => C,
  2174. External_Name => "DrawRectangleLinesEx";
  2175. procedure Draw_Rectangle_Rounded (
  2176. Data : Rectangle := No_Rectangle;
  2177. Roundness : Float := 1.0;
  2178. Segments : Integer := 1;
  2179. Tint : Color := Black
  2180. ) with
  2181. Import => True,
  2182. Convention => C,
  2183. External_Name => "DrawRectangleRounded";
  2184. procedure Draw_Rectangle_Rounded_Lines (
  2185. Data : Rectangle := No_Rectangle;
  2186. Roundness : Float := 1.0;
  2187. Segments : Integer := 1;
  2188. Thickness : Float := 1.0;
  2189. Tint : Color := Black
  2190. ) with
  2191. Import => True,
  2192. Convention => C,
  2193. External_Name => "DrawRectangleRoundedLines";
  2194. procedure Draw_Triangle (
  2195. Point_1 : Vector_2D := (others => 0.0);
  2196. Point_2 : Vector_2D := (others => 0.0);
  2197. Point_3 : Vector_2D := (others => 0.0);
  2198. Tint : Color := White
  2199. ) with
  2200. Import => True,
  2201. Convention => C,
  2202. External_Name => "DrawTriangle";
  2203. procedure Draw_Triangle_Lines (
  2204. Point_1 : Vector_2D := (others => 0.0);
  2205. Point_2 : Vector_2D := (others => 0.0);
  2206. Point_3 : Vector_2D := (others => 0.0);
  2207. Tint : Color := White
  2208. ) with
  2209. Import => True,
  2210. Convention => C,
  2211. External_Name => "DrawTriangleLines";
  2212. procedure Draw_Triangle_Fan (
  2213. Points : access Vector_2D := null;
  2214. Point_Count : Natural := 0;
  2215. Tint : Color := White
  2216. ) with
  2217. Import => True,
  2218. Convention => C,
  2219. External_Name => "DrawTriangleFan";
  2220. procedure Draw_Triangle_Strip (
  2221. Points : access Vector_2D := null;
  2222. Point_Count : Natural := 0;
  2223. Tint : Color := White
  2224. ) with
  2225. Import => True,
  2226. Convention => C,
  2227. External_Name => "DrawTriangleStrip";
  2228. procedure Draw_Poly (
  2229. Center : Vector_2D := (others => 0.0);
  2230. Sides : Natural := 0;
  2231. Radius : Float := 0.0;
  2232. Rotation : Float := 0.0;
  2233. Tint : Color := White
  2234. ) with
  2235. Import => True,
  2236. Convention => C,
  2237. External_Name => "DrawPoly";
  2238. procedure Draw_Poly_Lines (
  2239. Center : Vector_2D := (others => 0.0);
  2240. Sides : Natural := 0;
  2241. Radius : Float := 0.0;
  2242. Rotation : Float := 0.0;
  2243. Tint : Color := White
  2244. ) with
  2245. Import => True,
  2246. Convention => C,
  2247. External_Name => "DrawPolyLines";
  2248. procedure Draw_Poly_Lines_Ex (
  2249. Center : Vector_2D := (others => 0.0);
  2250. Sides : Natural := 0;
  2251. Radius : Float := 0.0;
  2252. Rotation : Float := 0.0;
  2253. Thickness : Float := 0.0;
  2254. Tint : Color := White
  2255. ) with
  2256. Import => True,
  2257. Convention => C,
  2258. External_Name => "DrawPolyLinesEx";
  2259. procedure Draw_Spline_Linear (
  2260. Points : access Vector_2D := null;
  2261. Point_Count : Natural := 0;
  2262. Thickness : Float := 0.0;
  2263. Tint : Color := White
  2264. ) with
  2265. Import => True,
  2266. Convention => C,
  2267. External_Name => "DrawSplineLinear";
  2268. procedure Draw_Spline_Basis (
  2269. Points : access Vector_2D := null;
  2270. Point_Count : Natural := 0;
  2271. Thickness : Float := 0.0;
  2272. Tint : Color := White
  2273. ) with
  2274. Import => True,
  2275. Convention => C,
  2276. External_Name => "DrawSplineBasis";
  2277. procedure Draw_Spline_Catmull_Rom (
  2278. Points : access Vector_2D := null;
  2279. Point_Count : Natural := 0;
  2280. Thickness : Float := 0.0;
  2281. Tint : Color := White
  2282. ) with
  2283. Import => True,
  2284. Convention => C,
  2285. External_Name => "DrawSplineCatmullRom";
  2286. procedure Draw_Spline_Bezier_Quadratic (
  2287. Points : access Vector_2D := null;
  2288. Point_Count : Natural := 0;
  2289. Thickness : Float := 0.0;
  2290. Tint : Color := White
  2291. ) with
  2292. Import => True,
  2293. Convention => C,
  2294. External_Name => "DrawSplineBezierQuadratic";
  2295. procedure Draw_Spline_Bezier_Cubic (
  2296. Points : access Vector_2D := null;
  2297. Point_Count : Natural := 0;
  2298. Thickness : Float := 0.0;
  2299. Tint : Color := White
  2300. ) with
  2301. Import => True,
  2302. Convention => C,
  2303. External_Name => "DrawSplineBezierCubic";
  2304. procedure Draw_Spline_Segment_Linear (
  2305. From : Vector_2D := (others => 0.0);
  2306. To : Vector_2D := (others => 0.0);
  2307. Thickness : Float := 0.0;
  2308. Tint : Color := White
  2309. ) with
  2310. Import => True,
  2311. Convention => C,
  2312. External_Name => "DrawSplineSegmentLinear";
  2313. procedure Draw_Spline_Segment_Basis (
  2314. Point_1 : Vector_2D := (others => 0.0);
  2315. Point_2 : Vector_2D := (others => 0.0);
  2316. Point_3 : Vector_2D := (others => 0.0);
  2317. Point_4 : Vector_2D := (others => 0.0);
  2318. Thickness : Float := 0.0;
  2319. Tint : Color := White
  2320. ) with
  2321. Import => True,
  2322. Convention => C,
  2323. External_Name => "DrawSplineSegmentBasis";
  2324. procedure Draw_Spline_Segment_Catmull_Rom (
  2325. Point_1 : Vector_2D := (others => 0.0);
  2326. Point_2 : Vector_2D := (others => 0.0);
  2327. Point_3 : Vector_2D := (others => 0.0);
  2328. Point_4 : Vector_2D := (others => 0.0);
  2329. Thickness : Float := 0.0;
  2330. Tint : Color := White
  2331. ) with
  2332. Import => True,
  2333. Convention => C,
  2334. External_Name => "DrawSplineSegmentCatmullRom";
  2335. procedure Draw_Spline_Segment_Bezier_Quadratic (
  2336. Point_1 : Vector_2D := (others => 0.0);
  2337. Point_2 : Vector_2D := (others => 0.0);
  2338. Point_3 : Vector_2D := (others => 0.0);
  2339. Thickness : Float := 0.0;
  2340. Tint : Color := White
  2341. ) with
  2342. Import => True,
  2343. Convention => C,
  2344. External_Name => "DrawSplineSegmentBezierQuadratic";
  2345. procedure Draw_Spline_Segment_Bezier_Cubic (
  2346. Point_1 : Vector_2D := (others => 0.0);
  2347. Point_2 : Vector_2D := (others => 0.0);
  2348. Point_3 : Vector_2D := (others => 0.0);
  2349. Point_4 : Vector_2D := (others => 0.0);
  2350. Thickness : Float := 0.0;
  2351. Tint : Color := White
  2352. ) with
  2353. Import => True,
  2354. Convention => C,
  2355. External_Name => "DrawSplineSegmentBezierCubic";
  2356. function Get_Spline_Point_Linear (
  2357. From : Vector_2D := (others => 0.0);
  2358. To : Vector_2D := (others => 0.0);
  2359. Off : Float := 0.0
  2360. ) return Vector_2D with
  2361. Import => True,
  2362. Convention => C,
  2363. External_Name => "GetSplinePointLinear";
  2364. function Get_Spline_Point_Basis (
  2365. Point_1 : Vector_2D := (others => 0.0);
  2366. Point_2 : Vector_2D := (others => 0.0);
  2367. Point_3 : Vector_2D := (others => 0.0);
  2368. Point_4 : Vector_2D := (others => 0.0);
  2369. Off : Float := 0.0
  2370. ) return Vector_2D with
  2371. Import => True,
  2372. Convention => C,
  2373. External_Name => "GetSplinePointBasis";
  2374. function Get_Spline_Point_Catmull_Rom (
  2375. Point_1 : Vector_2D := (others => 0.0);
  2376. Point_2 : Vector_2D := (others => 0.0);
  2377. Point_3 : Vector_2D := (others => 0.0);
  2378. Point_4 : Vector_2D := (others => 0.0);
  2379. Off : Float := 0.0
  2380. ) return Vector_2D with
  2381. Import => True,
  2382. Convention => C,
  2383. External_Name => "GetSplinePointCatmullRom";
  2384. function Get_Spline_Point_Bezier_Quad (
  2385. Point_1 : Vector_2D := (others => 0.0);
  2386. Point_2 : Vector_2D := (others => 0.0);
  2387. Point_3 : Vector_2D := (others => 0.0);
  2388. Off : Float := 0.0
  2389. ) return Vector_2D with
  2390. Import => True,
  2391. Convention => C,
  2392. External_Name => "GetSplinePointBezierQuad";
  2393. function Get_Spline_Point_Bezier_Cubic (
  2394. Point_1 : Vector_2D := (others => 0.0);
  2395. Point_2 : Vector_2D := (others => 0.0);
  2396. Point_3 : Vector_2D := (others => 0.0);
  2397. Point_4 : Vector_2D := (others => 0.0);
  2398. Off : Float := 0.0
  2399. ) return Vector_2D with
  2400. Import => True,
  2401. Convention => C,
  2402. External_Name => "GetSplinePointBezierCubic";
  2403. function Check_Collision_Recs (
  2404. Bound_1 : Rectangle := No_Rectangle;
  2405. Bound_2 : Rectangle := No_Rectangle
  2406. ) return Logical with
  2407. Import => True,
  2408. Convention => C,
  2409. External_Name => "CheckCollisionRecs";
  2410. function Check_Collision_Circles (
  2411. Center_1 : Vector_2D := (others => 0.0);
  2412. Radius_1 : Float := 0.0;
  2413. Center_2 : Vector_2D := (others => 0.0);
  2414. Radius_2 : Float := 0.0
  2415. ) return Logical with
  2416. Import => True,
  2417. Convention => C,
  2418. External_Name => "CheckCollisionCircles";
  2419. function Check_Collision_Circle_Rec (
  2420. Center : Vector_2D := (others => 0.0);
  2421. Radius : Float := 0.0;
  2422. Bound : Rectangle := No_Rectangle
  2423. ) return Logical with
  2424. Import => True,
  2425. Convention => C,
  2426. External_Name => "CheckCollisionCircleRec";
  2427. function Check_Collision_Point_Rec (
  2428. Point : Vector_2D := (others => 0.0);
  2429. Bound : Rectangle := No_Rectangle
  2430. ) return Logical with
  2431. Import => True,
  2432. Convention => C,
  2433. External_Name => "CheckCollisionPointRec";
  2434. function Check_Collision_Point_Circle (
  2435. Point : Vector_2D := (others => 0.0);
  2436. Center : Vector_2D := (others => 0.0);
  2437. Radius : Float := 0.0
  2438. ) return Logical with
  2439. Import => True,
  2440. Convention => C,
  2441. External_Name => "CheckCollisionPointCircle";
  2442. function Check_Collision_Point_Triangle (
  2443. Point : Vector_2D := (others => 0.0);
  2444. Triangle_A : Vector_2D := (others => 0.0);
  2445. Triangle_B : Vector_2D := (others => 0.0);
  2446. Triangle_C : Vector_2D := (others => 0.0)
  2447. ) return Logical with
  2448. Import => True,
  2449. Convention => C,
  2450. External_Name => "CheckCollisionPointTriangle";
  2451. function Check_Collision_Point_Poly (
  2452. Point : Vector_2D := (others => 0.0);
  2453. Points : access Vector_2D := null;
  2454. Point_Count : Natural := 0
  2455. ) return Logical with
  2456. Import => True,
  2457. Convention => C,
  2458. External_Name => "CheckCollisionPointPoly";
  2459. function Check_Collision_Lines (
  2460. From_1 : Vector_2D := (others => 0.0);
  2461. To_1 : Vector_2D := (others => 0.0);
  2462. From_2 : Vector_2D := (others => 0.0);
  2463. To_2 : Vector_2D := (others => 0.0);
  2464. Intersections : access Vector_2D := null
  2465. ) return Logical with
  2466. Import => True,
  2467. Convention => C,
  2468. External_Name => "CheckCollisionLines";
  2469. function Check_Collision_Point_Line (
  2470. Point : Vector_2D := (others => 0.0);
  2471. From : Vector_2D := (others => 0.0);
  2472. To : Vector_2D := (others => 0.0);
  2473. Threshold : Natural := 0
  2474. ) return Logical with
  2475. Import => True,
  2476. Convention => C,
  2477. External_Name => "CheckCollisionPointLine";
  2478. function Get_Collision_Rec (
  2479. Bound_1 : Rectangle := No_Rectangle;
  2480. Bound_2 : Rectangle := No_Rectangle
  2481. ) return Rectangle with
  2482. Import => True,
  2483. Convention => C,
  2484. External_Name => "GetCollisionRec";
  2485. function Load_Image (
  2486. File_Name : String := ""
  2487. ) return Image with
  2488. Import => True,
  2489. Convention => C,
  2490. External_Name => "LoadImage";
  2491. function Load_Image_Raw (
  2492. File_Name : String := "";
  2493. Width : Natural := 0;
  2494. Height : Natural := 0;
  2495. Format : Integer := 0;
  2496. Header_Size : Integer := 0
  2497. ) return Image with
  2498. Import => True,
  2499. Convention => C,
  2500. External_Name => "LoadImageRaw";
  2501. function Load_Image_Svg (
  2502. File_Name : String := "";
  2503. Width : Natural := 0;
  2504. Height : Natural := 0
  2505. ) return Image with
  2506. Import => True,
  2507. Convention => C,
  2508. External_Name => "LoadImageSvg";
  2509. function Load_Image_Anim (
  2510. File_Name : String := "";
  2511. Frames : access Integer := null
  2512. ) return Image with
  2513. Import => True,
  2514. Convention => C,
  2515. External_Name => "LoadImageAnim";
  2516. function Load_Image_From_Memory (
  2517. File_Type : String := "";
  2518. File_Data : Pointer := null;
  2519. Data_Size : Natural := 0
  2520. ) return Image with
  2521. Import => True,
  2522. Convention => C,
  2523. External_Name => "LoadImageFromMemory";
  2524. function Load_Image_From_Texture (
  2525. Data : Texture := No_Texture
  2526. ) return Image with
  2527. Import => True,
  2528. Convention => C,
  2529. External_Name => "LoadImageFromTexture";
  2530. function Load_Image_From_Screen return Image with
  2531. Import => True,
  2532. Convention => C,
  2533. External_Name => "LoadImageFromScreen";
  2534. function Is_Image_Ready (
  2535. Data : Image := No_Image
  2536. ) return Logical with
  2537. Import => True,
  2538. Convention => C,
  2539. External_Name => "IsImageReady";
  2540. procedure Unload_Image (
  2541. Data : Image := No_Image
  2542. ) with
  2543. Import => True,
  2544. Convention => C,
  2545. External_Name => "UnloadImage";
  2546. function Export_Image (
  2547. Data : Image := No_Image;
  2548. File_Name : String := ""
  2549. ) return Logical with
  2550. Import => True,
  2551. Convention => C,
  2552. External_Name => "ExportImage";
  2553. function Export_Image_To_Memory (
  2554. Data : Image := No_Image;
  2555. File_Type : String := "";
  2556. File_Size : access Integer := null
  2557. ) return Pointer with
  2558. Import => True,
  2559. Convention => C,
  2560. External_Name => "ExportImageToMemory";
  2561. function Export_Image_As_Code (
  2562. Data : Image := No_Image;
  2563. File_Name : String := ""
  2564. ) return Logical with
  2565. Import => True,
  2566. Convention => C,
  2567. External_Name => "ExportImageAsCode";
  2568. function Gen_Image_Color (
  2569. Width : Natural := 0;
  2570. Height : Natural := 0;
  2571. Tint : Color := White
  2572. ) return Image with
  2573. Import => True,
  2574. Convention => C,
  2575. External_Name => "GenImageColor";
  2576. function Gen_Image_Gradient_Linear (
  2577. Width : Natural := 0;
  2578. Height : Natural := 0;
  2579. Direction : Integer := 0;
  2580. From : Color := White;
  2581. To : Color := Black
  2582. ) return Image with
  2583. Import => True,
  2584. Convention => C,
  2585. External_Name => "GenImageGradientLinear";
  2586. function Gen_Image_Gradient_Radial (
  2587. Width : Natural := 0;
  2588. Height : Natural := 0;
  2589. Density : Float := 0.0;
  2590. Inner : Color := White;
  2591. Outer : Color := Black
  2592. ) return Image with
  2593. Import => True,
  2594. Convention => C,
  2595. External_Name => "GenImageGradientRadial";
  2596. function Gen_Image_Gradient_Square (
  2597. Width : Natural := 0;
  2598. Height : Natural := 0;
  2599. Density : Float := 0.0;
  2600. Inner : Color := White;
  2601. Outer : Color := Black
  2602. ) return Image with
  2603. Import => True,
  2604. Convention => C,
  2605. External_Name => "GenImageGradientSquare";
  2606. function Gen_Image_Checked (
  2607. Width : Natural := 0;
  2608. Height : Natural := 0;
  2609. X : Natural := 0;
  2610. Y : Natural := 0;
  2611. Color_1 : Color := White;
  2612. Color_2 : Color := Black
  2613. ) return Image with
  2614. Import => True,
  2615. Convention => C,
  2616. External_Name => "GenImageChecked";
  2617. function Gen_Image_White_Noise (
  2618. Width : Natural := 0;
  2619. Height : Natural := 0;
  2620. Factor : Float := 0.0
  2621. ) return Image with
  2622. Import => True,
  2623. Convention => C,
  2624. External_Name => "GenImageWhiteNoise";
  2625. function Gen_Image_Perlin_Noise (
  2626. Width : Natural := 0;
  2627. Height : Natural := 0;
  2628. X : Natural := 0;
  2629. Y : Natural := 0;
  2630. Scale : Float := 0.0
  2631. ) return Image with
  2632. Import => True,
  2633. Convention => C,
  2634. External_Name => "GenImagePerlinNoise";
  2635. function Gen_Image_Cellular (
  2636. Width : Natural := 0;
  2637. Height : Natural := 0;
  2638. Size : Natural := 0
  2639. ) return Image with
  2640. Import => True,
  2641. Convention => C,
  2642. External_Name => "GenImageCellular";
  2643. function Gen_Image_Text (
  2644. Width : Natural := 0;
  2645. Height : Natural := 0;
  2646. Text : String := ""
  2647. ) return Image with
  2648. Import => True,
  2649. Convention => C,
  2650. External_Name => "GenImageText";
  2651. function Image_Copy (
  2652. Data : Image := No_Image
  2653. ) return Image with
  2654. Import => True,
  2655. Convention => C,
  2656. External_Name => "ImageCopy";
  2657. function Image_From_Image (
  2658. Data : Image := No_Image;
  2659. Crop : Rectangle := No_Rectangle
  2660. ) return Image with
  2661. Import => True,
  2662. Convention => C,
  2663. External_Name => "ImageFromImage";
  2664. function Image_Text (
  2665. Text : String := "";
  2666. Font_Size : Natural := 0;
  2667. Tint : Color := Black
  2668. ) return Image with
  2669. Import => True,
  2670. Convention => C,
  2671. External_Name => "ImageText";
  2672. function Image_Text_Ex (
  2673. Data : Font := No_Font;
  2674. Text : String := "";
  2675. Font_Size : Natural := 0;
  2676. Spacing : Float := 0.0;
  2677. Tint : Color := Black
  2678. ) return Image with
  2679. Import => True,
  2680. Convention => C,
  2681. External_Name => "ImageTextEx";
  2682. procedure Image_Format (
  2683. Data : access Image := null;
  2684. Format : Integer := 0
  2685. ) with
  2686. Import => True,
  2687. Convention => C,
  2688. External_Name => "ImageFormat";
  2689. procedure Image_To_POT (
  2690. Data : access Image := null;
  2691. Fill : Color := White
  2692. ) with
  2693. Import => True,
  2694. Convention => C,
  2695. External_Name => "ImageToPOT";
  2696. procedure Image_Crop (
  2697. Data : access Image := null;
  2698. Crop : Rectangle := No_Rectangle
  2699. ) with
  2700. Import => True,
  2701. Convention => C,
  2702. External_Name => "ImageCrop";
  2703. procedure Image_Alpha_Crop (
  2704. Data : access Image := null;
  2705. Threshold : Float := 0.0
  2706. ) with
  2707. Import => True,
  2708. Convention => C,
  2709. External_Name => "ImageAlphaCrop";
  2710. procedure Image_Alpha_Clear (
  2711. Data : access Image := null;
  2712. Tint : Color := White;
  2713. Threshold : Float := 0.0
  2714. ) with
  2715. Import => True,
  2716. Convention => C,
  2717. External_Name => "ImageAlphaClear";
  2718. procedure Image_Alpha_Mask (
  2719. Data : access Image := null;
  2720. Mask : Image := No_Image
  2721. ) with
  2722. Import => True,
  2723. Convention => C,
  2724. External_Name => "ImageAlphaMask";
  2725. procedure Image_Alpha_Premultiply (
  2726. Data : access Image := null
  2727. ) with
  2728. Import => True,
  2729. Convention => C,
  2730. External_Name => "ImageAlphaPremultiply";
  2731. procedure Image_Blur_Gaussian (
  2732. Data : access Image := null;
  2733. Blur : Integer := 0
  2734. ) with
  2735. Import => True,
  2736. Convention => C,
  2737. External_Name => "ImageBlurGaussian";
  2738. procedure Image_Kernel_Convolution (
  2739. Data : access Image := null;
  2740. Kernel : access Float := null;
  2741. Kernel_Size : Integer := 0
  2742. ) with
  2743. Import => True,
  2744. Convention => C,
  2745. External_Name => "ImageKernelConvolution";
  2746. procedure Image_Resize (
  2747. Data : access Image := null;
  2748. Width : Natural := 0;
  2749. Height : Natural := 0
  2750. ) with
  2751. Import => True,
  2752. Convention => C,
  2753. External_Name => "ImageResize";
  2754. procedure Image_Resize_NN (
  2755. Data : access Image := null;
  2756. Width : Natural := 0;
  2757. Height : Natural := 0
  2758. ) with
  2759. Import => True,
  2760. Convention => C,
  2761. External_Name => "ImageResizeNN";
  2762. procedure Image_Resize_Canvas (
  2763. Data : access Image := null;
  2764. Width : Natural := 0;
  2765. Height : Natural := 0;
  2766. X : Integer := 0;
  2767. Y : Integer := 0;
  2768. Fill : Color := White
  2769. ) with
  2770. Import => True,
  2771. Convention => C,
  2772. External_Name => "ImageResizeCanvas";
  2773. procedure Image_Mipmaps (
  2774. Data : access Image := null
  2775. ) with
  2776. Import => True,
  2777. Convention => C,
  2778. External_Name => "ImageMipmaps";
  2779. procedure Image_Dither (
  2780. Data : access Image := null;
  2781. R : Integer := 0;
  2782. G : Integer := 0;
  2783. B : Integer := 0;
  2784. A : Integer := 0
  2785. ) with
  2786. Import => True,
  2787. Convention => C,
  2788. External_Name => "ImageDither";
  2789. procedure Image_Flip_Vertical (
  2790. Data : access Image := null
  2791. ) with
  2792. Import => True,
  2793. Convention => C,
  2794. External_Name => "ImageFlipVertical";
  2795. procedure Image_Flip_Horizontal (
  2796. Data : access Image := null
  2797. ) with
  2798. Import => True,
  2799. Convention => C,
  2800. External_Name => "ImageFlipHorizontal";
  2801. procedure Image_Rotate (
  2802. Data : access Image := null;
  2803. Degrees : Integer := 0
  2804. ) with
  2805. Import => True,
  2806. Convention => C,
  2807. External_Name => "ImageRotate";
  2808. procedure Image_Rotate_CW (
  2809. Data : access Image := null
  2810. ) with
  2811. Import => True,
  2812. Convention => C,
  2813. External_Name => "ImageRotateCW";
  2814. procedure Image_Rotate_CCW (
  2815. Data : access Image := null
  2816. ) with
  2817. Import => True,
  2818. Convention => C,
  2819. External_Name => "ImageRotateCCW";
  2820. procedure Image_Color_Tint (
  2821. Data : access Image := null;
  2822. Tint : Color := White
  2823. ) with
  2824. Import => True,
  2825. Convention => C,
  2826. External_Name => "ImageColorTint";
  2827. procedure Image_Color_Invert (
  2828. Data : access Image := null
  2829. ) with
  2830. Import => True,
  2831. Convention => C,
  2832. External_Name => "ImageColorInvert";
  2833. procedure Image_Color_Grayscale (
  2834. Data : access Image := null
  2835. ) with
  2836. Import => True,
  2837. Convention => C,
  2838. External_Name => "ImageColorGrayscale";
  2839. procedure Image_Color_Contrast (
  2840. Data : access Image := null;
  2841. Contrast : Float := 0.0
  2842. ) with
  2843. Import => True,
  2844. Convention => C,
  2845. External_Name => "ImageColorContrast";
  2846. procedure Image_Color_Brightness (
  2847. Data : access Image := null;
  2848. Brightness : Integer := 0
  2849. ) with
  2850. Import => True,
  2851. Convention => C,
  2852. External_Name => "ImageColorBrightness";
  2853. procedure Image_Color_Replace (
  2854. Data : access Image := null;
  2855. Color_1 : Color := White;
  2856. Color_2 : Color := Black
  2857. ) with
  2858. Import => True,
  2859. Convention => C,
  2860. External_Name => "ImageColorReplace";
  2861. function Load_Image_Colors (
  2862. Data : Image := No_Image
  2863. ) return access Color with
  2864. Import => True,
  2865. Convention => C,
  2866. External_Name => "LoadImageColors";
  2867. function Load_Image_Palette (
  2868. Data : Image := No_Image;
  2869. Palette_Size : Natural := 0;
  2870. Color_Count : access Integer := null
  2871. ) return access Color with
  2872. Import => True,
  2873. Convention => C,
  2874. External_Name => "LoadImagePalette";
  2875. procedure Unload_Image_Colors (
  2876. Colors : access Color := null
  2877. ) with
  2878. Import => True,
  2879. Convention => C,
  2880. External_Name => "UnloadImageColors";
  2881. procedure Unload_Image_Palette (
  2882. Colors : access Color := null
  2883. ) with
  2884. Import => True,
  2885. Convention => C,
  2886. External_Name => "UnloadImagePalette";
  2887. function Get_Image_Alpha_Border (
  2888. Data : Image := No_Image;
  2889. Threshold : Float := 0.0
  2890. ) return Rectangle with
  2891. Import => True,
  2892. Convention => C,
  2893. External_Name => "GetImageAlphaBorder";
  2894. function Get_Image_Color (
  2895. Data : Image := No_Image;
  2896. X : Integer := 0;
  2897. Y : Integer := 0
  2898. ) return Color with
  2899. Import => True,
  2900. Convention => C,
  2901. External_Name => "GetImageColor";
  2902. procedure Image_Clear_Background (
  2903. Destination : access Image := null;
  2904. Tint : Color := White
  2905. ) with
  2906. Import => True,
  2907. Convention => C,
  2908. External_Name => "ImageClearBackground";
  2909. procedure Image_Draw_Pixel (
  2910. Destination : access Image := null;
  2911. X : Integer := 0;
  2912. Y : Integer := 0;
  2913. Tint : Color := White
  2914. ) with
  2915. Import => True,
  2916. Convention => C,
  2917. External_Name => "ImageDrawPixel";
  2918. procedure Image_Draw_Pixel_V (
  2919. Destination : access Image := null;
  2920. Position : Vector_2D := (others => 0.0);
  2921. Tint : Color := White
  2922. ) with
  2923. Import => True,
  2924. Convention => C,
  2925. External_Name => "ImageDrawPixelV";
  2926. procedure Image_Draw_Line (
  2927. Destination : access Image := null;
  2928. From_X : Integer := 0;
  2929. From_Y : Integer := 0;
  2930. To_X : Integer := 0;
  2931. To_Y : Integer := 0;
  2932. Tint : Color := White
  2933. ) with
  2934. Import => True,
  2935. Convention => C,
  2936. External_Name => "ImageDrawLine";
  2937. procedure Image_Draw_Line_V (
  2938. Destination : access Image := null;
  2939. From : Vector_2D := (others => 0.0);
  2940. To : Vector_2D := (others => 0.0);
  2941. Tint : Color := White
  2942. ) with
  2943. Import => True,
  2944. Convention => C,
  2945. External_Name => "ImageDrawLineV";
  2946. procedure Image_Draw_Circle (
  2947. Destination : access Image := null;
  2948. Center_X : Integer := 0;
  2949. Center_Y : Integer := 0;
  2950. Radius : Integer := 0;
  2951. Tint : Color := White
  2952. ) with
  2953. Import => True,
  2954. Convention => C,
  2955. External_Name => "ImageDrawCircle";
  2956. procedure Image_Draw_Circle_V (
  2957. Destination : access Image := null;
  2958. Center : Vector_2D := (others => 0.0);
  2959. Radius : Integer := 0;
  2960. Tint : Color := White
  2961. ) with
  2962. Import => True,
  2963. Convention => C,
  2964. External_Name => "ImageDrawCircleV";
  2965. procedure Image_Draw_Circle_Lines (
  2966. Destination : access Image := null;
  2967. Center_X : Integer := 0;
  2968. Center_Y : Integer := 0;
  2969. Radius : Integer := 0;
  2970. Tint : Color := White
  2971. ) with
  2972. Import => True,
  2973. Convention => C,
  2974. External_Name => "ImageDrawCircleLines";
  2975. procedure Image_Draw_Circle_Lines_V (
  2976. Destination : access Image := null;
  2977. Center : Vector_2D := (others => 0.0);
  2978. Radius : Integer := 0;
  2979. Tint : Color := White
  2980. ) with
  2981. Import => True,
  2982. Convention => C,
  2983. External_Name => "ImageDrawCircleLinesV";
  2984. procedure Image_Draw_Rectangle (
  2985. Destination : access Image := null;
  2986. X : Integer := 0;
  2987. Y : Integer := 0;
  2988. Width : Integer := 0;
  2989. Height : Integer := 0;
  2990. Tint : Color := White
  2991. ) with
  2992. Import => True,
  2993. Convention => C,
  2994. External_Name => "ImageDrawRectangle";
  2995. procedure Image_Draw_Rectangle_V (
  2996. Destination : access Image := null;
  2997. Position : Vector_2D := (others => 0.0);
  2998. Size : Vector_2D := (others => 0.0);
  2999. Tint : Color := White
  3000. ) with
  3001. Import => True,
  3002. Convention => C,
  3003. External_Name => "ImageDrawRectangleV";
  3004. procedure Image_Draw_Rectangle_Rec (
  3005. Destination : access Image := null;
  3006. Data : Rectangle := No_Rectangle;
  3007. Tint : Color := White
  3008. ) with
  3009. Import => True,
  3010. Convention => C,
  3011. External_Name => "ImageDrawRectangleRec";
  3012. procedure Image_Draw_Rectangle_Lines (
  3013. Destination : access Image := null;
  3014. Data : Rectangle := No_Rectangle;
  3015. Thick : Integer := 0;
  3016. Tint : Color := White
  3017. ) with
  3018. Import => True,
  3019. Convention => C,
  3020. External_Name => "ImageDrawRectangleLines";
  3021. procedure Image_Draw (
  3022. Destination : access Image := null;
  3023. Source : Image := No_Image;
  3024. From : Rectangle := No_Rectangle;
  3025. To : Rectangle := No_Rectangle;
  3026. Tint : Color := White
  3027. ) with
  3028. Import => True,
  3029. Convention => C,
  3030. External_Name => "ImageDraw";
  3031. procedure Image_Draw_Text (
  3032. Destination : access Image := null;
  3033. Text : String := "";
  3034. X : Integer := 0;
  3035. Y : Integer := 0;
  3036. Font_Size : Integer := 0;
  3037. Tint : Color := White
  3038. ) with
  3039. Import => True,
  3040. Convention => C,
  3041. External_Name => "ImageDrawText";
  3042. procedure Image_Draw_Text_Ex (
  3043. Destination : access Image := null;
  3044. Data : Font := No_Font;
  3045. Text : String := "";
  3046. Position : Vector_2D := (others => 0.0);
  3047. Font_Size : Float := 0.0;
  3048. Spacing : Float := 0.0;
  3049. Tint : Color := White
  3050. ) with
  3051. Import => True,
  3052. Convention => C,
  3053. External_Name => "ImageDrawTextEx";
  3054. function Load_Texture (
  3055. File_Path : String := ""
  3056. ) return Texture with
  3057. Import => True,
  3058. Convention => C,
  3059. External_Name => "LoadTexture";
  3060. function Load_Texture_From_Image (
  3061. Data : Image := No_Image
  3062. ) return Texture with
  3063. Import => True,
  3064. Convention => C,
  3065. External_Name => "LoadTextureFromImage";
  3066. function Load_Texture_Cubemap (
  3067. Data : Image := No_Image;
  3068. Layout : Integer := 0
  3069. ) return Texture with
  3070. Import => True,
  3071. Convention => C,
  3072. External_Name => "LoadTextureCubemap";
  3073. function Load_Render_Texture (
  3074. Width : Natural := 0;
  3075. Height : Natural := 0
  3076. ) return Render_Texture with
  3077. Import => True,
  3078. Convention => C,
  3079. External_Name => "LoadRenderTexture";
  3080. function Is_Texture_Ready (
  3081. Data : Texture := No_Texture
  3082. ) return Logical with
  3083. Import => True,
  3084. Convention => C,
  3085. External_Name => "IsTextureReady";
  3086. procedure Unload_Texture (
  3087. Data : Texture := No_Texture
  3088. ) with
  3089. Import => True,
  3090. Convention => C,
  3091. External_Name => "UnloadTexture";
  3092. function Is_Render_Texture_Ready (
  3093. Target : Render_Texture := No_Render_Texture
  3094. ) return Logical with
  3095. Import => True,
  3096. Convention => C,
  3097. External_Name => "IsRenderTextureReady";
  3098. procedure Unload_Render_Texture (
  3099. Target : Render_Texture := No_Render_Texture
  3100. ) with
  3101. Import => True,
  3102. Convention => C,
  3103. External_Name => "UnloadRenderTexture";
  3104. procedure Update_Texture (
  3105. Data : Texture := No_Texture;
  3106. Pixels : Pointer := null
  3107. ) with
  3108. Import => True,
  3109. Convention => C,
  3110. External_Name => "UpdateTexture";
  3111. procedure Update_Texture_Rec (
  3112. Data : Texture := No_Texture;
  3113. Source : Rectangle := No_Rectangle;
  3114. Pixels : Pointer := null
  3115. ) with
  3116. Import => True,
  3117. Convention => C,
  3118. External_Name => "UpdateTextureRec";
  3119. procedure Gen_Texture_Mipmaps (
  3120. Data : Texture := No_Texture
  3121. ) with
  3122. Import => True,
  3123. Convention => C,
  3124. External_Name => "GenTextureMipmaps";
  3125. procedure Set_Texture_Filter (
  3126. Data : Texture := No_Texture;
  3127. Filter : Texture_Filter := Texture_Filter_Point
  3128. ) with
  3129. Import => True,
  3130. Convention => C,
  3131. External_Name => "SetTextureFilter";
  3132. procedure Set_Texture_Wrap (
  3133. Data : Texture := No_Texture;
  3134. Wrap : Texture_Wrap := Texture_Wrap_Repeat
  3135. ) with
  3136. Import => True,
  3137. Convention => C,
  3138. External_Name => "SetTextureWrap";
  3139. procedure Draw_Texture (
  3140. Data : Texture := No_Texture;
  3141. X : Integer := 0;
  3142. Y : Integer := 0;
  3143. Tint : Color := White
  3144. ) with
  3145. Import => True,
  3146. Convention => C,
  3147. External_Name => "DrawTexture";
  3148. procedure Draw_Texture_V (
  3149. Data : Texture := No_Texture;
  3150. Position : Vector_2D := (others => 0.0);
  3151. Tint : Color := White
  3152. ) with
  3153. Import => True,
  3154. Convention => C,
  3155. External_Name => "DrawTextureV";
  3156. procedure Draw_Texture_Ex (
  3157. Data : Texture := No_Texture;
  3158. Position : Vector_2D := (others => 0.0);
  3159. Rotation : Float := 0.0;
  3160. Scale : Float := 0.0;
  3161. Tint : Color := White
  3162. ) with
  3163. Import => True,
  3164. Convention => C,
  3165. External_Name => "DrawTextureEx";
  3166. procedure Draw_Texture_Rec (
  3167. Data : Texture := No_Texture;
  3168. Source : Rectangle := No_Rectangle;
  3169. Position : Vector_2D := (others => 0.0);
  3170. Tint : Color := White
  3171. ) with
  3172. Import => True,
  3173. Convention => C,
  3174. External_Name => "DrawTextureRec";
  3175. procedure Draw_Texture_Pro (
  3176. Data : Texture := No_Texture;
  3177. Source : Rectangle := No_Rectangle;
  3178. Destination : Rectangle := No_Rectangle;
  3179. Origin : Vector_2D := (others => 0.0);
  3180. Rotation : Float := 0.0;
  3181. Tint : Color := White
  3182. ) with
  3183. Import => True,
  3184. Convention => C,
  3185. External_Name => "DrawTexturePro";
  3186. procedure Draw_Texture_NPatch (
  3187. Data : Texture := No_Texture;
  3188. -- ERROR NPatch_Info : NPatch_Info := No_NPatch_Info;
  3189. Destination : Rectangle := No_Rectangle;
  3190. Origin : Vector_2D := (others => 0.0);
  3191. Rotation : Float := 0.0;
  3192. Tint : Color := White
  3193. ) with
  3194. Import => True,
  3195. Convention => C,
  3196. External_Name => "DrawTextureNPatch";
  3197. function Fade (
  3198. Data : Color := White;
  3199. Alpha : Float := 0.0
  3200. ) return Color with
  3201. Import => True,
  3202. Convention => C,
  3203. External_Name => "Fade";
  3204. function Color_To_Integer (
  3205. Data : Color := White
  3206. ) return Integer with
  3207. Import => True,
  3208. Convention => C,
  3209. External_Name => "ColorToInt";
  3210. function Color_Normalize (
  3211. Data : Color := White
  3212. ) return Vector_4D with
  3213. Import => True,
  3214. Convention => C,
  3215. External_Name => "ColorNormalize";
  3216. function Color_From_Normalized (
  3217. Normalized : Vector_4D := (others => 0.0)
  3218. ) return Color with
  3219. Import => True,
  3220. Convention => C,
  3221. External_Name => "ColorFromNormalized";
  3222. function Color_To_HSV (
  3223. Data : Color := White
  3224. ) return Vector_3D with
  3225. Import => True,
  3226. Convention => C,
  3227. External_Name => "ColorToHSV";
  3228. function Color_From_HSV (
  3229. Hue : Float := 0.0;
  3230. Saturation : Float := 0.0;
  3231. Value : Float := 0.0
  3232. ) return Color with
  3233. Import => True,
  3234. Convention => C,
  3235. External_Name => "ColorFromHSV";
  3236. function Color_Tint (
  3237. Data : Color := White;
  3238. Tint : Color := Black
  3239. ) return Color with
  3240. Import => True,
  3241. Convention => C,
  3242. External_Name => "ColorTint";
  3243. function Color_Brightness (
  3244. Data : Color := White;
  3245. Factor : Float := 0.0
  3246. ) return Color with
  3247. Import => True,
  3248. Convention => C,
  3249. External_Name => "ColorBrightness";
  3250. function Color_Contrast (
  3251. Data : Color := White;
  3252. Contrast : Float := 0.0
  3253. ) return Color with
  3254. Import => True,
  3255. Convention => C,
  3256. External_Name => "ColorContrast";
  3257. function Color_Alpha (
  3258. Data : Color := White;
  3259. Alpha : Float := 0.0
  3260. ) return Color with
  3261. Import => True,
  3262. Convention => C,
  3263. External_Name => "ColorAlpha";
  3264. function Color_Alpha_Blend (
  3265. Destination : Color := White;
  3266. Source : Color := Black;
  3267. Tint : Color := Ray_White
  3268. ) return Color with
  3269. Import => True,
  3270. Convention => C,
  3271. External_Name => "ColorAlphaBlend";
  3272. function Get_Color (
  3273. Value : Natural := 0
  3274. ) return Color with
  3275. Import => True,
  3276. Convention => C,
  3277. External_Name => "GetColor";
  3278. function Get_Pixel_Color (
  3279. Source : Pointer := null;
  3280. Format : Integer := 0
  3281. ) return Color with
  3282. Import => True,
  3283. Convention => C,
  3284. External_Name => "GetPixelColor";
  3285. procedure Set_Pixel_Color (
  3286. Destination : Pointer := null;
  3287. Data : Color := White;
  3288. Format : Integer := 0
  3289. ) with
  3290. Import => True,
  3291. Convention => C,
  3292. External_Name => "SetPixelColor";
  3293. function Get_Pixel_Data_Size (
  3294. Width : Natural := 0;
  3295. Height : Natural := 0;
  3296. Format : Integer := 0
  3297. ) return Integer with
  3298. Import => True,
  3299. Convention => C,
  3300. External_Name => "GetPixelDataSize";
  3301. function Get_Font_Default return Font with
  3302. Import => True,
  3303. Convention => C,
  3304. External_Name => "GetFontDefault";
  3305. function Load_Font (
  3306. File_Name : String := ""
  3307. ) return Font with
  3308. Import => True,
  3309. Convention => C,
  3310. External_Name => "LoadFont";
  3311. function Load_Font_Ex (
  3312. File_Name : String := "";
  3313. Font_Size : Integer := 32;
  3314. Code_Points : access Integer := null;
  3315. Code_Point_Count : Natural := 0
  3316. ) return Font with
  3317. Import => True,
  3318. Convention => C,
  3319. External_Name => "LoadFontEx";
  3320. function Load_Font_From_Image (
  3321. Data : Image := No_Image;
  3322. Key : Color := White;
  3323. First_Character : Integer := 0
  3324. ) return Font with
  3325. Import => True,
  3326. Convention => C,
  3327. External_Name => "LoadFontFromImage";
  3328. function Load_Font_From_Memory (
  3329. File_Type : String := "";
  3330. File_Data : Pointer := null;
  3331. Data_Size : Natural := 0;
  3332. Font_Size : Integer := 32;
  3333. Code_Points : access Integer := null;
  3334. Code_Point_Count : Natural := 0
  3335. ) return Font with
  3336. Import => True,
  3337. Convention => C,
  3338. External_Name => "LoadFontFromMemory";
  3339. function Is_Font_Ready (
  3340. Data : Font := No_Font
  3341. ) return Logical with
  3342. Import => True,
  3343. Convention => C,
  3344. External_Name => "IsFontReady";
  3345. function Load_Font_Data (
  3346. File_Data : Pointer := null;
  3347. Data_Size : Natural := 0;
  3348. Font_Size : Integer := 32;
  3349. Code_Points : access Integer := null;
  3350. Code_Point_Count : Natural := 0;
  3351. Kind : Integer := 0
  3352. ) return access Glyph_Info with
  3353. Import => True,
  3354. Convention => C,
  3355. External_Name => "LoadFontData";
  3356. function Gen_Image_Font_Atlas (
  3357. Glyphs : access Glyph_Info := null;
  3358. Glyph_Rectangles : access Rectangle := null;
  3359. Glyph_Count : Integer := 0;
  3360. Font_Size : Integer := 32;
  3361. Padding : Integer := 0;
  3362. Pack_Method : Integer := 0
  3363. ) return Image with
  3364. Import => True,
  3365. Convention => C,
  3366. External_Name => "GenImageFontAtlas";
  3367. procedure Unload_Font_Data (
  3368. Glyphs : access Glyph_Info := null;
  3369. Glyph_Count : Integer := 0
  3370. ) with
  3371. Import => True,
  3372. Convention => C,
  3373. External_Name => "UnloadFontData";
  3374. procedure Unload_Font (
  3375. Data : Font := No_Font
  3376. ) with
  3377. Import => True,
  3378. Convention => C,
  3379. External_Name => "UnloadFont";
  3380. function Export_Font_As_Code (
  3381. Data : Font := No_Font;
  3382. File_Name : String := ""
  3383. ) return Logical with
  3384. Import => True,
  3385. Convention => C,
  3386. External_Name => "ExportFontAsCode";
  3387. procedure Draw_FPS (
  3388. X : Integer := 0;
  3389. Y : Integer := 0
  3390. ) with
  3391. Import => True,
  3392. Convention => C,
  3393. External_Name => "DrawFPS";
  3394. procedure Draw_Text (
  3395. Text : String := "";
  3396. X : Integer := 0;
  3397. Y : Integer := 0;
  3398. Size : Integer := 32;
  3399. Tint : Color := White
  3400. ) with
  3401. Import => True,
  3402. Convention => C,
  3403. External_Name => "DrawText";
  3404. procedure Draw_Text_Ex (
  3405. Data : Font := Get_Font_Default;
  3406. Text : String := "";
  3407. Position : Vector_2D := (others => 0.0);
  3408. Font_Size : Float := 0.0;
  3409. Spacing : Float := 0.0;
  3410. Tint : Color := White
  3411. ) with
  3412. Import => True,
  3413. Convention => C,
  3414. External_Name => "DrawTextEx";
  3415. procedure Draw_Text_Pro (
  3416. Data : Font := Get_Font_Default;
  3417. Text : String := "";
  3418. Position : Vector_2D := (others => 0.0);
  3419. Origin : Vector_2D := (others => 0.0);
  3420. Rotation : Float := 0.0;
  3421. Font_Size : Float := 0.0;
  3422. Spacing : Float := 0.0;
  3423. Tint : Color := White
  3424. ) with
  3425. Import => True,
  3426. Convention => C,
  3427. External_Name => "DrawTextPro";
  3428. procedure Draw_Text_Codepoint (
  3429. Data : Font := Get_Font_Default;
  3430. Code_Point : Integer := 0;
  3431. Position : Vector_2D := (others => 0.0);
  3432. Font_Size : Float := 0.0;
  3433. Tint : Color := White
  3434. ) with
  3435. Import => True,
  3436. Convention => C,
  3437. External_Name => "DrawTextCodepoint";
  3438. procedure Draw_Text_Codepoints (
  3439. Data : Font := Get_Font_Default;
  3440. Code_Points : access Integer := null;
  3441. Code_Point_Count : Integer := 0;
  3442. Position : Vector_2D := (others => 0.0);
  3443. Font_Size : Float := 0.0;
  3444. Spacing : Float := 0.0;
  3445. Tint : Color := White
  3446. ) with
  3447. Import => True,
  3448. Convention => C,
  3449. External_Name => "DrawTextCodepoints";
  3450. procedure Set_Text_Line_Spacing (
  3451. Spacing : Integer := 0
  3452. ) with
  3453. Import => True,
  3454. Convention => C,
  3455. External_Name => "SetTextLineSpacing";
  3456. function Measure_Text (
  3457. Text : String := "";
  3458. Font_Size : Integer := 0
  3459. ) return Integer with
  3460. Import => True,
  3461. Convention => C,
  3462. External_Name => "MeasureText";
  3463. function Measure_Text_Ex (
  3464. Data : Font := Get_Font_Default;
  3465. Text : String := "";
  3466. Font_Size : Float := 0.0;
  3467. Spacing : Float := 0.0
  3468. ) return Vector_2D with
  3469. Import => True,
  3470. Convention => C,
  3471. External_Name => "MeasureTextEx";
  3472. function Get_Glyph_Index (
  3473. Data : Font := Get_Font_Default;
  3474. Code_Point : Integer := 0
  3475. ) return Integer with
  3476. Import => True,
  3477. Convention => C,
  3478. External_Name => "GetGlyphIndex";
  3479. function Get_Glyph_Info (
  3480. Data : Font := Get_Font_Default;
  3481. Code_Point : Integer := 0
  3482. ) return Glyph_Info with
  3483. Import => True,
  3484. Convention => C,
  3485. External_Name => "GetGlyphInfo";
  3486. function Get_Glyph_Atlas_Rec (
  3487. Data : Font := Get_Font_Default;
  3488. Code_Point : Integer := 0
  3489. ) return Rectangle with
  3490. Import => True,
  3491. Convention => C,
  3492. External_Name => "GetGlyphAtlasRec";
  3493. function Load_UTF8 (
  3494. Code_Points : access Integer := null;
  3495. Length : Integer := 0
  3496. ) return access Character with
  3497. Import => True,
  3498. Convention => C,
  3499. External_Name => "LoadUTF8";
  3500. procedure Unload_UTF8 (
  3501. Text : access Character := null
  3502. ) with
  3503. Import => True,
  3504. Convention => C,
  3505. External_Name => "UnloadUTF8";
  3506. function Load_Code_Points (
  3507. Text : String := "";
  3508. Count : access Integer := null
  3509. ) return access Integer with
  3510. Import => True,
  3511. Convention => C,
  3512. External_Name => "LoadCodepoints";
  3513. procedure Unload_Code_Points (
  3514. Code_Points : access Integer := null
  3515. ) with
  3516. Import => True,
  3517. Convention => C,
  3518. External_Name => "UnloadCodepoints";
  3519. function Get_Code_Point_Count (
  3520. Text : String := ""
  3521. ) return Integer with
  3522. Import => True,
  3523. Convention => C,
  3524. External_Name => "GetCodepointCount";
  3525. function Get_Code_Point (
  3526. Text : String := "";
  3527. Code_Point_Size : access Integer := null
  3528. ) return Integer with
  3529. Import => True,
  3530. Convention => C,
  3531. External_Name => "GetCodepoint";
  3532. function Get_Code_Point_Next (
  3533. Text : String := "";
  3534. Code_Point_Size : access Integer := null
  3535. ) return Integer with
  3536. Import => True,
  3537. Convention => C,
  3538. External_Name => "GetCodepointNext";
  3539. function Get_Code_Point_Previous (
  3540. Text : String := "";
  3541. Code_Point_Size : access Integer := null
  3542. ) return Integer with
  3543. Import => True,
  3544. Convention => C,
  3545. External_Name => "GetCodepointPrevious";
  3546. function Code_Point_To_UTF8 (
  3547. Code_Point : Integer := 0;
  3548. UTF8_Size : access Integer := null
  3549. ) return Strings with
  3550. Import => True,
  3551. Convention => C,
  3552. External_Name => "CodepointToUTF8";
  3553. function Text_Copy (
  3554. Destination : Strings := null;
  3555. Source : Strings := null
  3556. ) return Integer with
  3557. Import => True,
  3558. Convention => C,
  3559. External_Name => "TextCopy";
  3560. function Text_Is_Equal (
  3561. Text_1 : Strings := null;
  3562. Text_2 : Strings := null
  3563. ) return Logical with
  3564. Import => True,
  3565. Convention => C,
  3566. External_Name => "TextIsEqual";
  3567. function Text_Length (
  3568. Text : String := ""
  3569. ) return Natural with
  3570. Import => True,
  3571. Convention => C,
  3572. External_Name => "TextLength";
  3573. --~function Text_Format (
  3574. --~Text : String := "";
  3575. --~...
  3576. --~) return Strings with
  3577. --~Import => True,
  3578. --~Convention => C,
  3579. --~External_Name => "TextFormat";
  3580. function Text_Subtext (
  3581. Text : String := "";
  3582. Position : Integer := 0;
  3583. Length : Integer := 0
  3584. ) return Strings with
  3585. Import => True,
  3586. Convention => C,
  3587. External_Name => "TextSubtext";
  3588. function Text_Replace (
  3589. Text : Strings := null;
  3590. Replace : String := "";
  3591. By : String := ""
  3592. ) return Strings with
  3593. Import => True,
  3594. Convention => C,
  3595. External_Name => "TextReplace";
  3596. function Text_Insert (
  3597. Text : String := "";
  3598. Insert : String := "";
  3599. Position : Integer := 0
  3600. ) return Strings with
  3601. Import => True,
  3602. Convention => C,
  3603. External_Name => "TextInsert";
  3604. function Text_Join (
  3605. Text : Strings := null;
  3606. Count : Integer := 0;
  3607. Delimiter : String := ""
  3608. ) return Strings with
  3609. Import => True,
  3610. Convention => C,
  3611. External_Name => "TextJoin";
  3612. function Text_Split (
  3613. Text : String := "";
  3614. Delimiter : Character := ' ';
  3615. Count : access Integer := null
  3616. ) return Strings with
  3617. Import => True,
  3618. Convention => C,
  3619. External_Name => "TextSplit";
  3620. procedure Text_Append (
  3621. Text : Strings := null;
  3622. Append : String := "";
  3623. Position : access Integer := null
  3624. ) with
  3625. Import => True,
  3626. Convention => C,
  3627. External_Name => "TextAppend";
  3628. function Text_Find_Index (
  3629. Text : String := "";
  3630. Find : String := ""
  3631. ) return Integer with
  3632. Import => True,
  3633. Convention => C,
  3634. External_Name => "TextFindIndex";
  3635. function Text_To_Upper (
  3636. Text : String := ""
  3637. ) return Strings with
  3638. Import => True,
  3639. Convention => C,
  3640. External_Name => "TextToUpper";
  3641. function Text_To_Lower (
  3642. Text : String := ""
  3643. ) return Strings with
  3644. Import => True,
  3645. Convention => C,
  3646. External_Name => "TextToLower";
  3647. function Text_To_Pascal (
  3648. Text : String := ""
  3649. ) return Strings with
  3650. Import => True,
  3651. Convention => C,
  3652. External_Name => "TextToPascal";
  3653. function Text_To_Integer (
  3654. Text : String := ""
  3655. ) return Integer with
  3656. Import => True,
  3657. Convention => C,
  3658. External_Name => "TextToInteger";
  3659. procedure Draw_Line_3D (
  3660. From : Vector_3D := (others => 0.0);
  3661. To : Vector_3D := (others => 0.0);
  3662. Tint : Color := Black
  3663. ) with
  3664. Import => True,
  3665. Convention => C,
  3666. External_Name => "DrawLine3D";
  3667. procedure Draw_Point_3D (
  3668. Position : Vector_3D := (others => 0.0);
  3669. Tint : Color := Black
  3670. ) with
  3671. Import => True,
  3672. Convention => C,
  3673. External_Name => "DrawPoint3D";
  3674. procedure Draw_Circle_3D (
  3675. Center : Vector_3D := (others => 0.0);
  3676. Radius : Float := 0.0;
  3677. Rotation_Axis : Vector_3D := (others => 0.0);
  3678. Rotation_Angle : Float := 0.0;
  3679. Tint : Color := Black
  3680. ) with
  3681. Import => True,
  3682. Convention => C,
  3683. External_Name => "DrawCircle3D";
  3684. procedure Draw_Triangle_3D (
  3685. Point_1 : Vector_3D := (others => 0.0);
  3686. Point_2 : Vector_3D := (others => 0.0);
  3687. Point_3 : Vector_3D := (others => 0.0);
  3688. Tint : Color := Black
  3689. ) with
  3690. Import => True,
  3691. Convention => C,
  3692. External_Name => "DrawTriangle3D";
  3693. procedure Draw_Triangle_Strip_3D (
  3694. Points : access Vector_3D := null;
  3695. Point_Count : Integer := 0;
  3696. Tint : Color := Black
  3697. ) with
  3698. Import => True,
  3699. Convention => C,
  3700. External_Name => "DrawTriangleStrip3D";
  3701. procedure Draw_Cube (
  3702. Position : Vector_3D := (others => 0.0);
  3703. Width : Float := 0.0;
  3704. Height : Float := 0.0;
  3705. Length : Float := 0.0;
  3706. Tint : Color := White
  3707. ) with
  3708. Import => True,
  3709. Convention => C,
  3710. External_Name => "DrawCube";
  3711. procedure Draw_Cube_V (
  3712. Position : Vector_3D := (others => 0.0);
  3713. Size : Vector_3D := (others => 0.0);
  3714. Tint : Color := White
  3715. ) with
  3716. Import => True,
  3717. Convention => C,
  3718. External_Name => "DrawCubeV";
  3719. procedure Draw_Cube_Wires (
  3720. Position : Vector_3D := (others => 0.0);
  3721. Width : Float := 0.0;
  3722. Height : Float := 0.0;
  3723. Length : Float := 0.0;
  3724. Tint : Color := Black
  3725. ) with
  3726. Import => True,
  3727. Convention => C,
  3728. External_Name => "DrawCubeWires";
  3729. procedure Draw_Cube_Wires_V (
  3730. Position : Vector_3D := (others => 0.0);
  3731. Size : Vector_3D := (others => 0.0);
  3732. Tint : Color := White
  3733. ) with
  3734. Import => True,
  3735. Convention => C,
  3736. External_Name => "DrawCubeWiresV";
  3737. procedure Draw_Sphere (
  3738. Center : Vector_3D := (others => 0.0);
  3739. Radius : Float := 0.0;
  3740. Tint : Color := White
  3741. ) with
  3742. Import => True,
  3743. Convention => C,
  3744. External_Name => "DrawSphere";
  3745. procedure Draw_Sphere_Ex (
  3746. Center : Vector_3D := (others => 0.0);
  3747. Radius : Float := 0.0;
  3748. Rings : Integer := 0;
  3749. Slices : Integer := 0;
  3750. Tint : Color := White
  3751. ) with
  3752. Import => True,
  3753. Convention => C,
  3754. External_Name => "DrawSphereEx";
  3755. procedure Draw_Sphere_Wires (
  3756. Center : Vector_3D := (others => 0.0);
  3757. Radius : Float := 0.0;
  3758. Rings : Integer := 0;
  3759. Slices : Integer := 0;
  3760. Tint : Color := White
  3761. ) with
  3762. Import => True,
  3763. Convention => C,
  3764. External_Name => "DrawSphereWires";
  3765. procedure Draw_Cylinder (
  3766. Position : Vector_3D := (others => 0.0);
  3767. Radius_Top : Float := 0.0;
  3768. Radius_Bottom : Float := 0.0;
  3769. Height : Float := 0.0;
  3770. Slices : Natural := 0;
  3771. Tint : Color := White
  3772. ) with
  3773. Import => True,
  3774. Convention => C,
  3775. External_Name => "DrawCylinder";
  3776. procedure Draw_Cylinder_Ex (
  3777. From : Vector_3D := (others => 0.0);
  3778. To : Vector_3D := (others => 0.0);
  3779. From_Radius : Float := 0.0;
  3780. To_Radius : Float := 0.0;
  3781. Sides : Natural := 0;
  3782. Tint : Color := White
  3783. ) with
  3784. Import => True,
  3785. Convention => C,
  3786. External_Name => "DrawCylinderEx";
  3787. procedure Draw_Cylinder_Wires (
  3788. Position : Vector_3D := (others => 0.0);
  3789. Radius_Top : Float := 0.0;
  3790. Radius_Bottom : Float := 0.0;
  3791. Height : Float := 0.0;
  3792. Slices : Natural := 0;
  3793. Tint : Color := White
  3794. ) with
  3795. Import => True,
  3796. Convention => C,
  3797. External_Name => "DrawCylinderWires";
  3798. procedure Draw_Cylinder_Wires_Ex (
  3799. From : Vector_3D := (others => 0.0);
  3800. To : Vector_3D := (others => 0.0);
  3801. From_Radius : Float := 0.0;
  3802. To_Radius : Float := 0.0;
  3803. Sides : Natural := 0;
  3804. Tint : Color := White
  3805. ) with
  3806. Import => True,
  3807. Convention => C,
  3808. External_Name => "DrawCylinderWiresEx";
  3809. procedure Draw_Capsule (
  3810. From : Vector_3D := (others => 0.0);
  3811. To : Vector_3D := (others => 0.0);
  3812. Radius : Float := 0.0;
  3813. Slices : Natural := 0;
  3814. Rings : Natural := 0;
  3815. Tint : Color := White
  3816. ) with
  3817. Import => True,
  3818. Convention => C,
  3819. External_Name => "DrawCapsule";
  3820. procedure Draw_Capsule_Wires (
  3821. From : Vector_3D := (others => 0.0);
  3822. To : Vector_3D := (others => 0.0);
  3823. Radius : Float := 0.0;
  3824. Slices : Natural := 0;
  3825. Rings : Natural := 0;
  3826. Tint : Color := White
  3827. ) with
  3828. Import => True,
  3829. Convention => C,
  3830. External_Name => "DrawCapsuleWires";
  3831. procedure Draw_Plane (
  3832. Center : Vector_3D := (others => 0.0);
  3833. Size : Vector_2D := (others => 0.0);
  3834. Tint : Color := White
  3835. ) with
  3836. Import => True,
  3837. Convention => C,
  3838. External_Name => "DrawPlane";
  3839. procedure Draw_Ray (
  3840. Data : Ray := No_Ray;
  3841. Tint : Color := White
  3842. ) with
  3843. Import => True,
  3844. Convention => C,
  3845. External_Name => "DrawRay";
  3846. procedure Draw_Grid (
  3847. Slices : Integer := 0;
  3848. Spacing : Float := 0.0
  3849. ) with
  3850. Import => True,
  3851. Convention => C,
  3852. External_Name => "DrawGrid";
  3853. function Load_Model (
  3854. File_Name : String := ""
  3855. ) return Model with
  3856. Import => True,
  3857. Convention => C,
  3858. External_Name => "LoadModel";
  3859. function Load_Model_From_Mesh (
  3860. Data : Mesh := No_Mesh
  3861. ) return Model with
  3862. Import => True,
  3863. Convention => C,
  3864. External_Name => "LoadModelFromMesh";
  3865. function Is_Model_Ready (
  3866. Data : Model := No_Model
  3867. ) return Logical with
  3868. Import => True,
  3869. Convention => C,
  3870. External_Name => "IsModelReady";
  3871. procedure Unload_Model (
  3872. Data : Model := No_Model
  3873. ) with
  3874. Import => True,
  3875. Convention => C,
  3876. External_Name => "UnloadModel";
  3877. function GetModelBoundingBox (
  3878. Data : Model := No_Model
  3879. ) return Bounding_Box with
  3880. Import => True,
  3881. Convention => C,
  3882. External_Name => "GetModelBoundingBox";
  3883. procedure Draw_Model (
  3884. Data : Model := No_Model;
  3885. Position : Vector_3D := (others => 0.0);
  3886. Scale : Float := 1.0;
  3887. Tint : Color := White
  3888. ) with
  3889. Import => True,
  3890. Convention => C,
  3891. External_Name => "DrawModel";
  3892. procedure Draw_Model_Ex (
  3893. Data : Model := No_Model;
  3894. Position : Vector_3D := (others => 0.0);
  3895. Axis : Vector_3D := (others => 0.0);
  3896. Angle : Float := 0.0;
  3897. Scale : Vector_3D := (1.0, 1.0, 1.0);
  3898. Tint : Color := White
  3899. ) with
  3900. Import => True,
  3901. Convention => C,
  3902. External_Name => "DrawModelEx";
  3903. procedure Draw_Model_Wires (
  3904. Data : Model := No_Model;
  3905. Position : Vector_3D := (others => 0.0);
  3906. Scale : Float := 0.0;
  3907. Tint : Color := White
  3908. ) with
  3909. Import => True,
  3910. Convention => C,
  3911. External_Name => "DrawModelWires";
  3912. procedure Draw_Model_Wires_Ex (
  3913. Data : Model := No_Model;
  3914. Position : Vector_3D := (others => 0.0);
  3915. Axis : Vector_3D := (others => 0.0);
  3916. Angle : Float := 0.0;
  3917. Scale : Vector_3D := (1.0, 1.0, 1.0);
  3918. Tint : Color := White
  3919. ) with
  3920. Import => True,
  3921. Convention => C,
  3922. External_Name => "DrawModelWiresEx";
  3923. procedure Draw_Bounding_Box (
  3924. Box : Bounding_Box := No_Bounding_Box;
  3925. Tint : Color := White
  3926. ) with
  3927. Import => True,
  3928. Convention => C,
  3929. External_Name => "DrawBoundingBox";
  3930. procedure Draw_Billboard (
  3931. Camera : Camera_3D := No_Camera_3D;
  3932. Billboard : Texture := No_Texture;
  3933. Position : Vector_3D := (others => 0.0);
  3934. Size : Float := 0.0;
  3935. Tint : Color := White
  3936. ) with
  3937. Import => True,
  3938. Convention => C,
  3939. External_Name => "DrawBillboard";
  3940. procedure Draw_Billboard_Rec (
  3941. Camera : Camera_3D := No_Camera_3D;
  3942. Billboard : Texture := No_Texture;
  3943. Source : Rectangle := No_Rectangle;
  3944. Position : Vector_3D := (others => 0.0);
  3945. Size : Vector_2D := (others => 0.0);
  3946. Tint : Color := White
  3947. ) with
  3948. Import => True,
  3949. Convention => C,
  3950. External_Name => "DrawBillboardRec";
  3951. procedure Draw_Billboard_Pro (
  3952. Camera : Camera_3D := No_Camera_3D;
  3953. Billboard : Texture := No_Texture;
  3954. Source : Rectangle := No_Rectangle;
  3955. Position : Vector_3D := (others => 0.0);
  3956. Up : Vector_3D := (others => 0.0);
  3957. Size : Vector_2D := (others => 0.0);
  3958. Origin : Vector_2D := (others => 0.0);
  3959. Rotation : Float := 0.0;
  3960. Tint : Color := White
  3961. ) with
  3962. Import => True,
  3963. Convention => C,
  3964. External_Name => "DrawBillboardPro";
  3965. procedure Upload_Mesh (
  3966. Data : access Mesh := null;
  3967. Dynamic : Logical := False
  3968. ) with
  3969. Import => True,
  3970. Convention => C,
  3971. External_Name => "UploadMesh";
  3972. procedure Update_Mesh_Buffer (
  3973. Data : Mesh := No_Mesh;
  3974. Index : Integer := 0;
  3975. This : Pointer := null;
  3976. Data_Size : Natural := 0;
  3977. Offset : Integer := 0
  3978. ) with
  3979. Import => True,
  3980. Convention => C,
  3981. External_Name => "UpdateMeshBuffer";
  3982. procedure Unload_Mesh (
  3983. Data : Mesh := No_Mesh
  3984. ) with
  3985. Import => True,
  3986. Convention => C,
  3987. External_Name => "UnloadMesh";
  3988. procedure Draw_Mesh (
  3989. Data : Mesh := No_Mesh;
  3990. Pixels : Material := No_Material;
  3991. Transform : Matrix_4D := (others => 0.0)
  3992. ) with
  3993. Import => True,
  3994. Convention => C,
  3995. External_Name => "DrawMesh";
  3996. procedure Draw_Mesh_Instanced (
  3997. Data : Mesh := No_Mesh;
  3998. Use_Material : Material := No_Material;
  3999. Transforms : access Matrix_4D := null;
  4000. Instances : Integer := 0
  4001. ) with
  4002. Import => True,
  4003. Convention => C,
  4004. External_Name => "DrawMeshInstanced";
  4005. function Get_Mesh_Bounding_Box (
  4006. Data : Mesh := No_Mesh
  4007. ) return Bounding_Box with
  4008. Import => True,
  4009. Convention => C,
  4010. External_Name => "GetMeshBoundingBox";
  4011. procedure Gen_Mesh_Tangents (
  4012. Data : access Mesh := null
  4013. ) with
  4014. Import => True,
  4015. Convention => C,
  4016. External_Name => "GenMeshTangents";
  4017. function Export_Mesh (
  4018. Data : Mesh := No_Mesh;
  4019. File_Name : String := ""
  4020. ) return Logical with
  4021. Import => True,
  4022. Convention => C,
  4023. External_Name => "ExportMesh";
  4024. function Export_Mesh_As_Code (
  4025. Data : Mesh := No_Mesh;
  4026. File_Name : String := ""
  4027. ) return Logical with
  4028. Import => True,
  4029. Convention => C,
  4030. External_Name => "ExportMeshAsCode";
  4031. function Gen_Mesh_Poly (
  4032. Sides : Integer := 0;
  4033. Radius : Float := 0.0
  4034. ) return Mesh with
  4035. Import => True,
  4036. Convention => C,
  4037. External_Name => "GenMeshPoly";
  4038. function Gen_Mesh_Plane (
  4039. Width : Float := 1.0;
  4040. Height : Float := 1.0;
  4041. X : Integer := 1;
  4042. Z : Integer := 1
  4043. ) return Mesh with
  4044. Import => True,
  4045. Convention => C,
  4046. External_Name => "GenMeshPlane";
  4047. function Gen_Mesh_Cube (
  4048. Width : Float := 0.0;
  4049. Height : Float := 0.0;
  4050. Length : Float := 0.0
  4051. ) return Mesh with
  4052. Import => True,
  4053. Convention => C,
  4054. External_Name => "GenMeshCube";
  4055. function Gen_Mesh_Sphere (
  4056. Radius : Float := 0.0;
  4057. Rings : Integer := 0;
  4058. Slices : Integer := 0
  4059. ) return Mesh with
  4060. Import => True,
  4061. Convention => C,
  4062. External_Name => "GenMeshSphere";
  4063. function Gen_Mesh_Hemisphere (
  4064. Radius : Float := 0.0;
  4065. Rings : Integer := 0;
  4066. Slices : Integer := 0
  4067. ) return Mesh with
  4068. Import => True,
  4069. Convention => C,
  4070. External_Name => "GenMeshHemiSphere";
  4071. function Gen_Mesh_Cylinder (
  4072. Radius : Float := 0.0;
  4073. Height : Float := 0.0;
  4074. Slices : Integer := 0
  4075. ) return Mesh with
  4076. Import => True,
  4077. Convention => C,
  4078. External_Name => "GenMeshCylinder";
  4079. function Gen_Mesh_Cone (
  4080. Radius : Float := 0.0;
  4081. Height : Float := 0.0;
  4082. Slices : Integer := 0
  4083. ) return Mesh with
  4084. Import => True,
  4085. Convention => C,
  4086. External_Name => "GenMeshCone";
  4087. function Gen_Mesh_Torus (
  4088. Radius : Float := 0.0;
  4089. Size : Float := 0.0;
  4090. Segments : Integer := 0;
  4091. Sides : Integer := 0
  4092. ) return Mesh with
  4093. Import => True,
  4094. Convention => C,
  4095. External_Name => "GenMeshTorus";
  4096. function Gen_Mesh_Knot (
  4097. Radius : Float := 0.0;
  4098. Size : Float := 0.0;
  4099. Segments : Integer := 0;
  4100. Sides : Integer := 0
  4101. ) return Mesh with
  4102. Import => True,
  4103. Convention => C,
  4104. External_Name => "GenMeshKnot";
  4105. function Gen_Mesh_Height_Map (
  4106. Height_Map : Image := No_Image;
  4107. Size : Vector_3D := (others => 0.0)
  4108. ) return Mesh with
  4109. Import => True,
  4110. Convention => C,
  4111. External_Name => "GenMeshHeightmap";
  4112. function Gen_Mesh_Cubic_Map (
  4113. Cubic_Map : Image := No_Image;
  4114. Size : Vector_3D := (others => 0.0)
  4115. ) return Mesh with
  4116. Import => True,
  4117. Convention => C,
  4118. External_Name => "GenMeshCubicmap";
  4119. function Load_Materials (
  4120. File_Name : String := "";
  4121. Counts : access Integer := null
  4122. ) return access Material with
  4123. Import => True,
  4124. Convention => C,
  4125. External_Name => "LoadMaterials";
  4126. function Load_Material_Default return Material with
  4127. Import => True,
  4128. Convention => C,
  4129. External_Name => "LoadMaterialDefault";
  4130. function Is_Material_Ready (
  4131. Data : Material := No_Material
  4132. ) return Logical with
  4133. Import => True,
  4134. Convention => C,
  4135. External_Name => "IsMaterialReady";
  4136. procedure Unload_Material (
  4137. Data : Material := No_Material
  4138. ) with
  4139. Import => True,
  4140. Convention => C,
  4141. External_Name => "UnloadMaterial";
  4142. procedure Set_Material_Texture (
  4143. Data : access Material := null;
  4144. Kind : Material_Map_Index := Material_Map_Height;
  4145. This : Texture := No_Texture
  4146. ) with
  4147. Import => True,
  4148. Convention => C,
  4149. External_Name => "SetMaterialTexture";
  4150. procedure Set_Model_Mesh_Material (
  4151. Data : access Model := null;
  4152. Mesh_Id : Integer := 0;
  4153. Material_Id : Integer := 0
  4154. ) with
  4155. Import => True,
  4156. Convention => C,
  4157. External_Name => "SetModelMeshMaterial";
  4158. function Load_Model_Animations (
  4159. File_Name : String := "";
  4160. Counts : access Integer := null
  4161. ) return access Model_Animation with
  4162. Import => True,
  4163. Convention => C,
  4164. External_Name => "LoadModelAnimations";
  4165. procedure Update_Model_Animation (
  4166. Data : Model := No_Model;
  4167. Animation : Model_Animation := No_Model_Animation;
  4168. Frame : Integer := 0
  4169. ) with
  4170. Import => True,
  4171. Convention => C,
  4172. External_Name => "UpdateModelAnimation";
  4173. procedure Unload_Model_Animation (
  4174. Animation : Model_Animation := No_Model_Animation
  4175. ) with
  4176. Import => True,
  4177. Convention => C,
  4178. External_Name => "UnloadModelAnimation";
  4179. procedure Unload_Model_Animations (
  4180. Animations : access Model_Animation := null;
  4181. Animation_Count : Natural := 0
  4182. ) with
  4183. Import => True,
  4184. Convention => C,
  4185. External_Name => "UnloadModelAnimations";
  4186. function Is_Model_Animation_Valid (
  4187. Data : Model := No_Model;
  4188. Animation : Model_Animation := No_Model_Animation
  4189. ) return Logical with
  4190. Import => True,
  4191. Convention => C,
  4192. External_Name => "IsModelAnimationValid";
  4193. function Check_Collision_Spheres (
  4194. Center_1 : Vector_3D := (others => 0.0);
  4195. Radius_1 : Float := 0.0;
  4196. Center_2 : Vector_3D := (others => 0.0);
  4197. Radius_2 : Float := 0.0
  4198. ) return Logical with
  4199. Import => True,
  4200. Convention => C,
  4201. External_Name => "CheckCollisionSpheres";
  4202. function Check_Collision_Boxes (
  4203. Box_1 : Bounding_Box := No_Bounding_Box;
  4204. Box_2 : Bounding_Box := No_Bounding_Box
  4205. ) return Logical with
  4206. Import => True,
  4207. Convention => C,
  4208. External_Name => "CheckCollisionBoxes";
  4209. function Check_Collision_Box_Sphere (
  4210. Box : Bounding_Box := No_Bounding_Box;
  4211. Center : Vector_3D := (others => 0.0);
  4212. Radius : Float := 0.0
  4213. ) return Logical with
  4214. Import => True,
  4215. Convention => C,
  4216. External_Name => "CheckCollisionBoxSphere";
  4217. function Get_Ray_Collision_Sphere (
  4218. Hit : Ray := No_Ray;
  4219. Center : Vector_3D := (others => 0.0);
  4220. Radius : Float := 0.0
  4221. ) return Ray_Collision with
  4222. Import => True,
  4223. Convention => C,
  4224. External_Name => "GetRayCollisionSphere";
  4225. function Get_Ray_Collision_Box (
  4226. Hit : Ray := No_Ray;
  4227. Box : Bounding_Box := No_Bounding_Box
  4228. ) return Ray_Collision with
  4229. Import => True,
  4230. Convention => C,
  4231. External_Name => "GetRayCollisionBox";
  4232. function Get_Ray_Collision_Mesh (
  4233. Hit : Ray := No_Ray;
  4234. Data : Mesh := No_Mesh;
  4235. Transform : Matrix_4D := Id_Matrix
  4236. ) return Ray_Collision with
  4237. Import => True,
  4238. Convention => C,
  4239. External_Name => "GetRayCollisionMesh";
  4240. function Get_Ray_Collision_Triangle (
  4241. Hit : Ray := No_Ray;
  4242. Point_1 : Vector_3D := (others => 0.0);
  4243. Point_2 : Vector_3D := (others => 0.0);
  4244. Point_3 : Vector_3D := (others => 0.0)
  4245. ) return Ray_Collision with
  4246. Import => True,
  4247. Convention => C,
  4248. External_Name => "GetRayCollisionTriangle";
  4249. function Get_Ray_Collision_Quad (
  4250. Hit : Ray := No_Ray;
  4251. Point_1 : Vector_3D := (others => 0.0);
  4252. Point_2 : Vector_3D := (others => 0.0);
  4253. Point_3 : Vector_3D := (others => 0.0);
  4254. Point_4 : Vector_3D := (others => 0.0)
  4255. ) return Ray_Collision with
  4256. Import => True,
  4257. Convention => C,
  4258. External_Name => "GetRayCollisionQuad";
  4259. procedure Open_Audio_Device with
  4260. Import => True,
  4261. Convention => C,
  4262. External_Name => "InitAudioDevice";
  4263. procedure Close_Audio_Device with
  4264. Import => True,
  4265. Convention => C,
  4266. External_Name => "CloseAudioDevice";
  4267. function Is_Audio_Device_Ready return Logical with
  4268. Import => True,
  4269. Convention => C,
  4270. External_Name => "IsAudioDeviceReady";
  4271. procedure Set_Master_Volume (
  4272. Volume : Float := 1.0
  4273. ) with
  4274. Import => True,
  4275. Convention => C,
  4276. External_Name => "SetMasterVolume";
  4277. function Get_Master_Volume return Float with
  4278. Import => True,
  4279. Convention => C,
  4280. External_Name => "GetMasterVolume";
  4281. function Load_Wave (
  4282. File_Name : String := ""
  4283. ) return Wave with
  4284. Import => True,
  4285. Convention => C,
  4286. External_Name => "LoadWave";
  4287. function Load_Wave_From_Memory (
  4288. File_Type : String := "";
  4289. File_Data : Pointer := null;
  4290. Data_Size : Natural := 0
  4291. ) return Wave with
  4292. Import => True,
  4293. Convention => C,
  4294. External_Name => "LoadWaveFromMemory";
  4295. function Is_Wave_Ready (
  4296. Data : Wave := No_Wave
  4297. ) return Logical with
  4298. Import => True,
  4299. Convention => C,
  4300. External_Name => "IsWaveReady";
  4301. function Load_Sound (
  4302. File_Name : String := ""
  4303. ) return Sound with
  4304. Import => True,
  4305. Convention => C,
  4306. External_Name => "LoadSound";
  4307. function Load_Sound_From_Wave (
  4308. Data : Wave := No_Wave
  4309. ) return Sound with
  4310. Import => True,
  4311. Convention => C,
  4312. External_Name => "LoadSoundFromWave";
  4313. function Load_Sound_Alias (
  4314. Source : Sound := No_Sound
  4315. ) return Sound with
  4316. Import => True,
  4317. Convention => C,
  4318. External_Name => "LoadSoundAlias";
  4319. function Is_Sound_Ready (
  4320. Source : Sound := No_Sound
  4321. ) return Logical with
  4322. Import => True,
  4323. Convention => C,
  4324. External_Name => "IsSoundReady";
  4325. procedure Update_Sound (
  4326. Source : Sound := No_Sound;
  4327. Data : Pointer := null;
  4328. Sample_Count : Integer := 0
  4329. ) with
  4330. Import => True,
  4331. Convention => C,
  4332. External_Name => "UpdateSound";
  4333. procedure Unload_Wave (
  4334. Data : Wave := No_Wave
  4335. ) with
  4336. Import => True,
  4337. Convention => C,
  4338. External_Name => "UnloadWave";
  4339. procedure Unload_Sound (
  4340. Data : Sound := No_Sound
  4341. ) with
  4342. Import => True,
  4343. Convention => C,
  4344. External_Name => "UnloadSound";
  4345. procedure Unload_Sound_Alias (
  4346. Alias : Sound := No_Sound
  4347. ) with
  4348. Import => True,
  4349. Convention => C,
  4350. External_Name => "UnloadSoundAlias";
  4351. function Export_Wave (
  4352. Data : Wave := No_Wave;
  4353. File_Name : String := ""
  4354. ) return Logical with
  4355. Import => True,
  4356. Convention => C,
  4357. External_Name => "ExportWave";
  4358. function Export_Wave_As_Code (
  4359. Data : Wave := No_Wave;
  4360. File_Name : String := ""
  4361. ) return Logical with
  4362. Import => True,
  4363. Convention => C,
  4364. External_Name => "ExportWaveAsCode";
  4365. procedure Play_Sound (
  4366. Data : Sound := No_Sound
  4367. ) with
  4368. Import => True,
  4369. Convention => C,
  4370. External_Name => "PlaySound";
  4371. procedure Stop_Sound (
  4372. Data : Sound := No_Sound
  4373. ) with
  4374. Import => True,
  4375. Convention => C,
  4376. External_Name => "StopSound";
  4377. procedure Pause_Sound (
  4378. Data : Sound := No_Sound
  4379. ) with
  4380. Import => True,
  4381. Convention => C,
  4382. External_Name => "PauseSound";
  4383. procedure Resume_Sound (
  4384. Data : Sound := No_Sound
  4385. ) with
  4386. Import => True,
  4387. Convention => C,
  4388. External_Name => "ResumeSound";
  4389. function Is_Sound_Playing (
  4390. Data : Sound := No_Sound
  4391. ) return Logical with
  4392. Import => True,
  4393. Convention => C,
  4394. External_Name => "IsSoundPlaying";
  4395. procedure Set_Sound_Volume (
  4396. Data : Sound := No_Sound;
  4397. Volume : Float := 0.0
  4398. ) with
  4399. Import => True,
  4400. Convention => C,
  4401. External_Name => "SetSoundVolume";
  4402. procedure Set_Sound_Pitch (
  4403. Data : Sound := No_Sound;
  4404. Pitch : Float := 0.0
  4405. ) with
  4406. Import => True,
  4407. Convention => C,
  4408. External_Name => "SetSoundPitch";
  4409. procedure Set_Sound_Pan (
  4410. Data : Sound := No_Sound;
  4411. Pan : Float := 0.0
  4412. ) with
  4413. Import => True,
  4414. Convention => C,
  4415. External_Name => "SetSoundPan";
  4416. function Wave_Copy (
  4417. Data : Wave := No_Wave
  4418. ) return Wave with
  4419. Import => True,
  4420. Convention => C,
  4421. External_Name => "WaveCopy";
  4422. procedure Wave_Crop (
  4423. Data : access Wave := null;
  4424. First_Sample : Integer := 0;
  4425. Final_Sample : Integer := 0
  4426. ) with
  4427. Import => True,
  4428. Convention => C,
  4429. External_Name => "WaveCrop";
  4430. procedure Wave_Format (
  4431. Data : access Wave := null;
  4432. Sample_Rate : Integer := 0;
  4433. Sample_Size : Integer := 0;
  4434. Channels : Integer := 0
  4435. ) with
  4436. Import => True,
  4437. Convention => C,
  4438. External_Name => "WaveFormat";
  4439. function Load_Wave_Samples (
  4440. Data : Wave := No_Wave
  4441. ) return access Float with
  4442. Import => True,
  4443. Convention => C,
  4444. External_Name => "LoadWaveSamples";
  4445. procedure Unload_Wave_Samples (
  4446. Samples : access Float := null
  4447. ) with
  4448. Import => True,
  4449. Convention => C,
  4450. External_Name => "UnloadWaveSamples";
  4451. function Load_Music_Stream (
  4452. File_Name : String := ""
  4453. ) return Music with
  4454. Import => True,
  4455. Convention => C,
  4456. External_Name => "LoadMusicStream";
  4457. function Load_Music_Stream_From_Memory (
  4458. File_Type : String := "";
  4459. Data : Pointer := null;
  4460. Data_Size : Integer := 0
  4461. ) return Music with
  4462. Import => True,
  4463. Convention => C,
  4464. External_Name => "LoadMusicStreamFromMemory";
  4465. function Is_Music_Ready (
  4466. Data : Music := No_Music
  4467. ) return Logical with
  4468. Import => True,
  4469. Convention => C,
  4470. External_Name => "IsMusicReady";
  4471. procedure Unload_Music_Stream (
  4472. Data : Music := No_Music
  4473. ) with
  4474. Import => True,
  4475. Convention => C,
  4476. External_Name => "UnloadMusicStream";
  4477. procedure Play_Music_Stream (
  4478. Data : Music := No_Music
  4479. ) with
  4480. Import => True,
  4481. Convention => C,
  4482. External_Name => "PlayMusicStream";
  4483. function Is_Music_Stream_Playing (
  4484. Data : Music := No_Music
  4485. ) return Logical with
  4486. Import => True,
  4487. Convention => C,
  4488. External_Name => "IsMusicStreamPlaying";
  4489. procedure Update_Music_Stream (
  4490. Data : Music := No_Music
  4491. ) with
  4492. Import => True,
  4493. Convention => C,
  4494. External_Name => "UpdateMusicStream";
  4495. procedure Stop_Music_Stream (
  4496. Data : Music := No_Music
  4497. ) with
  4498. Import => True,
  4499. Convention => C,
  4500. External_Name => "StopMusicStream";
  4501. procedure Pause_Music_Stream (
  4502. Data : Music := No_Music
  4503. ) with
  4504. Import => True,
  4505. Convention => C,
  4506. External_Name => "PauseMusicStream";
  4507. procedure Resume_Music_Stream (
  4508. Data : Music := No_Music
  4509. ) with
  4510. Import => True,
  4511. Convention => C,
  4512. External_Name => "ResumeMusicStream";
  4513. procedure Seek_Music_Stream (
  4514. Data : Music := No_Music;
  4515. Position : Float := 0.0
  4516. ) with
  4517. Import => True,
  4518. Convention => C,
  4519. External_Name => "SeekMusicStream";
  4520. procedure Set_Music_Volume (
  4521. Data : Music := No_Music;
  4522. Volume : Float := 0.0
  4523. ) with
  4524. Import => True,
  4525. Convention => C,
  4526. External_Name => "SetMusicVolume";
  4527. procedure Set_Music_Pitch (
  4528. Data : Music := No_Music;
  4529. Pitch : Float := 0.0
  4530. ) with
  4531. Import => True,
  4532. Convention => C,
  4533. External_Name => "SetMusicPitch";
  4534. procedure Set_Music_Pan (
  4535. Data : Music := No_Music;
  4536. Pan : Float := 0.0
  4537. ) with
  4538. Import => True,
  4539. Convention => C,
  4540. External_Name => "SetMusicPan";
  4541. function Get_Music_Time_Length (
  4542. Data : Music := No_Music
  4543. ) return Float with
  4544. Import => True,
  4545. Convention => C,
  4546. External_Name => "GetMusicTimeLength";
  4547. function Get_Music_Time_Played (
  4548. Data : Music := No_Music
  4549. ) return Float with
  4550. Import => True,
  4551. Convention => C,
  4552. External_Name => "GetMusicTimePlayed";
  4553. function Load_Audio_Stream (
  4554. Sample_Rate : Natural := 0;
  4555. Sample_Size : Natural := 0;
  4556. Channels : Natural := 0
  4557. ) return Audio_Stream with
  4558. Import => True,
  4559. Convention => C,
  4560. External_Name => "LoadAudioStream";
  4561. function Is_Audio_Stream_Ready (
  4562. Data : Audio_Stream := No_Audio_Stream
  4563. ) return Logical with
  4564. Import => True,
  4565. Convention => C,
  4566. External_Name => "IsAudioStreamReady";
  4567. procedure Unload_Audio_Stream (
  4568. Data : Audio_Stream := No_Audio_Stream
  4569. ) with
  4570. Import => True,
  4571. Convention => C,
  4572. External_Name => "UnloadAudioStream";
  4573. procedure Update_Audio_Stream (
  4574. Data : Audio_Stream := No_Audio_Stream;
  4575. Raw_Data : Pointer := null;
  4576. Frame_Count : Integer := 0
  4577. ) with
  4578. Import => True,
  4579. Convention => C,
  4580. External_Name => "UpdateAudioStream";
  4581. function Is_Audio_Stream_Processed (
  4582. Data : Audio_Stream := No_Audio_Stream
  4583. ) return Logical with
  4584. Import => True,
  4585. Convention => C,
  4586. External_Name => "IsAudioStreamProcessed";
  4587. procedure Play_Audio_Stream (
  4588. Data : Audio_Stream := No_Audio_Stream
  4589. ) with
  4590. Import => True,
  4591. Convention => C,
  4592. External_Name => "PlayAudioStream";
  4593. procedure Pause_Audio_Stream (
  4594. Data : Audio_Stream := No_Audio_Stream
  4595. ) with
  4596. Import => True,
  4597. Convention => C,
  4598. External_Name => "PauseAudioStream";
  4599. procedure Resume_Audio_Stream (
  4600. Data : Audio_Stream := No_Audio_Stream
  4601. ) with
  4602. Import => True,
  4603. Convention => C,
  4604. External_Name => "ResumeAudioStream";
  4605. function Is_Audio_Stream_Playing (
  4606. Data : Audio_Stream := No_Audio_Stream
  4607. ) return Logical with
  4608. Import => True,
  4609. Convention => C,
  4610. External_Name => "IsAudioStreamPlaying";
  4611. procedure Stop_Audio_Stream (
  4612. Data : Audio_Stream := No_Audio_Stream
  4613. ) with
  4614. Import => True,
  4615. Convention => C,
  4616. External_Name => "StopAudioStream";
  4617. procedure Set_Audio_Stream_Volume (
  4618. Data : Audio_Stream := No_Audio_Stream;
  4619. Volume : Float := 0.0
  4620. ) with
  4621. Import => True,
  4622. Convention => C,
  4623. External_Name => "SetAudioStreamVolume";
  4624. procedure Set_Audio_Stream_Pitch (
  4625. Data : Audio_Stream := No_Audio_Stream;
  4626. Pitch : Float := 0.0
  4627. ) with
  4628. Import => True,
  4629. Convention => C,
  4630. External_Name => "SetAudioStreamPitch";
  4631. procedure Set_Audio_Stream_Pan (
  4632. Data : Audio_Stream := No_Audio_Stream;
  4633. Pan : Float := 0.0
  4634. ) with
  4635. Import => True,
  4636. Convention => C,
  4637. External_Name => "SetAudioStreamPan";
  4638. procedure Set_Audio_Stream_Buffer_Size_Default (
  4639. Size : Integer := 0
  4640. ) with
  4641. Import => True,
  4642. Convention => C,
  4643. External_Name => "SetAudioStreamBufferSizeDefault";
  4644. procedure Attach_Audio_Stream_Processor (
  4645. Stream : Audio_Stream := No_Audio_Stream;
  4646. Processor : Pointer := null
  4647. ) with
  4648. Import => True,
  4649. Convention => C,
  4650. External_Name => "AttachAudioStreamProcessor";
  4651. procedure Detach_Audio_Stream_Processor (
  4652. Stream : Audio_Stream := No_Audio_Stream;
  4653. Processor : Pointer := null
  4654. ) with
  4655. Import => True,
  4656. Convention => C,
  4657. External_Name => "DetachAudioStreamProcessor";
  4658. procedure Attach_Audio_Mixed_Processor (
  4659. Processor : Pointer := null
  4660. ) with
  4661. Import => True,
  4662. Convention => C,
  4663. External_Name => "AttachAudioMixedProcessor";
  4664. procedure Detach_Audio_Mixed_Processor (
  4665. Processor : Pointer := null
  4666. ) with
  4667. Import => True,
  4668. Convention => C,
  4669. External_Name => "DetachAudioMixedProcessor";
  4670. ------------------------------------------------------------------------
  4671. end Raylib;