Ada bindings for Raylib 5.1 library.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

5326 lignes
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;