raylib-ada/raylib.ads

5234 lines
148 KiB
Ada

------------------------------------------------------------------------
--
-- 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 Is_Image_Ready (
Data : Image := No_Image
) return Logical with
Import => True,
Convention => C,
External_Name => "IsImageReady";
procedure Unload_Image (
Data : Image := No_Image
) with
Import => True,
Convention => C,
External_Name => "UnloadImage";
function Export_Image (
Data : Image := No_Image;
File_Name : String := ""
) return Logical with
Import => True,
Convention => C,
External_Name => "ExportImage";
function Export_Image_To_Memory (
Data : Image := No_Image;
File_Type : String := "";
File_Size : access Integer := null
) return Pointer with
Import => True,
Convention => C,
External_Name => "ExportImageToMemory";
function Export_Image_As_Code (
Data : Image := No_Image;
File_Name : String := ""
) return Logical with
Import => True,
Convention => C,
External_Name => "ExportImageAsCode";
function Gen_Image_Color (
Width : Natural := 0;
Height : Natural := 0;
Tint : Color := White
) return Image with
Import => True,
Convention => C,
External_Name => "GenImageColor";
function Gen_Image_Gradient_Linear (
Width : Natural := 0;
Height : Natural := 0;
Direction : Integer := 0;
From : Color := White;
To : Color := Black
) return Image with
Import => True,
Convention => C,
External_Name => "GenImageGradientLinear";
function Gen_Image_Gradient_Radial (
Width : Natural := 0;
Height : Natural := 0;
Density : Float := 0.0;
Inner : Color := White;
Outer : Color := Black
) return Image with
Import => True,
Convention => C,
External_Name => "GenImageGradientRadial";
function Gen_Image_Gradient_Square (
Width : Natural := 0;
Height : Natural := 0;
Density : Float := 0.0;
Inner : Color := White;
Outer : Color := Black
) return Image with
Import => True,
Convention => C,
External_Name => "GenImageGradientSquare";
function Gen_Image_Checked (
Width : Natural := 0;
Height : Natural := 0;
X : Natural := 0;
Y : Natural := 0;
Color_1 : Color := White;
Color_2 : Color := Black
) return Image with
Import => True,
Convention => C,
External_Name => "GenImageChecked";
function Gen_Image_White_Noise (
Width : Natural := 0;
Height : Natural := 0;
Factor : Float := 0.0
) return Image with
Import => True,
Convention => C,
External_Name => "GenImageWhiteNoise";
function Gen_Image_Perlin_Noise (
Width : Natural := 0;
Height : Natural := 0;
X : Natural := 0;
Y : Natural := 0;
Scale : Float := 0.0
) return Image with
Import => True,
Convention => C,
External_Name => "GenImagePerlinNoise";
function Gen_Image_Cellular (
Width : Natural := 0;
Height : Natural := 0;
Size : Natural := 0
) return Image with
Import => True,
Convention => C,
External_Name => "GenImageCellular";
function Gen_Image_Text (
Width : Natural := 0;
Height : Natural := 0;
Text : String := ""
) return Image with
Import => True,
Convention => C,
External_Name => "GenImageText";
--~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;