------------------------------------------------------------------------ -- -- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 3 of the License, or -- (at your option) any later version. -- -- This file was made by altering original Raylib 5.1 C header file. I -- used few formatting programs of mine, tho sadly most of the editing -- was done manually. Contact me if there are license issues. -- -- Raylib is great game programming library written by 'raysan5', you -- can check out original C source code here below, it's under zlib -- license. I wrote this because of the lack of good Ada bindings. -- -- There are minor name changes, and this binding was adapted to Ada -- programming language. That means that you can't replace few keywords -- in your C example, and everything works. Aim are new Ada projects. -- -- https://github.com/raysan5/raylib -- ------------------------------------------------------------------------ with System; package Raylib is ------------------------------------------------------------------------ type Logical is new Boolean; -- for Logical'Size use 32; type Config_Flags is ( Flag_None, Flag_Fullscreen_Mode, Flag_Window_Resizable, Flag_Window_Undecorated, Flag_Window_Transparent, Flag_MSAA_x4_Hint, Flag_VSync_Hint, Flag_Window_Hidden, Flag_Window_Always_Run, Flag_Window_Minimized, Flag_Window_Maximized, Flag_Window_Unfocused, Flag_Window_Topmost, Flag_Window_High_DPI, Flag_Window_Mouse_Passthrough, Flag_Borderless_Windowed_Mode, Flag_Interlaced_Hint ) with Convention => C; for Config_Flags use ( Flag_None => 16#00000000#, -- 0 Flag_Fullscreen_Mode => 16#00000002#, -- 2 Flag_Window_Resizable => 16#00000004#, -- 4 Flag_Window_Undecorated => 16#00000008#, -- 8 Flag_Window_Transparent => 16#00000010#, -- 16 Flag_MSAA_x4_Hint => 16#00000020#, -- 32 Flag_VSync_Hint => 16#00000040#, -- 64 Flag_Window_Hidden => 16#00000080#, -- 128 Flag_Window_Always_Run => 16#00000100#, -- 256 Flag_Window_Minimized => 16#00000200#, -- 512 Flag_Window_Maximized => 16#00000400#, -- 1024 Flag_Window_Unfocused => 16#00000800#, -- 2048 Flag_Window_Topmost => 16#00001000#, -- 4096 Flag_Window_High_DPI => 16#00002000#, -- 8192 Flag_Window_Mouse_Passthrough => 16#00004000#, -- 16384 Flag_Borderless_Windowed_Mode => 16#00008000#, -- 32768 Flag_Interlaced_Hint => 16#00010000# -- 65536 ); type Trace_Log_Level is ( Log_All, Log_Trace, Log_Debug, Log_Info, Log_Warning, Log_Error, Log_Fatal, Log_None ) with Convention => C; type Keyboard_Key is ( Key_Null, Key_Space, Key_Apostrophe, Key_Comma, Key_Minus, Key_Period, Key_Slash, Key_0, Key_1, Key_2, Key_3, Key_4, Key_5, Key_6, Key_7, Key_8, Key_9, Key_Semicolon, Key_Equal, Key_A, Key_B, Key_C, Key_D, Key_E, Key_F, Key_G, Key_H, Key_I, Key_J, Key_K, Key_L, Key_M, Key_N, Key_O, Key_P, Key_Q, Key_R, Key_S, Key_T, Key_U, Key_V, Key_W, Key_X, Key_Y, Key_Z, Key_Left_Bracket, Key_Backslash, Key_Right_Bracket, Key_Grave, Key_Escape, Key_Enter, Key_Tab, Key_Backspace, Key_Insert, Key_Delete, Key_Right, Key_Left, Key_Down, Key_Up, Key_Page_Up, Key_Page_Down, Key_Home, Key_End, Key_Caps_Lock, Key_Scroll_Lock, Key_Num_Lock, Key_Print_Screen, Key_Pause, Key_F1, Key_F2, Key_F3, Key_F4, Key_F5, Key_F6, Key_F7, Key_F8, Key_F9, Key_F10, Key_F11, Key_F12, Key_Pad_0, Key_Pad_1, Key_Pad_2, Key_Pad_3, Key_Pad_4, Key_Pad_5, Key_Pad_6, Key_Pad_7, Key_Pad_8, Key_Pad_9, Key_Pad_Decimal, Key_Pad_Divide, Key_Pad_Multiply, Key_Pad_Subtract, Key_Pad_Add, Key_Pad_Enter, Key_Pad_Equal, Key_Left_Shift, Key_Left_Control, Key_Left_Alt, Key_Left_Super, Key_Right_Shift, Key_Right_Control, Key_Right_Alt, Key_Right_Super, Key_KB_Menu ) with Convention => C; for Keyboard_Key use ( Key_Null => 0, Key_Space => 32, Key_Apostrophe => 39, Key_Comma => 44, Key_Minus => 45, Key_Period => 46, Key_Slash => 47, Key_0 => 48, Key_1 => 49, Key_2 => 50, Key_3 => 51, Key_4 => 52, Key_5 => 53, Key_6 => 54, Key_7 => 55, Key_8 => 56, Key_9 => 57, Key_Semicolon => 59, Key_Equal => 61, Key_A => 65, Key_B => 66, Key_C => 67, Key_D => 68, Key_E => 69, Key_F => 70, Key_G => 71, Key_H => 72, Key_I => 73, Key_J => 74, Key_K => 75, Key_L => 76, Key_M => 77, Key_N => 78, Key_O => 79, Key_P => 80, Key_Q => 81, Key_R => 82, Key_S => 83, Key_T => 84, Key_U => 85, Key_V => 86, Key_W => 87, Key_X => 88, Key_Y => 89, Key_Z => 90, Key_Left_Bracket => 91, Key_Backslash => 92, Key_Right_Bracket => 93, Key_Grave => 96, Key_Escape => 256, Key_Enter => 257, Key_Tab => 258, Key_Backspace => 259, Key_Insert => 260, Key_Delete => 261, Key_Right => 262, Key_Left => 263, Key_Down => 264, Key_Up => 265, Key_Page_Up => 266, Key_Page_Down => 267, Key_Home => 268, Key_End => 269, Key_Caps_Lock => 280, Key_Scroll_Lock => 281, Key_Num_Lock => 282, Key_Print_Screen => 283, Key_Pause => 284, Key_F1 => 290, Key_F2 => 291, Key_F3 => 292, Key_F4 => 293, Key_F5 => 294, Key_F6 => 295, Key_F7 => 296, Key_F8 => 297, Key_F9 => 298, Key_F10 => 299, Key_F11 => 300, Key_F12 => 301, Key_Pad_0 => 320, Key_Pad_1 => 321, Key_Pad_2 => 322, Key_Pad_3 => 323, Key_Pad_4 => 324, Key_Pad_5 => 325, Key_Pad_6 => 326, Key_Pad_7 => 327, Key_Pad_8 => 328, Key_Pad_9 => 329, Key_Pad_Decimal => 330, Key_Pad_Divide => 331, Key_Pad_Multiply => 332, Key_Pad_Subtract => 333, Key_Pad_Add => 334, Key_Pad_Enter => 335, Key_Pad_Equal => 336, Key_Left_Shift => 340, Key_Left_Control => 341, Key_Left_Alt => 342, Key_Left_Super => 343, Key_Right_Shift => 344, Key_Right_Control => 345, Key_Right_Alt => 346, Key_Right_Super => 347, Key_KB_Menu => 348 ); type Mouse_Button is ( Mouse_Button_Left, Mouse_Button_Right, Mouse_Button_Middle, Mouse_Button_Side, Mouse_Button_Extra, Mouse_Button_Forward, Mouse_Button_Back ) with Convention => C; type Mouse_Cursor is ( Mouse_Cursor_Default, Mouse_Cursor_Arrow, Mouse_Cursor_Ibeam, Mouse_Cursor_Crosshair, Mouse_Cursor_Pointing_Hand, Mouse_Cursor_Resize_EW, Mouse_Cursor_Resize_NS, Mouse_Cursor_Resize_NWSE, Mouse_Cursor_Resize_NESW, Mouse_Cursor_Resize_All, Mouse_Cursor_Not_Allowed ) with Convention => C; type Gamepad_Button is ( Gamepad_Button_Unknown, Gamepad_Button_Left_Face_Up, Gamepad_Button_Left_Face_Right, Gamepad_Button_Left_Face_Down, Gamepad_Button_Left_Face_Left, Gamepad_Button_Right_Face_Up, Gamepad_Button_Right_Face_Right, Gamepad_Button_Right_Face_Down, Gamepad_Button_Right_Face_Left, Gamepad_Button_Left_Trigger_1, Gamepad_Button_Left_Trigger_2, Gamepad_Button_Right_Trigger_1, Gamepad_Button_Right_Trigger_2, Gamepad_Button_Middle_Left, Gamepad_Button_Middle, Gamepad_Button_Middle_Right, Gamepad_Button_Left_Thumb, Gamepad_Button_Right_Thumb ) with Convention => C; type Gamepad_Axis is ( Gamepad_Axis_Left_X, Gamepad_Axis_Left_Y, Gamepad_Axis_Right_X, Gamepad_Axis_Right_Y, Gamepad_Axis_Left_Trigger, Gamepad_Axis_Right_Trigger ) with Convention => C; type Material_Map_Index is ( Material_Map_Diffuse, Material_Map_Specular, Material_Map_Normal, Material_Map_Roughness, Material_Map_Occlusion, Material_Map_Emission, Material_Map_Height, Material_Map_Cubemap, Material_Map_Irradiance, Material_Map_Prefilter, Material_Map_BRDF ) with Convention => C; type Shader_Location_Index is ( Shader_Location_Vertex_Position, Shader_Location_Vertex_Texcoord_1, Shader_Location_Vertex_Texcoord_2, Shader_Location_Vertex_Normal, Shader_Location_Vertex_Tangent, Shader_Location_Vertex_Color, Shader_Location_Matrix_MVP, Shader_Location_Matrix_View, Shader_Location_Matrix_Projection, Shader_Location_Matrix_Model, Shader_Location_Matrix_Normal, Shader_Location_Vector_View, Shader_Location_Color_Diffuse, Shader_Location_Color_Specular, Shader_Location_Color_Ambient, Shader_Location_Map_Diffuse, Shader_Location_Map_Specular, Shader_Location_Map_Normal, Shader_Location_Map_Roughness, Shader_Location_Map_Occlusion, Shader_Location_Map_Emission, Shader_Location_Map_Height, Shader_Location_Map_Cubemap, Shader_Location_Map_Irradiance, Shader_Location_Map_Prefilter, Shader_Location_Map_BRDF ) with Convention => C; type Shader_Uniform_Data_Type is ( Shader_Uniform_FLOAT, Shader_Uniform_VEC2, Shader_Uniform_VEC3, Shader_Uniform_VEC4, Shader_Uniform_INT, Shader_Uniform_IVEC2, Shader_Uniform_IVEC3, Shader_Uniform_IVEC4, Shader_Uniform_SAMPLER2D ) with Convention => C; type Shader_Attribute_Data_Type is ( Shader_Attribute_FLOAT, Shader_Attribute_VEC2, Shader_Attribute_VEC3, Shader_Attribute_VEC4 ) with Convention => C; type Pixel_Format is ( Pixel_Format_None, Pixel_Format_Uncompressed_Grayscale, Pixel_Format_Uncompressed_Gray_Alpha, Pixel_Format_Uncompressed_R5G6B5, Pixel_Format_Uncompressed_R8G8B8, Pixel_Format_Uncompressed_R5G5B5A1, Pixel_Format_Uncompressed_R4G4B4A4, Pixel_Format_Uncompressed_R8G8B8A8, Pixel_Format_Uncompressed_R32, Pixel_Format_Uncompressed_R32G32B32, Pixel_Format_Uncompressed_R32G32B32A32, Pixel_Format_Uncompressed_R16, Pixel_Format_Uncompressed_R16G16B16, Pixel_Format_Uncompressed_R16G16B16A16, Pixel_Format_Compressed_DXT1_RGB, Pixel_Format_Compressed_DXT1_RGBA, Pixel_Format_Compressed_DXT3_RGBA, Pixel_Format_Compressed_DXT5_RGBA, Pixel_Format_Compressed_ETC1_RGB, Pixel_Format_Compressed_ETC2_RGB, Pixel_Format_Compressed_ETC2_EAC_RGBA, Pixel_Format_Compressed_PVRT_RGB, Pixel_Format_Compressed_PVRT_RGBA, Pixel_Format_Compressed_ASTC_4x4_RGBA, Pixel_Format_Compressed_ASTC_8x8_RGBA ) with Convention => C; type Texture_Filter is ( Texture_Filter_Point, Texture_Filter_Bilinear, Texture_Filter_Trilinear, Texture_Filter_Anisotropic_x4, Texture_Filter_Anisotropic_x8, Texture_Filter_Anisotropic_x16 ) with Convention => C; type Texture_Wrap is ( Texture_Wrap_Repeat, Texture_Wrap_Clamp, Texture_Wrap_Mirror_Repeat, Texture_Wrap_Mirror_Clamp ) with Convention => C; type Cubemap_Layout is ( Cubemap_Layout_Auto_Detect, Cubemap_Layout_Line_Vertical, Cubemap_Layout_Line_Horizontal, Cubemap_Layout_Cross_3_By_4, Cubemap_Layout_Cross_4_By_3, Cubemap_Layout_Panorama ) with Convention => C; type Font_Type is ( Font_Default, Font_Bitmap, Font_SDF ) with Convention => C; type Blend_Mode is ( Blend_Alpha, Blend_Additive, Blend_Multiplied, Blend_Add_Colors, Blend_Subtract_Colors, Blend_Alpha_Premultiply, Blend_Custom, Blend_Custom_Separate ) with Convention => C; type Gesture is ( Gesture_None, Gesture_Tap, Gesture_Doubletap, Gesture_Hold, Gesture_Drag, Gesture_Swipe_Right, Gesture_Swipe_Left, Gesture_Swipe_Up, Gesture_Swipe_Down, Gesture_Pinch_In, Gesture_Pinch_Out ) with Convention => C; for Gesture use ( Gesture_None => 2#0000000000#, -- 0 Gesture_Tap => 2#0000000001#, -- 1 Gesture_Doubletap => 2#0000000010#, -- 2 Gesture_Hold => 2#0000000100#, -- 4 Gesture_Drag => 2#0000001000#, -- 8 Gesture_Swipe_Right => 2#0000010000#, -- 16 Gesture_Swipe_Left => 2#0000100000#, -- 32 Gesture_Swipe_Up => 2#0001000000#, -- 64 Gesture_Swipe_Down => 2#0010000000#, -- 128 Gesture_Pinch_In => 2#0100000000#, -- 256 Gesture_Pinch_Out => 2#1000000000# -- 512 ); type Camera_Mode is ( Camera_Custom, Camera_Free, Camera_Orbital, Camera_First_Person, Camera_Third_Person ) with Convention => C; type Camera_Projection is ( Camera_Perspective, Camera_Orthographic ) with Convention => C; type NPatch_Layout is ( NPatch_Nine_Patch, NPatch_Three_Patch_Vertical, NPatch_Three_Patch_Horizontal ) with Convention => C; ------------------------------------------------------------------------ type Color_Range is range 0 .. 2**8 - 1; type Index_Range is range 0 .. 2**16 - 1; for Color_Range'Size use 8; for Index_Range'Size use 16; type Pointer is access all System.Address; type Strings is access all Character; type Vector_2D is record X : Float := 0.0; Y : Float := 0.0; end record with Convention => C_Pass_By_Copy; type Vector_3D is record X : Float := 0.0; Y : Float := 0.0; Z : Float := 0.0; end record with Convention => C_Pass_By_Copy; type Vector_4D is record X : Float := 0.0; Y : Float := 0.0; Z : Float := 0.0; W : Float := 0.0; end record with Convention => C_Pass_By_Copy; type Quaternion is new Vector_4D; type Matrix_4D is record M00 : Float := 1.0; M10 : Float := 0.0; M20 : Float := 0.0; M30 : Float := 0.0; M01 : Float := 0.0; M11 : Float := 1.0; M21 : Float := 0.0; M31 : Float := 0.0; M02 : Float := 0.0; M12 : Float := 0.0; M22 : Float := 1.0; M32 : Float := 0.0; M03 : Float := 0.0; M13 : Float := 0.0; M23 : Float := 0.0; M33 : Float := 1.0; end record with Convention => C_Pass_By_Copy; Id_Matrix : Matrix_4D; type Color is record R : Color_Range := 255; G : Color_Range := 255; B : Color_Range := 255; A : Color_Range := 255; end record with Convention => C_Pass_By_Copy; No_Color : Color; type Rectangle is record X : Float := 0.0; Y : Float := 0.0; Width : Float := 0.0; Height : Float := 0.0; end record with Convention => C_Pass_By_Copy; No_Rectangle : Rectangle; type Image is record Data : Pointer := null; Width : Integer := 0; Height : Integer := 0; Mipmaps : Integer := 1; Format : Pixel_Format := Pixel_Format_None; end record with Convention => C_Pass_By_Copy; No_Image : Image; type Texture is record Id : Natural := 0; Width : Integer := 0; Height : Integer := 0; Mipmaps : Integer := 1; Format : Pixel_Format := Pixel_Format_None; end record with Convention => C_Pass_By_Copy; No_Texture : Texture; type Render_Texture is record Id : Natural := 0; Data : Texture := No_Texture; Depth : Texture := No_Texture; end record with Convention => C_Pass_By_Copy; No_Render_Texture : Render_Texture; type NPatch_Info is record Source : Rectangle := No_Rectangle; Left : Integer := 0; Top : Integer := 0; Right : Integer := 0; Bottom : Integer := 0; Layout : NPatch_Layout := NPatch_Nine_Patch; end record with Convention => C_Pass_By_Copy; No_NPatch_Info : NPatch_Info; type Glyph_Info is record Value : Integer := 0; Offset_X : Integer := 0; Offset_Y : Integer := 0; Advance_X : Integer := 0; Data : Image := No_Image; end record with Convention => C_Pass_By_Copy; No_Glyph_Info : Glyph_Info; type Font is record Base_Size : Integer := 0; Glyph_Count : Integer := 0; Glyph_Padding : Integer := 0; Data : Texture := No_Texture; Rectangles : access Rectangle := null; Glyphs : access Glyph_Info := null; end record with Convention => C_Pass_By_Copy; No_Font : Font; type Camera_3D is record Position : Vector_3D := (others => 0.0); Target : Vector_3D := (others => 0.0); Up : Vector_3D := (others => 0.0); Field_Of_View : Float := 0.0; Projection : Camera_Projection := Camera_Perspective; end record with Convention => C_Pass_By_Copy; No_Camera_3D : Camera_3D; type Camera_2D is record Offset : Vector_2D := (others => 0.0); Target : Vector_2D := (others => 0.0); Rotation : Float := 0.0; Zoom : Float := 0.0; end record with Convention => C_Pass_By_Copy; No_Camera_2D : Camera_2D; type Mesh is record Vertex_Count : Integer := 0; Triangle_Count : Integer := 0; Vertices : access Float := null; Texture_Coordinates : access Float := null; Texture_Coordinates_2 : access Float := null; Normals : access Float := null; Tangents : access Float := null; Colors : access Color_Range := null; Indices : access Index_Range := null; Animation_Vertices : access Float := null; Animation_Normals : access Float := null; Bone_Ids : access Color_Range := null; Bone_Weights : access Float := null; VAO_Id : Natural := 0; VBO_Id : access Natural := null; end record with Convention => C_Pass_By_Copy; No_Mesh : Mesh; type Shader is record Id : Natural := 0; Locations : access Integer := null; end record with Convention => C_Pass_By_Copy; No_Shader : Shader; type Material_Map is record Data : Texture := No_Texture; Tint : Color := No_Color; Value : Float := 0.0; end record with Convention => C_Pass_By_Copy; No_Material_Map : Material_Map; type Float_Array_4 is array (0 .. 3) of Float; type Material_Map_Array_4 is array (0 .. 3) of Material_Map; type Material_Map_Array is array (Natural range <>) of Material_Map; type Material is record Data : Shader := No_Shader; Maps : access Material_Map_Array := null; Parameter : Float_Array_4 := (0.0, 0.0, 0.0, 1.0); end record with Convention => C_Pass_By_Copy; No_Material : Material; type Transform is record Translation : Vector_3D := (others => 0.0); Rotation : Vector_4D := (others => 0.0); Scale : Vector_3D := (others => 0.0); end record with Convention => C_Pass_By_Copy; No_Transform : Transform; type Character_Array_32 is array (0 .. 31) of Character; Empty : Character_Array_32 := (others => Character'Val (0)); type Bone_Info is record Name : Character_Array_32 := Empty; Parent : Integer := 0; end record with Convention => C_Pass_By_Copy; No_Bone_Info : Bone_Info; type Material_Array_4 is array (0 .. 3) of Material; type Material_Array is array (Natural range <>) of Material; type Model is record Transform : Matrix_4D := Id_Matrix; Mesh_Count : Integer := 0; Material_Count : Integer := 0; Meshes : access Mesh := null; Materials : access Material_Array := null; Mesh_Materials : access Integer := null; Bone_Count : Integer := 0; Bones : access Bone_Info := null; --ERRORBind_Post : access Transform := null; end record with Convention => C_Pass_By_Copy; No_Model : Model; type Model_Animation is record Bone_Count : Integer := 0; Frame_Count : Integer := 0; Bones : access Bone_Info := null; Frame_Poses : access Transform := null; Name : Character_Array_32 := Empty; end record with Convention => C_Pass_By_Copy; No_Model_Animation : Model_Animation; type Ray is record Position : Vector_3D := (others => 0.0); Direction : Vector_3D := (others => 0.0); end record with Convention => C_Pass_By_Copy; No_Ray : Ray; type Ray_Collision is record Hit : Logical := False; Distance : Float := 0.0; Point : Vector_3D := (others => 0.0); Normal : Vector_3D := (others => 0.0); end record with Convention => C_Pass_By_Copy; No_Ray_Collision : Ray_Collision; type Bounding_Box is record Min : Vector_3D := (others => 0.0); Max : Vector_3D := (others => 0.0); end record with Convention => C_Pass_By_Copy; No_Bounding_Box : Bounding_Box; type Wave is record Frame_Count : Natural := 0; Sample_Rate : Natural := 0; Sample_Size : Natural := 0; Channels : Natural := 0; Data : Pointer := null; end record with Convention => C_Pass_By_Copy; No_Wave : Wave; type Audio_Stream is record Buffer : Pointer := null; Processor : Pointer := null; Sample_Rate : Natural := 0; Sample_Size : Natural := 0; Channels : Natural := 0; end record with Convention => C_Pass_By_Copy; No_Audio_Stream : Audio_Stream; type Sound is record Stream : Audio_Stream := No_Audio_Stream; Frame_Count : Natural := 0; end record with Convention => C_Pass_By_Copy; No_Sound : Sound; type Music is record Stream : Audio_Stream := No_Audio_Stream; Frame_Count : Natural := 0; Looping : Logical := False; Context_Type : Integer := 0; Context_Data : Pointer := null; end record with Convention => C_Pass_By_Copy; No_Music : Music; type VR_Device_Info is record Horizontal_Resoultion : Integer := 0; Vertical_Resoultion : Integer := 0; Horizontal_Screen_Size : Float := 0.0; Vertical_Screen_Size : Float := 0.0; Vertical_Screen_Center : Float := 0.0; Eye_To_Screen_Distance : Float := 0.0; Lens_Separate_Distance : Float := 0.0; Interpupillary_Distance : Float := 0.0; Lens_Distortion_Values : Float_Array_4 := (others => 0.0); Chroma_Abberation_Correction : Float_Array_4 := (others => 0.0); end record with Convention => C_Pass_By_Copy; No_VR_Device_Info : VR_Device_Info; type Matrix_4D_Array_2 is array (0 .. 1) of Matrix_4D; type Float_Array_2 is array (0 .. 1) of Float; type VR_Stereo_Config is record Projection : Matrix_4D_Array_2 := (Id_Matrix, Id_Matrix); View_Offset : Matrix_4D_Array_2 := (Id_Matrix, Id_Matrix); Left_Lens_Center : Float_Array_2 := (others => 0.0); Right_Lens_Center : Float_Array_2 := (others => 0.0); Left_Screen_Center : Float_Array_2 := (others => 0.0); Right_Screen_Center : Float_Array_2 := (others => 0.0); Scale : Float_Array_2 := (others => 0.0); Scale_In : Float_Array_2 := (others => 0.0); end record with Convention => C_Pass_By_Copy; No_VR_Stereo_Config : VR_Stereo_Config; type File_Path_List is record Capacity : Natural := 0; Count : Natural := 0; Paths : Pointer := null; end record with Convention => C_Pass_By_Copy; No_File_Path_List : File_Path_List; type Integer_Array_4 is array (0 .. 3) of Integer; type Automation_Event is record Frame : Natural := 0; Kind : Natural := 0; Parameters : Integer_Array_4 := (others => 0); end record with Convention => C_Pass_By_Copy; No_Automation_Event : Automation_Event; type Automation_Event_List is record Capacity : Natural := 0; Count : Natural := 0; Events : access Automation_Event := null; end record with Convention => C_Pass_By_Copy; No_Automation_Event_List : Automation_Event_List; ------------------------------------------------------------------------ Version_Major : constant Integer := 5; Version_Minor : constant Integer := 1; Version_Patch : constant Integer := 0; Version : aliased constant String := "5.1-dev"; Pi : constant Float := 3.14159265358979323846; Tau : constant Float := 2.0 * Pi; Degree_To_Radius : constant Float := Pi / 180.0; Radius_To_Degree : constant Float := 180.0 / Pi; Light_Gray : constant Color := (200, 200, 200, 255); Gray : constant Color := (130, 130, 130, 255); Dark_Gray : constant Color := (80, 80, 80, 255); Yellow : constant Color := (253, 249, 0, 255); Gold : constant Color := (255, 203, 0, 255); Orange : constant Color := (255, 161, 0, 255); Pink : constant Color := (255, 109, 194, 255); Red : constant Color := (230, 41, 55, 255); Maroon : constant Color := (190, 33, 55, 255); Green : constant Color := (0, 228, 48, 255); Lime : constant Color := (0, 158, 47, 255); Dark_Green : constant Color := (0, 117, 44, 255); Sky_Blue : constant Color := (102, 191, 255, 255); Blue : constant Color := (0, 121, 241, 255); Dark_Blue : constant Color := (0, 82, 172, 255); Purple : constant Color := (200, 122, 255, 255); Violet : constant Color := (135, 60, 190, 255); Dark_Purple : constant Color := (112, 31, 126, 255); Beige : constant Color := (211, 176, 131, 255); Brown : constant Color := (127, 106, 79, 255); Dark_Brown : constant Color := (76, 63, 47, 255); White : constant Color := (255, 255, 255, 255); Black : constant Color := (0, 0, 0, 255); Blank : constant Color := (0, 0, 0, 0 ); Magenta : constant Color := (255, 0, 255, 255); Ray_White : constant Color := (245, 245, 245, 255); ------------------------------------------------------------------------ procedure Open_Window ( Width : Integer := 640; Height : Integer := 480; Title : String := "Raylib-Ada" & Character'Val (0) ) with Import => True, Convention => C, External_Name => "InitWindow"; procedure Close_Window with Import => True, Convention => C, External_Name => "CloseWindow"; function Window_Should_Close return Logical with Import => True, Convention => C, External_Name => "WindowShouldClose"; function Is_Window_Ready return Logical with Import => True, Convention => C, External_Name => "IsWindowReady"; function Is_Window_Fullscreen return Logical with Import => True, Convention => C, External_Name => "IsWindowFullscreen"; function Is_Window_Hidden return Logical with Import => True, Convention => C, External_Name => "IsWindowHidden"; function Is_Window_Minimized return Logical with Import => True, Convention => C, External_Name => "IsWindowMinimized"; function Is_Window_Maximized return Logical with Import => True, Convention => C, External_Name => "IsWindowMaximized"; function Is_Window_Focused return Logical with Import => True, Convention => C, External_Name => "IsWindowFocused"; function Is_Window_Resized return Logical with Import => True, Convention => C, External_Name => "IsWindowResized"; function Is_Window_State ( Flags : Natural := 0 ) return Logical with Import => True, Convention => C, External_Name => "IsWindowState"; procedure Set_Window_State ( Flags : Natural := 0 ) with Import => True, Convention => C, External_Name => "SetWindowState"; procedure Clear_Window_State ( Flags : Natural := 0 ) with Import => True, Convention => C, External_Name => "ClearWindowState"; procedure Toggle_Fullscreen with Import => True, Convention => C, External_Name => "ToggleFullscreen"; procedure Toggle_Borderless_Windowed with Import => True, Convention => C, External_Name => "ToggleBorderlessWindowed"; procedure Maximize_Window with Import => True, Convention => C, External_Name => "MaximizeWindow"; procedure Minimize_Window with Import => True, Convention => C, External_Name => "MinimizeWindow"; procedure Restore_Window with Import => True, Convention => C, External_Name => "RestoreWindow"; procedure Set_Window_Icon ( Icon : Image := No_Image ) with Import => True, Convention => C, External_Name => "SetWindowIcon"; procedure Set_Window_Icons ( Icons : access Image := null; Count : Integer := 0 ) with Import => True, Convention => C, External_Name => "SetWindowIcons"; procedure Set_Window_Title ( Title : String := "" ) with Import => True, Convention => C, External_Name => "SetWindowTitle"; procedure Set_Window_Position ( X : Integer := 0; Y : Integer := 0 ) with Import => True, Convention => C, External_Name => "SetWindowPosition"; procedure Set_Window_Monitor ( Monitor : Integer := 0 ) with Import => True, Convention => C, External_Name => "SetWindowMonitor"; procedure Set_Window_Min_Size ( Width : Integer := 0; Height : Integer := 0 ) with Import => True, Convention => C, External_Name => "SetWindowMinSize"; procedure Set_Window_Max_Size ( Width : Integer := 0; Height : Integer := 0 ) with Import => True, Convention => C, External_Name => "SetWindowMaxSize"; procedure Set_Window_Size ( Width : Integer := 0; Height : Integer := 0 ) with Import => True, Convention => C, External_Name => "SetWindowSize"; procedure Set_WindowZ_Opacity ( Opacity : Float := 0.0 ) with Import => True, Convention => C, External_Name => "SetWindowOpacity"; procedure Set_Window_Focused with Import => True, Convention => C, External_Name => "SetWindowFocused"; function Get_Window_Handle return Pointer with Import => True, Convention => C, External_Name => "GetWindowHandle"; function Get_Screen_Width return Integer with Import => True, Convention => C, External_Name => "GetScreenWidth"; function Get_Screen_Height return Integer with Import => True, Convention => C, External_Name => "GetScreenHeight"; function Get_Render_Width return Integer with Import => True, Convention => C, External_Name => "GetRenderWidth"; function Get_Render_Height return Integer with Import => True, Convention => C, External_Name => "GetRenderHeight"; function Get_Monitor_Count return Integer with Import => True, Convention => C, External_Name => "GetMonitorCount"; function Get_Current_Monitor return Integer with Import => True, Convention => C, External_Name => "GetCurrentMonitor"; function Get_Monitor_Position ( Monitor : Integer := 0 ) return Vector_2D with Import => True, Convention => C, External_Name => "GetMonitorPosition"; function Get_Monitor_Width ( Monitor : Integer := 0 ) return Integer with Import => True, Convention => C, External_Name => "GetMonitorWidth"; function Get_Monitor_Height ( Monitor : Integer := 0 ) return Integer with Import => True, Convention => C, External_Name => "GetMonitorHeight"; function Get_Monitor_Physical_Width ( Monitor : Integer := 0 ) return Integer with Import => True, Convention => C, External_Name => "GetMonitorPhysicalWidth"; function Get_Monitor_Physical_Height ( Monitor : Integer := 0 ) return Integer with Import => True, Convention => C, External_Name => "GetMonitorPhysicalHeight"; function Get_Monitor_Refresh_Rate ( Monitor : Integer := 0 ) return Integer with Import => True, Convention => C, External_Name => "GetMonitorRefreshRate"; function Get_Window_Position return Vector_2D with Import => True, Convention => C, External_Name => "GetWindowPosition"; function Get_Window_Scale_DPI return Vector_2D with Import => True, Convention => C, External_Name => "GetWindowScaleDPI"; function Get_Monitor_Name ( Monitor : Integer := 0 ) return Strings with Import => True, Convention => C, External_Name => "GetMonitorName"; procedure Set_Clipboard_Text ( Text : String := "" ) with Import => True, Convention => C, External_Name => "SetClipboardText"; function Get_Clipboard_Text return Strings with Import => True, Convention => C, External_Name => "GetClipboardText"; procedure Enable_Event_Waiting with Import => True, Convention => C, External_Name => "EnableEventWaiting"; procedure Disable_Event_Waiting with Import => True, Convention => C, External_Name => "DisableEventWaiting"; procedure Show_Cursor with Import => True, Convention => C, External_Name => "ShowCursor"; procedure Hide_Cursor with Import => True, Convention => C, External_Name => "HideCursor"; function Is_Cursor_Hidden return Logical with Import => True, Convention => C, External_Name => "IsCursorHidden"; procedure Enable_Cursor with Import => True, Convention => C, External_Name => "EnableCursor"; procedure Disable_Cursor with Import => True, Convention => C, External_Name => "DisableCursor"; function Is_Cursor_On_Screen return Logical with Import => True, Convention => C, External_Name => "IsCursorOnScreen"; procedure Clear_Background ( Tint : Color := Ray_White ) with Import => True, Convention => C, External_Name => "ClearBackground"; procedure Begin_Drawing with Import => True, Convention => C, External_Name => "BeginDrawing"; procedure End_Drawing with Import => True, Convention => C, External_Name => "EndDrawing"; procedure Begin_Mode_2D ( Camera : Camera_2D ) with Import => True, Convention => C, External_Name => "BeginMode2D"; procedure End_Mode_2D with Import => True, Convention => C, External_Name => "EndMode2D"; procedure Begin_Mode_3D ( Camera : Camera_3D ) with Import => True, Convention => C, External_Name => "BeginMode3D"; procedure End_Mode_3D with Import => True, Convention => C, External_Name => "EndMode3D"; procedure Begin_Texture_Mode ( Data : Render_Texture := No_Render_Texture ) with Import => True, Convention => C, External_Name => "BeginTextureMode"; procedure End_Texture_Mode with Import => True, Convention => C, External_Name => "EndTextureMode"; procedure Begin_Shader_Mode ( Data : Shader := No_Shader ) with Import => True, Convention => C, External_Name => "BeginShaderMode"; procedure End_Shader_Mode with Import => True, Convention => C, External_Name => "EndShaderMode"; procedure Begin_Blend_Mode ( Mode : Blend_Mode := Blend_Alpha ) with Import => True, Convention => C, External_Name => "BeginBlendMode"; procedure End_Blend_Mode with Import => True, Convention => C, External_Name => "EndBlendMode"; procedure Begin_Scissor_Mode ( X : Integer := 0; Y : Integer := 0; Width : Integer := 0; Height : Integer := 0 ) with Import => True, Convention => C, External_Name => "BeginScissorMode"; procedure End_Scissor_Mode with Import => True, Convention => C, External_Name => "EndScissorMode"; procedure Begin_VR_Stereo_Mode ( Config : VR_Stereo_Config := No_VR_Stereo_Config ) with Import => True, Convention => C, External_Name => "BeginVrStereoMode"; procedure End_VR_Stereo_Mode with Import => True, Convention => C, External_Name => "EndVrStereoMode"; function Load_VR_Stereo_Config ( Device : VR_Device_Info := No_VR_Device_Info ) return VR_Stereo_Config with Import => True, Convention => C, External_Name => "LoadVrStereoConfig"; procedure Unload_VR_Stereo_Config ( Config : VR_Stereo_Config := No_VR_Stereo_Config ) with Import => True, Convention => C, External_Name => "UnloadVrStereoConfig"; function Load_Shader ( Vertex_Shader_File_Path : String := ""; Fragment_Shader_File_Path : String := "" ) return Shader with Import => True, Convention => C, External_Name => "LoadShader"; function Load_Shader_From_Memory ( Vertex_Shader_Code_Path : String := ""; Fragment_Shader_Code_Path : String := "" ) return Shader with Import => True, Convention => C, External_Name => "LoadShaderFromMemory"; function Is_Shader_Ready ( Data : Shader := No_Shader ) return Logical with Import => True, Convention => C, External_Name => "IsShaderReady"; function Get_Shader_Location ( Data : Shader := No_Shader; Name : String := "" ) return Integer with Import => True, Convention => C, External_Name => "GetShaderLocation"; function Get_Shader_Location_Attribute ( Data : Shader := No_Shader; Name : String := "" ) return Integer with Import => True, Convention => C, External_Name => "GetShaderLocationAttrib"; procedure Set_Shader_Value ( Data : Shader := No_Shader; Location_Index : Integer := 0; Value : Pointer := null; Uniform_Type : Integer := 0 ) with Import => True, Convention => C, External_Name => "SetShaderValue"; procedure Set_Shader_Value_Vector ( Data : Shader := No_Shader; Location_Index : Integer := 0; Value : Pointer := null; Uniform_Type : Integer := 0; Count : Integer := 0 ) with Import => True, Convention => C, External_Name => "SetShaderValueV"; procedure Set_Shader_Value_Matrix ( Data : Shader := No_Shader; Location_Index : Integer := 0; Value : Matrix_4D := Id_Matrix ) with Import => True, Convention => C, External_Name => "SetShaderValueMatrix"; procedure Set_Shader_Value_Texture ( Data : Shader := No_Shader; Location_Index : Integer := 0; Value : Texture := No_Texture ) with Import => True, Convention => C, External_Name => "SetShaderValueTexture"; procedure Unload_Shader ( Data : Shader := No_Shader ) with Import => True, Convention => C, External_Name => "UnloadShader"; function Get_Mouse_Ray ( Mouse_Position : Vector_2D := (others => 0.0); Camera : Camera_3D := No_Camera_3D ) return Ray with Import => True, Convention => C, External_Name => "GetMouseRay"; function Get_Camera_Matrix_3D ( Camera : Camera_3D := No_Camera_3D ) return Matrix_4D with Import => True, Convention => C, External_Name => "GetCameraMatrix"; function Get_Camera_Matrix_2D ( Camera : Camera_2D := No_Camera_2D ) return Matrix_4D with Import => True, Convention => C, External_Name => "GetCameraMatrix2D"; function Get_World_To_Screen_3D ( Position : Vector_3D := (others => 0.0); Camera : Camera_3D := No_Camera_3D ) return Vector_2D with Import => True, Convention => C, External_Name => "GetWorldToScreen"; function Get_Screen_To_World_2D ( Position : Vector_2D := (others => 0.0); Camera : Camera_2D := No_Camera_2D ) return Vector_2D with Import => True, Convention => C, External_Name => "GetScreenToWorld2D"; function Get_World_To_Screen_Ex ( Position : Vector_3D := (others => 0.0); Camera : Camera_3D := No_Camera_3D; Width : Integer := 0; Height : Integer := 0 ) return Vector_2D with Import => True, Convention => C, External_Name => "GetWorldToScreenEx"; function Get_World_To_Screen_2D ( Position : Vector_2D := (others => 0.0); Camera : Camera_2D := No_Camera_2D ) return Vector_2D with Import => True, Convention => C, External_Name => "GetWorldToScreen2D"; procedure Set_Target_FPS ( FPS : Integer := 60 ) with Import => True, Convention => C, External_Name => "SetTargetFPS"; function Get_Frame_Time return Float with Import => True, Convention => C, External_Name => "GetFrameTime"; function Get_Time return Long_Float with Import => True, Convention => C, External_Name => "GetTime"; function Get_FPS return Integer with Import => True, Convention => C, External_Name => "GetFPS"; procedure Swap_Screen_Buffer with Import => True, Convention => C, External_Name => "SwapScreenBuffer"; procedure Poll_Input_Events with Import => True, Convention => C, External_Name => "PollInputEvents"; procedure Wait_Time ( Seconds : Long_Float := 0.0 ) with Import => True, Convention => C, External_Name => "WaitTime"; procedure Set_Random_Seed ( Seed : Natural := 16#0EADBEEF# ) with Import => True, Convention => C, External_Name => "SetRandomSeed"; function Get_Random_Value ( Min : Integer := 0; Max : Integer := 255 ) return Integer with Import => True, Convention => C, External_Name => "GetRandomValue"; function Load_Random_Sequence ( Count : Natural := 0; Min : Integer := 0; Max : Integer := 0 ) return access Integer with Import => True, Convention => C, External_Name => "LoadRandomSequence"; procedure Unload_Random_Sequence ( Sequence : access Integer := null ) with Import => True, Convention => C, External_Name => "UnloadRandomSequence"; procedure Take_Screenshot ( File_Name : String := "Screenshot.png" ) with Import => True, Convention => C, External_Name => "TakeScreenshot"; procedure Set_Config_Flags ( Flags : Config_Flags := Flag_None ) with Import => True, Convention => C, External_Name => "SetConfigFlags"; procedure Open_URL ( URL : String := "" ) with Import => True, Convention => C, External_Name => "OpenURL"; procedure Set_Trace_Log_Level ( Level : Trace_Log_Level := Log_All ) with Import => True, Convention => C, External_Name => "SetTraceLogLevel"; function Allocate ( Size : Natural := 0 ) return Pointer with Import => True, Convention => C, External_Name => "MemAlloc"; function Reallocate ( Data : Pointer := null; Size : Natural := 0 ) return Pointer with Import => True, Convention => C, External_Name => "MemRealloc"; procedure Deallocate ( Data : Pointer := null ) with Import => True, Convention => C, External_Name => "MemFree"; function Load_File_Data ( File_Name : String := ""; Data_Size : access Integer := null ) return access Character with Import => True, Convention => C, External_Name => "LoadFileData"; procedure Unload_File_Data ( Data : Pointer := null ) with Import => True, Convention => C, External_Name => "UnloadFileData"; function Save_File_Data ( File_Name : String := ""; Data : Pointer := null; Data_Size : Natural := 0 ) return Logical with Import => True, Convention => C, External_Name => "SaveFileData"; function Export_Data_As_Code ( Data : Pointer := null; Data_Size : Natural := 0; File_Name : String := "" ) return Logical with Import => True, Convention => C, External_Name => "ExportDataAsCode"; function Load_File_Text ( File_Name : String := "" ) return Strings with Import => True, Convention => C, External_Name => "LoadFileText"; procedure Unload_File_Text ( Text : String := "" ) with Import => True, Convention => C, External_Name => "UnloadFileText"; function Save_File_Text ( File_Name : String := ""; Text : String := "" ) return Logical with Import => True, Convention => C, External_Name => "SaveFileText"; function File_Exists ( File_Name : String := "" ) return Logical with Import => True, Convention => C, External_Name => "FileExists"; function Directory_Exists ( Directory_Path : String := "" ) return Logical with Import => True, Convention => C, External_Name => "DirectoryExists"; function Is_File_Extension ( File_Name : String := ""; Extension : String := "" ) return Logical with Import => True, Convention => C, External_Name => "IsFileExtension"; function Get_File_Length ( File_Name : String := "" ) return Integer with Import => True, Convention => C, External_Name => "GetFileLength"; function Get_File_Extension ( File_Name : String := "" ) return Strings with Import => True, Convention => C, External_Name => "GetFileExtension"; function Get_File_Name ( File_Path : String := "" ) return Strings with Import => True, Convention => C, External_Name => "GetFileName"; function Get_File_Name_Without_Ext ( File_Path : String := "" ) return Strings with Import => True, Convention => C, External_Name => "GetFileNameWithoutExt"; function Get_Directory_Path ( File_Path : String := "" ) return Strings with Import => True, Convention => C, External_Name => "GetDirectoryPath"; function Get_Prev_Directory_Path ( Directory_Path : String := "" ) return Strings with Import => True, Convention => C, External_Name => "GetPrevDirectoryPath"; function Get_Working_Directory return Strings with Import => True, Convention => C, External_Name => "GetWorkingDirectory"; function Get_Application_Directory return Strings with Import => True, Convention => C, External_Name => "GetApplicationDirectory"; function Change_Directory ( Directory_Path : String := "" ) return Logical with Import => True, Convention => C, External_Name => "ChangeDirectory"; function Is_Path_File ( Path : String := "" ) return Logical with Import => True, Convention => C, External_Name => "IsPathFile"; function Load_Directory_Files ( Directory_Path : String := "" ) return File_Path_List with Import => True, Convention => C, External_Name => "LoadDirectoryFiles"; function Load_Directory_Files_Ex ( Base_Path : String := ""; Filter : String := ""; Scan_Subdirectories : Logical := False ) return File_Path_List with Import => True, Convention => C, External_Name => "LoadDirectoryFilesEx"; procedure Unload_Directory_Files ( Files : File_Path_List := No_File_Path_List ) with Import => True, Convention => C, External_Name => "UnloadDirectoryFiles"; function Is_File_Dropped return Logical with Import => True, Convention => C, External_Name => "IsFileDropped"; function Load_Dropped_Files return File_Path_List with Import => True, Convention => C, External_Name => "LoadDroppedFiles"; procedure Unload_Dropped_Files ( Files : File_Path_List := No_File_Path_List ) with Import => True, Convention => C, External_Name => "UnloadDroppedFiles"; function Get_File_Mod_Time ( File_Name : String := "" ) return Natural with Import => True, Convention => C, External_Name => "GetFileModTime"; function Compress_Data ( Data : Pointer := null; Data_Size : Natural := 0; Compressed_Data_Size : access Integer := null ) return Pointer with Import => True, Convention => C, External_Name => "CompressData"; function Decompress_Data ( Compressed_Data : Pointer := null; Compressed_Data_Size : Natural := 0; Data_Size : Natural := 0 ) return Pointer with Import => True, Convention => C, External_Name => "DecompressData"; function Encode_Data_Base_64 ( Data : Pointer := null; Data_Size : Natural := 0; Output_Size : access Integer := null ) return Pointer with Import => True, Convention => C, External_Name => "EncodeDataBase64"; function Decode_Data_Base_64 ( Data : Pointer := null; Output_Size : access Integer := null ) return Pointer with Import => True, Convention => C, External_Name => "DecodeDataBase64"; function Load_Automation_Event_List ( File_Name : String := "" ) return Automation_Event_List with Import => True, Convention => C, External_Name => "LoadAutomationEventList"; procedure Unload_Automation_Event_List ( Data : access Automation_Event_List := null ) with Import => True, Convention => C, External_Name => "UnloadAutomationEventList"; function Export_Automation_Event_List ( Data : Automation_Event_List := No_Automation_Event_List; File_Name : String := "" ) return Logical with Import => True, Convention => C, External_Name => "ExportAutomationEventList"; procedure Set_Automation_Event_List ( Data : access Automation_Event_List := null ) with Import => True, Convention => C, External_Name => "SetAutomationEventList"; procedure Set_Automation_Event_Base_Frame ( Frame : Integer := 0 ) with Import => True, Convention => C, External_Name => "SetAutomationEventBaseFrame"; procedure Start_Automation_Event_Recording with Import => True, Convention => C, External_Name => "StartAutomationEventRecording"; procedure Stop_Automation_Event_Recording with Import => True, Convention => C, External_Name => "StopAutomationEventRecording"; procedure Play_Automation_Event ( Event : Automation_Event := No_Automation_Event ) with Import => True, Convention => C, External_Name => "PlayAutomationEvent"; function Is_Key_Pressed ( Key : Keyboard_Key := Key_Null ) return Logical with Import => True, Convention => C, External_Name => "IsKeyPressed"; function Is_Key_Pressed_Repeat ( Key : Keyboard_Key := Key_Null ) return Logical with Import => True, Convention => C, External_Name => "IsKeyPressedRepeat"; function Is_Key_Down ( Key : Keyboard_Key := Key_Null ) return Logical with Import => True, Convention => C, External_Name => "IsKeyDown"; function Is_Key_Released ( Key : Keyboard_Key := Key_Null ) return Logical with Import => True, Convention => C, External_Name => "IsKeyReleased"; function Is_Key_Up ( Key : Keyboard_Key := Key_Null ) return Logical with Import => True, Convention => C, External_Name => "IsKeyUp"; function Get_Key_Pressed return Keyboard_Key with Import => True, Convention => C, External_Name => "GetKeyPressed"; function Get_Character_Pressed return Character with Import => True, Convention => C, External_Name => "GetCharPressed"; procedure Set_Exit_Key ( Key : Keyboard_Key := Key_Escape ) with Import => True, Convention => C, External_Name => "SetExitKey"; function Is_Gamepad_Available ( Gamepad : Integer := 0 ) return Logical with Import => True, Convention => C, External_Name => "IsGamepadAvailable"; function Get_Gamepad_Name ( Gamepad : Integer := 0 ) return Strings with Import => True, Convention => C, External_Name => "GetGamepadName"; function Is_Gamepad_Button_Pressed ( Gamepad : Integer := 0; Button : Gamepad_Button := Gamepad_Button_Left_Thumb ) return Logical with Import => True, Convention => C, External_Name => "IsGamepadButtonPressed"; function Is_Gamepad_Button_Down ( Gamepad : Integer := 0; Button : Gamepad_Button := Gamepad_Button_Left_Thumb ) return Logical with Import => True, Convention => C, External_Name => "IsGamepadButtonDown"; function Is_Gamepad_Button_Released ( Gamepad : Integer := 0; Button : Gamepad_Button := Gamepad_Button_Left_Thumb ) return Logical with Import => True, Convention => C, External_Name => "IsGamepadButtonReleased"; function Is_Gamepad_Button_Up ( Gamepad : Integer := 0; Button : Gamepad_Button := Gamepad_Button_Left_Thumb ) return Logical with Import => True, Convention => C, External_Name => "IsGamepadButtonUp"; function Get_Gamepad_Button_Pressed return Integer with Import => True, Convention => C, External_Name => "GetGamepadButtonPressed"; function Get_Gamepad_Axis_Count ( Gamepad : Integer := 0 ) return Integer with Import => True, Convention => C, External_Name => "GetGamepadAxisCount"; function Get_Gamepad_Axis_Movement ( Gamepad : Integer := 0; Axis : Gamepad_Axis := Gamepad_Axis_Left_Trigger ) return Float with Import => True, Convention => C, External_Name => "GetGamepadAxisMovement"; function Set_Gamepad_Mappings ( Mappings : String := "" ) return Integer with Import => True, Convention => C, External_Name => "SetGamepadMappings"; function Is_Mouse_Button_Pressed ( Button : Mouse_Button := Mouse_Button_Left ) return Logical with Import => True, Convention => C, External_Name => "IsMouseButtonPressed"; function Is_Mouse_Button_Down ( Button : Mouse_Button := Mouse_Button_Left ) return Logical with Import => True, Convention => C, External_Name => "IsMouseButtonDown"; function Is_Mouse_Button_Released ( Button : Mouse_Button := Mouse_Button_Left ) return Logical with Import => True, Convention => C, External_Name => "IsMouseButtonReleased"; function Is_Mouse_Button_Up ( Button : Mouse_Button := Mouse_Button_Left ) return Logical with Import => True, Convention => C, External_Name => "IsMouseButtonUp"; function Get_Mouse_X return Integer with Import => True, Convention => C, External_Name => "GetMouseX"; function Get_Mouse_Y return Integer with Import => True, Convention => C, External_Name => "GetMouseY"; function Get_Mouse_Position return Vector_2D with Import => True, Convention => C, External_Name => "GetMousePosition"; function Get_Mouse_Delta return Vector_2D with Import => True, Convention => C, External_Name => "GetMouseDelta"; procedure Set_Mouse_Position ( X : Integer := 0; Y : Integer := 0 ) with Import => True, Convention => C, External_Name => "SetMousePosition"; procedure Set_Mouse_Offset ( X : Integer := 0; Y : Integer := 0 ) with Import => True, Convention => C, External_Name => "SetMouseOffset"; procedure Set_Mouse_Scale ( X : Float := 0.0; Y : Float := 0.0 ) with Import => True, Convention => C, External_Name => "SetMouseScale"; function Get_Mouse_Wheel_Move return Float with Import => True, Convention => C, External_Name => "GetMouseWheelMove"; function Get_Mouse_Wheel_Move_V return Vector_2D with Import => True, Convention => C, External_Name => "GetMouseWheelMoveV"; procedure Set_Mouse_Cursor ( Cursor : Mouse_Cursor := Mouse_Cursor_Default ) with Import => True, Convention => C, External_Name => "SetMouseCursor"; function Get_Touch_X return Integer with Import => True, Convention => C, External_Name => "GetTouchX"; function Get_Touch_Y return Integer with Import => True, Convention => C, External_Name => "GetTouchY"; function Get_Touch_Position ( Index : Integer := 0 ) return Vector_2D with Import => True, Convention => C, External_Name => "GetTouchPosition"; function Get_Touch_Point_Id ( Index : Integer := 0 ) return Integer with Import => True, Convention => C, External_Name => "GetTouchPointId"; function Get_Touch_Point_Count return Integer with Import => True, Convention => C, External_Name => "GetTouchPointCount"; procedure Set_Gestures_Enabled ( Data : Gesture := Gesture_None ) with Import => True, Convention => C, External_Name => "SetGesturesEnabled"; function Is_Gesture_Detected ( Data : Gesture := Gesture_None ) return Logical with Import => True, Convention => C, External_Name => "IsGestureDetected"; function Get_Gesture_Detected return Integer with Import => True, Convention => C, External_Name => "GetGestureDetected"; function Get_Gesture_Hold_Duration return Float with Import => True, Convention => C, External_Name => "GetGestureHoldDuration"; function Get_Gesture_Drag_Vector return Vector_2D with Import => True, Convention => C, External_Name => "GetGestureDragVector"; function Get_Gesture_Drag_Angle return Float with Import => True, Convention => C, External_Name => "GetGestureDragAngle"; function Get_Gesture_Pinch_Vector return Vector_2D with Import => True, Convention => C, External_Name => "GetGesturePinchVector"; function Get_Gesture_Pinch_Angle return Float with Import => True, Convention => C, External_Name => "GetGesturePinchAngle"; procedure Update_Camera ( Data : access Camera_3D := null; Mode : Camera_Mode := Camera_First_Person ) with Import => True, Convention => C, External_Name => "UpdateCamera"; procedure Update_Camera_Pro ( Data : access Camera_3D := null; Movement : Vector_3D := (others => 0.0); Rotation : Vector_3D := (others => 0.0); Zoom : Float := 0.0 ) with Import => True, Convention => C, External_Name => "UpdateCameraPro"; procedure Set_Shapes_Texture ( Data : Texture := No_Texture; Source : Rectangle := No_Rectangle ) with Import => True, Convention => C, External_Name => "SetShapesTexture"; procedure Draw_Pixel ( X : Integer := 0; Y : Integer := 0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawPixel"; procedure Draw_Pixel_V ( Position : Vector_2D := (others => 0.0); Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawPixelV"; procedure Draw_Line ( X0 : Integer := 0; Y0 : Integer := 0; X1 : Integer := 0; Y1 : Integer := 0; Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawLine"; procedure Draw_Line_V ( From : Vector_2D := (others => 0.0); To : Vector_2D := (others => 0.0); Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawLineV"; procedure Draw_Line_Ex ( From : Vector_2D := (others => 0.0); To : Vector_2D := (others => 0.0); Thick : Float := 0.0; Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawLineEx"; procedure Draw_Line_Strip ( Points : access Vector_2D := null; Point_Count : Natural := 0; Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawLineStrip"; procedure Draw_Line_Bezier ( From : Vector_2D := (others => 0.0); To : Vector_2D := (others => 0.0); Thick : Float := 0.0; Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawLineBezier"; procedure Draw_Circle ( X : Integer := 0; Y : Integer := 0; Radius : Float := 0.0; Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawCircle"; procedure Draw_Circle_Sector ( Center : Vector_2D := (others => 0.0); Radius : Float := 0.0; From : Float := 0.0; To : Float := 0.0; Segments : Integer := 0; Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawCircleSector"; procedure Draw_Circle_Sector_Lines ( Center : Vector_2D := (others => 0.0); Radius : Float := 0.0; From : Float := 0.0; To : Float := 0.0; Segments : Integer := 0; Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawCircleSectorLines"; procedure Draw_Circle_Gradient ( X : Integer := 0; Y : Integer := 0; Radius : Float := 0.0; Tint_1 : Color := Black; Tint_2 : Color := White ) with Import => True, Convention => C, External_Name => "DrawCircleGradient"; procedure Draw_Circle_V ( Center : Vector_2D := (others => 0.0); Radius : Float := 0.0; Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawCircleV"; procedure Draw_Circle_Lines ( X : Integer := 0; Y : Integer := 0; Radius : Float := 0.0; Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawCircleLines"; procedure Draw_Circle_Lines_V ( Center : Vector_2D := (others => 0.0); Radius : Float := 0.0; Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawCircleLinesV"; procedure Draw_Ellipse ( X : Integer := 0; Y : Integer := 0; Horizontal : Float := 0.0; Vertical : Float := 0.0; Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawEllipse"; procedure Draw_Ellipse_Lines ( X : Integer := 0; Y : Integer := 0; Horizontal : Float := 0.0; Vertical : Float := 0.0; Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawEllipseLines"; procedure Draw_Ring ( Center : Vector_2D := (others => 0.0); Inner_Radius : Float := 0.0; Outer_Radius : Float := 0.0; From : Float := 0.0; To : Float := 0.0; Segments : Integer := 0; Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawRing"; procedure Draw_Ring_Lines ( Center : Vector_2D := (others => 0.0); Inner_Radius : Float := 0.0; Outer_Radius : Float := 0.0; From : Float := 0.0; To : Float := 0.0; Segments : Integer := 0; Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawRingLines"; procedure Draw_Rectangle ( X : Integer := 0; Y : Integer := 0; Width : Integer := 0; Height : Integer := 0; Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawRectangle"; procedure Draw_Rectangle_V ( Position : Vector_2D := (others => 0.0); Size : Vector_2D := (others => 0.0); Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawRectangleV"; procedure Draw_Rectangle_Rec ( Data : Rectangle := No_Rectangle; Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawRectangleRec"; procedure Draw_Rectangle_Pro ( Data : Rectangle := No_Rectangle; Origin : Vector_2D := (others => 0.0); Rotation : Float := 0.0; Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawRectanglePro"; procedure Draw_Rectangle_Gradient_V ( X : Integer := 0; Y : Integer := 0; Width : Integer := 0; Height : Integer := 0; Color_1 : Color := Black; Color_2 : Color := White ) with Import => True, Convention => C, External_Name => "DrawRectangleGradientV"; procedure Draw_Rectangle_Gradient_H ( X : Integer := 0; Y : Integer := 0; Width : Integer := 0; Height : Integer := 0; Color_1 : Color := Black; Color_2 : Color := White ) with Import => True, Convention => C, External_Name => "DrawRectangleGradientH"; procedure Draw_Rectangle_Gradient_Ex ( Data : Rectangle := No_Rectangle; Color_1 : Color := Red; Color_2 : Color := Green; Color_3 : Color := Blue; Color_4 : Color := Black ) with Import => True, Convention => C, External_Name => "DrawRectangleGradientEx"; procedure Draw_Rectangle_Lines ( X : Integer := 0; Y : Integer := 0; Width : Integer := 0; Height : Integer := 0; Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawRectangleLines"; procedure Draw_Rectangle_Lines_Ex ( Data : Rectangle := No_Rectangle; Thickness : Float := 1.0; Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawRectangleLinesEx"; procedure Draw_Rectangle_Rounded ( Data : Rectangle := No_Rectangle; Roundness : Float := 1.0; Segments : Integer := 1; Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawRectangleRounded"; procedure Draw_Rectangle_Rounded_Lines ( Data : Rectangle := No_Rectangle; Roundness : Float := 1.0; Segments : Integer := 1; Thickness : Float := 1.0; Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawRectangleRoundedLines"; procedure Draw_Triangle ( Point_1 : Vector_2D := (others => 0.0); Point_2 : Vector_2D := (others => 0.0); Point_3 : Vector_2D := (others => 0.0); Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawTriangle"; procedure Draw_Triangle_Lines ( Point_1 : Vector_2D := (others => 0.0); Point_2 : Vector_2D := (others => 0.0); Point_3 : Vector_2D := (others => 0.0); Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawTriangleLines"; procedure Draw_Triangle_Fan ( Points : access Vector_2D := null; Point_Count : Natural := 0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawTriangleFan"; procedure Draw_Triangle_Strip ( Points : access Vector_2D := null; Point_Count : Natural := 0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawTriangleStrip"; procedure Draw_Poly ( Center : Vector_2D := (others => 0.0); Sides : Natural := 0; Radius : Float := 0.0; Rotation : Float := 0.0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawPoly"; procedure Draw_Poly_Lines ( Center : Vector_2D := (others => 0.0); Sides : Natural := 0; Radius : Float := 0.0; Rotation : Float := 0.0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawPolyLines"; procedure Draw_Poly_Lines_Ex ( Center : Vector_2D := (others => 0.0); Sides : Natural := 0; Radius : Float := 0.0; Rotation : Float := 0.0; Thickness : Float := 0.0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawPolyLinesEx"; procedure Draw_Spline_Linear ( Points : access Vector_2D := null; Point_Count : Natural := 0; Thickness : Float := 0.0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawSplineLinear"; procedure Draw_Spline_Basis ( Points : access Vector_2D := null; Point_Count : Natural := 0; Thickness : Float := 0.0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawSplineBasis"; procedure Draw_Spline_Catmull_Rom ( Points : access Vector_2D := null; Point_Count : Natural := 0; Thickness : Float := 0.0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawSplineCatmullRom"; procedure Draw_Spline_Bezier_Quadratic ( Points : access Vector_2D := null; Point_Count : Natural := 0; Thickness : Float := 0.0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawSplineBezierQuadratic"; procedure Draw_Spline_Bezier_Cubic ( Points : access Vector_2D := null; Point_Count : Natural := 0; Thickness : Float := 0.0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawSplineBezierCubic"; procedure Draw_Spline_Segment_Linear ( From : Vector_2D := (others => 0.0); To : Vector_2D := (others => 0.0); Thickness : Float := 0.0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawSplineSegmentLinear"; procedure Draw_Spline_Segment_Basis ( Point_1 : Vector_2D := (others => 0.0); Point_2 : Vector_2D := (others => 0.0); Point_3 : Vector_2D := (others => 0.0); Point_4 : Vector_2D := (others => 0.0); Thickness : Float := 0.0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawSplineSegmentBasis"; procedure Draw_Spline_Segment_Catmull_Rom ( Point_1 : Vector_2D := (others => 0.0); Point_2 : Vector_2D := (others => 0.0); Point_3 : Vector_2D := (others => 0.0); Point_4 : Vector_2D := (others => 0.0); Thickness : Float := 0.0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawSplineSegmentCatmullRom"; procedure Draw_Spline_Segment_Bezier_Quadratic ( Point_1 : Vector_2D := (others => 0.0); Point_2 : Vector_2D := (others => 0.0); Point_3 : Vector_2D := (others => 0.0); Thickness : Float := 0.0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawSplineSegmentBezierQuadratic"; procedure Draw_Spline_Segment_Bezier_Cubic ( Point_1 : Vector_2D := (others => 0.0); Point_2 : Vector_2D := (others => 0.0); Point_3 : Vector_2D := (others => 0.0); Point_4 : Vector_2D := (others => 0.0); Thickness : Float := 0.0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawSplineSegmentBezierCubic"; function Get_Spline_Point_Linear ( From : Vector_2D := (others => 0.0); To : Vector_2D := (others => 0.0); Off : Float := 0.0 ) return Vector_2D with Import => True, Convention => C, External_Name => "GetSplinePointLinear"; function Get_Spline_Point_Basis ( Point_1 : Vector_2D := (others => 0.0); Point_2 : Vector_2D := (others => 0.0); Point_3 : Vector_2D := (others => 0.0); Point_4 : Vector_2D := (others => 0.0); Off : Float := 0.0 ) return Vector_2D with Import => True, Convention => C, External_Name => "GetSplinePointBasis"; function Get_Spline_Point_Catmull_Rom ( Point_1 : Vector_2D := (others => 0.0); Point_2 : Vector_2D := (others => 0.0); Point_3 : Vector_2D := (others => 0.0); Point_4 : Vector_2D := (others => 0.0); Off : Float := 0.0 ) return Vector_2D with Import => True, Convention => C, External_Name => "GetSplinePointCatmullRom"; function Get_Spline_Point_Bezier_Quad ( Point_1 : Vector_2D := (others => 0.0); Point_2 : Vector_2D := (others => 0.0); Point_3 : Vector_2D := (others => 0.0); Off : Float := 0.0 ) return Vector_2D with Import => True, Convention => C, External_Name => "GetSplinePointBezierQuad"; function Get_Spline_Point_Bezier_Cubic ( Point_1 : Vector_2D := (others => 0.0); Point_2 : Vector_2D := (others => 0.0); Point_3 : Vector_2D := (others => 0.0); Point_4 : Vector_2D := (others => 0.0); Off : Float := 0.0 ) return Vector_2D with Import => True, Convention => C, External_Name => "GetSplinePointBezierCubic"; function Check_Collision_Recs ( Bound_1 : Rectangle := No_Rectangle; Bound_2 : Rectangle := No_Rectangle ) return Logical with Import => True, Convention => C, External_Name => "CheckCollisionRecs"; function Check_Collision_Circles ( Center_1 : Vector_2D := (others => 0.0); Radius_1 : Float := 0.0; Center_2 : Vector_2D := (others => 0.0); Radius_2 : Float := 0.0 ) return Logical with Import => True, Convention => C, External_Name => "CheckCollisionCircles"; function Check_Collision_Circle_Rec ( Center : Vector_2D := (others => 0.0); Radius : Float := 0.0; Bound : Rectangle := No_Rectangle ) return Logical with Import => True, Convention => C, External_Name => "CheckCollisionCircleRec"; function Check_Collision_Point_Rec ( Point : Vector_2D := (others => 0.0); Bound : Rectangle := No_Rectangle ) return Logical with Import => True, Convention => C, External_Name => "CheckCollisionPointRec"; function Check_Collision_Point_Circle ( Point : Vector_2D := (others => 0.0); Center : Vector_2D := (others => 0.0); Radius : Float := 0.0 ) return Logical with Import => True, Convention => C, External_Name => "CheckCollisionPointCircle"; function Check_Collision_Point_Triangle ( Point : Vector_2D := (others => 0.0); Triangle_A : Vector_2D := (others => 0.0); Triangle_B : Vector_2D := (others => 0.0); Triangle_C : Vector_2D := (others => 0.0) ) return Logical with Import => True, Convention => C, External_Name => "CheckCollisionPointTriangle"; function Check_Collision_Point_Poly ( Point : Vector_2D := (others => 0.0); Points : access Vector_2D := null; Point_Count : Natural := 0 ) return Logical with Import => True, Convention => C, External_Name => "CheckCollisionPointPoly"; function Check_Collision_Lines ( From_1 : Vector_2D := (others => 0.0); To_1 : Vector_2D := (others => 0.0); From_2 : Vector_2D := (others => 0.0); To_2 : Vector_2D := (others => 0.0); Intersections : access Vector_2D := null ) return Logical with Import => True, Convention => C, External_Name => "CheckCollisionLines"; function Check_Collision_Point_Line ( Point : Vector_2D := (others => 0.0); From : Vector_2D := (others => 0.0); To : Vector_2D := (others => 0.0); Threshold : Natural := 0 ) return Logical with Import => True, Convention => C, External_Name => "CheckCollisionPointLine"; function Get_Collision_Rec ( Bound_1 : Rectangle := No_Rectangle; Bound_2 : Rectangle := No_Rectangle ) return Rectangle with Import => True, Convention => C, External_Name => "GetCollisionRec"; function Load_Image ( File_Name : String := "" ) return Image with Import => True, Convention => C, External_Name => "LoadImage"; function Load_Image_Raw ( File_Name : String := ""; Width : Natural := 0; Height : Natural := 0; Format : Integer := 0; Header_Size : Integer := 0 ) return Image with Import => True, Convention => C, External_Name => "LoadImageRaw"; function Load_Image_Svg ( File_Name : String := ""; Width : Natural := 0; Height : Natural := 0 ) return Image with Import => True, Convention => C, External_Name => "LoadImageSvg"; function Load_Image_Anim ( File_Name : String := ""; Frames : access Integer := null ) return Image with Import => True, Convention => C, External_Name => "LoadImageAnim"; function Load_Image_From_Memory ( File_Type : String := ""; File_Data : Pointer := null; Data_Size : Natural := 0 ) return Image with Import => True, Convention => C, External_Name => "LoadImageFromMemory"; function Load_Image_From_Texture ( Data : Texture := No_Texture ) return Image with Import => True, Convention => C, External_Name => "LoadImageFromTexture"; function Load_Image_From_Screen return Image with Import => True, Convention => C, External_Name => "LoadImageFromScreen"; --~################################################################ --~function bool IsImageReady ( --~Image image --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure UnloadImage ( --~Image image --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~function bool ExportImage ( --~Image image, const char *fileName --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~function unsigned char *ExportImageToMemory ( --~Image image, const char *fileType, int *fileSize --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~function bool ExportImageAsCode ( --~Image image, const char *fileName --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~function Image GenImageColor ( --~int width, int height, Color color --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~function Image GenImageGradientLinear ( --~int width, int height, int direction, Color start, Color end --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~function Image GenImageGradientRadial ( --~int width, int height, float density, Color inner, Color outer --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~function Image GenImageGradientSquare ( --~int width, int height, float density, Color inner, Color outer --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~function Image GenImageChecked ( --~int width, int height, int checksX, int checksY, Color col1, Color col2 --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~function Image GenImageWhiteNoise ( --~int width, int height, float factor --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~function Image GenImagePerlinNoise ( --~int width, int height, int offsetX, int offsetY, float scale --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~function Image GenImageCellular ( --~int width, int height, int tileSize --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~function Image GenImageText ( --~int width, int height, const char *text --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~function Image ImageCopy ( --~Image image --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~function Image ImageFromImage ( --~Image image, Rectangle rec --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~function Image ImageText ( --~const char *text, int fontSize, Color color --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~function Image ImageTextEx ( --~Font font, const char *text, float fontSize, float spacing, Color tint --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageFormat ( --~Image *image, int newFormat --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageToPOT ( --~Image *image, Color fill --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageCrop ( --~Image *image, Rectangle crop --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageAlphaCrop ( --~Image *image, float threshold --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageAlphaClear ( --~Image *image, Color color, float threshold --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageAlphaMask ( --~Image *image, Image alphaMask --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageAlphaPremultiply ( --~Image *image --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageBlurGaussian ( --~Image *image, int blurSize --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageKernelConvolution ( --~Image *image, float* kernel, int kernelSize --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageResize ( --~Image *image, int newWidth, int newHeight --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageResizeNN ( --~Image *image, int newWidth,int newHeight --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageResizeCanvas ( --~Image *image, int newWidth, int newHeight, int offsetX, int offsetY, Color fill --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageMipmaps ( --~Image *image --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageDither ( --~Image *image, int rBpp, int gBpp, int bBpp, int aBpp --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageFlipVertical ( --~Image *image --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageFlipHorizontal ( --~Image *image --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageRotate ( --~Image *image, int degrees --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageRotateCW ( --~Image *image --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageRotateCCW ( --~Image *image --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageColorTint ( --~Image *image, Color color --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageColorInvert ( --~Image *image --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageColorGrayscale ( --~Image *image --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageColorContrast ( --~Image *image, float contrast --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageColorBrightness ( --~Image *image, int brightness --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageColorReplace ( --~Image *image, Color color, Color replace --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~function Color *LoadImageColors ( --~Image image --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~function Color *LoadImagePalette ( --~Image image, int maxPaletteSize, int *colorCount --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure UnloadImageColors ( --~Color *colors --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure UnloadImagePalette ( --~Color *colors --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~function Rectangle GetImageAlphaBorder ( --~Image image, float threshold --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~function Color GetImageColor ( --~Image image, int x, int y --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageClearBackground ( --~Image *dst, Color color --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageDrawPixel ( --~Image *dst, int posX, int posY, Color color --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageDrawPixelV ( --~Image *dst, Vector2 position, Color color --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageDrawLine ( --~Image *dst, int startPosX, int startPosY, int endPosX, int endPosY, Color color --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageDrawLineV ( --~Image *dst, Vector2 start, Vector2 end, Color color --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageDrawCircle ( --~Image *dst, int centerX, int centerY, int radius, Color color --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageDrawCircleV ( --~Image *dst, Vector2 center, int radius, Color color --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageDrawCircleLines ( --~Image *dst, int centerX, int centerY, int radius, Color color --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageDrawCircleLinesV ( --~Image *dst, Vector2 center, int radius, Color color --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageDrawRectangle ( --~Image *dst, int posX, int posY, int width, int height, Color color --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageDrawRectangleV ( --~Image *dst, Vector2 position, Vector2 size, Color color --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageDrawRectangleRec ( --~Image *dst, Rectangle rec, Color color --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageDrawRectangleLines ( --~Image *dst, Rectangle rec, int thick, Color color --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageDraw ( --~Image *dst, Image src, Rectangle srcRec, Rectangle dstRec, Color tint --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageDrawText ( --~Image *dst, const char *text, int posX, int posY, int fontSize, Color color --~) with --~Import => True, --~Convention => C, --~External_Name => ""; --~procedure ImageDrawTextEx ( --~Image *dst, Font font, const char *text, Vector2 position, float fontSize, float spacing, Color tint --~) with --~Import => True, --~Convention => C, --~External_Name => ""; function Load_Texture ( File_Path : String := "" ) return Texture with Import => True, Convention => C, External_Name => "LoadTexture"; function Load_Texture_From_Image ( Data : Image := No_Image ) return Texture with Import => True, Convention => C, External_Name => "LoadTextureFromImage"; function Load_Texture_Cubemap ( Data : Image := No_Image; Layout : Integer := 0 ) return Texture with Import => True, Convention => C, External_Name => "LoadTextureCubemap"; function Load_Render_Texture ( Width : Natural := 0; Height : Natural := 0 ) return Render_Texture with Import => True, Convention => C, External_Name => "LoadRenderTexture"; function Is_Texture_Ready ( Data : Texture := No_Texture ) return Logical with Import => True, Convention => C, External_Name => "IsTextureReady"; procedure Unload_Texture ( Data : Texture := No_Texture ) with Import => True, Convention => C, External_Name => "UnloadTexture"; function Is_Render_Texture_Ready ( Target : Render_Texture := No_Render_Texture ) return Logical with Import => True, Convention => C, External_Name => "IsRenderTextureReady"; procedure Unload_Render_Texture ( Target : Render_Texture := No_Render_Texture ) with Import => True, Convention => C, External_Name => "UnloadRenderTexture"; procedure Update_Texture ( Data : Texture := No_Texture; Pixels : Pointer := null ) with Import => True, Convention => C, External_Name => "UpdateTexture"; procedure Update_Texture_Rec ( Data : Texture := No_Texture; Source : Rectangle := No_Rectangle; Pixels : Pointer := null ) with Import => True, Convention => C, External_Name => "UpdateTextureRec"; procedure Gen_Texture_Mipmaps ( Data : Texture := No_Texture ) with Import => True, Convention => C, External_Name => "GenTextureMipmaps"; procedure Set_Texture_Filter ( Data : Texture := No_Texture; Filter : Texture_Filter := Texture_Filter_Point ) with Import => True, Convention => C, External_Name => "SetTextureFilter"; procedure Set_Texture_Wrap ( Data : Texture := No_Texture; Wrap : Texture_Wrap := Texture_Wrap_Repeat ) with Import => True, Convention => C, External_Name => "SetTextureWrap"; procedure Draw_Texture ( Data : Texture := No_Texture; X : Integer := 0; Y : Integer := 0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawTexture"; procedure Draw_Texture_V ( Data : Texture := No_Texture; Position : Vector_2D := (others => 0.0); Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawTextureV"; procedure Draw_Texture_Ex ( Data : Texture := No_Texture; Position : Vector_2D := (others => 0.0); Rotation : Float := 0.0; Scale : Float := 0.0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawTextureEx"; procedure Draw_Texture_Rec ( Data : Texture := No_Texture; Source : Rectangle := No_Rectangle; Position : Vector_2D := (others => 0.0); Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawTextureRec"; procedure Draw_Texture_Pro ( Data : Texture := No_Texture; Source : Rectangle := No_Rectangle; Destination : Rectangle := No_Rectangle; Origin : Vector_2D := (others => 0.0); Rotation : Float := 0.0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawTexturePro"; procedure Draw_Texture_NPatch ( Data : Texture := No_Texture; -- ERROR NPatch_Info : NPatch_Info := No_NPatch_Info; Destination : Rectangle := No_Rectangle; Origin : Vector_2D := (others => 0.0); Rotation : Float := 0.0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawTextureNPatch"; function Fade ( Data : Color := White; Alpha : Float := 0.0 ) return Color with Import => True, Convention => C, External_Name => "Fade"; function Color_To_Integer ( Data : Color := White ) return Integer with Import => True, Convention => C, External_Name => "ColorToInt"; function Color_Normalize ( Data : Color := White ) return Vector_4D with Import => True, Convention => C, External_Name => "ColorNormalize"; function Color_From_Normalized ( Normalized : Vector_4D := (others => 0.0) ) return Color with Import => True, Convention => C, External_Name => "ColorFromNormalized"; function Color_To_HSV ( Data : Color := White ) return Vector_3D with Import => True, Convention => C, External_Name => "ColorToHSV"; function Color_From_HSV ( Hue : Float := 0.0; Saturation : Float := 0.0; Value : Float := 0.0 ) return Color with Import => True, Convention => C, External_Name => "ColorFromHSV"; function Color_Tint ( Data : Color := White; Tint : Color := Black ) return Color with Import => True, Convention => C, External_Name => "ColorTint"; function Color_Brightness ( Data : Color := White; Factor : Float := 0.0 ) return Color with Import => True, Convention => C, External_Name => "ColorBrightness"; function Color_Contrast ( Data : Color := White; Contrast : Float := 0.0 ) return Color with Import => True, Convention => C, External_Name => "ColorContrast"; function Color_Alpha ( Data : Color := White; Alpha : Float := 0.0 ) return Color with Import => True, Convention => C, External_Name => "ColorAlpha"; function Color_Alpha_Blend ( Destination : Color := White; Source : Color := Black; Tint : Color := Ray_White ) return Color with Import => True, Convention => C, External_Name => "ColorAlphaBlend"; function Get_Color ( Value : Natural := 0 ) return Color with Import => True, Convention => C, External_Name => "GetColor"; function Get_Pixel_Color ( Source : Pointer := null; Format : Integer := 0 ) return Color with Import => True, Convention => C, External_Name => "GetPixelColor"; procedure Set_Pixel_Color ( Destination : Pointer := null; Data : Color := White; Format : Integer := 0 ) with Import => True, Convention => C, External_Name => "SetPixelColor"; function Get_Pixel_Data_Size ( Width : Natural := 0; Height : Natural := 0; Format : Integer := 0 ) return Integer with Import => True, Convention => C, External_Name => "GetPixelDataSize"; function Get_Font_Default return Font with Import => True, Convention => C, External_Name => "GetFontDefault"; function Load_Font ( File_Name : String := "" ) return Font with Import => True, Convention => C, External_Name => "LoadFont"; function Load_Font_Ex ( File_Name : String := ""; Font_Size : Integer := 32; Code_Points : access Integer := null; Code_Point_Count : Natural := 0 ) return Font with Import => True, Convention => C, External_Name => "LoadFontEx"; function Load_Font_From_Image ( Data : Image := No_Image; Key : Color := White; First_Character : Integer := 0 ) return Font with Import => True, Convention => C, External_Name => "LoadFontFromImage"; function Load_Font_From_Memory ( File_Type : String := ""; File_Data : Pointer := null; Data_Size : Natural := 0; Font_Size : Integer := 32; Code_Points : access Integer := null; Code_Point_Count : Natural := 0 ) return Font with Import => True, Convention => C, External_Name => "LoadFontFromMemory"; function Is_Font_Ready ( Data : Font := No_Font ) return Logical with Import => True, Convention => C, External_Name => "IsFontReady"; function Load_Font_Data ( File_Data : Pointer := null; Data_Size : Natural := 0; Font_Size : Integer := 32; Code_Points : access Integer := null; Code_Point_Count : Natural := 0; Kind : Integer := 0 ) return access Glyph_Info with Import => True, Convention => C, External_Name => "LoadFontData"; function Gen_Image_Font_Atlas ( Glyphs : access Glyph_Info := null; Glyph_Rectangles : access Rectangle := null; Glyph_Count : Integer := 0; Font_Size : Integer := 32; Padding : Integer := 0; Pack_Method : Integer := 0 ) return Image with Import => True, Convention => C, External_Name => "GenImageFontAtlas"; procedure Unload_Font_Data ( Glyphs : access Glyph_Info := null; Glyph_Count : Integer := 0 ) with Import => True, Convention => C, External_Name => "UnloadFontData"; procedure Unload_Font ( Data : Font := No_Font ) with Import => True, Convention => C, External_Name => "UnloadFont"; function Export_Font_As_Code ( Data : Font := No_Font; File_Name : String := "" ) return Logical with Import => True, Convention => C, External_Name => "ExportFontAsCode"; procedure Draw_FPS ( X : Integer := 0; Y : Integer := 0 ) with Import => True, Convention => C, External_Name => "DrawFPS"; procedure Draw_Text ( Text : String := ""; X : Integer := 0; Y : Integer := 0; Size : Integer := 32; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawText"; procedure Draw_Text_Ex ( Data : Font := Get_Font_Default; Text : String := ""; Position : Vector_2D := (others => 0.0); Font_Size : Float := 0.0; Spacing : Float := 0.0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawTextEx"; procedure Draw_Text_Pro ( Data : Font := Get_Font_Default; Text : String := ""; Position : Vector_2D := (others => 0.0); Origin : Vector_2D := (others => 0.0); Rotation : Float := 0.0; Font_Size : Float := 0.0; Spacing : Float := 0.0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawTextPro"; procedure Draw_Text_Codepoint ( Data : Font := Get_Font_Default; Code_Point : Integer := 0; Position : Vector_2D := (others => 0.0); Font_Size : Float := 0.0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawTextCodepoint"; procedure Draw_Text_Codepoints ( Data : Font := Get_Font_Default; Code_Points : access Integer := null; Code_Point_Count : Integer := 0; Position : Vector_2D := (others => 0.0); Font_Size : Float := 0.0; Spacing : Float := 0.0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawTextCodepoints"; procedure Set_Text_Line_Spacing ( Spacing : Integer := 0 ) with Import => True, Convention => C, External_Name => "SetTextLineSpacing"; function Measure_Text ( Text : String := ""; Font_Size : Integer := 0 ) return Integer with Import => True, Convention => C, External_Name => "MeasureText"; function Measure_Text_Ex ( Data : Font := Get_Font_Default; Text : String := ""; Font_Size : Float := 0.0; Spacing : Float := 0.0 ) return Vector_2D with Import => True, Convention => C, External_Name => "MeasureTextEx"; function Get_Glyph_Index ( Data : Font := Get_Font_Default; Code_Point : Integer := 0 ) return Integer with Import => True, Convention => C, External_Name => "GetGlyphIndex"; function Get_Glyph_Info ( Data : Font := Get_Font_Default; Code_Point : Integer := 0 ) return Glyph_Info with Import => True, Convention => C, External_Name => "GetGlyphInfo"; function Get_Glyph_Atlas_Rec ( Data : Font := Get_Font_Default; Code_Point : Integer := 0 ) return Rectangle with Import => True, Convention => C, External_Name => "GetGlyphAtlasRec"; function Load_UTF8 ( Code_Points : access Integer := null; Length : Integer := 0 ) return access Character with Import => True, Convention => C, External_Name => "LoadUTF8"; procedure Unload_UTF8 ( Text : access Character := null ) with Import => True, Convention => C, External_Name => "UnloadUTF8"; function Load_Code_Points ( Text : String := ""; Count : access Integer := null ) return access Integer with Import => True, Convention => C, External_Name => "LoadCodepoints"; procedure Unload_Code_Points ( Code_Points : access Integer := null ) with Import => True, Convention => C, External_Name => "UnloadCodepoints"; function Get_Code_Point_Count ( Text : String := "" ) return Integer with Import => True, Convention => C, External_Name => "GetCodepointCount"; function Get_Code_Point ( Text : String := ""; Code_Point_Size : access Integer := null ) return Integer with Import => True, Convention => C, External_Name => "GetCodepoint"; function Get_Code_Point_Next ( Text : String := ""; Code_Point_Size : access Integer := null ) return Integer with Import => True, Convention => C, External_Name => "GetCodepointNext"; function Get_Code_Point_Previous ( Text : String := ""; Code_Point_Size : access Integer := null ) return Integer with Import => True, Convention => C, External_Name => "GetCodepointPrevious"; function Code_Point_To_UTF8 ( Code_Point : Integer := 0; UTF8_Size : access Integer := null ) return Strings with Import => True, Convention => C, External_Name => "CodepointToUTF8"; function Text_Copy ( Destination : Strings := null; Source : Strings := null ) return Integer with Import => True, Convention => C, External_Name => "TextCopy"; function Text_Is_Equal ( Text_1 : Strings := null; Text_2 : Strings := null ) return Logical with Import => True, Convention => C, External_Name => "TextIsEqual"; function Text_Length ( Text : String := "" ) return Natural with Import => True, Convention => C, External_Name => "TextLength"; --~function Text_Format ( --~Text : String := ""; --~... --~) return Strings with --~Import => True, --~Convention => C, --~External_Name => "TextFormat"; function Text_Subtext ( Text : String := ""; Position : Integer := 0; Length : Integer := 0 ) return Strings with Import => True, Convention => C, External_Name => "TextSubtext"; function Text_Replace ( Text : Strings := null; Replace : String := ""; By : String := "" ) return Strings with Import => True, Convention => C, External_Name => "TextReplace"; function Text_Insert ( Text : String := ""; Insert : String := ""; Position : Integer := 0 ) return Strings with Import => True, Convention => C, External_Name => "TextInsert"; function Text_Join ( Text : Strings := null; Count : Integer := 0; Delimiter : String := "" ) return Strings with Import => True, Convention => C, External_Name => "TextJoin"; function Text_Split ( Text : String := ""; Delimiter : Character := ' '; Count : access Integer := null ) return Strings with Import => True, Convention => C, External_Name => "TextSplit"; procedure Text_Append ( Text : Strings := null; Append : String := ""; Position : access Integer := null ) with Import => True, Convention => C, External_Name => "TextAppend"; function Text_Find_Index ( Text : String := ""; Find : String := "" ) return Integer with Import => True, Convention => C, External_Name => "TextFindIndex"; function Text_To_Upper ( Text : String := "" ) return Strings with Import => True, Convention => C, External_Name => "TextToUpper"; function Text_To_Lower ( Text : String := "" ) return Strings with Import => True, Convention => C, External_Name => "TextToLower"; function Text_To_Pascal ( Text : String := "" ) return Strings with Import => True, Convention => C, External_Name => "TextToPascal"; function Text_To_Integer ( Text : String := "" ) return Integer with Import => True, Convention => C, External_Name => "TextToInteger"; procedure Draw_Line_3D ( From : Vector_3D := (others => 0.0); To : Vector_3D := (others => 0.0); Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawLine3D"; procedure Draw_Point_3D ( Position : Vector_3D := (others => 0.0); Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawPoint3D"; procedure Draw_Circle_3D ( Center : Vector_3D := (others => 0.0); Radius : Float := 0.0; Rotation_Axis : Vector_3D := (others => 0.0); Rotation_Angle : Float := 0.0; Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawCircle3D"; procedure Draw_Triangle_3D ( Point_1 : Vector_3D := (others => 0.0); Point_2 : Vector_3D := (others => 0.0); Point_3 : Vector_3D := (others => 0.0); Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawTriangle3D"; procedure Draw_Triangle_Strip_3D ( Points : access Vector_3D := null; Point_Count : Integer := 0; Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawTriangleStrip3D"; procedure Draw_Cube ( Position : Vector_3D := (others => 0.0); Width : Float := 0.0; Height : Float := 0.0; Length : Float := 0.0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawCube"; procedure Draw_Cube_V ( Position : Vector_3D := (others => 0.0); Size : Vector_3D := (others => 0.0); Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawCubeV"; procedure Draw_Cube_Wires ( Position : Vector_3D := (others => 0.0); Width : Float := 0.0; Height : Float := 0.0; Length : Float := 0.0; Tint : Color := Black ) with Import => True, Convention => C, External_Name => "DrawCubeWires"; procedure Draw_Cube_Wires_V ( Position : Vector_3D := (others => 0.0); Size : Vector_3D := (others => 0.0); Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawCubeWiresV"; procedure Draw_Sphere ( Center : Vector_3D := (others => 0.0); Radius : Float := 0.0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawSphere"; procedure Draw_Sphere_Ex ( Center : Vector_3D := (others => 0.0); Radius : Float := 0.0; Rings : Integer := 0; Slices : Integer := 0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawSphereEx"; procedure Draw_Sphere_Wires ( Center : Vector_3D := (others => 0.0); Radius : Float := 0.0; Rings : Integer := 0; Slices : Integer := 0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawSphereWires"; procedure Draw_Cylinder ( Position : Vector_3D := (others => 0.0); Radius_Top : Float := 0.0; Radius_Bottom : Float := 0.0; Height : Float := 0.0; Slices : Natural := 0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawCylinder"; procedure Draw_Cylinder_Ex ( From : Vector_3D := (others => 0.0); To : Vector_3D := (others => 0.0); From_Radius : Float := 0.0; To_Radius : Float := 0.0; Sides : Natural := 0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawCylinderEx"; procedure Draw_Cylinder_Wires ( Position : Vector_3D := (others => 0.0); Radius_Top : Float := 0.0; Radius_Bottom : Float := 0.0; Height : Float := 0.0; Slices : Natural := 0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawCylinderWires"; procedure Draw_Cylinder_Wires_Ex ( From : Vector_3D := (others => 0.0); To : Vector_3D := (others => 0.0); From_Radius : Float := 0.0; To_Radius : Float := 0.0; Sides : Natural := 0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawCylinderWiresEx"; procedure Draw_Capsule ( From : Vector_3D := (others => 0.0); To : Vector_3D := (others => 0.0); Radius : Float := 0.0; Slices : Natural := 0; Rings : Natural := 0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawCapsule"; procedure Draw_Capsule_Wires ( From : Vector_3D := (others => 0.0); To : Vector_3D := (others => 0.0); Radius : Float := 0.0; Slices : Natural := 0; Rings : Natural := 0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawCapsuleWires"; procedure Draw_Plane ( Center : Vector_3D := (others => 0.0); Size : Vector_2D := (others => 0.0); Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawPlane"; procedure Draw_Ray ( Data : Ray := No_Ray; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawRay"; procedure Draw_Grid ( Slices : Integer := 0; Spacing : Float := 0.0 ) with Import => True, Convention => C, External_Name => "DrawGrid"; function Load_Model ( File_Name : String := "" ) return Model with Import => True, Convention => C, External_Name => "LoadModel"; function Load_Model_From_Mesh ( Data : Mesh := No_Mesh ) return Model with Import => True, Convention => C, External_Name => "LoadModelFromMesh"; function Is_Model_Ready ( Data : Model := No_Model ) return Logical with Import => True, Convention => C, External_Name => "IsModelReady"; procedure Unload_Model ( Data : Model := No_Model ) with Import => True, Convention => C, External_Name => "UnloadModel"; function GetModelBoundingBox ( Data : Model := No_Model ) return Bounding_Box with Import => True, Convention => C, External_Name => "GetModelBoundingBox"; procedure Draw_Model ( Data : Model := No_Model; Position : Vector_3D := (others => 0.0); Scale : Float := 1.0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawModel"; procedure Draw_Model_Ex ( Data : Model := No_Model; Position : Vector_3D := (others => 0.0); Axis : Vector_3D := (others => 0.0); Angle : Float := 0.0; Scale : Vector_3D := (1.0, 1.0, 1.0); Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawModelEx"; procedure Draw_Model_Wires ( Data : Model := No_Model; Position : Vector_3D := (others => 0.0); Scale : Float := 0.0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawModelWires"; procedure Draw_Model_Wires_Ex ( Data : Model := No_Model; Position : Vector_3D := (others => 0.0); Axis : Vector_3D := (others => 0.0); Angle : Float := 0.0; Scale : Vector_3D := (1.0, 1.0, 1.0); Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawModelWiresEx"; procedure Draw_Bounding_Box ( Box : Bounding_Box := No_Bounding_Box; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawBoundingBox"; procedure Draw_Billboard ( Camera : Camera_3D := No_Camera_3D; Billboard : Texture := No_Texture; Position : Vector_3D := (others => 0.0); Size : Float := 0.0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawBillboard"; procedure Draw_Billboard_Rec ( Camera : Camera_3D := No_Camera_3D; Billboard : Texture := No_Texture; Source : Rectangle := No_Rectangle; Position : Vector_3D := (others => 0.0); Size : Vector_2D := (others => 0.0); Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawBillboardRec"; procedure Draw_Billboard_Pro ( Camera : Camera_3D := No_Camera_3D; Billboard : Texture := No_Texture; Source : Rectangle := No_Rectangle; Position : Vector_3D := (others => 0.0); Up : Vector_3D := (others => 0.0); Size : Vector_2D := (others => 0.0); Origin : Vector_2D := (others => 0.0); Rotation : Float := 0.0; Tint : Color := White ) with Import => True, Convention => C, External_Name => "DrawBillboardPro"; procedure Upload_Mesh ( Data : access Mesh := null; Dynamic : Logical := False ) with Import => True, Convention => C, External_Name => "UploadMesh"; procedure Update_Mesh_Buffer ( Data : Mesh := No_Mesh; Index : Integer := 0; This : Pointer := null; Data_Size : Natural := 0; Offset : Integer := 0 ) with Import => True, Convention => C, External_Name => "UpdateMeshBuffer"; procedure Unload_Mesh ( Data : Mesh := No_Mesh ) with Import => True, Convention => C, External_Name => "UnloadMesh"; procedure Draw_Mesh ( Data : Mesh := No_Mesh; Pixels : Material := No_Material; Transform : Matrix_4D := (others => 0.0) ) with Import => True, Convention => C, External_Name => "DrawMesh"; procedure Draw_Mesh_Instanced ( Data : Mesh := No_Mesh; Use_Material : Material := No_Material; Transforms : access Matrix_4D := null; Instances : Integer := 0 ) with Import => True, Convention => C, External_Name => "DrawMeshInstanced"; function Get_Mesh_Bounding_Box ( Data : Mesh := No_Mesh ) return Bounding_Box with Import => True, Convention => C, External_Name => "GetMeshBoundingBox"; procedure Gen_Mesh_Tangents ( Data : access Mesh := null ) with Import => True, Convention => C, External_Name => "GenMeshTangents"; function Export_Mesh ( Data : Mesh := No_Mesh; File_Name : String := "" ) return Logical with Import => True, Convention => C, External_Name => "ExportMesh"; function Export_Mesh_As_Code ( Data : Mesh := No_Mesh; File_Name : String := "" ) return Logical with Import => True, Convention => C, External_Name => "ExportMeshAsCode"; function Gen_Mesh_Poly ( Sides : Integer := 0; Radius : Float := 0.0 ) return Mesh with Import => True, Convention => C, External_Name => "GenMeshPoly"; function Gen_Mesh_Plane ( Width : Float := 1.0; Height : Float := 1.0; X : Integer := 1; Z : Integer := 1 ) return Mesh with Import => True, Convention => C, External_Name => "GenMeshPlane"; function Gen_Mesh_Cube ( Width : Float := 0.0; Height : Float := 0.0; Length : Float := 0.0 ) return Mesh with Import => True, Convention => C, External_Name => "GenMeshCube"; function Gen_Mesh_Sphere ( Radius : Float := 0.0; Rings : Integer := 0; Slices : Integer := 0 ) return Mesh with Import => True, Convention => C, External_Name => "GenMeshSphere"; function Gen_Mesh_Hemisphere ( Radius : Float := 0.0; Rings : Integer := 0; Slices : Integer := 0 ) return Mesh with Import => True, Convention => C, External_Name => "GenMeshHemiSphere"; function Gen_Mesh_Cylinder ( Radius : Float := 0.0; Height : Float := 0.0; Slices : Integer := 0 ) return Mesh with Import => True, Convention => C, External_Name => "GenMeshCylinder"; function Gen_Mesh_Cone ( Radius : Float := 0.0; Height : Float := 0.0; Slices : Integer := 0 ) return Mesh with Import => True, Convention => C, External_Name => "GenMeshCone"; function Gen_Mesh_Torus ( Radius : Float := 0.0; Size : Float := 0.0; Segments : Integer := 0; Sides : Integer := 0 ) return Mesh with Import => True, Convention => C, External_Name => "GenMeshTorus"; function Gen_Mesh_Knot ( Radius : Float := 0.0; Size : Float := 0.0; Segments : Integer := 0; Sides : Integer := 0 ) return Mesh with Import => True, Convention => C, External_Name => "GenMeshKnot"; function Gen_Mesh_Height_Map ( Height_Map : Image := No_Image; Size : Vector_3D := (others => 0.0) ) return Mesh with Import => True, Convention => C, External_Name => "GenMeshHeightmap"; function Gen_Mesh_Cubic_Map ( Cubic_Map : Image := No_Image; Size : Vector_3D := (others => 0.0) ) return Mesh with Import => True, Convention => C, External_Name => "GenMeshCubicmap"; function Load_Materials ( File_Name : String := ""; Counts : access Integer := null ) return access Material with Import => True, Convention => C, External_Name => "LoadMaterials"; function Load_Material_Default return Material with Import => True, Convention => C, External_Name => "LoadMaterialDefault"; function Is_Material_Ready ( Data : Material := No_Material ) return Logical with Import => True, Convention => C, External_Name => "IsMaterialReady"; procedure Unload_Material ( Data : Material := No_Material ) with Import => True, Convention => C, External_Name => "UnloadMaterial"; procedure Set_Material_Texture ( Data : access Material := null; Kind : Material_Map_Index := Material_Map_Height; This : Texture := No_Texture ) with Import => True, Convention => C, External_Name => "SetMaterialTexture"; procedure Set_Model_Mesh_Material ( Data : access Model := null; Mesh_Id : Integer := 0; Material_Id : Integer := 0 ) with Import => True, Convention => C, External_Name => "SetModelMeshMaterial"; function Load_Model_Animations ( File_Name : String := ""; Counts : access Integer := null ) return access Model_Animation with Import => True, Convention => C, External_Name => "LoadModelAnimations"; procedure Update_Model_Animation ( Data : Model := No_Model; Animation : Model_Animation := No_Model_Animation; Frame : Integer := 0 ) with Import => True, Convention => C, External_Name => "UpdateModelAnimation"; procedure Unload_Model_Animation ( Animation : Model_Animation := No_Model_Animation ) with Import => True, Convention => C, External_Name => "UnloadModelAnimation"; procedure Unload_Model_Animations ( Animations : access Model_Animation := null; Animation_Count : Natural := 0 ) with Import => True, Convention => C, External_Name => "UnloadModelAnimations"; function Is_Model_Animation_Valid ( Data : Model := No_Model; Animation : Model_Animation := No_Model_Animation ) return Logical with Import => True, Convention => C, External_Name => "IsModelAnimationValid"; function Check_Collision_Spheres ( Center_1 : Vector_3D := (others => 0.0); Radius_1 : Float := 0.0; Center_2 : Vector_3D := (others => 0.0); Radius_2 : Float := 0.0 ) return Logical with Import => True, Convention => C, External_Name => "CheckCollisionSpheres"; function Check_Collision_Boxes ( Box_1 : Bounding_Box := No_Bounding_Box; Box_2 : Bounding_Box := No_Bounding_Box ) return Logical with Import => True, Convention => C, External_Name => "CheckCollisionBoxes"; function Check_Collision_Box_Sphere ( Box : Bounding_Box := No_Bounding_Box; Center : Vector_3D := (others => 0.0); Radius : Float := 0.0 ) return Logical with Import => True, Convention => C, External_Name => "CheckCollisionBoxSphere"; function Get_Ray_Collision_Sphere ( Hit : Ray := No_Ray; Center : Vector_3D := (others => 0.0); Radius : Float := 0.0 ) return Ray_Collision with Import => True, Convention => C, External_Name => "GetRayCollisionSphere"; function Get_Ray_Collision_Box ( Hit : Ray := No_Ray; Box : Bounding_Box := No_Bounding_Box ) return Ray_Collision with Import => True, Convention => C, External_Name => "GetRayCollisionBox"; function Get_Ray_Collision_Mesh ( Hit : Ray := No_Ray; Data : Mesh := No_Mesh; Transform : Matrix_4D := Id_Matrix ) return Ray_Collision with Import => True, Convention => C, External_Name => "GetRayCollisionMesh"; function Get_Ray_Collision_Triangle ( Hit : Ray := No_Ray; Point_1 : Vector_3D := (others => 0.0); Point_2 : Vector_3D := (others => 0.0); Point_3 : Vector_3D := (others => 0.0) ) return Ray_Collision with Import => True, Convention => C, External_Name => "GetRayCollisionTriangle"; function Get_Ray_Collision_Quad ( Hit : Ray := No_Ray; Point_1 : Vector_3D := (others => 0.0); Point_2 : Vector_3D := (others => 0.0); Point_3 : Vector_3D := (others => 0.0); Point_4 : Vector_3D := (others => 0.0) ) return Ray_Collision with Import => True, Convention => C, External_Name => "GetRayCollisionQuad"; procedure Open_Audio_Device with Import => True, Convention => C, External_Name => "InitAudioDevice"; procedure Close_Audio_Device with Import => True, Convention => C, External_Name => "CloseAudioDevice"; function Is_Audio_Device_Ready return Logical with Import => True, Convention => C, External_Name => "IsAudioDeviceReady"; procedure Set_Master_Volume ( Volume : Float := 1.0 ) with Import => True, Convention => C, External_Name => "SetMasterVolume"; function Get_Master_Volume return Float with Import => True, Convention => C, External_Name => "GetMasterVolume"; function Load_Wave ( File_Name : String := "" ) return Wave with Import => True, Convention => C, External_Name => "LoadWave"; function Load_Wave_From_Memory ( File_Type : String := ""; File_Data : Pointer := null; Data_Size : Natural := 0 ) return Wave with Import => True, Convention => C, External_Name => "LoadWaveFromMemory"; function Is_Wave_Ready ( Data : Wave := No_Wave ) return Logical with Import => True, Convention => C, External_Name => "IsWaveReady"; function Load_Sound ( File_Name : String := "" ) return Sound with Import => True, Convention => C, External_Name => "LoadSound"; function Load_Sound_From_Wave ( Data : Wave := No_Wave ) return Sound with Import => True, Convention => C, External_Name => "LoadSoundFromWave"; function Load_Sound_Alias ( Source : Sound := No_Sound ) return Sound with Import => True, Convention => C, External_Name => "LoadSoundAlias"; function Is_Sound_Ready ( Source : Sound := No_Sound ) return Logical with Import => True, Convention => C, External_Name => "IsSoundReady"; procedure Update_Sound ( Source : Sound := No_Sound; Data : Pointer := null; Sample_Count : Integer := 0 ) with Import => True, Convention => C, External_Name => "UpdateSound"; procedure Unload_Wave ( Data : Wave := No_Wave ) with Import => True, Convention => C, External_Name => "UnloadWave"; procedure Unload_Sound ( Data : Sound := No_Sound ) with Import => True, Convention => C, External_Name => "UnloadSound"; procedure Unload_Sound_Alias ( Alias : Sound := No_Sound ) with Import => True, Convention => C, External_Name => "UnloadSoundAlias"; function Export_Wave ( Data : Wave := No_Wave; File_Name : String := "" ) return Logical with Import => True, Convention => C, External_Name => "ExportWave"; function Export_Wave_As_Code ( Data : Wave := No_Wave; File_Name : String := "" ) return Logical with Import => True, Convention => C, External_Name => "ExportWaveAsCode"; procedure Play_Sound ( Data : Sound := No_Sound ) with Import => True, Convention => C, External_Name => "PlaySound"; procedure Stop_Sound ( Data : Sound := No_Sound ) with Import => True, Convention => C, External_Name => "StopSound"; procedure Pause_Sound ( Data : Sound := No_Sound ) with Import => True, Convention => C, External_Name => "PauseSound"; procedure Resume_Sound ( Data : Sound := No_Sound ) with Import => True, Convention => C, External_Name => "ResumeSound"; function Is_Sound_Playing ( Data : Sound := No_Sound ) return Logical with Import => True, Convention => C, External_Name => "IsSoundPlaying"; procedure Set_Sound_Volume ( Data : Sound := No_Sound; Volume : Float := 0.0 ) with Import => True, Convention => C, External_Name => "SetSoundVolume"; procedure Set_Sound_Pitch ( Data : Sound := No_Sound; Pitch : Float := 0.0 ) with Import => True, Convention => C, External_Name => "SetSoundPitch"; procedure Set_Sound_Pan ( Data : Sound := No_Sound; Pan : Float := 0.0 ) with Import => True, Convention => C, External_Name => "SetSoundPan"; function Wave_Copy ( Data : Wave := No_Wave ) return Wave with Import => True, Convention => C, External_Name => "WaveCopy"; procedure Wave_Crop ( Data : access Wave := null; First_Sample : Integer := 0; Final_Sample : Integer := 0 ) with Import => True, Convention => C, External_Name => "WaveCrop"; procedure Wave_Format ( Data : access Wave := null; Sample_Rate : Integer := 0; Sample_Size : Integer := 0; Channels : Integer := 0 ) with Import => True, Convention => C, External_Name => "WaveFormat"; function Load_Wave_Samples ( Data : Wave := No_Wave ) return access Float with Import => True, Convention => C, External_Name => "LoadWaveSamples"; procedure Unload_Wave_Samples ( Samples : access Float := null ) with Import => True, Convention => C, External_Name => "UnloadWaveSamples"; function Load_Music_Stream ( File_Name : String := "" ) return Music with Import => True, Convention => C, External_Name => "LoadMusicStream"; function Load_Music_Stream_From_Memory ( File_Type : String := ""; Data : Pointer := null; Data_Size : Integer := 0 ) return Music with Import => True, Convention => C, External_Name => "LoadMusicStreamFromMemory"; function Is_Music_Ready ( Data : Music := No_Music ) return Logical with Import => True, Convention => C, External_Name => "IsMusicReady"; procedure Unload_Music_Stream ( Data : Music := No_Music ) with Import => True, Convention => C, External_Name => "UnloadMusicStream"; procedure Play_Music_Stream ( Data : Music := No_Music ) with Import => True, Convention => C, External_Name => "PlayMusicStream"; function Is_Music_Stream_Playing ( Data : Music := No_Music ) return Logical with Import => True, Convention => C, External_Name => "IsMusicStreamPlaying"; procedure Update_Music_Stream ( Data : Music := No_Music ) with Import => True, Convention => C, External_Name => "UpdateMusicStream"; procedure Stop_Music_Stream ( Data : Music := No_Music ) with Import => True, Convention => C, External_Name => "StopMusicStream"; procedure Pause_Music_Stream ( Data : Music := No_Music ) with Import => True, Convention => C, External_Name => "PauseMusicStream"; procedure Resume_Music_Stream ( Data : Music := No_Music ) with Import => True, Convention => C, External_Name => "ResumeMusicStream"; procedure Seek_Music_Stream ( Data : Music := No_Music; Position : Float := 0.0 ) with Import => True, Convention => C, External_Name => "SeekMusicStream"; procedure Set_Music_Volume ( Data : Music := No_Music; Volume : Float := 0.0 ) with Import => True, Convention => C, External_Name => "SetMusicVolume"; procedure Set_Music_Pitch ( Data : Music := No_Music; Pitch : Float := 0.0 ) with Import => True, Convention => C, External_Name => "SetMusicPitch"; procedure Set_Music_Pan ( Data : Music := No_Music; Pan : Float := 0.0 ) with Import => True, Convention => C, External_Name => "SetMusicPan"; function Get_Music_Time_Length ( Data : Music := No_Music ) return Float with Import => True, Convention => C, External_Name => "GetMusicTimeLength"; function Get_Music_Time_Played ( Data : Music := No_Music ) return Float with Import => True, Convention => C, External_Name => "GetMusicTimePlayed"; function Load_Audio_Stream ( Sample_Rate : Natural := 0; Sample_Size : Natural := 0; Channels : Natural := 0 ) return Audio_Stream with Import => True, Convention => C, External_Name => "LoadAudioStream"; function Is_Audio_Stream_Ready ( Data : Audio_Stream := No_Audio_Stream ) return Logical with Import => True, Convention => C, External_Name => "IsAudioStreamReady"; procedure Unload_Audio_Stream ( Data : Audio_Stream := No_Audio_Stream ) with Import => True, Convention => C, External_Name => "UnloadAudioStream"; procedure Update_Audio_Stream ( Data : Audio_Stream := No_Audio_Stream; Raw_Data : Pointer := null; Frame_Count : Integer := 0 ) with Import => True, Convention => C, External_Name => "UpdateAudioStream"; function Is_Audio_Stream_Processed ( Data : Audio_Stream := No_Audio_Stream ) return Logical with Import => True, Convention => C, External_Name => "IsAudioStreamProcessed"; procedure Play_Audio_Stream ( Data : Audio_Stream := No_Audio_Stream ) with Import => True, Convention => C, External_Name => "PlayAudioStream"; procedure Pause_Audio_Stream ( Data : Audio_Stream := No_Audio_Stream ) with Import => True, Convention => C, External_Name => "PauseAudioStream"; procedure Resume_Audio_Stream ( Data : Audio_Stream := No_Audio_Stream ) with Import => True, Convention => C, External_Name => "ResumeAudioStream"; function Is_Audio_Stream_Playing ( Data : Audio_Stream := No_Audio_Stream ) return Logical with Import => True, Convention => C, External_Name => "IsAudioStreamPlaying"; procedure Stop_Audio_Stream ( Data : Audio_Stream := No_Audio_Stream ) with Import => True, Convention => C, External_Name => "StopAudioStream"; procedure Set_Audio_Stream_Volume ( Data : Audio_Stream := No_Audio_Stream; Volume : Float := 0.0 ) with Import => True, Convention => C, External_Name => "SetAudioStreamVolume"; procedure Set_Audio_Stream_Pitch ( Data : Audio_Stream := No_Audio_Stream; Pitch : Float := 0.0 ) with Import => True, Convention => C, External_Name => "SetAudioStreamPitch"; procedure Set_Audio_Stream_Pan ( Data : Audio_Stream := No_Audio_Stream; Pan : Float := 0.0 ) with Import => True, Convention => C, External_Name => "SetAudioStreamPan"; procedure Set_Audio_Stream_Buffer_Size_Default ( Size : Integer := 0 ) with Import => True, Convention => C, External_Name => "SetAudioStreamBufferSizeDefault"; procedure Attach_Audio_Stream_Processor ( Stream : Audio_Stream := No_Audio_Stream; Processor : Pointer := null ) with Import => True, Convention => C, External_Name => "AttachAudioStreamProcessor"; procedure Detach_Audio_Stream_Processor ( Stream : Audio_Stream := No_Audio_Stream; Processor : Pointer := null ) with Import => True, Convention => C, External_Name => "DetachAudioStreamProcessor"; procedure Attach_Audio_Mixed_Processor ( Processor : Pointer := null ) with Import => True, Convention => C, External_Name => "AttachAudioMixedProcessor"; procedure Detach_Audio_Mixed_Processor ( Processor : Pointer := null ) with Import => True, Convention => C, External_Name => "DetachAudioMixedProcessor"; ------------------------------------------------------------------------ end Raylib;