Clone of ancient game Wolfenstein 3D by idTech written in Ada with Raylib bindings.
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

4232 Zeilen
116KB

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