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.

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