Clone of ancient game Wolfenstein 3D by idTech written in Ada with Raylib bindings.
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

4232 satır
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;