2024-03-18 08:06:11 -04:00
------------------------------------------------------------------------
2024-04-05 09:19:28 -04:00
--
-- 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.
--
2024-04-05 10:04:51 -04:00
-- 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.
--
2024-04-05 09:19:28 -04:00
-- https://github.com/raysan5/raylib
--
------------------------------------------------------------------------
2024-03-18 08:06:11 -04:00
with System ;
package Raylib is
------------------------------------------------------------------------
2024-04-05 09:19:28 -04:00
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 (
2024-04-05 09:56:09 -04:00
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
2024-04-05 09:19:28 -04:00
) ;
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 (
2024-04-05 09:56:09 -04:00
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
2024-04-05 09:19:28 -04:00
) ;
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 ;
2024-03-18 08:06:11 -04:00
------------------------------------------------------------------------
2024-04-05 09:19:28 -04:00
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 ;
2024-04-07 19:01:25 -04:00
type Strings is access all Character ;
2024-04-05 09:19:28 -04:00
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 ;
2024-04-05 09:56:09 -04:00
No_NPatch_Info : NPatch_Info ;
2024-04-05 09:19:28 -04:00
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 ;
2024-04-05 09:56:09 -04:00
No_Glyph_Info : Glyph_Info ;
2024-04-05 09:19:28 -04:00
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
2024-04-05 09:36:42 -04:00
Position : Vector_3D := ( others => 0.0 ) ;
Target : Vector_3D := ( others => 0.0 ) ;
Up : Vector_3D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
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
2024-04-05 09:36:42 -04:00
Offset : Vector_2D := ( others => 0.0 ) ;
Target : Vector_2D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
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 ;
2024-04-05 09:56:09 -04:00
type Material_Map_Array is array ( Natural range <> ) of Material_Map ;
2024-04-05 09:19:28 -04:00
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
2024-04-05 09:36:42 -04:00
Translation : Vector_3D := ( others => 0.0 ) ;
Rotation : Vector_4D := ( others => 0.0 ) ;
Scale : Vector_3D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
end record with Convention = > C_Pass_By_Copy ;
2024-04-05 09:56:09 -04:00
No_Transform : Transform ;
2024-04-05 09:19:28 -04:00
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 ;
2024-04-05 09:56:09 -04:00
--ERRORBind_Post : access Transform := null;
2024-04-05 09:19:28 -04:00
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
2024-04-05 09:36:42 -04:00
Position : Vector_3D := ( others => 0.0 ) ;
Direction : Vector_3D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
end record with Convention = > C_Pass_By_Copy ;
No_Ray : Ray ;
type Ray_Collision is record
Hit : Logical := False ;
Distance : Float := 0.0 ;
2024-04-05 09:36:42 -04:00
Point : Vector_3D := ( others => 0.0 ) ;
Normal : Vector_3D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
end record with Convention = > C_Pass_By_Copy ;
No_Ray_Collision : Ray_Collision ;
type Bounding_Box is record
2024-04-05 09:36:42 -04:00
Min : Vector_3D := ( others => 0.0 ) ;
Max : Vector_3D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
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 ;
2024-04-05 09:36:42 -04:00
Lens_Distortion_Values : Float_Array_4 := ( others => 0.0 ) ;
Chroma_Abberation_Correction : Float_Array_4 := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
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 ) ;
2024-04-05 09:36:42 -04:00
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 ) ;
2024-04-05 09:19:28 -04:00
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 ;
2024-04-05 09:56:09 -04:00
No_File_Path_List : File_Path_List ;
2024-04-05 09:19:28 -04:00
type Integer_Array_4 is array ( 0 . . 3 ) of Integer ;
type Automation_Event is record
Frame : Natural := 0 ;
Kind : Natural := 0 ;
2024-04-05 09:56:09 -04:00
Parameters : Integer_Array_4 := ( others => 0 ) ;
2024-04-05 09:19:28 -04:00
end record with Convention = > C_Pass_By_Copy ;
2024-04-05 09:56:09 -04:00
No_Automation_Event : Automation_Event ;
2024-04-05 09:19:28 -04:00
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 ;
2024-03-18 08:06:11 -04:00
2024-04-05 09:56:09 -04:00
No_Automation_Event_List : Automation_Event_List ;
2024-03-18 08:06:11 -04:00
------------------------------------------------------------------------
2024-04-05 09:19:28 -04:00
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 ) ;
2024-03-18 08:06:11 -04:00
------------------------------------------------------------------------
2024-04-05 09:19:28 -04:00
procedure Open_Window (
Width : Integer := 640 ;
Height : Integer := 480 ;
2024-04-05 10:02:52 -04:00
Title : String := "Raylib-Ada" & Character ' Val ( 0 )
2024-04-05 09:19:28 -04:00
) 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
2024-04-07 19:01:25 -04:00
) return Strings with
2024-04-05 09:19:28 -04:00
Import => True ,
Convention => C ,
External_Name => "GetMonitorName" ;
procedure Set_Clipboard_Text (
Text : String := ""
) with
Import => True ,
Convention => C ,
External_Name => "SetClipboardText" ;
2024-04-07 19:01:25 -04:00
function Get_Clipboard_Text return Strings with
2024-04-05 09:19:28 -04:00
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 (
2024-04-05 09:36:42 -04:00
Mouse_Position : Vector_2D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
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 (
2024-04-05 09:36:42 -04:00
Position : Vector_3D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
Camera : Camera_3D := No_Camera_3D
) return Vector_2D with
Import => True ,
Convention => C ,
External_Name => "GetWorldToScreen" ;
function Get_Screen_To_World_2D (
2024-04-05 09:36:42 -04:00
Position : Vector_2D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
Camera : Camera_2D := No_Camera_2D
) return Vector_2D with
Import => True ,
Convention => C ,
External_Name => "GetScreenToWorld2D" ;
function Get_World_To_Screen_Ex (
2024-04-05 09:36:42 -04:00
Position : Vector_3D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
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 (
2024-04-05 09:36:42 -04:00
Position : Vector_2D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
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 bool SaveFileData (const char *fileName, void *data, int dataSize) with
--~Import => True,
--~Convention => C,
--~External_Name => "SaveFileData";
--~function bool ExportDataAsCode (const unsigned char *data, int dataSize, const char *fileName) with
--~Import => True,
--~Convention => C,
--~External_Name => "ExportDataAsCode";
--~function char *LoadFileText (const char *fileName) with
--~Import => True,
--~Convention => C,
--~External_Name => "LoadFileText";
--~procedure UnloadFileText (char *text) with
--~Import => True,
--~Convention => C,
--~External_Name => "UnloadFileText";
--~function bool SaveFileText (const char *fileName, char *text) with
--~Import => True,
--~Convention => C,
--~External_Name => "SaveFileText";
--~function bool FileExists (const char *fileName) with
--~Import => True,
--~Convention => C,
--~External_Name => "FileExists";
--~function bool DirectoryExists (const char *dirPath) with
--~Import => True,
--~Convention => C,
--~External_Name => "DirectoryExists";
--~function bool IsFileExtension (const char *fileName, const char *ext) with
--~Import => True,
--~Convention => C,
--~External_Name => "IsFileExtension";
--~function int GetFileLength (const char *fileName) with
--~Import => True,
--~Convention => C,
--~External_Name => "GetFileLength";
--~function const char *GetFileExtension (const char *fileName) with
--~Import => True,
--~Convention => C,
--~External_Name => "GetFileExtension";
--~function const char *GetFileName (const char *filePath) with
--~Import => True,
--~Convention => C,
--~External_Name => "GetFileName";
--~function const char *GetFileNameWithoutExt (const char *filePath) with
--~Import => True,
--~Convention => C,
--~External_Name => "GetFileNameWithoutExt";
--~function const char *GetDirectoryPath (const char *filePath) with
--~Import => True,
--~Convention => C,
--~External_Name => "GetDirectoryPath";
--~function const char *GetPrevDirectoryPath (const char *dirPath) with
--~Import => True,
--~Convention => C,
--~External_Name => "GetPrevDirectoryPath";
--~function const char *GetWorkingDirectory (void) with
--~Import => True,
--~Convention => C,
--~External_Name => "GetWorkingDirectory";
--~function const char *GetApplicationDirectory (void) with
--~Import => True,
--~Convention => C,
--~External_Name => "GetApplicationDirectory";
--~function bool ChangeDirectory (const char *dir) with
--~Import => True,
--~Convention => C,
--~External_Name => "ChangeDirectory";
--~function bool IsPathFile (const char *path) with
--~Import => True,
--~Convention => C,
--~External_Name => "IsPathFile";
--~function FilePathList LoadDirectoryFiles (const char *dirPath) with
--~Import => True,
--~Convention => C,
--~External_Name => "LoadDirectoryFiles";
--~function FilePathList LoadDirectoryFilesEx (const char *basePath, const char *filter, bool scanSubdirs) with
--~Import => True,
--~Convention => C,
--~External_Name => "LoadDirectoryFilesEx";
--~procedure UnloadDirectoryFiles (FilePathList files) with
--~Import => True,
--~Convention => C,
--~External_Name => "UnloadDirectoryFiles";
--~function bool IsFileDropped (void) with
--~Import => True,
--~Convention => C,
--~External_Name => "IsFileDropped";
--~function FilePathList LoadDroppedFiles (void) with
--~Import => True,
--~Convention => C,
--~External_Name => "LoadDroppedFiles";
--~procedure UnloadDroppedFiles (FilePathList files) with
--~Import => True,
--~Convention => C,
--~External_Name => "UnloadDroppedFiles";
--~function long GetFileModTime (const char *fileName) with
--~Import => True,
--~Convention => C,
--~External_Name => "GetFileModTime";
--~function unsigned char *CompressData (const unsigned char *data, int dataSize, int *compDataSize) with
--~Import => True,
--~Convention => C,
--~External_Name => "CompressData";
--~function unsigned char *DecompressData (const unsigned char *compData, int compDataSize, int *dataSize) with
--~Import => True,
--~Convention => C,
--~External_Name => "DecompressData";
--~function char *EncodeDataBase64 (const unsigned char *data, int dataSize, int *outputSize) with
--~Import => True,
--~Convention => C,
--~External_Name => "EncodeDataBase64";
--~function unsigned char *DecodeDataBase64 (const unsigned char *data, int *outputSize) with
--~Import => True,
--~Convention => C,
--~External_Name => "DecodeDataBase64";
2024-04-05 10:02:52 -04:00
function Load_Automation_Event_List (
File_Name : String := ""
) return Automation_Event_List with
Import => True ,
Convention => C ,
External_Name => "LoadAutomationEventList" ;
2024-04-05 09:19:28 -04:00
2024-04-05 10:02:52 -04:00
procedure Unload_Automation_Event_List (
Data : access Automation_Event_List := null
) with
Import => True ,
Convention => C ,
External_Name => "UnloadAutomationEventList" ;
2024-04-05 09:19:28 -04:00
2024-04-05 10:02:52 -04:00
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" ;
2024-04-05 09:19:28 -04:00
2024-04-05 10:02:52 -04:00
procedure Set_Automation_Event_List (
Data : access Automation_Event_List := null
) with
Import => True ,
Convention => C ,
External_Name => "SetAutomationEventList" ;
2024-04-05 09:19:28 -04:00
2024-04-05 10:02:52 -04:00
procedure Set_Automation_Event_Base_Frame (
Frame : Integer := 0
) with
Import => True ,
Convention => C ,
External_Name => "SetAutomationEventBaseFrame" ;
2024-04-05 09:19:28 -04:00
2024-04-05 10:02:52 -04:00
procedure Start_Automation_Event_Recording with
Import => True ,
Convention => C ,
External_Name => "StartAutomationEventRecording" ;
2024-04-05 09:19:28 -04:00
2024-04-05 10:02:52 -04:00
procedure Stop_Automation_Event_Recording with
Import => True ,
Convention => C ,
External_Name => "StopAutomationEventRecording" ;
2024-04-05 09:19:28 -04:00
2024-04-05 10:02:52 -04:00
procedure Play_Automation_Event (
Event : Automation_Event := No_Automation_Event
) with
Import => True ,
Convention => C ,
External_Name => "PlayAutomationEvent" ;
2024-04-05 09:19:28 -04:00
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" ;
2024-04-07 18:43:24 -04:00
function Is_Gamepad_Available (
Gamepad : Integer := 0
) return Logical with
Import => True ,
Convention => C ,
External_Name => "IsGamepadAvailable" ;
2024-04-05 09:19:28 -04:00
2024-04-07 18:43:24 -04:00
function Get_Gamepad_Name (
Gamepad : Integer := 0
2024-04-07 19:01:25 -04:00
) return Strings with
2024-04-07 18:43:24 -04:00
Import => True ,
Convention => C ,
External_Name => "GetGamepadName" ;
2024-04-05 09:19:28 -04:00
2024-04-07 18:43:24 -04:00
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" ;
2024-04-05 09:19:28 -04:00
2024-04-07 18:43:24 -04:00
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" ;
2024-04-05 09:19:28 -04:00
2024-04-07 18:43:24 -04:00
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" ;
2024-04-05 09:19:28 -04:00
2024-04-07 18:43:24 -04:00
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" ;
2024-04-05 09:19:28 -04:00
2024-04-07 18:43:24 -04:00
function Get_Gamepad_Button_Pressed return Integer with
Import => True ,
Convention => C ,
External_Name => "GetGamepadButtonPressed" ;
2024-04-05 09:19:28 -04:00
2024-04-07 18:43:24 -04:00
function Get_Gamepad_Axis_Count (
Gamepad : Integer := 0
) return Integer with
Import => True ,
Convention => C ,
External_Name => "GetGamepadAxisCount" ;
2024-04-05 09:19:28 -04:00
2024-04-07 18:43:24 -04:00
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" ;
2024-04-05 09:19:28 -04:00
2024-04-07 18:43:24 -04:00
function Set_Gamepad_Mappings (
Mappings : String := ""
) return Integer with
Import => True ,
Convention => C ,
External_Name => "SetGamepadMappings" ;
2024-04-05 09:19:28 -04:00
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" ;
2024-04-07 19:01:25 -04:00
function Get_Touch_X return Integer with
Import => True ,
Convention => C ,
External_Name => "GetTouchX" ;
2024-04-05 09:19:28 -04:00
2024-04-07 19:01:25 -04:00
function Get_Touch_Y return Integer with
Import => True ,
Convention => C ,
External_Name => "GetTouchY" ;
2024-04-05 09:19:28 -04:00
2024-04-07 19:01:25 -04:00
function Get_Touch_Position (
Index : Integer := 0
) return Vector_2D with
Import => True ,
Convention => C ,
External_Name => "GetTouchPosition" ;
2024-04-05 09:19:28 -04:00
2024-04-07 19:01:25 -04:00
function Get_Touch_Point_Id (
Index : Integer := 0
) return Integer with
Import => True ,
Convention => C ,
External_Name => "GetTouchPointId" ;
2024-04-05 09:19:28 -04:00
2024-04-07 19:01:25 -04:00
function Get_Touch_Point_Count return Integer with
Import => True ,
Convention => C ,
External_Name => "GetTouchPointCount" ;
2024-04-05 09:19:28 -04:00
2024-04-07 19:01:25 -04:00
procedure Set_Gestures_Enabled (
Data : Gesture := Gesture_None
) with
Import => True ,
Convention => C ,
External_Name => "SetGesturesEnabled" ;
2024-04-05 09:19:28 -04:00
2024-04-07 19:01:25 -04:00
function Is_Gesture_Detected (
Data : Gesture := Gesture_None
) return Logical with
Import => True ,
Convention => C ,
External_Name => "IsGestureDetected" ;
2024-04-05 09:19:28 -04:00
2024-04-07 19:01:25 -04:00
function Get_Gesture_Detected return Integer with
Import => True ,
Convention => C ,
External_Name => "GetGestureDetected" ;
2024-04-05 09:19:28 -04:00
2024-04-07 19:01:25 -04:00
function Get_Gesture_Hold_Duration return Float with
Import => True ,
Convention => C ,
External_Name => "GetGestureHoldDuration" ;
2024-04-05 09:19:28 -04:00
2024-04-07 19:01:25 -04:00
function Get_Gesture_Drag_Vector return Vector_2D with
Import => True ,
Convention => C ,
External_Name => "GetGestureDragVector" ;
2024-04-05 09:19:28 -04:00
2024-04-07 19:01:25 -04:00
function Get_Gesture_Drag_Angle return Float with
Import => True ,
Convention => C ,
External_Name => "GetGestureDragAngle" ;
2024-04-05 09:19:28 -04:00
2024-04-07 19:01:25 -04:00
function Get_Gesture_Pinch_Vector return Vector_2D with
Import => True ,
Convention => C ,
External_Name => "GetGesturePinchVector" ;
2024-04-05 09:19:28 -04:00
2024-04-07 19:01:25 -04:00
function Get_Gesture_Pinch_Angle return Float with
Import => True ,
Convention => C ,
External_Name => "GetGesturePinchAngle" ;
2024-04-05 09:19:28 -04:00
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 ;
2024-04-05 09:36:42 -04:00
Movement : Vector_3D := ( others => 0.0 ) ;
Rotation : Vector_3D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
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 (
2024-04-05 09:36:42 -04:00
Position : Vector_2D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
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 (
2024-04-05 09:36:42 -04:00
From : Vector_2D := ( others => 0.0 ) ;
To : Vector_2D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
Tint : Color := Black
) with
Import => True ,
Convention => C ,
External_Name => "DrawLineV" ;
procedure Draw_Line_Ex (
2024-04-05 09:36:42 -04:00
From : Vector_2D := ( others => 0.0 ) ;
To : Vector_2D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
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 (
2024-04-05 09:36:42 -04:00
From : Vector_2D := ( others => 0.0 ) ;
To : Vector_2D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
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 (
2024-04-05 09:36:42 -04:00
Center : Vector_2D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
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 (
2024-04-05 09:36:42 -04:00
Center : Vector_2D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
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 (
2024-04-05 09:36:42 -04:00
Center : Vector_2D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
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 (
2024-04-05 09:36:42 -04:00
Center : Vector_2D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
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 (
2024-04-05 09:36:42 -04:00
Center : Vector_2D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
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 (
2024-04-05 09:36:42 -04:00
Center : Vector_2D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
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 (
2024-04-05 09:36:42 -04:00
Position : Vector_2D := ( others => 0.0 ) ;
Size : Vector_2D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
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 ;
2024-04-05 09:36:42 -04:00
Origin : Vector_2D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
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 DrawTriangle (Vector2 v1, Vector2 v2, Vector2 v3, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawTriangleLines (Vector2 v1, Vector2 v2, Vector2 v3, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawTriangleFan (Vector2 *points, int pointCount, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawTriangleStrip (Vector2 *points, int pointCount, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawPoly (Vector2 center, int sides, float radius, float rotation, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawPolyLines (Vector2 center, int sides, float radius, float rotation, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawPolyLinesEx (Vector2 center, int sides, float radius, float rotation, float lineThick, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawSplineLinear (Vector2 *points, int pointCount, float thick, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawSplineBasis (Vector2 *points, int pointCount, float thick, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawSplineCatmullRom (Vector2 *points, int pointCount, float thick, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawSplineBezierQuadratic (Vector2 *points, int pointCount, float thick, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawSplineBezierCubic (Vector2 *points, int pointCount, float thick, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawSplineSegmentLinear (Vector2 p1, Vector2 p2, float thick, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawSplineSegmentBasis (Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float thick, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawSplineSegmentCatmullRom (Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float thick, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawSplineSegmentBezierQuadratic (Vector2 p1, Vector2 c2, Vector2 p3, float thick, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawSplineSegmentBezierCubic (Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, float thick, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Vector2 GetSplinePointLinear (Vector2 startPos, Vector2 endPos, float t) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Vector2 GetSplinePointBasis (Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float t) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Vector2 GetSplinePointCatmullRom (Vector2 p1, Vector2 p2, Vector2 p3, Vector2 p4, float t) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Vector2 GetSplinePointBezierQuad (Vector2 p1, Vector2 c2, Vector2 p3, float t) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Vector2 GetSplinePointBezierCubic (Vector2 p1, Vector2 c2, Vector2 c3, Vector2 p4, float t) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function bool CheckCollisionRecs (Rectangle rec1, Rectangle rec2) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function bool CheckCollisionCircles (Vector2 center1, float radius1, Vector2 center2, float radius2) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function bool CheckCollisionCircleRec (Vector2 center, float radius, Rectangle rec) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function bool CheckCollisionPointRec (Vector2 point, Rectangle rec) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function bool CheckCollisionPointCircle (Vector2 point, Vector2 center, float radius) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function bool CheckCollisionPointTriangle (Vector2 point, Vector2 p1, Vector2 p2, Vector2 p3) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function bool CheckCollisionPointPoly (Vector2 point, Vector2 *points, int pointCount) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function bool CheckCollisionLines (Vector2 startPos1, Vector2 endPos1, Vector2 startPos2, Vector2 endPos2, Vector2 *collisionPoint) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function bool CheckCollisionPointLine (Vector2 point, Vector2 p1, Vector2 p2, int threshold) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Rectangle GetCollisionRec (Rectangle rec1, Rectangle rec2) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Image LoadImage (const char *fileName) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Image LoadImageRaw (const char *fileName, int width, int height, int format, int headerSize) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Image LoadImageSvg (const char *fileNameOrString, int width, int height) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Image LoadImageAnim (const char *fileName, int *frames) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Image LoadImageFromMemory (const char *fileType, const unsigned char *fileData, int dataSize) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Image LoadImageFromTexture (Texture2D texture) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Image LoadImageFromScreen (void) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function bool IsImageReady (Image image) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure UnloadImage (Image image) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function bool ExportImage (Image image, const char *fileName) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function unsigned char *ExportImageToMemory (Image image, const char *fileType, int *fileSize) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function bool ExportImageAsCode (Image image, const char *fileName) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Image GenImageColor (int width, int height, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Image GenImageGradientLinear (int width, int height, int direction, Color start, Color end) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Image GenImageGradientRadial (int width, int height, float density, Color inner, Color outer) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Image GenImageGradientSquare (int width, int height, float density, Color inner, Color outer) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Image GenImageChecked (int width, int height, int checksX, int checksY, Color col1, Color col2) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Image GenImageWhiteNoise (int width, int height, float factor) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Image GenImagePerlinNoise (int width, int height, int offsetX, int offsetY, float scale) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Image GenImageCellular (int width, int height, int tileSize) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Image GenImageText (int width, int height, const char *text) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Image ImageCopy (Image image) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Image ImageFromImage (Image image, Rectangle rec) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Image ImageText (const char *text, int fontSize, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Image ImageTextEx (Font font, const char *text, float fontSize, float spacing, Color tint) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageFormat (Image *image, int newFormat) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageToPOT (Image *image, Color fill) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageCrop (Image *image, Rectangle crop) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageAlphaCrop (Image *image, float threshold) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageAlphaClear (Image *image, Color color, float threshold) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageAlphaMask (Image *image, Image alphaMask) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageAlphaPremultiply (Image *image) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageBlurGaussian (Image *image, int blurSize) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageKernelConvolution (Image *image, float* kernel, int kernelSize) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageResize (Image *image, int newWidth, int newHeight) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageResizeNN (Image *image, int newWidth,int newHeight) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageResizeCanvas (Image *image, int newWidth, int newHeight, int offsetX, int offsetY, Color fill) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageMipmaps (Image *image) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageDither (Image *image, int rBpp, int gBpp, int bBpp, int aBpp) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageFlipVertical (Image *image) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageFlipHorizontal (Image *image) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageRotate (Image *image, int degrees) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageRotateCW (Image *image) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageRotateCCW (Image *image) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageColorTint (Image *image, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageColorInvert (Image *image) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageColorGrayscale (Image *image) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageColorContrast (Image *image, float contrast) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageColorBrightness (Image *image, int brightness) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageColorReplace (Image *image, Color color, Color replace) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Color *LoadImageColors (Image image) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Color *LoadImagePalette (Image image, int maxPaletteSize, int *colorCount) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure UnloadImageColors (Color *colors) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure UnloadImagePalette (Color *colors) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Rectangle GetImageAlphaBorder (Image image, float threshold) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Color GetImageColor (Image image, int x, int y) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageClearBackground (Image *dst, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageDrawPixel (Image *dst, int posX, int posY, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageDrawPixelV (Image *dst, Vector2 position, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageDrawLine (Image *dst, int startPosX, int startPosY, int endPosX, int endPosY, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageDrawLineV (Image *dst, Vector2 start, Vector2 end, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageDrawCircle (Image *dst, int centerX, int centerY, int radius, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageDrawCircleV (Image *dst, Vector2 center, int radius, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageDrawCircleLines (Image *dst, int centerX, int centerY, int radius, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageDrawCircleLinesV (Image *dst, Vector2 center, int radius, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageDrawRectangle (Image *dst, int posX, int posY, int width, int height, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageDrawRectangleV (Image *dst, Vector2 position, Vector2 size, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageDrawRectangleRec (Image *dst, Rectangle rec, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageDrawRectangleLines (Image *dst, Rectangle rec, int thick, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageDraw (Image *dst, Image src, Rectangle srcRec, Rectangle dstRec, Color tint) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageDrawText (Image *dst, const char *text, int posX, int posY, int fontSize, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure ImageDrawTextEx (Image *dst, Font font, const char *text, Vector2 position, float fontSize, float spacing, Color tint) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
function Load_Texture (
File_Path : String := ""
) return Texture with
Import => True ,
Convention => C ,
External_Name => "LoadTexture" ;
--~function Texture2D LoadTextureFromImage (Image image) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function TextureCubemap LoadTextureCubemap (Image image, int layout) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function RenderTexture2D LoadRenderTexture (int width, int height) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function bool IsTextureReady (Texture2D texture) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
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 ;
2024-04-05 09:36:42 -04:00
Position : Vector_2D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
Tint : Color := White
) with
Import => True ,
Convention => C ,
External_Name => "DrawTextureV" ;
procedure Draw_Texture_Ex (
Data : Texture := No_Texture ;
2024-04-05 09:36:42 -04:00
Position : Vector_2D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
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 ;
2024-04-05 09:36:42 -04:00
Position : Vector_2D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
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 ;
2024-04-05 09:36:42 -04:00
Origin : Vector_2D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
Rotation : Float := 0.0 ;
Tint : Color := White
) with
Import => True ,
Convention => C ,
External_Name => "DrawTexturePro" ;
--~procedure DrawTextureNPatch (Texture2D texture, NPatchInfo nPatchInfo, Rectangle dest, Vector2 origin, float rotation, Color tint) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Color Fade (Color color, float alpha) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function int ColorToInt (Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Vector4 ColorNormalize (Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Color ColorFromNormalized (Vector4 normalized) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Vector3 ColorToHSV (Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Color ColorFromHSV (float hue, float saturation, float value) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Color ColorTint (Color color, Color tint) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Color ColorBrightness (Color color, float factor) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Color ColorContrast (Color color, float contrast) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Color ColorAlpha (Color color, float alpha) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Color ColorAlphaBlend (Color dst, Color src, Color tint) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Color GetColor (unsigned int hexValue) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function Color GetPixelColor (void *srcPtr, int format) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure SetPixelColor (void *dstPtr, Color color, int format) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function int GetPixelDataSize (int width, int height, int format) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
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 := "" ;
2024-04-05 09:36:42 -04:00
Position : Vector_2D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
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 := "" ;
2024-04-05 09:36:42 -04:00
Position : Vector_2D := ( others => 0.0 ) ;
Origin : Vector_2D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
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 DrawTextCodepoint (Font font, int codepoint, Vector2 position, float fontSize, Color tint) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawTextCodepoints (Font font, const int *codepoints, int codepointCount, Vector2 position, float fontSize, float spacing, Color tint) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
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 int *LoadCodepoints (const char *text, int *count) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure UnloadCodepoints (int *codepoints) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function int GetCodepointCount (const char *text) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function int GetCodepoint (const char *text, int *codepointSize) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function int GetCodepointNext (const char *text, int *codepointSize) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function int GetCodepointPrevious (const char *text, int *codepointSize) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function const char *CodepointToUTF8 (int codepoint, int *utf8Size) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function int TextCopy (char *dst, const char *src) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function bool TextIsEqual (const char *text1, const char *text2) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function unsigned int TextLength (const char *text) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function const char *TextFormat (const char *text, ...) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function const char *TextSubtext (const char *text, int position, int length) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function char *TextReplace (char *text, const char *replace, const char *by) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function char *TextInsert (const char *text, const char *insert, int position) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function const char *TextJoin (const char **textList, int count, const char *delimiter) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function const char **TextSplit (const char *text, char delimiter, int *count) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure TextAppend (char *text, const char *append, int *position) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function int TextFindIndex (const char *text, const char *find) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function const char *TextToUpper (const char *text) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function const char *TextToLower (const char *text) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function const char *TextToPascal (const char *text) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function int TextToInteger (const char *text) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawLine3D (Vector3 startPos, Vector3 endPos, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawPoint3D (Vector3 position, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawCircle3D (Vector3 center, float radius, Vector3 rotationAxis, float rotationAngle, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawTriangle3D (Vector3 v1, Vector3 v2, Vector3 v3, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawTriangleStrip3D (Vector3 *points, int pointCount, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
procedure Draw_Cube (
2024-04-05 09:36:42 -04:00
Position : Vector_3D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
Width : Float := 0.0 ;
Height : Float := 0.0 ;
Length : Float := 0.0 ;
Tint : Color := White
) with
Import => True ,
Convention => C ,
External_Name => "DrawCube" ;
--~procedure DrawCubeV (Vector3 position, Vector3 size, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
procedure Draw_Cube_Wires (
2024-04-05 09:36:42 -04:00
Position : Vector_3D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
Width : Float := 0.0 ;
Height : Float := 0.0 ;
Length : Float := 0.0 ;
Tint : Color := Black
) with
Import => True ,
Convention => C ,
External_Name => "DrawCubeWires" ;
--~procedure DrawCubeWiresV (Vector3 position, Vector3 size, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawSphere (Vector3 centerPos, float radius, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawSphereEx (Vector3 centerPos, float radius, int rings, int slices, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawSphereWires (Vector3 centerPos, float radius, int rings, int slices, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawCylinder (Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawCylinderEx (Vector3 startPos, Vector3 endPos, float startRadius, float endRadius, int sides, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawCylinderWires (Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawCylinderWiresEx (Vector3 startPos, Vector3 endPos, float startRadius, float endRadius, int sides, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawCapsule (Vector3 startPos, Vector3 endPos, float radius, int slices, int rings, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawCapsuleWires (Vector3 startPos, Vector3 endPos, float radius, int slices, int rings, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
procedure Draw_Plane (
2024-04-05 09:36:42 -04:00
Center : Vector_3D := ( others => 0.0 ) ;
Size : Vector_2D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
Tint : Color := White
) with
Import => True ,
Convention => C ,
External_Name => "DrawPlane" ;
--~procedure DrawRay (Ray ray, Color color) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~procedure DrawGrid (int slices, float spacing) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
function Load_Model (
File_Name : String := ""
) return Model with
Import => True ,
Convention => C ,
External_Name => "LoadModel" ;
--~function Model LoadModelFromMesh (Mesh mesh) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
--~function bool IsModelReady (Model model) with
--~Import => True,
--~Convention => C,
--~External_Name => "";
procedure Unload_Model (
Data : Model := No_Model
) with
Import => True ,
Convention => C ,
External_Name => "UnloadModel" ;
2024-04-05 09:36:42 -04:00
function GetModelBoundingBox (
Data : Model := No_Model
) return Bounding_Box with
Import => True ,
Convention => C ,
External_Name => "GetModelBoundingBox" ;
2024-04-05 09:19:28 -04:00
procedure Draw_Model (
Data : Model := No_Model ;
2024-04-05 09:36:42 -04:00
Position : Vector_3D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
Scale : Float := 1.0 ;
Tint : Color := White
) with
Import => True ,
Convention => C ,
External_Name => "DrawModel" ;
procedure Draw_Model_Ex (
Data : Model := No_Model ;
2024-04-05 09:36:42 -04:00
Position : Vector_3D := ( others => 0.0 ) ;
Axis : Vector_3D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
Angle : Float := 0.0 ;
Scale : Vector_3D := ( 1.0 , 1.0 , 1.0 ) ;
Tint : Color := White
) with
Import => True ,
Convention => C ,
External_Name => "DrawModelEx" ;
2024-04-05 09:36:42 -04:00
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" ;
2024-04-05 09:19:28 -04:00
procedure Draw_Model_Wires_Ex (
Data : Model := No_Model ;
2024-04-05 09:36:42 -04:00
Position : Vector_3D := ( others => 0.0 ) ;
Axis : Vector_3D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
Angle : Float := 0.0 ;
Scale : Vector_3D := ( 1.0 , 1.0 , 1.0 ) ;
Tint : Color := White
) with
Import => True ,
Convention => C ,
External_Name => "DrawModelWiresEx" ;
2024-04-05 09:36:42 -04:00
procedure Draw_Bounding_Box (
2024-04-05 09:56:09 -04:00
Box : Bounding_Box := No_Bounding_Box ;
Tint : Color := White
2024-04-05 09:36:42 -04:00
) with
Import => True ,
Convention => C ,
External_Name => "DrawBoundingBox" ;
2024-04-05 09:19:28 -04:00
procedure Draw_Billboard (
2024-04-05 09:36:42 -04:00
Camera : Camera_3D := No_Camera_3D ;
Billboard : Texture := No_Texture ;
Position : Vector_3D := ( others => 0.0 ) ;
Size : Float := 0.0 ;
Tint : Color := White
2024-04-05 09:19:28 -04:00
) with
Import => True ,
Convention => C ,
External_Name => "DrawBillboard" ;
2024-04-05 09:36:42 -04:00
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" ;
2024-04-05 09:19:28 -04:00
procedure Draw_Billboard_Pro (
2024-04-05 09:36:42 -04:00
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
2024-04-05 09:19:28 -04:00
) 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" ;
2024-04-05 09:36:42 -04:00
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" ;
2024-04-05 09:19:28 -04:00
2024-04-05 09:36:42 -04:00
procedure Unload_Mesh (
Data : Mesh := No_Mesh
) with
Import => True ,
Convention => C ,
External_Name => "UnloadMesh" ;
2024-04-05 09:19:28 -04:00
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" ;
2024-04-05 09:36:42 -04:00
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" ;
2024-04-05 09:19:28 -04:00
2024-04-05 09:36:42 -04:00
function Get_Mesh_Bounding_Box (
Data : Mesh := No_Mesh
) return Bounding_Box with
Import => True ,
Convention => C ,
External_Name => "GetMeshBoundingBox" ;
2024-04-05 09:19:28 -04:00
2024-04-05 09:36:42 -04:00
procedure Gen_Mesh_Tangents (
Data : access Mesh := null
) with
Import => True ,
Convention => C ,
External_Name => "GenMeshTangents" ;
2024-04-05 09:19:28 -04:00
2024-04-05 09:36:42 -04:00
function Export_Mesh (
Data : Mesh := No_Mesh ;
File_Name : String := ""
) return Logical with
Import => True ,
Convention => C ,
External_Name => "ExportMesh" ;
2024-04-05 09:19:28 -04:00
2024-04-05 09:36:42 -04:00
function Export_Mesh_As_Code (
Data : Mesh := No_Mesh ;
File_Name : String := ""
) return Logical with
Import => True ,
Convention => C ,
External_Name => "ExportMeshAsCode" ;
2024-04-05 09:19:28 -04:00
2024-04-05 09:36:42 -04:00
function Gen_Mesh_Poly (
Sides : Integer := 0 ;
Radius : Float := 0.0
) return Mesh with
Import => True ,
Convention => C ,
External_Name => "GenMeshPoly" ;
2024-04-05 09:19:28 -04:00
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 ;
2024-04-05 09:36:42 -04:00
Size : Vector_3D := ( others => 0.0 )
2024-04-05 09:19:28 -04:00
) return Mesh with
Import => True ,
Convention => C ,
External_Name => "GenMeshHeightmap" ;
function Gen_Mesh_Cubic_Map (
Cubic_Map : Image := No_Image ;
2024-04-05 09:36:42 -04:00
Size : Vector_3D := ( others => 0.0 )
2024-04-05 09:19:28 -04:00
) 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 (
2024-04-05 09:36:42 -04:00
Center_1 : Vector_3D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
Radius_1 : Float := 0.0 ;
2024-04-05 09:36:42 -04:00
Center_2 : Vector_3D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
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 ;
2024-04-05 09:36:42 -04:00
Center : Vector_3D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
Radius : Float := 0.0
) return Logical with
Import => True ,
Convention => C ,
External_Name => "CheckCollisionBoxSphere" ;
function Get_Ray_Collision_Sphere (
Hit : Ray := No_Ray ;
2024-04-05 09:36:42 -04:00
Center : Vector_3D := ( others => 0.0 ) ;
2024-04-05 09:19:28 -04:00
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 ;
2024-04-05 09:36:42 -04:00
Point_1 : Vector_3D := ( others => 0.0 ) ;
Point_2 : Vector_3D := ( others => 0.0 ) ;
Point_3 : Vector_3D := ( others => 0.0 )
2024-04-05 09:19:28 -04:00
) return Ray_Collision with
Import => True ,
Convention => C ,
External_Name => "GetRayCollisionTriangle" ;
function Get_Ray_Collision_Quad (
Hit : Ray := No_Ray ;
2024-04-05 09:36:42 -04:00
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 )
2024-04-05 09:19:28 -04:00
) 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" ;
2024-04-05 09:36:42 -04:00
procedure Set_Master_Volume (
Volume : Float := 1.0
) with
2024-04-05 09:19:28 -04:00
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" ;
------------------------------------------------------------------------
2024-03-18 08:06:11 -04:00
end Raylib ;