From 84ea061e0fc7f449710f9a786641731606e80632 Mon Sep 17 00:00:00 2001 From: xolatile Date: Fri, 5 Apr 2024 09:19:28 -0400 Subject: [PATCH] Removed tabs and added license notice... --- raylib.ads | 8903 ++++++++++++++++++++++++++++++------------------------------ 1 file changed, 4462 insertions(+), 4441 deletions(-) diff --git a/raylib.ads b/raylib.ads index bfbb01c..787f07b 100644 --- a/raylib.ads +++ b/raylib.ads @@ -1,4 +1,23 @@ ------------------------------------------------------------------------ +-- +-- 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. +-- +-- https://github.com/raysan5/raylib +-- +------------------------------------------------------------------------ with System; @@ -6,4455 +25,4457 @@ package Raylib is ------------------------------------------------------------------------ - type Logical is new Boolean; - -- - for Logical'Size use 32; - - type Config_Flags is ( - Flag_None, - Flag_Fullscreen_Mode, - Flag_Window_Resizable, - Flag_Window_Undecorated, - Flag_Window_Transparent, - Flag_MSAA_x4_Hint, - Flag_VSync_Hint, - Flag_Window_Hidden, - Flag_Window_Always_Run, - Flag_Window_Minimized, - Flag_Window_Maximized, - Flag_Window_Unfocused, - Flag_Window_Topmost, - Flag_Window_High_DPI, - Flag_Window_Mouse_Passthrough, - Flag_Borderless_Windowed_Mode, - Flag_Interlaced_Hint - ) with Convention => C; - - for Config_Flags use ( - Flag_None => 16#00000000#, - Flag_Fullscreen_Mode => 16#00000002#, - Flag_Window_Resizable => 16#00000004#, - Flag_Window_Undecorated => 16#00000008#, - Flag_Window_Transparent => 16#00000010#, - Flag_MSAA_x4_Hint => 16#00000020#, - Flag_VSync_Hint => 16#00000040#, - Flag_Window_Hidden => 16#00000080#, - Flag_Window_Always_Run => 16#00000100#, - Flag_Window_Minimized => 16#00000200#, - Flag_Window_Maximized => 16#00000400#, - Flag_Window_Unfocused => 16#00000800#, - Flag_Window_Topmost => 16#00001000#, - Flag_Window_High_DPI => 16#00002000#, - Flag_Window_Mouse_Passthrough => 16#00004000#, - Flag_Borderless_Windowed_Mode => 16#00008000#, - Flag_Interlaced_Hint => 16#00010000# - ); - - type Trace_Log_Level is ( - Log_All, - Log_Trace, - Log_Debug, - Log_Info, - Log_Warning, - Log_Error, - Log_Fatal, - Log_None - ) with Convention => C; - - type Keyboard_Key is ( - Key_Null, - Key_Space, - Key_Apostrophe, - Key_Comma, - Key_Minus, - Key_Period, - Key_Slash, - Key_0, - Key_1, - Key_2, - Key_3, - Key_4, - Key_5, - Key_6, - Key_7, - Key_8, - Key_9, - Key_Semicolon, - Key_Equal, - Key_A, - Key_B, - Key_C, - Key_D, - Key_E, - Key_F, - Key_G, - Key_H, - Key_I, - Key_J, - Key_K, - Key_L, - Key_M, - Key_N, - Key_O, - Key_P, - Key_Q, - Key_R, - Key_S, - Key_T, - Key_U, - Key_V, - Key_W, - Key_X, - Key_Y, - Key_Z, - Key_Left_Bracket, - Key_Backslash, - Key_Right_Bracket, - Key_Grave, - Key_Escape, - Key_Enter, - Key_Tab, - Key_Backspace, - Key_Insert, - Key_Delete, - Key_Right, - Key_Left, - Key_Down, - Key_Up, - Key_Page_Up, - Key_Page_Down, - Key_Home, - Key_End, - Key_Caps_Lock, - Key_Scroll_Lock, - Key_Num_Lock, - Key_Print_Screen, - Key_Pause, - Key_F1, - Key_F2, - Key_F3, - Key_F4, - Key_F5, - Key_F6, - Key_F7, - Key_F8, - Key_F9, - Key_F10, - Key_F11, - Key_F12, - Key_Pad_0, - Key_Pad_1, - Key_Pad_2, - Key_Pad_3, - Key_Pad_4, - Key_Pad_5, - Key_Pad_6, - Key_Pad_7, - Key_Pad_8, - Key_Pad_9, - Key_Pad_Decimal, - Key_Pad_Divide, - Key_Pad_Multiply, - Key_Pad_Subtract, - Key_Pad_Add, - Key_Pad_Enter, - Key_Pad_Equal, - Key_Left_Shift, - Key_Left_Control, - Key_Left_Alt, - Key_Left_Super, - Key_Right_Shift, - Key_Right_Control, - Key_Right_Alt, - Key_Right_Super, - Key_KB_Menu - ) with Convention => C; - - for Keyboard_Key use ( - Key_Null => 0, - Key_Space => 32, - Key_Apostrophe => 39, - Key_Comma => 44, - Key_Minus => 45, - Key_Period => 46, - Key_Slash => 47, - Key_0 => 48, - Key_1 => 49, - Key_2 => 50, - Key_3 => 51, - Key_4 => 52, - Key_5 => 53, - Key_6 => 54, - Key_7 => 55, - Key_8 => 56, - Key_9 => 57, - Key_Semicolon => 59, - Key_Equal => 61, - Key_A => 65, - Key_B => 66, - Key_C => 67, - Key_D => 68, - Key_E => 69, - Key_F => 70, - Key_G => 71, - Key_H => 72, - Key_I => 73, - Key_J => 74, - Key_K => 75, - Key_L => 76, - Key_M => 77, - Key_N => 78, - Key_O => 79, - Key_P => 80, - Key_Q => 81, - Key_R => 82, - Key_S => 83, - Key_T => 84, - Key_U => 85, - Key_V => 86, - Key_W => 87, - Key_X => 88, - Key_Y => 89, - Key_Z => 90, - Key_Left_Bracket => 91, - Key_Backslash => 92, - Key_Right_Bracket => 93, - Key_Grave => 96, - Key_Escape => 256, - Key_Enter => 257, - Key_Tab => 258, - Key_Backspace => 259, - Key_Insert => 260, - Key_Delete => 261, - Key_Right => 262, - Key_Left => 263, - Key_Down => 264, - Key_Up => 265, - Key_Page_Up => 266, - Key_Page_Down => 267, - Key_Home => 268, - Key_End => 269, - Key_Caps_Lock => 280, - Key_Scroll_Lock => 281, - Key_Num_Lock => 282, - Key_Print_Screen => 283, - Key_Pause => 284, - Key_F1 => 290, - Key_F2 => 291, - Key_F3 => 292, - Key_F4 => 293, - Key_F5 => 294, - Key_F6 => 295, - Key_F7 => 296, - Key_F8 => 297, - Key_F9 => 298, - Key_F10 => 299, - Key_F11 => 300, - Key_F12 => 301, - Key_Pad_0 => 320, - Key_Pad_1 => 321, - Key_Pad_2 => 322, - Key_Pad_3 => 323, - Key_Pad_4 => 324, - Key_Pad_5 => 325, - Key_Pad_6 => 326, - Key_Pad_7 => 327, - Key_Pad_8 => 328, - Key_Pad_9 => 329, - Key_Pad_Decimal => 330, - Key_Pad_Divide => 331, - Key_Pad_Multiply => 332, - Key_Pad_Subtract => 333, - Key_Pad_Add => 334, - Key_Pad_Enter => 335, - Key_Pad_Equal => 336, - Key_Left_Shift => 340, - Key_Left_Control => 341, - Key_Left_Alt => 342, - Key_Left_Super => 343, - Key_Right_Shift => 344, - Key_Right_Control => 345, - Key_Right_Alt => 346, - Key_Right_Super => 347, - Key_KB_Menu => 348 - ); - - type Mouse_Button is ( - Mouse_Button_Left, - Mouse_Button_Right, - Mouse_Button_Middle, - Mouse_Button_Side, - Mouse_Button_Extra, - Mouse_Button_Forward, - Mouse_Button_Back - ) with Convention => C; - - type Mouse_Cursor is ( - Mouse_Cursor_Default, - Mouse_Cursor_Arrow, - Mouse_Cursor_Ibeam, - Mouse_Cursor_Crosshair, - Mouse_Cursor_Pointing_Hand, - Mouse_Cursor_Resize_EW, - Mouse_Cursor_Resize_NS, - Mouse_Cursor_Resize_NWSE, - Mouse_Cursor_Resize_NESW, - Mouse_Cursor_Resize_All, - Mouse_Cursor_Not_Allowed - ) with Convention => C; - - type Gamepad_Button is ( - Gamepad_Button_Unknown, - Gamepad_Button_Left_Face_Up, - Gamepad_Button_Left_Face_Right, - Gamepad_Button_Left_Face_Down, - Gamepad_Button_Left_Face_Left, - Gamepad_Button_Right_Face_Up, - Gamepad_Button_Right_Face_Right, - Gamepad_Button_Right_Face_Down, - Gamepad_Button_Right_Face_Left, - Gamepad_Button_Left_Trigger_1, - Gamepad_Button_Left_Trigger_2, - Gamepad_Button_Right_Trigger_1, - Gamepad_Button_Right_Trigger_2, - Gamepad_Button_Middle_Left, - Gamepad_Button_Middle, - Gamepad_Button_Middle_Right, - Gamepad_Button_Left_Thumb, - Gamepad_Button_Right_Thumb - ) with Convention => C; - - type Gamepad_Axis is ( - Gamepad_Axis_Left_X, - Gamepad_Axis_Left_Y, - Gamepad_Axis_Right_X, - Gamepad_Axis_Right_Y, - Gamepad_Axis_Left_Trigger, - Gamepad_Axis_Right_Trigger - ) with Convention => C; - - type Material_Map_Index is ( - Material_Map_Diffuse, - Material_Map_Specular, - Material_Map_Normal, - Material_Map_Roughness, - Material_Map_Occlusion, - Material_Map_Emission, - Material_Map_Height, - Material_Map_Cubemap, - Material_Map_Irradiance, - Material_Map_Prefilter, - Material_Map_BRDF - ) with Convention => C; - - type Shader_Location_Index is ( - Shader_Location_Vertex_Position, - Shader_Location_Vertex_Texcoord_1, - Shader_Location_Vertex_Texcoord_2, - Shader_Location_Vertex_Normal, - Shader_Location_Vertex_Tangent, - Shader_Location_Vertex_Color, - Shader_Location_Matrix_MVP, - Shader_Location_Matrix_View, - Shader_Location_Matrix_Projection, - Shader_Location_Matrix_Model, - Shader_Location_Matrix_Normal, - Shader_Location_Vector_View, - Shader_Location_Color_Diffuse, - Shader_Location_Color_Specular, - Shader_Location_Color_Ambient, - Shader_Location_Map_Diffuse, - Shader_Location_Map_Specular, - Shader_Location_Map_Normal, - Shader_Location_Map_Roughness, - Shader_Location_Map_Occlusion, - Shader_Location_Map_Emission, - Shader_Location_Map_Height, - Shader_Location_Map_Cubemap, - Shader_Location_Map_Irradiance, - Shader_Location_Map_Prefilter, - Shader_Location_Map_BRDF - ) with Convention => C; - - type Shader_Uniform_Data_Type is ( - Shader_Uniform_FLOAT, - Shader_Uniform_VEC2, - Shader_Uniform_VEC3, - Shader_Uniform_VEC4, - Shader_Uniform_INT, - Shader_Uniform_IVEC2, - Shader_Uniform_IVEC3, - Shader_Uniform_IVEC4, - Shader_Uniform_SAMPLER2D - ) with Convention => C; - - type Shader_Attribute_Data_Type is ( - Shader_Attribute_FLOAT, - Shader_Attribute_VEC2, - Shader_Attribute_VEC3, - Shader_Attribute_VEC4 - ) with Convention => C; - - type Pixel_Format is ( - Pixel_Format_None, - Pixel_Format_Uncompressed_Grayscale, - Pixel_Format_Uncompressed_Gray_Alpha, - Pixel_Format_Uncompressed_R5G6B5, - Pixel_Format_Uncompressed_R8G8B8, - Pixel_Format_Uncompressed_R5G5B5A1, - Pixel_Format_Uncompressed_R4G4B4A4, - Pixel_Format_Uncompressed_R8G8B8A8, - Pixel_Format_Uncompressed_R32, - Pixel_Format_Uncompressed_R32G32B32, - Pixel_Format_Uncompressed_R32G32B32A32, - Pixel_Format_Uncompressed_R16, - Pixel_Format_Uncompressed_R16G16B16, - Pixel_Format_Uncompressed_R16G16B16A16, - Pixel_Format_Compressed_DXT1_RGB, - Pixel_Format_Compressed_DXT1_RGBA, - Pixel_Format_Compressed_DXT3_RGBA, - Pixel_Format_Compressed_DXT5_RGBA, - Pixel_Format_Compressed_ETC1_RGB, - Pixel_Format_Compressed_ETC2_RGB, - Pixel_Format_Compressed_ETC2_EAC_RGBA, - Pixel_Format_Compressed_PVRT_RGB, - Pixel_Format_Compressed_PVRT_RGBA, - Pixel_Format_Compressed_ASTC_4x4_RGBA, - Pixel_Format_Compressed_ASTC_8x8_RGBA - ) with Convention => C; - - type Texture_Filter is ( - Texture_Filter_Point, - Texture_Filter_Bilinear, - Texture_Filter_Trilinear, - Texture_Filter_Anisotropic_x4, - Texture_Filter_Anisotropic_x8, - Texture_Filter_Anisotropic_x16 - ) with Convention => C; - - type Texture_Wrap is ( - Texture_Wrap_Repeat, - Texture_Wrap_Clamp, - Texture_Wrap_Mirror_Repeat, - Texture_Wrap_Mirror_Clamp - ) with Convention => C; - - type Cubemap_Layout is ( - Cubemap_Layout_Auto_Detect, - Cubemap_Layout_Line_Vertical, - Cubemap_Layout_Line_Horizontal, - Cubemap_Layout_Cross_3_By_4, - Cubemap_Layout_Cross_4_By_3, - Cubemap_Layout_Panorama - ) with Convention => C; - - type Font_Type is ( - Font_Default, - Font_Bitmap, - Font_SDF - ) with Convention => C; - - type Blend_Mode is ( - Blend_Alpha, - Blend_Additive, - Blend_Multiplied, - Blend_Add_Colors, - Blend_Subtract_Colors, - Blend_Alpha_Premultiply, - Blend_Custom, - Blend_Custom_Separate - ) with Convention => C; - - type Gesture is ( - Gesture_None, - Gesture_Tap, - Gesture_Doubletap, - Gesture_Hold, - Gesture_Drag, - Gesture_Swipe_Right, - Gesture_Swipe_Left, - Gesture_Swipe_Up, - Gesture_Swipe_Down, - Gesture_Pinch_In, - Gesture_Pinch_Out - ) with Convention => C; - - for Gesture use ( - Gesture_None => 0, - Gesture_Tap => 1, - Gesture_Doubletap => 2, - Gesture_Hold => 4, - Gesture_Drag => 8, - Gesture_Swipe_Right => 16, - Gesture_Swipe_Left => 32, - Gesture_Swipe_Up => 64, - Gesture_Swipe_Down => 128, - Gesture_Pinch_In => 256, - Gesture_Pinch_Out => 512 - ); - - type Camera_Mode is ( - Camera_Custom, - Camera_Free, - Camera_Orbital, - Camera_First_Person, - Camera_Third_Person - ) with Convention => C; - - type Camera_Projection is ( - Camera_Perspective, - Camera_Orthographic - ) with Convention => C; - - type NPatch_Layout is ( - NPatch_Nine_Patch, - NPatch_Three_Patch_Vertical, - NPatch_Three_Patch_Horizontal - ) with Convention => C; + type Logical is new Boolean; + -- + for Logical'Size use 32; + + type Config_Flags is ( + Flag_None, + Flag_Fullscreen_Mode, + Flag_Window_Resizable, + Flag_Window_Undecorated, + Flag_Window_Transparent, + Flag_MSAA_x4_Hint, + Flag_VSync_Hint, + Flag_Window_Hidden, + Flag_Window_Always_Run, + Flag_Window_Minimized, + Flag_Window_Maximized, + Flag_Window_Unfocused, + Flag_Window_Topmost, + Flag_Window_High_DPI, + Flag_Window_Mouse_Passthrough, + Flag_Borderless_Windowed_Mode, + Flag_Interlaced_Hint + ) with Convention => C; + + for Config_Flags use ( + Flag_None => 16#00000000#, + Flag_Fullscreen_Mode => 16#00000002#, + Flag_Window_Resizable => 16#00000004#, + Flag_Window_Undecorated => 16#00000008#, + Flag_Window_Transparent => 16#00000010#, + Flag_MSAA_x4_Hint => 16#00000020#, + Flag_VSync_Hint => 16#00000040#, + Flag_Window_Hidden => 16#00000080#, + Flag_Window_Always_Run => 16#00000100#, + Flag_Window_Minimized => 16#00000200#, + Flag_Window_Maximized => 16#00000400#, + Flag_Window_Unfocused => 16#00000800#, + Flag_Window_Topmost => 16#00001000#, + Flag_Window_High_DPI => 16#00002000#, + Flag_Window_Mouse_Passthrough => 16#00004000#, + Flag_Borderless_Windowed_Mode => 16#00008000#, + Flag_Interlaced_Hint => 16#00010000# + ); + + type Trace_Log_Level is ( + Log_All, + Log_Trace, + Log_Debug, + Log_Info, + Log_Warning, + Log_Error, + Log_Fatal, + Log_None + ) with Convention => C; + + type Keyboard_Key is ( + Key_Null, + Key_Space, + Key_Apostrophe, + Key_Comma, + Key_Minus, + Key_Period, + Key_Slash, + Key_0, + Key_1, + Key_2, + Key_3, + Key_4, + Key_5, + Key_6, + Key_7, + Key_8, + Key_9, + Key_Semicolon, + Key_Equal, + Key_A, + Key_B, + Key_C, + Key_D, + Key_E, + Key_F, + Key_G, + Key_H, + Key_I, + Key_J, + Key_K, + Key_L, + Key_M, + Key_N, + Key_O, + Key_P, + Key_Q, + Key_R, + Key_S, + Key_T, + Key_U, + Key_V, + Key_W, + Key_X, + Key_Y, + Key_Z, + Key_Left_Bracket, + Key_Backslash, + Key_Right_Bracket, + Key_Grave, + Key_Escape, + Key_Enter, + Key_Tab, + Key_Backspace, + Key_Insert, + Key_Delete, + Key_Right, + Key_Left, + Key_Down, + Key_Up, + Key_Page_Up, + Key_Page_Down, + Key_Home, + Key_End, + Key_Caps_Lock, + Key_Scroll_Lock, + Key_Num_Lock, + Key_Print_Screen, + Key_Pause, + Key_F1, + Key_F2, + Key_F3, + Key_F4, + Key_F5, + Key_F6, + Key_F7, + Key_F8, + Key_F9, + Key_F10, + Key_F11, + Key_F12, + Key_Pad_0, + Key_Pad_1, + Key_Pad_2, + Key_Pad_3, + Key_Pad_4, + Key_Pad_5, + Key_Pad_6, + Key_Pad_7, + Key_Pad_8, + Key_Pad_9, + Key_Pad_Decimal, + Key_Pad_Divide, + Key_Pad_Multiply, + Key_Pad_Subtract, + Key_Pad_Add, + Key_Pad_Enter, + Key_Pad_Equal, + Key_Left_Shift, + Key_Left_Control, + Key_Left_Alt, + Key_Left_Super, + Key_Right_Shift, + Key_Right_Control, + Key_Right_Alt, + Key_Right_Super, + Key_KB_Menu + ) with Convention => C; + + for Keyboard_Key use ( + Key_Null => 0, + Key_Space => 32, + Key_Apostrophe => 39, + Key_Comma => 44, + Key_Minus => 45, + Key_Period => 46, + Key_Slash => 47, + Key_0 => 48, + Key_1 => 49, + Key_2 => 50, + Key_3 => 51, + Key_4 => 52, + Key_5 => 53, + Key_6 => 54, + Key_7 => 55, + Key_8 => 56, + Key_9 => 57, + Key_Semicolon => 59, + Key_Equal => 61, + Key_A => 65, + Key_B => 66, + Key_C => 67, + Key_D => 68, + Key_E => 69, + Key_F => 70, + Key_G => 71, + Key_H => 72, + Key_I => 73, + Key_J => 74, + Key_K => 75, + Key_L => 76, + Key_M => 77, + Key_N => 78, + Key_O => 79, + Key_P => 80, + Key_Q => 81, + Key_R => 82, + Key_S => 83, + Key_T => 84, + Key_U => 85, + Key_V => 86, + Key_W => 87, + Key_X => 88, + Key_Y => 89, + Key_Z => 90, + Key_Left_Bracket => 91, + Key_Backslash => 92, + Key_Right_Bracket => 93, + Key_Grave => 96, + Key_Escape => 256, + Key_Enter => 257, + Key_Tab => 258, + Key_Backspace => 259, + Key_Insert => 260, + Key_Delete => 261, + Key_Right => 262, + Key_Left => 263, + Key_Down => 264, + Key_Up => 265, + Key_Page_Up => 266, + Key_Page_Down => 267, + Key_Home => 268, + Key_End => 269, + Key_Caps_Lock => 280, + Key_Scroll_Lock => 281, + Key_Num_Lock => 282, + Key_Print_Screen => 283, + Key_Pause => 284, + Key_F1 => 290, + Key_F2 => 291, + Key_F3 => 292, + Key_F4 => 293, + Key_F5 => 294, + Key_F6 => 295, + Key_F7 => 296, + Key_F8 => 297, + Key_F9 => 298, + Key_F10 => 299, + Key_F11 => 300, + Key_F12 => 301, + Key_Pad_0 => 320, + Key_Pad_1 => 321, + Key_Pad_2 => 322, + Key_Pad_3 => 323, + Key_Pad_4 => 324, + Key_Pad_5 => 325, + Key_Pad_6 => 326, + Key_Pad_7 => 327, + Key_Pad_8 => 328, + Key_Pad_9 => 329, + Key_Pad_Decimal => 330, + Key_Pad_Divide => 331, + Key_Pad_Multiply => 332, + Key_Pad_Subtract => 333, + Key_Pad_Add => 334, + Key_Pad_Enter => 335, + Key_Pad_Equal => 336, + Key_Left_Shift => 340, + Key_Left_Control => 341, + Key_Left_Alt => 342, + Key_Left_Super => 343, + Key_Right_Shift => 344, + Key_Right_Control => 345, + Key_Right_Alt => 346, + Key_Right_Super => 347, + Key_KB_Menu => 348 + ); + + type Mouse_Button is ( + Mouse_Button_Left, + Mouse_Button_Right, + Mouse_Button_Middle, + Mouse_Button_Side, + Mouse_Button_Extra, + Mouse_Button_Forward, + Mouse_Button_Back + ) with Convention => C; + + type Mouse_Cursor is ( + Mouse_Cursor_Default, + Mouse_Cursor_Arrow, + Mouse_Cursor_Ibeam, + Mouse_Cursor_Crosshair, + Mouse_Cursor_Pointing_Hand, + Mouse_Cursor_Resize_EW, + Mouse_Cursor_Resize_NS, + Mouse_Cursor_Resize_NWSE, + Mouse_Cursor_Resize_NESW, + Mouse_Cursor_Resize_All, + Mouse_Cursor_Not_Allowed + ) with Convention => C; + + type Gamepad_Button is ( + Gamepad_Button_Unknown, + Gamepad_Button_Left_Face_Up, + Gamepad_Button_Left_Face_Right, + Gamepad_Button_Left_Face_Down, + Gamepad_Button_Left_Face_Left, + Gamepad_Button_Right_Face_Up, + Gamepad_Button_Right_Face_Right, + Gamepad_Button_Right_Face_Down, + Gamepad_Button_Right_Face_Left, + Gamepad_Button_Left_Trigger_1, + Gamepad_Button_Left_Trigger_2, + Gamepad_Button_Right_Trigger_1, + Gamepad_Button_Right_Trigger_2, + Gamepad_Button_Middle_Left, + Gamepad_Button_Middle, + Gamepad_Button_Middle_Right, + Gamepad_Button_Left_Thumb, + Gamepad_Button_Right_Thumb + ) with Convention => C; + + type Gamepad_Axis is ( + Gamepad_Axis_Left_X, + Gamepad_Axis_Left_Y, + Gamepad_Axis_Right_X, + Gamepad_Axis_Right_Y, + Gamepad_Axis_Left_Trigger, + Gamepad_Axis_Right_Trigger + ) with Convention => C; + + type Material_Map_Index is ( + Material_Map_Diffuse, + Material_Map_Specular, + Material_Map_Normal, + Material_Map_Roughness, + Material_Map_Occlusion, + Material_Map_Emission, + Material_Map_Height, + Material_Map_Cubemap, + Material_Map_Irradiance, + Material_Map_Prefilter, + Material_Map_BRDF + ) with Convention => C; + + type Shader_Location_Index is ( + Shader_Location_Vertex_Position, + Shader_Location_Vertex_Texcoord_1, + Shader_Location_Vertex_Texcoord_2, + Shader_Location_Vertex_Normal, + Shader_Location_Vertex_Tangent, + Shader_Location_Vertex_Color, + Shader_Location_Matrix_MVP, + Shader_Location_Matrix_View, + Shader_Location_Matrix_Projection, + Shader_Location_Matrix_Model, + Shader_Location_Matrix_Normal, + Shader_Location_Vector_View, + Shader_Location_Color_Diffuse, + Shader_Location_Color_Specular, + Shader_Location_Color_Ambient, + Shader_Location_Map_Diffuse, + Shader_Location_Map_Specular, + Shader_Location_Map_Normal, + Shader_Location_Map_Roughness, + Shader_Location_Map_Occlusion, + Shader_Location_Map_Emission, + Shader_Location_Map_Height, + Shader_Location_Map_Cubemap, + Shader_Location_Map_Irradiance, + Shader_Location_Map_Prefilter, + Shader_Location_Map_BRDF + ) with Convention => C; + + type Shader_Uniform_Data_Type is ( + Shader_Uniform_FLOAT, + Shader_Uniform_VEC2, + Shader_Uniform_VEC3, + Shader_Uniform_VEC4, + Shader_Uniform_INT, + Shader_Uniform_IVEC2, + Shader_Uniform_IVEC3, + Shader_Uniform_IVEC4, + Shader_Uniform_SAMPLER2D + ) with Convention => C; + + type Shader_Attribute_Data_Type is ( + Shader_Attribute_FLOAT, + Shader_Attribute_VEC2, + Shader_Attribute_VEC3, + Shader_Attribute_VEC4 + ) with Convention => C; + + type Pixel_Format is ( + Pixel_Format_None, + Pixel_Format_Uncompressed_Grayscale, + Pixel_Format_Uncompressed_Gray_Alpha, + Pixel_Format_Uncompressed_R5G6B5, + Pixel_Format_Uncompressed_R8G8B8, + Pixel_Format_Uncompressed_R5G5B5A1, + Pixel_Format_Uncompressed_R4G4B4A4, + Pixel_Format_Uncompressed_R8G8B8A8, + Pixel_Format_Uncompressed_R32, + Pixel_Format_Uncompressed_R32G32B32, + Pixel_Format_Uncompressed_R32G32B32A32, + Pixel_Format_Uncompressed_R16, + Pixel_Format_Uncompressed_R16G16B16, + Pixel_Format_Uncompressed_R16G16B16A16, + Pixel_Format_Compressed_DXT1_RGB, + Pixel_Format_Compressed_DXT1_RGBA, + Pixel_Format_Compressed_DXT3_RGBA, + Pixel_Format_Compressed_DXT5_RGBA, + Pixel_Format_Compressed_ETC1_RGB, + Pixel_Format_Compressed_ETC2_RGB, + Pixel_Format_Compressed_ETC2_EAC_RGBA, + Pixel_Format_Compressed_PVRT_RGB, + Pixel_Format_Compressed_PVRT_RGBA, + Pixel_Format_Compressed_ASTC_4x4_RGBA, + Pixel_Format_Compressed_ASTC_8x8_RGBA + ) with Convention => C; + + type Texture_Filter is ( + Texture_Filter_Point, + Texture_Filter_Bilinear, + Texture_Filter_Trilinear, + Texture_Filter_Anisotropic_x4, + Texture_Filter_Anisotropic_x8, + Texture_Filter_Anisotropic_x16 + ) with Convention => C; + + type Texture_Wrap is ( + Texture_Wrap_Repeat, + Texture_Wrap_Clamp, + Texture_Wrap_Mirror_Repeat, + Texture_Wrap_Mirror_Clamp + ) with Convention => C; + + type Cubemap_Layout is ( + Cubemap_Layout_Auto_Detect, + Cubemap_Layout_Line_Vertical, + Cubemap_Layout_Line_Horizontal, + Cubemap_Layout_Cross_3_By_4, + Cubemap_Layout_Cross_4_By_3, + Cubemap_Layout_Panorama + ) with Convention => C; + + type Font_Type is ( + Font_Default, + Font_Bitmap, + Font_SDF + ) with Convention => C; + + type Blend_Mode is ( + Blend_Alpha, + Blend_Additive, + Blend_Multiplied, + Blend_Add_Colors, + Blend_Subtract_Colors, + Blend_Alpha_Premultiply, + Blend_Custom, + Blend_Custom_Separate + ) with Convention => C; + + type Gesture is ( + Gesture_None, + Gesture_Tap, + Gesture_Doubletap, + Gesture_Hold, + Gesture_Drag, + Gesture_Swipe_Right, + Gesture_Swipe_Left, + Gesture_Swipe_Up, + Gesture_Swipe_Down, + Gesture_Pinch_In, + Gesture_Pinch_Out + ) with Convention => C; + + for Gesture use ( + Gesture_None => 0, + Gesture_Tap => 1, + Gesture_Doubletap => 2, + Gesture_Hold => 4, + Gesture_Drag => 8, + Gesture_Swipe_Right => 16, + Gesture_Swipe_Left => 32, + Gesture_Swipe_Up => 64, + Gesture_Swipe_Down => 128, + Gesture_Pinch_In => 256, + Gesture_Pinch_Out => 512 + ); + + type Camera_Mode is ( + Camera_Custom, + Camera_Free, + Camera_Orbital, + Camera_First_Person, + Camera_Third_Person + ) with Convention => C; + + type Camera_Projection is ( + Camera_Perspective, + Camera_Orthographic + ) with Convention => C; + + type NPatch_Layout is ( + NPatch_Nine_Patch, + NPatch_Three_Patch_Vertical, + NPatch_Three_Patch_Horizontal + ) with Convention => C; ------------------------------------------------------------------------ - type Color_Range is range 0 .. 2**8 - 1; - type Index_Range is range 0 .. 2**16 - 1; - - for Color_Range'Size use 8; - for Index_Range'Size use 16; - - type Pointer is access all System.Address; - - type 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; - - 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; - - type Font is record - Base_Size : Integer := 0; - Glyph_Count : Integer := 0; - Glyph_Padding : Integer := 0; - Data : Texture := No_Texture; - Rectangles : access Rectangle := null; - Glyphs : access Glyph_Info := null; - end record with Convention => C_Pass_By_Copy; - - No_Font : Font; - - type Camera_3D is record - Position : Vector_3D := (0.0, 0.0, 0.0); - Target : Vector_3D := (0.0, 0.0, 0.0); - Up : Vector_3D := (0.0, 0.0, 0.0); - Field_Of_View : Float := 0.0; - Projection : Camera_Projection := Camera_Perspective; - end record with Convention => C_Pass_By_Copy; - - No_Camera_3D : Camera_3D; - - type Camera_2D is record - Offset : Vector_2D := (0.0, 0.0); - Target : Vector_2D := (0.0, 0.0); - Rotation : Float := 0.0; - Zoom : Float := 0.0; - end record with Convention => C_Pass_By_Copy; - - No_Camera_2D : Camera_2D; - - type Mesh is record - Vertex_Count : Integer := 0; - Triangle_Count : Integer := 0; - Vertices : access Float := null; - Texture_Coordinates : access Float := null; - Texture_Coordinates_2 : access Float := null; - Normals : access Float := null; - Tangents : access Float := null; - Colors : access Color_Range := null; - Indices : access Index_Range := null; - Animation_Vertices : access Float := null; - Animation_Normals : access Float := null; - Bone_Ids : access Color_Range := null; - Bone_Weights : access Float := null; - VAO_Id : Natural := 0; - VBO_Id : access Natural := null; - end record with Convention => C_Pass_By_Copy; - - No_Mesh : Mesh; - - type Shader is record - Id : Natural := 0; - Locations : access Integer := null; - end record with Convention => C_Pass_By_Copy; - - No_Shader : Shader; - - type Material_Map is record - Data : Texture := No_Texture; - Tint : Color := No_Color; - Value : Float := 0.0; - end record with Convention => C_Pass_By_Copy; - - No_Material_Map : Material_Map; - - type Float_Array_4 is array (0 .. 3) of Float; - type Material_Map_Array_4 is array (0 .. 3) of Material_Map; - type Material_Map_Array is array (Natural range <>) of Material_Map; - - type Material is record - Data : Shader := No_Shader; - Maps : access Material_Map_Array := null; - Parameter : Float_Array_4 := (0.0, 0.0, 0.0, 1.0); - end record with Convention => C_Pass_By_Copy; - - No_Material : Material; - - type Transform is record - Translation : Vector_3D := (0.0, 0.0, 0.0); - Rotation : Vector_4D := (0.0, 0.0, 0.0, 0.0); - Scale : Vector_3D := (0.0, 0.0, 0.0); - end record with Convention => C_Pass_By_Copy; - - 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; - --~Bind_Post : access Transform := null; ERROR - end record with Convention => C_Pass_By_Copy; - - No_Model : Model; - - type Model_Animation is record - Bone_Count : Integer := 0; - Frame_Count : Integer := 0; - Bones : access Bone_Info := null; - Frame_Poses : access Transform := null; - Name : Character_Array_32 := Empty; - end record with Convention => C_Pass_By_Copy; - - No_Model_Animation : Model_Animation; - - type Ray is record - Position : Vector_3D := (0.0, 0.0, 0.0); - Direction : Vector_3D := (0.0, 0.0, 0.0); - end record with Convention => C_Pass_By_Copy; - - No_Ray : Ray; - - type Ray_Collision is record - Hit : Logical := False; - Distance : Float := 0.0; - Point : Vector_3D := (0.0, 0.0, 0.0); - Normal : Vector_3D := (0.0, 0.0, 0.0); - end record with Convention => C_Pass_By_Copy; - - No_Ray_Collision : Ray_Collision; - - type Bounding_Box is record - Min : Vector_3D := (0.0, 0.0, 0.0); - Max : Vector_3D := (0.0, 0.0, 0.0); - end record with Convention => C_Pass_By_Copy; - - No_Bounding_Box : Bounding_Box; - - type Wave is record - Frame_Count : Natural := 0; - Sample_Rate : Natural := 0; - Sample_Size : Natural := 0; - Channels : Natural := 0; - Data : Pointer := null; - end record with Convention => C_Pass_By_Copy; - - No_Wave : Wave; - - type Audio_Stream is record - Buffer : Pointer := null; - Processor : Pointer := null; - Sample_Rate : Natural := 0; - Sample_Size : Natural := 0; - Channels : Natural := 0; - end record with Convention => C_Pass_By_Copy; - - No_Audio_Stream : Audio_Stream; - - type Sound is record - Stream : Audio_Stream := No_Audio_Stream; - Frame_Count : Natural := 0; - end record with Convention => C_Pass_By_Copy; - - No_Sound : Sound; - - type Music is record - Stream : Audio_Stream := No_Audio_Stream; - Frame_Count : Natural := 0; - Looping : Logical := False; - Context_Type : Integer := 0; - Context_Data : Pointer := null; - end record with Convention => C_Pass_By_Copy; - - No_Music : Music; - - type VR_Device_Info is record - Horizontal_Resoultion : Integer := 0; - Vertical_Resoultion : Integer := 0; - Horizontal_Screen_Size : Float := 0.0; - Vertical_Screen_Size : Float := 0.0; - Vertical_Screen_Center : Float := 0.0; - Eye_To_Screen_Distance : Float := 0.0; - Lens_Separate_Distance : Float := 0.0; - Interpupillary_Distance : Float := 0.0; - Lens_Distortion_Values : Float_Array_4 := (0.0, 0.0, 0.0, 0.0); - Chroma_Abberation_Correction : Float_Array_4 := (0.0, 0.0, 0.0, 0.0); - end record with Convention => C_Pass_By_Copy; - - No_VR_Device_Info : VR_Device_Info; - - type Matrix_4D_Array_2 is array (0 .. 1) of Matrix_4D; - type Float_Array_2 is array (0 .. 1) of Float; - - type VR_Stereo_Config is record - Projection : Matrix_4D_Array_2 := (Id_Matrix, Id_Matrix); - View_Offset : Matrix_4D_Array_2 := (Id_Matrix, Id_Matrix); - Left_Lens_Center : Float_Array_2 := (0.0, 0.0); - Right_Lens_Center : Float_Array_2 := (0.0, 0.0); - Left_Screen_Center : Float_Array_2 := (0.0, 0.0); - Right_Screen_Center : Float_Array_2 := (0.0, 0.0); - Scale : Float_Array_2 := (0.0, 0.0); - Scale_In : Float_Array_2 := (0.0, 0.0); - end record with Convention => C_Pass_By_Copy; - - No_VR_Stereo_Config : VR_Stereo_Config; - - type File_Path_List is record - Capacity : Natural := 0; - Count : Natural := 0; - Paths : Pointer := null; - end record with Convention => C_Pass_By_Copy; - - type Integer_Array_4 is array (0 .. 3) of Integer; - - type Automation_Event is record - Frame : Natural := 0; - Kind : Natural := 0; - Parameters : Integer_Array_4 := (0, 0, 0, 0); - end record with Convention => C_Pass_By_Copy; - - 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; + type Color_Range is range 0 .. 2**8 - 1; + type Index_Range is range 0 .. 2**16 - 1; + + for Color_Range'Size use 8; + for Index_Range'Size use 16; + + type Pointer is access all System.Address; + + type 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; + + 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; + + type Font is record + Base_Size : Integer := 0; + Glyph_Count : Integer := 0; + Glyph_Padding : Integer := 0; + Data : Texture := No_Texture; + Rectangles : access Rectangle := null; + Glyphs : access Glyph_Info := null; + end record with Convention => C_Pass_By_Copy; + + No_Font : Font; + + type Camera_3D is record + Position : Vector_3D := (0.0, 0.0, 0.0); + Target : Vector_3D := (0.0, 0.0, 0.0); + Up : Vector_3D := (0.0, 0.0, 0.0); + Field_Of_View : Float := 0.0; + Projection : Camera_Projection := Camera_Perspective; + end record with Convention => C_Pass_By_Copy; + + No_Camera_3D : Camera_3D; + + type Camera_2D is record + Offset : Vector_2D := (0.0, 0.0); + Target : Vector_2D := (0.0, 0.0); + Rotation : Float := 0.0; + Zoom : Float := 0.0; + end record with Convention => C_Pass_By_Copy; + + No_Camera_2D : Camera_2D; + + type Mesh is record + Vertex_Count : Integer := 0; + Triangle_Count : Integer := 0; + Vertices : access Float := null; + Texture_Coordinates : access Float := null; + Texture_Coordinates_2 : access Float := null; + Normals : access Float := null; + Tangents : access Float := null; + Colors : access Color_Range := null; + Indices : access Index_Range := null; + Animation_Vertices : access Float := null; + Animation_Normals : access Float := null; + Bone_Ids : access Color_Range := null; + Bone_Weights : access Float := null; + VAO_Id : Natural := 0; + VBO_Id : access Natural := null; + end record with Convention => C_Pass_By_Copy; + + No_Mesh : Mesh; + + type Shader is record + Id : Natural := 0; + Locations : access Integer := null; + end record with Convention => C_Pass_By_Copy; + + No_Shader : Shader; + + type Material_Map is record + Data : Texture := No_Texture; + Tint : Color := No_Color; + Value : Float := 0.0; + end record with Convention => C_Pass_By_Copy; + + No_Material_Map : Material_Map; + + type Float_Array_4 is array (0 .. 3) of Float; + type Material_Map_Array_4 is array (0 .. 3) of Material_Map; + type Material_Map_Array is array (Natural range <>) of Material_Map; + + type Material is record + Data : Shader := No_Shader; + Maps : access Material_Map_Array := null; + Parameter : Float_Array_4 := (0.0, 0.0, 0.0, 1.0); + end record with Convention => C_Pass_By_Copy; + + No_Material : Material; + + type Transform is record + Translation : Vector_3D := (0.0, 0.0, 0.0); + Rotation : Vector_4D := (0.0, 0.0, 0.0, 0.0); + Scale : Vector_3D := (0.0, 0.0, 0.0); + end record with Convention => C_Pass_By_Copy; + + 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; + --~Bind_Post : access Transform := null; ERROR + end record with Convention => C_Pass_By_Copy; + + No_Model : Model; + + type Model_Animation is record + Bone_Count : Integer := 0; + Frame_Count : Integer := 0; + Bones : access Bone_Info := null; + Frame_Poses : access Transform := null; + Name : Character_Array_32 := Empty; + end record with Convention => C_Pass_By_Copy; + + No_Model_Animation : Model_Animation; + + type Ray is record + Position : Vector_3D := (0.0, 0.0, 0.0); + Direction : Vector_3D := (0.0, 0.0, 0.0); + end record with Convention => C_Pass_By_Copy; + + No_Ray : Ray; + + type Ray_Collision is record + Hit : Logical := False; + Distance : Float := 0.0; + Point : Vector_3D := (0.0, 0.0, 0.0); + Normal : Vector_3D := (0.0, 0.0, 0.0); + end record with Convention => C_Pass_By_Copy; + + No_Ray_Collision : Ray_Collision; + + type Bounding_Box is record + Min : Vector_3D := (0.0, 0.0, 0.0); + Max : Vector_3D := (0.0, 0.0, 0.0); + end record with Convention => C_Pass_By_Copy; + + No_Bounding_Box : Bounding_Box; + + type Wave is record + Frame_Count : Natural := 0; + Sample_Rate : Natural := 0; + Sample_Size : Natural := 0; + Channels : Natural := 0; + Data : Pointer := null; + end record with Convention => C_Pass_By_Copy; + + No_Wave : Wave; + + type Audio_Stream is record + Buffer : Pointer := null; + Processor : Pointer := null; + Sample_Rate : Natural := 0; + Sample_Size : Natural := 0; + Channels : Natural := 0; + end record with Convention => C_Pass_By_Copy; + + No_Audio_Stream : Audio_Stream; + + type Sound is record + Stream : Audio_Stream := No_Audio_Stream; + Frame_Count : Natural := 0; + end record with Convention => C_Pass_By_Copy; + + No_Sound : Sound; + + type Music is record + Stream : Audio_Stream := No_Audio_Stream; + Frame_Count : Natural := 0; + Looping : Logical := False; + Context_Type : Integer := 0; + Context_Data : Pointer := null; + end record with Convention => C_Pass_By_Copy; + + No_Music : Music; + + type VR_Device_Info is record + Horizontal_Resoultion : Integer := 0; + Vertical_Resoultion : Integer := 0; + Horizontal_Screen_Size : Float := 0.0; + Vertical_Screen_Size : Float := 0.0; + Vertical_Screen_Center : Float := 0.0; + Eye_To_Screen_Distance : Float := 0.0; + Lens_Separate_Distance : Float := 0.0; + Interpupillary_Distance : Float := 0.0; + Lens_Distortion_Values : Float_Array_4 := (0.0, 0.0, 0.0, 0.0); + Chroma_Abberation_Correction : Float_Array_4 := (0.0, 0.0, 0.0, 0.0); + end record with Convention => C_Pass_By_Copy; + + No_VR_Device_Info : VR_Device_Info; + + type Matrix_4D_Array_2 is array (0 .. 1) of Matrix_4D; + type Float_Array_2 is array (0 .. 1) of Float; + + type VR_Stereo_Config is record + Projection : Matrix_4D_Array_2 := (Id_Matrix, Id_Matrix); + View_Offset : Matrix_4D_Array_2 := (Id_Matrix, Id_Matrix); + Left_Lens_Center : Float_Array_2 := (0.0, 0.0); + Right_Lens_Center : Float_Array_2 := (0.0, 0.0); + Left_Screen_Center : Float_Array_2 := (0.0, 0.0); + Right_Screen_Center : Float_Array_2 := (0.0, 0.0); + Scale : Float_Array_2 := (0.0, 0.0); + Scale_In : Float_Array_2 := (0.0, 0.0); + end record with Convention => C_Pass_By_Copy; + + No_VR_Stereo_Config : VR_Stereo_Config; + + type File_Path_List is record + Capacity : Natural := 0; + Count : Natural := 0; + Paths : Pointer := null; + end record with Convention => C_Pass_By_Copy; + + type Integer_Array_4 is array (0 .. 3) of Integer; + + type Automation_Event is record + Frame : Natural := 0; + Kind : Natural := 0; + Parameters : Integer_Array_4 := (0, 0, 0, 0); + end record with Convention => C_Pass_By_Copy; + + 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; ------------------------------------------------------------------------ - 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); + Version_Major : constant Integer := 5; + Version_Minor : constant Integer := 1; + Version_Patch : constant Integer := 0; + Version : aliased constant String := "5.1-dev"; + + Pi : constant Float := 3.14159265358979323846; + Tau : constant Float := 2.0 * Pi; + Degree_To_Radius : constant Float := Pi / 180.0; + Radius_To_Degree : constant Float := 180.0 / Pi; + + Light_Gray : constant Color := (200, 200, 200, 255); + Gray : constant Color := (130, 130, 130, 255); + Dark_Gray : constant Color := (80, 80, 80, 255); + Yellow : constant Color := (253, 249, 0, 255); + Gold : constant Color := (255, 203, 0, 255); + Orange : constant Color := (255, 161, 0, 255); + Pink : constant Color := (255, 109, 194, 255); + Red : constant Color := (230, 41, 55, 255); + Maroon : constant Color := (190, 33, 55, 255); + Green : constant Color := (0, 228, 48, 255); + Lime : constant Color := (0, 158, 47, 255); + Dark_Green : constant Color := (0, 117, 44, 255); + Sky_Blue : constant Color := (102, 191, 255, 255); + Blue : constant Color := (0, 121, 241, 255); + Dark_Blue : constant Color := (0, 82, 172, 255); + Purple : constant Color := (200, 122, 255, 255); + Violet : constant Color := (135, 60, 190, 255); + Dark_Purple : constant Color := (112, 31, 126, 255); + Beige : constant Color := (211, 176, 131, 255); + Brown : constant Color := (127, 106, 79, 255); + Dark_Brown : constant Color := (76, 63, 47, 255); + White : constant Color := (255, 255, 255, 255); + Black : constant Color := (0, 0, 0, 255); + Blank : constant Color := (0, 0, 0, 0 ); + Magenta : constant Color := (255, 0, 255, 255); + Ray_White : constant Color := (245, 245, 245, 255); ------------------------------------------------------------------------ - procedure Open_Window ( - Width : Integer := 640; - Height : Integer := 480; - Title : String := "" - ) with - Import => True, - Convention => C, - External_Name => "InitWindow"; - - procedure Close_Window with - Import => True, - Convention => C, - External_Name => "CloseWindow"; - - function Window_Should_Close return Logical with - Import => True, - Convention => C, - External_Name => "WindowShouldClose"; - - function Is_Window_Ready return Logical with - Import => True, - Convention => C, - External_Name => "IsWindowReady"; - - function Is_Window_Fullscreen return Logical with - Import => True, - Convention => C, - External_Name => "IsWindowFullscreen"; - - function Is_Window_Hidden return Logical with - Import => True, - Convention => C, - External_Name => "IsWindowHidden"; - - function Is_Window_Minimized return Logical with - Import => True, - Convention => C, - External_Name => "IsWindowMinimized"; - - function Is_Window_Maximized return Logical with - Import => True, - Convention => C, - External_Name => "IsWindowMaximized"; - - function Is_Window_Focused return Logical with - Import => True, - Convention => C, - External_Name => "IsWindowFocused"; - - function Is_Window_Resized return Logical with - Import => True, - Convention => C, - External_Name => "IsWindowResized"; - - function Is_Window_State ( - Flags : Natural := 0 - ) return Logical with - Import => True, - Convention => C, - External_Name => "IsWindowState"; - - procedure Set_Window_State ( - Flags : Natural := 0 - ) with - Import => True, - Convention => C, - External_Name => "SetWindowState"; - - procedure Clear_Window_State ( - Flags : Natural := 0 - ) with - Import => True, - Convention => C, - External_Name => "ClearWindowState"; - - procedure Toggle_Fullscreen with - Import => True, - Convention => C, - External_Name => "ToggleFullscreen"; - - procedure Toggle_Borderless_Windowed with - Import => True, - Convention => C, - External_Name => "ToggleBorderlessWindowed"; - - procedure Maximize_Window with - Import => True, - Convention => C, - External_Name => "MaximizeWindow"; - - procedure Minimize_Window with - Import => True, - Convention => C, - External_Name => "MinimizeWindow"; - - procedure Restore_Window with - Import => True, - Convention => C, - External_Name => "RestoreWindow"; - - procedure Set_Window_Icon ( - Icon : Image := No_Image - ) with - Import => True, - Convention => C, - External_Name => "SetWindowIcon"; - - procedure Set_Window_Icons ( - Icons : access Image := null; - Count : Integer := 0 - ) with - Import => True, - Convention => C, - External_Name => "SetWindowIcons"; - - procedure Set_Window_Title ( - Title : String := "" - ) with - Import => True, - Convention => C, - External_Name => "SetWindowTitle"; - - procedure Set_Window_Position ( - X : Integer := 0; - Y : Integer := 0 - ) with - Import => True, - Convention => C, - External_Name => "SetWindowPosition"; - - procedure Set_Window_Monitor ( - Monitor : Integer := 0 - ) with - Import => True, - Convention => C, - External_Name => "SetWindowMonitor"; - - procedure Set_Window_Min_Size ( - Width : Integer := 0; - Height : Integer := 0 - ) with - Import => True, - Convention => C, - External_Name => "SetWindowMinSize"; - - procedure Set_Window_Max_Size ( - Width : Integer := 0; - Height : Integer := 0 - ) with - Import => True, - Convention => C, - External_Name => "SetWindowMaxSize"; - - procedure Set_Window_Size ( - Width : Integer := 0; - Height : Integer := 0 - ) with - Import => True, - Convention => C, - External_Name => "SetWindowSize"; - - procedure Set_WindowZ_Opacity ( - Opacity : Float := 0.0 - ) with - Import => True, - Convention => C, - External_Name => "SetWindowOpacity"; - - procedure Set_Window_Focused with - Import => True, - Convention => C, - External_Name => "SetWindowFocused"; - - function Get_Window_Handle return Pointer with - Import => True, - Convention => C, - External_Name => "GetWindowHandle"; - - function Get_Screen_Width return Integer with - Import => True, - Convention => C, - External_Name => "GetScreenWidth"; - - function Get_Screen_Height return Integer with - Import => True, - Convention => C, - External_Name => "GetScreenHeight"; - - function Get_Render_Width return Integer with - Import => True, - Convention => C, - External_Name => "GetRenderWidth"; - - function Get_Render_Height return Integer with - Import => True, - Convention => C, - External_Name => "GetRenderHeight"; - - function Get_Monitor_Count return Integer with - Import => True, - Convention => C, - External_Name => "GetMonitorCount"; - - function Get_Current_Monitor return Integer with - Import => True, - Convention => C, - External_Name => "GetCurrentMonitor"; - - function Get_Monitor_Position ( - Monitor : Integer := 0 - ) return Vector_2D with - Import => True, - Convention => C, - External_Name => "GetMonitorPosition"; - - function Get_Monitor_Width ( - Monitor : Integer := 0 - ) return Integer with - Import => True, - Convention => C, - External_Name => "GetMonitorWidth"; - - function Get_Monitor_Height ( - Monitor : Integer := 0 - ) return Integer with - Import => True, - Convention => C, - External_Name => "GetMonitorHeight"; - - function Get_Monitor_Physical_Width ( - Monitor : Integer := 0 - ) return Integer with - Import => True, - Convention => C, - External_Name => "GetMonitorPhysicalWidth"; - - function Get_Monitor_Physical_Height ( - Monitor : Integer := 0 - ) return Integer with - Import => True, - Convention => C, - External_Name => "GetMonitorPhysicalHeight"; - - function Get_Monitor_Refresh_Rate ( - Monitor : Integer := 0 - ) return Integer with - Import => True, - Convention => C, - External_Name => "GetMonitorRefreshRate"; - - function Get_Window_Position return Vector_2D with - Import => True, - Convention => C, - External_Name => "GetWindowPosition"; - - function Get_Window_Scale_DPI return Vector_2D with - Import => True, - Convention => C, - External_Name => "GetWindowScaleDPI"; - - function Get_Monitor_Name ( - Monitor : Integer := 0 - ) return Pointer with - Import => True, - Convention => C, - External_Name => "GetMonitorName"; - - procedure Set_Clipboard_Text ( - Text : String := "" - ) with - Import => True, - Convention => C, - External_Name => "SetClipboardText"; - - function Get_Clipboard_Text return Pointer with - Import => True, - Convention => C, - External_Name => "GetClipboardText"; - - procedure Enable_Event_Waiting with - Import => True, - Convention => C, - External_Name => "EnableEventWaiting"; - - procedure Disable_Event_Waiting with - Import => True, - Convention => C, - External_Name => "DisableEventWaiting"; - - procedure Show_Cursor with - Import => True, - Convention => C, - External_Name => "ShowCursor"; - - procedure Hide_Cursor with - Import => True, - Convention => C, - External_Name => "HideCursor"; - - function Is_Cursor_Hidden return Logical with - Import => True, - Convention => C, - External_Name => "IsCursorHidden"; - - procedure Enable_Cursor with - Import => True, - Convention => C, - External_Name => "EnableCursor"; - - procedure Disable_Cursor with - Import => True, - Convention => C, - External_Name => "DisableCursor"; - - function Is_Cursor_On_Screen return Logical with - Import => True, - Convention => C, - External_Name => "IsCursorOnScreen"; - - procedure Clear_Background ( - Tint : Color := Ray_White - ) with - Import => True, - Convention => C, - External_Name => "ClearBackground"; - - procedure Begin_Drawing with - Import => True, - Convention => C, - External_Name => "BeginDrawing"; - - procedure End_Drawing with - Import => True, - Convention => C, - External_Name => "EndDrawing"; - - procedure Begin_Mode_2D ( - Camera : Camera_2D - ) with - Import => True, - Convention => C, - External_Name => "BeginMode2D"; - - procedure End_Mode_2D with - Import => True, - Convention => C, - External_Name => "EndMode2D"; - - procedure Begin_Mode_3D ( - Camera : Camera_3D - ) with - Import => True, - Convention => C, - External_Name => "BeginMode3D"; - - procedure End_Mode_3D with - Import => True, - Convention => C, - External_Name => "EndMode3D"; - - procedure Begin_Texture_Mode ( - Data : Render_Texture := No_Render_Texture - ) with - Import => True, - Convention => C, - External_Name => "BeginTextureMode"; - - procedure End_Texture_Mode with - Import => True, - Convention => C, - External_Name => "EndTextureMode"; - - procedure Begin_Shader_Mode ( - Data : Shader := No_Shader - ) with - Import => True, - Convention => C, - External_Name => "BeginShaderMode"; - - procedure End_Shader_Mode with - Import => True, - Convention => C, - External_Name => "EndShaderMode"; - - procedure Begin_Blend_Mode ( - Mode : Blend_Mode := Blend_Alpha - ) with - Import => True, - Convention => C, - External_Name => "BeginBlendMode"; - - procedure End_Blend_Mode with - Import => True, - Convention => C, - External_Name => "EndBlendMode"; - - procedure Begin_Scissor_Mode ( - X : Integer := 0; - Y : Integer := 0; - Width : Integer := 0; - Height : Integer := 0 - ) with - Import => True, - Convention => C, - External_Name => "BeginScissorMode"; - - procedure End_Scissor_Mode with - Import => True, - Convention => C, - External_Name => "EndScissorMode"; - - procedure Begin_VR_Stereo_Mode ( - Config : VR_Stereo_Config := No_VR_Stereo_Config - ) with - Import => True, - Convention => C, - External_Name => "BeginVrStereoMode"; - - procedure End_VR_Stereo_Mode with - Import => True, - Convention => C, - External_Name => "EndVrStereoMode"; - - function Load_VR_Stereo_Config ( - Device : VR_Device_Info := No_VR_Device_Info - ) return VR_Stereo_Config with - Import => True, - Convention => C, - External_Name => "LoadVrStereoConfig"; - - procedure Unload_VR_Stereo_Config ( - Config : VR_Stereo_Config := No_VR_Stereo_Config - ) with - Import => True, - Convention => C, - External_Name => "UnloadVrStereoConfig"; - - function Load_Shader ( - Vertex_Shader_File_Path : String := ""; - Fragment_Shader_File_Path : String := "" - ) return Shader with - Import => True, - Convention => C, - External_Name => "LoadShader"; - - function Load_Shader_From_Memory ( - Vertex_Shader_Code_Path : String := ""; - Fragment_Shader_Code_Path : String := "" - ) return Shader with - Import => True, - Convention => C, - External_Name => "LoadShaderFromMemory"; - - function Is_Shader_Ready ( - Data : Shader := No_Shader - ) return Logical with - Import => True, - Convention => C, - External_Name => "IsShaderReady"; - - function Get_Shader_Location ( - Data : Shader := No_Shader; - Name : String := "" - ) return Integer with - Import => True, - Convention => C, - External_Name => "GetShaderLocation"; - - function Get_Shader_Location_Attribute ( - Data : Shader := No_Shader; - Name : String := "" - ) return Integer with - Import => True, - Convention => C, - External_Name => "GetShaderLocationAttrib"; - - procedure Set_Shader_Value ( - Data : Shader := No_Shader; - Location_Index : Integer := 0; - Value : Pointer := null; - Uniform_Type : Integer := 0 - ) with - Import => True, - Convention => C, - External_Name => "SetShaderValue"; - - procedure Set_Shader_Value_Vector ( - Data : Shader := No_Shader; - Location_Index : Integer := 0; - Value : Pointer := null; - Uniform_Type : Integer := 0; - Count : Integer := 0 - ) with - Import => True, - Convention => C, - External_Name => "SetShaderValueV"; - - procedure Set_Shader_Value_Matrix ( - Data : Shader := No_Shader; - Location_Index : Integer := 0; - Value : Matrix_4D := Id_Matrix - ) with - Import => True, - Convention => C, - External_Name => "SetShaderValueMatrix"; - - procedure Set_Shader_Value_Texture ( - Data : Shader := No_Shader; - Location_Index : Integer := 0; - Value : Texture := No_Texture - ) with - Import => True, - Convention => C, - External_Name => "SetShaderValueTexture"; - - procedure Unload_Shader ( - Data : Shader := No_Shader - ) with - Import => True, - Convention => C, - External_Name => "UnloadShader"; - - function Get_Mouse_Ray ( - Mouse_Position : Vector_2D := (0.0, 0.0); - Camera : Camera_3D := No_Camera_3D - ) return Ray with - Import => True, - Convention => C, - External_Name => "GetMouseRay"; - - function Get_Camera_Matrix_3D ( - Camera : Camera_3D := No_Camera_3D - ) return Matrix_4D with - Import => True, - Convention => C, - External_Name => "GetCameraMatrix"; - - function Get_Camera_Matrix_2D ( - Camera : Camera_2D := No_Camera_2D - ) return Matrix_4D with - Import => True, - Convention => C, - External_Name => "GetCameraMatrix2D"; - - function Get_World_To_Screen_3D ( - Position : Vector_3D := (0.0, 0.0, 0.0); - Camera : Camera_3D := No_Camera_3D - ) return Vector_2D with - Import => True, - Convention => C, - External_Name => "GetWorldToScreen"; - - function Get_Screen_To_World_2D ( - Position : Vector_2D := (0.0, 0.0); - Camera : Camera_2D := No_Camera_2D - ) return Vector_2D with - Import => True, - Convention => C, - External_Name => "GetScreenToWorld2D"; - - function Get_World_To_Screen_Ex ( - Position : Vector_3D := (0.0, 0.0, 0.0); - Camera : Camera_3D := No_Camera_3D; - Width : Integer := 0; - Height : Integer := 0 - ) return Vector_2D with - Import => True, - Convention => C, - External_Name => "GetWorldToScreenEx"; - - function Get_World_To_Screen_2D ( - Position : Vector_2D := (0.0, 0.0); - Camera : Camera_2D := No_Camera_2D - ) return Vector_2D with - Import => True, - Convention => C, - External_Name => "GetWorldToScreen2D"; - - procedure Set_Target_FPS ( - FPS : Integer := 60 - ) with - Import => True, - Convention => C, - External_Name => "SetTargetFPS"; - - function Get_Frame_Time return Float with - Import => True, - Convention => C, - External_Name => "GetFrameTime"; - - function Get_Time return Long_Float with - Import => True, - Convention => C, - External_Name => "GetTime"; - - function Get_FPS return Integer with - Import => True, - Convention => C, - External_Name => "GetFPS"; - - procedure Swap_Screen_Buffer with - Import => True, - Convention => C, - External_Name => "SwapScreenBuffer"; - - procedure Poll_Input_Events with - Import => True, - Convention => C, - External_Name => "PollInputEvents"; - - procedure Wait_Time ( - Seconds : Long_Float := 0.0 - ) with - Import => True, - Convention => C, - External_Name => "WaitTime"; - - procedure Set_Random_Seed ( - Seed : Natural := 16#0EADBEEF# - ) with - Import => True, - Convention => C, - External_Name => "SetRandomSeed"; - - function Get_Random_Value ( - Min : Integer := 0; - Max : Integer := 255 - ) return Integer with - Import => True, - Convention => C, - External_Name => "GetRandomValue"; - - function Load_Random_Sequence ( - Count : Natural := 0; - Min : Integer := 0; - Max : Integer := 0 - ) return access Integer with - Import => True, - Convention => C, - External_Name => "LoadRandomSequence"; - - procedure Unload_Random_Sequence ( - Sequence : access Integer := null - ) with - Import => True, - Convention => C, - External_Name => "UnloadRandomSequence"; - - procedure Take_Screenshot ( - File_Name : String := "Screenshot.png" - ) with - Import => True, - Convention => C, - External_Name => "TakeScreenshot"; - - procedure Set_Config_Flags ( - Flags : Config_Flags := Flag_None - ) with - Import => True, - Convention => C, - External_Name => "SetConfigFlags"; - - procedure Open_URL ( - URL : String := "" - ) with - Import => True, - Convention => C, - External_Name => "OpenURL"; - - --~procedure TraceLog (int logLevel, const char *text, ...) with - --~Import => True, - --~Convention => C, - --~External_Name => "TraceLog"; - - 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"; - - --~function AutomationEventList LoadAutomationEventList (const char *fileName) with - --~Import => True, - --~Convention => C, - --~External_Name => "LoadAutomationEventList"; - - --~procedure UnloadAutomationEventList (AutomationEventList *list) with - --~Import => True, - --~Convention => C, - --~External_Name => "UnloadAutomationEventList"; - - --~function bool ExportAutomationEventList (AutomationEventList list, const char *fileName) with - --~Import => True, - --~Convention => C, - --~External_Name => "ExportAutomationEventList"; - - --~procedure SetAutomationEventList (AutomationEventList *list) with - --~Import => True, - --~Convention => C, - --~External_Name => "SetAutomationEventList"; - - --~procedure SetAutomationEventBaseFrame (int frame) with - --~Import => True, - --~Convention => C, - --~External_Name => "SetAutomationEventBaseFrame"; - - --~procedure StartAutomationEventRecording (void) with - --~Import => True, - --~Convention => C, - --~External_Name => "StartAutomationEventRecording"; - - --~procedure StopAutomationEventRecording (void) with - --~Import => True, - --~Convention => C, - --~External_Name => "StopAutomationEventRecording"; - - --~procedure PlayAutomationEvent (AutomationEvent event) with - --~Import => True, - --~Convention => C, - --~External_Name => "PlayAutomationEvent"; - - function Is_Key_Pressed ( - Key : Keyboard_Key := Key_Null - ) return Logical with - Import => True, - Convention => C, - External_Name => "IsKeyPressed"; - - function Is_Key_Pressed_Repeat ( - Key : Keyboard_Key := Key_Null - ) return Logical with - Import => True, - Convention => C, - External_Name => "IsKeyPressedRepeat"; - - function Is_Key_Down ( - Key : Keyboard_Key := Key_Null - ) return Logical with - Import => True, - Convention => C, - External_Name => "IsKeyDown"; - - function Is_Key_Released ( - Key : Keyboard_Key := Key_Null - ) return Logical with - Import => True, - Convention => C, - External_Name => "IsKeyReleased"; - - function Is_Key_Up ( - Key : Keyboard_Key := Key_Null - ) return Logical with - Import => True, - Convention => C, - External_Name => "IsKeyUp"; - - function Get_Key_Pressed return Keyboard_Key with - Import => True, - Convention => C, - External_Name => "GetKeyPressed"; - - function Get_Character_Pressed return Character with - Import => True, - Convention => C, - External_Name => "GetCharPressed"; - - procedure Set_Exit_Key ( - Key : Keyboard_Key := Key_Escape - ) with - Import => True, - Convention => C, - External_Name => "SetExitKey"; - - --~function bool IsGamepadAvailable (int gamepad) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - --~function const char *GetGamepadName (int gamepad) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - --~function bool IsGamepadButtonPressed (int gamepad, int button) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - --~function bool IsGamepadButtonDown (int gamepad, int button) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - --~function bool IsGamepadButtonReleased (int gamepad, int button) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - --~function bool IsGamepadButtonUp (int gamepad, int button) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - --~function int GetGamepadButtonPressed (void) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - --~function int GetGamepadAxisCount (int gamepad) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - --~function float GetGamepadAxisMovement (int gamepad, int axis) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - --~function int SetGamepadMappings (const char *mappings) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - function Is_Mouse_Button_Pressed ( - Button : Mouse_Button := Mouse_Button_Left - ) return Logical with - Import => True, - Convention => C, - External_Name => "IsMouseButtonPressed"; - - function Is_Mouse_Button_Down ( - Button : Mouse_Button := Mouse_Button_Left - ) return Logical with - Import => True, - Convention => C, - External_Name => "IsMouseButtonDown"; - - function Is_Mouse_Button_Released ( - Button : Mouse_Button := Mouse_Button_Left - ) return Logical with - Import => True, - Convention => C, - External_Name => "IsMouseButtonReleased"; - - function Is_Mouse_Button_Up ( - Button : Mouse_Button := Mouse_Button_Left - ) return Logical with - Import => True, - Convention => C, - External_Name => "IsMouseButtonUp"; - - function Get_Mouse_X return Integer with - Import => True, - Convention => C, - External_Name => "GetMouseX"; - - function Get_Mouse_Y return Integer with - Import => True, - Convention => C, - External_Name => "GetMouseY"; - - function Get_Mouse_Position return Vector_2D with - Import => True, - Convention => C, - External_Name => "GetMousePosition"; - - function Get_Mouse_Delta return Vector_2D with - Import => True, - Convention => C, - External_Name => "GetMouseDelta"; - - procedure Set_Mouse_Position ( - X : Integer := 0; - Y : Integer := 0 - ) with - Import => True, - Convention => C, - External_Name => "SetMousePosition"; - - procedure Set_Mouse_Offset ( - X : Integer := 0; - Y : Integer := 0 - ) with - Import => True, - Convention => C, - External_Name => "SetMouseOffset"; - - procedure Set_Mouse_Scale ( - X : Float := 0.0; - Y : Float := 0.0 - ) with - Import => True, - Convention => C, - External_Name => "SetMouseScale"; - - function Get_Mouse_Wheel_Move return Float with - Import => True, - Convention => C, - External_Name => "GetMouseWheelMove"; - - function Get_Mouse_Wheel_Move_V return Vector_2D with - Import => True, - Convention => C, - External_Name => "GetMouseWheelMoveV"; - - procedure Set_Mouse_Cursor ( - Cursor : Mouse_Cursor := Mouse_Cursor_Default - ) with - Import => True, - Convention => C, - External_Name => "SetMouseCursor"; - - --~function int GetTouchX (void) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - --~function int GetTouchY (void) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - --~function Vector2 GetTouchPosition (int index) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - --~function int GetTouchPointId (int index) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - --~function int GetTouchPointCount (void) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - --~procedure SetGesturesEnabled (unsigned int flags) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - --~function bool IsGestureDetected (unsigned int gesture) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - --~function int GetGestureDetected (void) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - --~function float GetGestureHoldDuration (void) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - --~function Vector2 GetGestureDragVector (void) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - --~function float GetGestureDragAngle (void) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - --~function Vector2 GetGesturePinchVector (void) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - --~function float GetGesturePinchAngle (void) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - procedure Update_Camera ( - Data : access Camera_3D := null; - Mode : Camera_Mode := Camera_First_Person - ) with - Import => True, - Convention => C, - External_Name => "UpdateCamera"; - - procedure Update_Camera_Pro ( - Data : access Camera_3D := null; - Movement : Vector_3D := (0.0, 0.0, 0.0); - Rotation : Vector_3D := (0.0, 0.0, 0.0); - Zoom : Float := 0.0 - ) with - Import => True, - Convention => C, - External_Name => "UpdateCameraPro"; - - procedure Set_Shapes_Texture ( - Data : Texture := No_Texture; - Source : Rectangle := No_Rectangle - ) with - Import => True, - Convention => C, - External_Name => "SetShapesTexture"; - - procedure Draw_Pixel ( - X : Integer := 0; - Y : Integer := 0; - Tint : Color := White - ) with - Import => True, - Convention => C, - External_Name => "DrawPixel"; - - procedure Draw_Pixel_V ( - Position : Vector_2D := (0.0, 0.0); - Tint : Color := White - ) with - Import => True, - Convention => C, - External_Name => "DrawPixelV"; - - procedure Draw_Line ( - X0 : Integer := 0; - Y0 : Integer := 0; - X1 : Integer := 0; - Y1 : Integer := 0; - Tint : Color := Black - ) with - Import => True, - Convention => C, - External_Name => "DrawLine"; - - procedure Draw_Line_V ( - From : Vector_2D := (0.0, 0.0); - To : Vector_2D := (0.0, 0.0); - Tint : Color := Black - ) with - Import => True, - Convention => C, - External_Name => "DrawLineV"; - - procedure Draw_Line_Ex ( - From : Vector_2D := (0.0, 0.0); - To : Vector_2D := (0.0, 0.0); - Thick : Float := 0.0; - Tint : Color := Black - ) with - Import => True, - Convention => C, - External_Name => "DrawLineEx"; - - procedure Draw_Line_Strip ( - Points : access Vector_2D := null; - Point_Count : Natural := 0; - Tint : Color := Black - ) with - Import => True, - Convention => C, - External_Name => "DrawLineStrip"; - - procedure Draw_Line_Bezier ( - From : Vector_2D := (0.0, 0.0); - To : Vector_2D := (0.0, 0.0); - Thick : Float := 0.0; - Tint : Color := Black - ) with - Import => True, - Convention => C, - External_Name => "DrawLineBezier"; - - procedure Draw_Circle ( - X : Integer := 0; - Y : Integer := 0; - Radius : Float := 0.0; - Tint : Color := Black - ) with - Import => True, - Convention => C, - External_Name => "DrawCircle"; - - procedure Draw_Circle_Sector ( - Center : Vector_2D := (0.0, 0.0); - Radius : Float := 0.0; - From : Float := 0.0; - To : Float := 0.0; - Segments : Integer := 0; - Tint : Color := Black - ) with - Import => True, - Convention => C, - External_Name => "DrawCircleSector"; - - procedure Draw_Circle_Sector_Lines ( - Center : Vector_2D := (0.0, 0.0); - Radius : Float := 0.0; - From : Float := 0.0; - To : Float := 0.0; - Segments : Integer := 0; - Tint : Color := Black - ) with - Import => True, - Convention => C, - External_Name => "DrawCircleSectorLines"; - - procedure Draw_Circle_Gradient ( - X : Integer := 0; - Y : Integer := 0; - Radius : Float := 0.0; - Tint_1 : Color := Black; - Tint_2 : Color := White - ) with - Import => True, - Convention => C, - External_Name => "DrawCircleGradient"; - - procedure Draw_Circle_V ( - Center : Vector_2D := (0.0, 0.0); - Radius : Float := 0.0; - Tint : Color := Black - ) with - Import => True, - Convention => C, - External_Name => "DrawCircleV"; - - procedure Draw_Circle_Lines ( - X : Integer := 0; - Y : Integer := 0; - Radius : Float := 0.0; - Tint : Color := Black - ) with - Import => True, - Convention => C, - External_Name => "DrawCircleLines"; - - procedure Draw_Circle_Lines_V ( - Center : Vector_2D := (0.0, 0.0); - Radius : Float := 0.0; - Tint : Color := Black - ) with - Import => True, - Convention => C, - External_Name => "DrawCircleLinesV"; - - procedure Draw_Ellipse ( - X : Integer := 0; - Y : Integer := 0; - Horizontal : Float := 0.0; - Vertical : Float := 0.0; - Tint : Color := Black - ) with - Import => True, - Convention => C, - External_Name => "DrawEllipse"; - - procedure Draw_Ellipse_Lines ( - X : Integer := 0; - Y : Integer := 0; - Horizontal : Float := 0.0; - Vertical : Float := 0.0; - Tint : Color := Black - ) with - Import => True, - Convention => C, - External_Name => "DrawEllipseLines"; - - procedure Draw_Ring ( - Center : Vector_2D := (0.0, 0.0); - Inner_Radius : Float := 0.0; - Outer_Radius : Float := 0.0; - From : Float := 0.0; - To : Float := 0.0; - Segments : Integer := 0; - Tint : Color := Black - ) with - Import => True, - Convention => C, - External_Name => "DrawRing"; - - procedure Draw_Ring_Lines ( - Center : Vector_2D := (0.0, 0.0); - Inner_Radius : Float := 0.0; - Outer_Radius : Float := 0.0; - From : Float := 0.0; - To : Float := 0.0; - Segments : Integer := 0; - Tint : Color := Black - ) with - Import => True, - Convention => C, - External_Name => "DrawRingLines"; - - procedure Draw_Rectangle ( - X : Integer := 0; - Y : Integer := 0; - Width : Integer := 0; - Height : Integer := 0; - Tint : Color := Black - ) with - Import => True, - Convention => C, - External_Name => "DrawRectangle"; - - procedure Draw_Rectangle_V ( - Position : Vector_2D := (0.0, 0.0); - Size : Vector_2D := (0.0, 0.0); - Tint : Color := Black - ) with - Import => True, - Convention => C, - External_Name => "DrawRectangleV"; - - procedure Draw_Rectangle_Rec ( - Data : Rectangle := No_Rectangle; - Tint : Color := Black - ) with - Import => True, - Convention => C, - External_Name => "DrawRectangleRec"; - - procedure Draw_Rectangle_Pro ( - Data : Rectangle := No_Rectangle; - Origin : Vector_2D := (0.0, 0.0); - Rotation : Float := 0.0; - Tint : Color := Black - ) with - Import => True, - Convention => C, - External_Name => "DrawRectanglePro"; - - procedure Draw_Rectangle_Gradient_V ( - X : Integer := 0; - Y : Integer := 0; - Width : Integer := 0; - Height : Integer := 0; - Color_1 : Color := Black; - Color_2 : Color := White - ) with - Import => True, - Convention => C, - External_Name => "DrawRectangleGradientV"; - - procedure Draw_Rectangle_Gradient_H ( - X : Integer := 0; - Y : Integer := 0; - Width : Integer := 0; - Height : Integer := 0; - Color_1 : Color := Black; - Color_2 : Color := White - ) with - Import => True, - Convention => C, - External_Name => "DrawRectangleGradientH"; - - procedure Draw_Rectangle_Gradient_Ex ( - Data : Rectangle := No_Rectangle; - Color_1 : Color := Red; - Color_2 : Color := Green; - Color_3 : Color := Blue; - Color_4 : Color := Black - ) with - Import => True, - Convention => C, - External_Name => "DrawRectangleGradientEx"; - - procedure Draw_Rectangle_Lines ( - X : Integer := 0; - Y : Integer := 0; - Width : Integer := 0; - Height : Integer := 0; - Tint : Color := Black - ) with - Import => True, - Convention => C, - External_Name => "DrawRectangleLines"; - - procedure Draw_Rectangle_Lines_Ex ( - Data : Rectangle := No_Rectangle; - Thickness : Float := 1.0; - Tint : Color := Black - ) with - Import => True, - Convention => C, - External_Name => "DrawRectangleLinesEx"; - - procedure Draw_Rectangle_Rounded ( - Data : Rectangle := No_Rectangle; - Roundness : Float := 1.0; - Segments : Integer := 1; - Tint : Color := Black - ) with - Import => True, - Convention => C, - External_Name => "DrawRectangleRounded"; - - procedure Draw_Rectangle_Rounded_Lines ( - Data : Rectangle := No_Rectangle; - Roundness : Float := 1.0; - Segments : Integer := 1; - Thickness : Float := 1.0; - Tint : Color := Black - ) with - Import => True, - Convention => C, - External_Name => "DrawRectangleRoundedLines"; - - --~procedure 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; - Position : Vector_2D := (0.0, 0.0); - Tint : Color := White - ) with - Import => True, - Convention => C, - External_Name => "DrawTextureV"; - - procedure Draw_Texture_Ex ( - Data : Texture := No_Texture; - Position : Vector_2D := (0.0, 0.0); - Rotation : Float := 0.0; - Scale : Float := 0.0; - Tint : Color := White - ) with - Import => True, - Convention => C, - External_Name => "DrawTextureEx"; - - procedure Draw_Texture_Rec ( - Data : Texture := No_Texture; - Source : Rectangle := No_Rectangle; - Position : Vector_2D := (0.0, 0.0); - Tint : Color := White - ) with - Import => True, - Convention => C, - External_Name => "DrawTextureRec"; - - procedure Draw_Texture_Pro ( - Data : Texture := No_Texture; - Source : Rectangle := No_Rectangle; - Destination : Rectangle := No_Rectangle; - Origin : Vector_2D := (0.0, 0.0); - 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 := ""; - Position : Vector_2D := (0.0, 0.0); - Font_Size : Float := 0.0; - Spacing : Float := 0.0; - Tint : Color := White - ) with - Import => True, - Convention => C, - External_Name => "DrawTextEx"; - - procedure Draw_Text_Pro ( - Data : Font := Get_Font_Default; - Text : String := ""; - Position : Vector_2D := (0.0, 0.0); - Origin : Vector_2D := (0.0, 0.0); - Rotation : Float := 0.0; - Font_Size : Float := 0.0; - Spacing : Float := 0.0; - Tint : Color := White - ) with - Import => True, - Convention => C, - External_Name => "DrawTextPro"; - - --~procedure 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 ( - Position : Vector_3D := (0.0, 0.0, 0.0); - Width : Float := 0.0; - Height : Float := 0.0; - Length : Float := 0.0; - Tint : Color := White - ) with - Import => True, - Convention => C, - External_Name => "DrawCube"; - - --~procedure DrawCubeV (Vector3 position, Vector3 size, Color color) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - procedure Draw_Cube_Wires ( - Position : Vector_3D := (0.0, 0.0, 0.0); - Width : Float := 0.0; - Height : Float := 0.0; - Length : Float := 0.0; - Tint : Color := Black - ) with - Import => True, - Convention => C, - External_Name => "DrawCubeWires"; - - --~procedure 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 ( - Center : Vector_3D := (0.0, 0.0, 0.0); - Size : Vector_2D := (0.0, 0.0); - 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"; - - --~function BoundingBox GetModelBoundingBox (Model model) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - procedure Draw_Model ( - Data : Model := No_Model; - Position : Vector_3D := (0.0, 0.0, 0.0); - Scale : Float := 1.0; - Tint : Color := White - ) with - Import => True, - Convention => C, - External_Name => "DrawModel"; - - procedure Draw_Model_Ex ( - Data : Model := No_Model; - Position : Vector_3D := (0.0, 0.0, 0.0); - Axis : Vector_3D := (0.0, 0.0, 0.0); - Angle : Float := 0.0; - Scale : Vector_3D := (1.0, 1.0, 1.0); - Tint : Color := White - ) with - Import => True, - Convention => C, - External_Name => "DrawModelEx"; - - --~procedure DrawModelWires (Model model, Vector3 position, float scale, Color tint) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - procedure Draw_Model_Wires_Ex ( - Data : Model := No_Model; - Position : Vector_3D := (0.0, 0.0, 0.0); - Axis : Vector_3D := (0.0, 0.0, 0.0); - Angle : Float := 0.0; - Scale : Vector_3D := (1.0, 1.0, 1.0); - Tint : Color := White - ) with - Import => True, - Convention => C, - External_Name => "DrawModelWiresEx"; - - --~procedure DrawBoundingBox (BoundingBox box, Color color) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - procedure Draw_Billboard ( - Camera : Camera_3D := No_Camera_3D; - Billboard : Texture := No_Texture; - Position : Vector_3D := (0.0, 0.0, 0.0); - Size : Float := 0.0; - Tint : Color := White - ) with - Import => True, - Convention => C, - External_Name => "DrawBillboard"; - - --~procedure DrawBillboardRec (Camera camera, Texture2D texture, Rectangle source, Vector3 position, Vector2 size, Color tint) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - procedure Draw_Billboard_Pro ( - Camera : Camera_3D := No_Camera_3D; - Billboard : Texture := No_Texture; - Source : Rectangle := No_Rectangle; - Position : Vector_3D := (0.0, 0.0, 0.0); - Up : Vector_3D := (0.0, 0.0, 0.0); - Size : Vector_2D := (0.0, 0.0); - Origin : Vector_2D := (0.0, 0.0); - Rotation : Float := 0.0; - Tint : Color := White - ) with - Import => True, - Convention => C, - External_Name => "DrawBillboardPro"; - - procedure Upload_Mesh ( - Data : access Mesh := null; - Dynamic : Logical := False - ) with - Import => True, - Convention => C, - External_Name => "UploadMesh"; - - --~procedure UpdateMeshBuffer (Mesh mesh, int index, const void *data, int dataSize, int offset) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - --~procedure UnloadMesh (Mesh mesh) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - procedure Draw_Mesh ( - Data : Mesh := No_Mesh; - Pixels : Material := No_Material; - Transform : Matrix_4D := (others => 0.0) - ) with - Import => True, - Convention => C, - External_Name => "DrawMesh"; - - --~procedure DrawMeshInstanced (Mesh mesh, Material material, const Matrix *transforms, int instances) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - --~function BoundingBox GetMeshBoundingBox (Mesh mesh) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - --~procedure GenMeshTangents (Mesh *mesh) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - --~function bool ExportMesh (Mesh mesh, const char *fileName) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - --~function bool ExportMeshAsCode (Mesh mesh, const char *fileName) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - --~function Mesh GenMeshPoly (int sides, float radius) with - --~Import => True, - --~Convention => C, - --~External_Name => ""; - - function Gen_Mesh_Plane ( - Width : Float := 1.0; - Height : Float := 1.0; - X : Integer := 1; - Z : Integer := 1 - ) return Mesh with - Import => True, - Convention => C, - External_Name => "GenMeshPlane"; - - function Gen_Mesh_Cube ( - Width : Float := 0.0; - Height : Float := 0.0; - Length : Float := 0.0 - ) return Mesh with - Import => True, - Convention => C, - External_Name => "GenMeshCube"; - - function Gen_Mesh_Sphere ( - Radius : Float := 0.0; - Rings : Integer := 0; - Slices : Integer := 0 - ) return Mesh with - Import => True, - Convention => C, - External_Name => "GenMeshSphere"; - - function Gen_Mesh_Hemisphere ( - Radius : Float := 0.0; - Rings : Integer := 0; - Slices : Integer := 0 - ) return Mesh with - Import => True, - Convention => C, - External_Name => "GenMeshHemiSphere"; - - function Gen_Mesh_Cylinder ( - Radius : Float := 0.0; - Height : Float := 0.0; - Slices : Integer := 0 - ) return Mesh with - Import => True, - Convention => C, - External_Name => "GenMeshCylinder"; - - function Gen_Mesh_Cone ( - Radius : Float := 0.0; - Height : Float := 0.0; - Slices : Integer := 0 - ) return Mesh with - Import => True, - Convention => C, - External_Name => "GenMeshCone"; - - function Gen_Mesh_Torus ( - Radius : Float := 0.0; - Size : Float := 0.0; - Segments : Integer := 0; - Sides : Integer := 0 - ) return Mesh with - Import => True, - Convention => C, - External_Name => "GenMeshTorus"; - - function Gen_Mesh_Knot ( - Radius : Float := 0.0; - Size : Float := 0.0; - Segments : Integer := 0; - Sides : Integer := 0 - ) return Mesh with - Import => True, - Convention => C, - External_Name => "GenMeshKnot"; - - function Gen_Mesh_Height_Map ( - Height_Map : Image := No_Image; - Size : Vector_3D := (0.0, 0.0, 0.0) - ) return Mesh with - Import => True, - Convention => C, - External_Name => "GenMeshHeightmap"; - - function Gen_Mesh_Cubic_Map ( - Cubic_Map : Image := No_Image; - Size : Vector_3D := (0.0, 0.0, 0.0) - ) return Mesh with - Import => True, - Convention => C, - External_Name => "GenMeshCubicmap"; - - function Load_Materials ( - File_Name : String := ""; - Counts : access Integer := null - ) return access Material with - Import => True, - Convention => C, - External_Name => "LoadMaterials"; - - function Load_Material_Default return Material with - Import => True, - Convention => C, - External_Name => "LoadMaterialDefault"; - - function Is_Material_Ready ( - Data : Material := No_Material - ) return Logical with - Import => True, - Convention => C, - External_Name => "IsMaterialReady"; - - procedure Unload_Material ( - Data : Material := No_Material - ) with - Import => True, - Convention => C, - External_Name => "UnloadMaterial"; - - procedure Set_Material_Texture ( - Data : access Material := null; - Kind : Material_Map_Index := Material_Map_Height; - This : Texture := No_Texture - ) with - Import => True, - Convention => C, - External_Name => "SetMaterialTexture"; - - procedure Set_Model_Mesh_Material ( - Data : access Model := null; - Mesh_Id : Integer := 0; - Material_Id : Integer := 0 - ) with - Import => True, - Convention => C, - External_Name => "SetModelMeshMaterial"; - - function Load_Model_Animations ( - File_Name : String := ""; - Counts : access Integer := null - ) return access Model_Animation with - Import => True, - Convention => C, - External_Name => "LoadModelAnimations"; - - procedure Update_Model_Animation ( - Data : Model := No_Model; - Animation : Model_Animation := No_Model_Animation; - Frame : Integer := 0 - ) with - Import => True, - Convention => C, - External_Name => "UpdateModelAnimation"; - - procedure Unload_Model_Animation ( - Animation : Model_Animation := No_Model_Animation - ) with - Import => True, - Convention => C, - External_Name => "UnloadModelAnimation"; - - procedure Unload_Model_Animations ( - Animations : access Model_Animation := null; - Animation_Count : Natural := 0 - ) with - Import => True, - Convention => C, - External_Name => "UnloadModelAnimations"; - - function Is_Model_Animation_Valid ( - Data : Model := No_Model; - Animation : Model_Animation := No_Model_Animation - ) return Logical with - Import => True, - Convention => C, - External_Name => "IsModelAnimationValid"; - - function Check_Collision_Spheres ( - Center_1 : Vector_3D := (0.0, 0.0, 0.0); - Radius_1 : Float := 0.0; - Center_2 : Vector_3D := (0.0, 0.0, 0.0); - Radius_2 : Float := 0.0 - ) return Logical with - Import => True, - Convention => C, - External_Name => "CheckCollisionSpheres"; - - function Check_Collision_Boxes ( - Box_1 : Bounding_Box := No_Bounding_Box; - Box_2 : Bounding_Box := No_Bounding_Box - ) return Logical with - Import => True, - Convention => C, - External_Name => "CheckCollisionBoxes"; - - function Check_Collision_Box_Sphere ( - Box : Bounding_Box := No_Bounding_Box; - Center : Vector_3D := (0.0, 0.0, 0.0); - Radius : Float := 0.0 - ) return Logical with - Import => True, - Convention => C, - External_Name => "CheckCollisionBoxSphere"; - - function Get_Ray_Collision_Sphere ( - Hit : Ray := No_Ray; - Center : Vector_3D := (0.0, 0.0, 0.0); - Radius : Float := 0.0 - ) return Ray_Collision with - Import => True, - Convention => C, - External_Name => "GetRayCollisionSphere"; - - function Get_Ray_Collision_Box ( - Hit : Ray := No_Ray; - Box : Bounding_Box := No_Bounding_Box - ) return Ray_Collision with - Import => True, - Convention => C, - External_Name => "GetRayCollisionBox"; - - function Get_Ray_Collision_Mesh ( - Hit : Ray := No_Ray; - Data : Mesh := No_Mesh; - Transform : Matrix_4D := Id_Matrix - ) return Ray_Collision with - Import => True, - Convention => C, - External_Name => "GetRayCollisionMesh"; - - function Get_Ray_Collision_Triangle ( - Hit : Ray := No_Ray; - Point_1 : Vector_3D := (0.0, 0.0, 0.0); - Point_2 : Vector_3D := (0.0, 0.0, 0.0); - Point_3 : Vector_3D := (0.0, 0.0, 0.0) - ) return Ray_Collision with - Import => True, - Convention => C, - External_Name => "GetRayCollisionTriangle"; - - function Get_Ray_Collision_Quad ( - Hit : Ray := No_Ray; - Point_1 : Vector_3D := (0.0, 0.0, 0.0); - Point_2 : Vector_3D := (0.0, 0.0, 0.0); - Point_3 : Vector_3D := (0.0, 0.0, 0.0); - Point_4 : Vector_3D := (0.0, 0.0, 0.0) - ) return Ray_Collision with - Import => True, - Convention => C, - External_Name => "GetRayCollisionQuad"; - - procedure Open_Audio_Device with - Import => True, - Convention => C, - External_Name => "InitAudioDevice"; - - procedure Close_Audio_Device with - Import => True, - Convention => C, - External_Name => "CloseAudioDevice"; - - function Is_Audio_Device_Ready return Logical with - Import => True, - Convention => C, - External_Name => "IsAudioDeviceReady"; - - procedure Set_Master_Volume (Volume : Float := 1.0) with - Import => True, - Convention => C, - External_Name => "SetMasterVolume"; - - function Get_Master_Volume return Float with - Import => True, - Convention => C, - External_Name => "GetMasterVolume"; - - function Load_Wave ( - File_Name : String := "" - ) return Wave with - Import => True, - Convention => C, - External_Name => "LoadWave"; - - function Load_Wave_From_Memory ( - File_Type : String := ""; - File_Data : Pointer := null; - Data_Size : Natural := 0 - ) return Wave with - Import => True, - Convention => C, - External_Name => "LoadWaveFromMemory"; - - function Is_Wave_Ready ( - Data : Wave := No_Wave - ) return Logical with - Import => True, - Convention => C, - External_Name => "IsWaveReady"; - - function Load_Sound ( - File_Name : String := "" - ) return Sound with - Import => True, - Convention => C, - External_Name => "LoadSound"; - - function Load_Sound_From_Wave ( - Data : Wave := No_Wave - ) return Sound with - Import => True, - Convention => C, - External_Name => "LoadSoundFromWave"; - - function Load_Sound_Alias ( - Source : Sound := No_Sound - ) return Sound with - Import => True, - Convention => C, - External_Name => "LoadSoundAlias"; - - function Is_Sound_Ready ( - Source : Sound := No_Sound - ) return Logical with - Import => True, - Convention => C, - External_Name => "IsSoundReady"; - - procedure Update_Sound ( - Source : Sound := No_Sound; - Data : Pointer := null; - Sample_Count : Integer := 0 - ) with - Import => True, - Convention => C, - External_Name => "UpdateSound"; - - procedure Unload_Wave ( - Data : Wave := No_Wave - ) with - Import => True, - Convention => C, - External_Name => "UnloadWave"; - - procedure Unload_Sound ( - Data : Sound := No_Sound - ) with - Import => True, - Convention => C, - External_Name => "UnloadSound"; - - procedure Unload_Sound_Alias ( - Alias : Sound := No_Sound - ) with - Import => True, - Convention => C, - External_Name => "UnloadSoundAlias"; - - function Export_Wave ( - Data : Wave := No_Wave; - File_Name : String := "" - ) return Logical with - Import => True, - Convention => C, - External_Name => "ExportWave"; - - function Export_Wave_As_Code ( - Data : Wave := No_Wave; - File_Name : String := "" - ) return Logical with - Import => True, - Convention => C, - External_Name => "ExportWaveAsCode"; - - procedure Play_Sound ( - Data : Sound := No_Sound - ) with - Import => True, - Convention => C, - External_Name => "PlaySound"; - - procedure Stop_Sound ( - Data : Sound := No_Sound - ) with - Import => True, - Convention => C, - External_Name => "StopSound"; - - procedure Pause_Sound ( - Data : Sound := No_Sound - ) with - Import => True, - Convention => C, - External_Name => "PauseSound"; - - procedure Resume_Sound ( - Data : Sound := No_Sound - ) with - Import => True, - Convention => C, - External_Name => "ResumeSound"; - - function Is_Sound_Playing ( - Data : Sound := No_Sound - ) return Logical with - Import => True, - Convention => C, - External_Name => "IsSoundPlaying"; - - procedure Set_Sound_Volume ( - Data : Sound := No_Sound; - Volume : Float := 0.0 - ) with - Import => True, - Convention => C, - External_Name => "SetSoundVolume"; - - procedure Set_Sound_Pitch ( - Data : Sound := No_Sound; - Pitch : Float := 0.0 - ) with - Import => True, - Convention => C, - External_Name => "SetSoundPitch"; - - procedure Set_Sound_Pan ( - Data : Sound := No_Sound; - Pan : Float := 0.0 - ) with - Import => True, - Convention => C, - External_Name => "SetSoundPan"; - - function Wave_Copy ( - Data : Wave := No_Wave - ) return Wave with - Import => True, - Convention => C, - External_Name => "WaveCopy"; - - procedure Wave_Crop ( - Data : access Wave := null; - First_Sample : Integer := 0; - Final_Sample : Integer := 0 - ) with - Import => True, - Convention => C, - External_Name => "WaveCrop"; - - procedure Wave_Format ( - Data : access Wave := null; - Sample_Rate : Integer := 0; - Sample_Size : Integer := 0; - Channels : Integer := 0 - ) with - Import => True, - Convention => C, - External_Name => "WaveFormat"; - - function Load_Wave_Samples ( - Data : Wave := No_Wave - ) return access Float with - Import => True, - Convention => C, - External_Name => "LoadWaveSamples"; - - procedure Unload_Wave_Samples ( - Samples : access Float := null - ) with - Import => True, - Convention => C, - External_Name => "UnloadWaveSamples"; - - function Load_Music_Stream ( - File_Name : String := "" - ) return Music with - Import => True, - Convention => C, - External_Name => "LoadMusicStream"; - - function Load_Music_Stream_From_Memory ( - File_Type : String := ""; - Data : Pointer := null; - Data_Size : Integer := 0 - ) return Music with - Import => True, - Convention => C, - External_Name => "LoadMusicStreamFromMemory"; - - function Is_Music_Ready ( - Data : Music := No_Music - ) return Logical with - Import => True, - Convention => C, - External_Name => "IsMusicReady"; - - procedure Unload_Music_Stream ( - Data : Music := No_Music - ) with - Import => True, - Convention => C, - External_Name => "UnloadMusicStream"; - - procedure Play_Music_Stream ( - Data : Music := No_Music - ) with - Import => True, - Convention => C, - External_Name => "PlayMusicStream"; - - function Is_Music_Stream_Playing ( - Data : Music := No_Music - ) return Logical with - Import => True, - Convention => C, - External_Name => "IsMusicStreamPlaying"; - - procedure Update_Music_Stream ( - Data : Music := No_Music - ) with - Import => True, - Convention => C, - External_Name => "UpdateMusicStream"; - - procedure Stop_Music_Stream ( - Data : Music := No_Music - ) with - Import => True, - Convention => C, - External_Name => "StopMusicStream"; - - procedure Pause_Music_Stream ( - Data : Music := No_Music - ) with - Import => True, - Convention => C, - External_Name => "PauseMusicStream"; - - procedure Resume_Music_Stream ( - Data : Music := No_Music - ) with - Import => True, - Convention => C, - External_Name => "ResumeMusicStream"; - - procedure Seek_Music_Stream ( - Data : Music := No_Music; - Position : Float := 0.0 - ) with - Import => True, - Convention => C, - External_Name => "SeekMusicStream"; - - procedure Set_Music_Volume ( - Data : Music := No_Music; - Volume : Float := 0.0 - ) with - Import => True, - Convention => C, - External_Name => "SetMusicVolume"; - - procedure Set_Music_Pitch ( - Data : Music := No_Music; - Pitch : Float := 0.0 - ) with - Import => True, - Convention => C, - External_Name => "SetMusicPitch"; - - procedure Set_Music_Pan ( - Data : Music := No_Music; - Pan : Float := 0.0 - ) with - Import => True, - Convention => C, - External_Name => "SetMusicPan"; - - function Get_Music_Time_Length ( - Data : Music := No_Music - ) return Float with - Import => True, - Convention => C, - External_Name => "GetMusicTimeLength"; - - function Get_Music_Time_Played ( - Data : Music := No_Music - ) return Float with - Import => True, - Convention => C, - External_Name => "GetMusicTimePlayed"; - - function Load_Audio_Stream ( - Sample_Rate : Natural := 0; - Sample_Size : Natural := 0; - Channels : Natural := 0 - ) return Audio_Stream with - Import => True, - Convention => C, - External_Name => "LoadAudioStream"; - - function Is_Audio_Stream_Ready ( - Data : Audio_Stream := No_Audio_Stream - ) return Logical with - Import => True, - Convention => C, - External_Name => "IsAudioStreamReady"; - - procedure Unload_Audio_Stream ( - Data : Audio_Stream := No_Audio_Stream - ) with - Import => True, - Convention => C, - External_Name => "UnloadAudioStream"; - - procedure Update_Audio_Stream ( - Data : Audio_Stream := No_Audio_Stream; - Raw_Data : Pointer := null; - Frame_Count : Integer := 0 - ) with - Import => True, - Convention => C, - External_Name => "UpdateAudioStream"; - - function Is_Audio_Stream_Processed ( - Data : Audio_Stream := No_Audio_Stream - ) return Logical with - Import => True, - Convention => C, - External_Name => "IsAudioStreamProcessed"; - - procedure Play_Audio_Stream ( - Data : Audio_Stream := No_Audio_Stream - ) with - Import => True, - Convention => C, - External_Name => "PlayAudioStream"; - - procedure Pause_Audio_Stream ( - Data : Audio_Stream := No_Audio_Stream - ) with - Import => True, - Convention => C, - External_Name => "PauseAudioStream"; - - procedure Resume_Audio_Stream ( - Data : Audio_Stream := No_Audio_Stream - ) with - Import => True, - Convention => C, - External_Name => "ResumeAudioStream"; - - function Is_Audio_Stream_Playing ( - Data : Audio_Stream := No_Audio_Stream - ) return Logical with - Import => True, - Convention => C, - External_Name => "IsAudioStreamPlaying"; - - procedure Stop_Audio_Stream ( - Data : Audio_Stream := No_Audio_Stream - ) with - Import => True, - Convention => C, - External_Name => "StopAudioStream"; - - procedure Set_Audio_Stream_Volume ( - Data : Audio_Stream := No_Audio_Stream; - Volume : Float := 0.0 - ) with - Import => True, - Convention => C, - External_Name => "SetAudioStreamVolume"; - - procedure Set_Audio_Stream_Pitch ( - Data : Audio_Stream := No_Audio_Stream; - Pitch : Float := 0.0 - ) with - Import => True, - Convention => C, - External_Name => "SetAudioStreamPitch"; - - procedure Set_Audio_Stream_Pan ( - Data : Audio_Stream := No_Audio_Stream; - Pan : Float := 0.0 - ) with - Import => True, - Convention => C, - External_Name => "SetAudioStreamPan"; - - procedure Set_Audio_Stream_Buffer_Size_Default ( - Size : Integer := 0 - ) with - Import => True, - Convention => C, - External_Name => "SetAudioStreamBufferSizeDefault"; - - procedure Attach_Audio_Stream_Processor ( - Stream : Audio_Stream := No_Audio_Stream; - Processor : Pointer := null - ) with - Import => True, - Convention => C, - External_Name => "AttachAudioStreamProcessor"; - - procedure Detach_Audio_Stream_Processor ( - Stream : Audio_Stream := No_Audio_Stream; - Processor : Pointer := null - ) with - Import => True, - Convention => C, - External_Name => "DetachAudioStreamProcessor"; - - procedure Attach_Audio_Mixed_Processor ( - Processor : Pointer := null - ) with - Import => True, - Convention => C, - External_Name => "AttachAudioMixedProcessor"; - - procedure Detach_Audio_Mixed_Processor ( - Processor : Pointer := null - ) with - Import => True, - Convention => C, - External_Name => "DetachAudioMixedProcessor"; + procedure Open_Window ( + Width : Integer := 640; + Height : Integer := 480; + Title : String := "" + ) with + Import => True, + Convention => C, + External_Name => "InitWindow"; + + procedure Close_Window with + Import => True, + Convention => C, + External_Name => "CloseWindow"; + + function Window_Should_Close return Logical with + Import => True, + Convention => C, + External_Name => "WindowShouldClose"; + + function Is_Window_Ready return Logical with + Import => True, + Convention => C, + External_Name => "IsWindowReady"; + + function Is_Window_Fullscreen return Logical with + Import => True, + Convention => C, + External_Name => "IsWindowFullscreen"; + + function Is_Window_Hidden return Logical with + Import => True, + Convention => C, + External_Name => "IsWindowHidden"; + + function Is_Window_Minimized return Logical with + Import => True, + Convention => C, + External_Name => "IsWindowMinimized"; + + function Is_Window_Maximized return Logical with + Import => True, + Convention => C, + External_Name => "IsWindowMaximized"; + + function Is_Window_Focused return Logical with + Import => True, + Convention => C, + External_Name => "IsWindowFocused"; + + function Is_Window_Resized return Logical with + Import => True, + Convention => C, + External_Name => "IsWindowResized"; + + function Is_Window_State ( + Flags : Natural := 0 + ) return Logical with + Import => True, + Convention => C, + External_Name => "IsWindowState"; + + procedure Set_Window_State ( + Flags : Natural := 0 + ) with + Import => True, + Convention => C, + External_Name => "SetWindowState"; + + procedure Clear_Window_State ( + Flags : Natural := 0 + ) with + Import => True, + Convention => C, + External_Name => "ClearWindowState"; + + procedure Toggle_Fullscreen with + Import => True, + Convention => C, + External_Name => "ToggleFullscreen"; + + procedure Toggle_Borderless_Windowed with + Import => True, + Convention => C, + External_Name => "ToggleBorderlessWindowed"; + + procedure Maximize_Window with + Import => True, + Convention => C, + External_Name => "MaximizeWindow"; + + procedure Minimize_Window with + Import => True, + Convention => C, + External_Name => "MinimizeWindow"; + + procedure Restore_Window with + Import => True, + Convention => C, + External_Name => "RestoreWindow"; + + procedure Set_Window_Icon ( + Icon : Image := No_Image + ) with + Import => True, + Convention => C, + External_Name => "SetWindowIcon"; + + procedure Set_Window_Icons ( + Icons : access Image := null; + Count : Integer := 0 + ) with + Import => True, + Convention => C, + External_Name => "SetWindowIcons"; + + procedure Set_Window_Title ( + Title : String := "" + ) with + Import => True, + Convention => C, + External_Name => "SetWindowTitle"; + + procedure Set_Window_Position ( + X : Integer := 0; + Y : Integer := 0 + ) with + Import => True, + Convention => C, + External_Name => "SetWindowPosition"; + + procedure Set_Window_Monitor ( + Monitor : Integer := 0 + ) with + Import => True, + Convention => C, + External_Name => "SetWindowMonitor"; + + procedure Set_Window_Min_Size ( + Width : Integer := 0; + Height : Integer := 0 + ) with + Import => True, + Convention => C, + External_Name => "SetWindowMinSize"; + + procedure Set_Window_Max_Size ( + Width : Integer := 0; + Height : Integer := 0 + ) with + Import => True, + Convention => C, + External_Name => "SetWindowMaxSize"; + + procedure Set_Window_Size ( + Width : Integer := 0; + Height : Integer := 0 + ) with + Import => True, + Convention => C, + External_Name => "SetWindowSize"; + + procedure Set_WindowZ_Opacity ( + Opacity : Float := 0.0 + ) with + Import => True, + Convention => C, + External_Name => "SetWindowOpacity"; + + procedure Set_Window_Focused with + Import => True, + Convention => C, + External_Name => "SetWindowFocused"; + + function Get_Window_Handle return Pointer with + Import => True, + Convention => C, + External_Name => "GetWindowHandle"; + + function Get_Screen_Width return Integer with + Import => True, + Convention => C, + External_Name => "GetScreenWidth"; + + function Get_Screen_Height return Integer with + Import => True, + Convention => C, + External_Name => "GetScreenHeight"; + + function Get_Render_Width return Integer with + Import => True, + Convention => C, + External_Name => "GetRenderWidth"; + + function Get_Render_Height return Integer with + Import => True, + Convention => C, + External_Name => "GetRenderHeight"; + + function Get_Monitor_Count return Integer with + Import => True, + Convention => C, + External_Name => "GetMonitorCount"; + + function Get_Current_Monitor return Integer with + Import => True, + Convention => C, + External_Name => "GetCurrentMonitor"; + + function Get_Monitor_Position ( + Monitor : Integer := 0 + ) return Vector_2D with + Import => True, + Convention => C, + External_Name => "GetMonitorPosition"; + + function Get_Monitor_Width ( + Monitor : Integer := 0 + ) return Integer with + Import => True, + Convention => C, + External_Name => "GetMonitorWidth"; + + function Get_Monitor_Height ( + Monitor : Integer := 0 + ) return Integer with + Import => True, + Convention => C, + External_Name => "GetMonitorHeight"; + + function Get_Monitor_Physical_Width ( + Monitor : Integer := 0 + ) return Integer with + Import => True, + Convention => C, + External_Name => "GetMonitorPhysicalWidth"; + + function Get_Monitor_Physical_Height ( + Monitor : Integer := 0 + ) return Integer with + Import => True, + Convention => C, + External_Name => "GetMonitorPhysicalHeight"; + + function Get_Monitor_Refresh_Rate ( + Monitor : Integer := 0 + ) return Integer with + Import => True, + Convention => C, + External_Name => "GetMonitorRefreshRate"; + + function Get_Window_Position return Vector_2D with + Import => True, + Convention => C, + External_Name => "GetWindowPosition"; + + function Get_Window_Scale_DPI return Vector_2D with + Import => True, + Convention => C, + External_Name => "GetWindowScaleDPI"; + + function Get_Monitor_Name ( + Monitor : Integer := 0 + ) return Pointer with + Import => True, + Convention => C, + External_Name => "GetMonitorName"; + + procedure Set_Clipboard_Text ( + Text : String := "" + ) with + Import => True, + Convention => C, + External_Name => "SetClipboardText"; + + function Get_Clipboard_Text return Pointer with + Import => True, + Convention => C, + External_Name => "GetClipboardText"; + + procedure Enable_Event_Waiting with + Import => True, + Convention => C, + External_Name => "EnableEventWaiting"; + + procedure Disable_Event_Waiting with + Import => True, + Convention => C, + External_Name => "DisableEventWaiting"; + + procedure Show_Cursor with + Import => True, + Convention => C, + External_Name => "ShowCursor"; + + procedure Hide_Cursor with + Import => True, + Convention => C, + External_Name => "HideCursor"; + + function Is_Cursor_Hidden return Logical with + Import => True, + Convention => C, + External_Name => "IsCursorHidden"; + + procedure Enable_Cursor with + Import => True, + Convention => C, + External_Name => "EnableCursor"; + + procedure Disable_Cursor with + Import => True, + Convention => C, + External_Name => "DisableCursor"; + + function Is_Cursor_On_Screen return Logical with + Import => True, + Convention => C, + External_Name => "IsCursorOnScreen"; + + procedure Clear_Background ( + Tint : Color := Ray_White + ) with + Import => True, + Convention => C, + External_Name => "ClearBackground"; + + procedure Begin_Drawing with + Import => True, + Convention => C, + External_Name => "BeginDrawing"; + + procedure End_Drawing with + Import => True, + Convention => C, + External_Name => "EndDrawing"; + + procedure Begin_Mode_2D ( + Camera : Camera_2D + ) with + Import => True, + Convention => C, + External_Name => "BeginMode2D"; + + procedure End_Mode_2D with + Import => True, + Convention => C, + External_Name => "EndMode2D"; + + procedure Begin_Mode_3D ( + Camera : Camera_3D + ) with + Import => True, + Convention => C, + External_Name => "BeginMode3D"; + + procedure End_Mode_3D with + Import => True, + Convention => C, + External_Name => "EndMode3D"; + + procedure Begin_Texture_Mode ( + Data : Render_Texture := No_Render_Texture + ) with + Import => True, + Convention => C, + External_Name => "BeginTextureMode"; + + procedure End_Texture_Mode with + Import => True, + Convention => C, + External_Name => "EndTextureMode"; + + procedure Begin_Shader_Mode ( + Data : Shader := No_Shader + ) with + Import => True, + Convention => C, + External_Name => "BeginShaderMode"; + + procedure End_Shader_Mode with + Import => True, + Convention => C, + External_Name => "EndShaderMode"; + + procedure Begin_Blend_Mode ( + Mode : Blend_Mode := Blend_Alpha + ) with + Import => True, + Convention => C, + External_Name => "BeginBlendMode"; + + procedure End_Blend_Mode with + Import => True, + Convention => C, + External_Name => "EndBlendMode"; + + procedure Begin_Scissor_Mode ( + X : Integer := 0; + Y : Integer := 0; + Width : Integer := 0; + Height : Integer := 0 + ) with + Import => True, + Convention => C, + External_Name => "BeginScissorMode"; + + procedure End_Scissor_Mode with + Import => True, + Convention => C, + External_Name => "EndScissorMode"; + + procedure Begin_VR_Stereo_Mode ( + Config : VR_Stereo_Config := No_VR_Stereo_Config + ) with + Import => True, + Convention => C, + External_Name => "BeginVrStereoMode"; + + procedure End_VR_Stereo_Mode with + Import => True, + Convention => C, + External_Name => "EndVrStereoMode"; + + function Load_VR_Stereo_Config ( + Device : VR_Device_Info := No_VR_Device_Info + ) return VR_Stereo_Config with + Import => True, + Convention => C, + External_Name => "LoadVrStereoConfig"; + + procedure Unload_VR_Stereo_Config ( + Config : VR_Stereo_Config := No_VR_Stereo_Config + ) with + Import => True, + Convention => C, + External_Name => "UnloadVrStereoConfig"; + + function Load_Shader ( + Vertex_Shader_File_Path : String := ""; + Fragment_Shader_File_Path : String := "" + ) return Shader with + Import => True, + Convention => C, + External_Name => "LoadShader"; + + function Load_Shader_From_Memory ( + Vertex_Shader_Code_Path : String := ""; + Fragment_Shader_Code_Path : String := "" + ) return Shader with + Import => True, + Convention => C, + External_Name => "LoadShaderFromMemory"; + + function Is_Shader_Ready ( + Data : Shader := No_Shader + ) return Logical with + Import => True, + Convention => C, + External_Name => "IsShaderReady"; + + function Get_Shader_Location ( + Data : Shader := No_Shader; + Name : String := "" + ) return Integer with + Import => True, + Convention => C, + External_Name => "GetShaderLocation"; + + function Get_Shader_Location_Attribute ( + Data : Shader := No_Shader; + Name : String := "" + ) return Integer with + Import => True, + Convention => C, + External_Name => "GetShaderLocationAttrib"; + + procedure Set_Shader_Value ( + Data : Shader := No_Shader; + Location_Index : Integer := 0; + Value : Pointer := null; + Uniform_Type : Integer := 0 + ) with + Import => True, + Convention => C, + External_Name => "SetShaderValue"; + + procedure Set_Shader_Value_Vector ( + Data : Shader := No_Shader; + Location_Index : Integer := 0; + Value : Pointer := null; + Uniform_Type : Integer := 0; + Count : Integer := 0 + ) with + Import => True, + Convention => C, + External_Name => "SetShaderValueV"; + + procedure Set_Shader_Value_Matrix ( + Data : Shader := No_Shader; + Location_Index : Integer := 0; + Value : Matrix_4D := Id_Matrix + ) with + Import => True, + Convention => C, + External_Name => "SetShaderValueMatrix"; + + procedure Set_Shader_Value_Texture ( + Data : Shader := No_Shader; + Location_Index : Integer := 0; + Value : Texture := No_Texture + ) with + Import => True, + Convention => C, + External_Name => "SetShaderValueTexture"; + + procedure Unload_Shader ( + Data : Shader := No_Shader + ) with + Import => True, + Convention => C, + External_Name => "UnloadShader"; + + function Get_Mouse_Ray ( + Mouse_Position : Vector_2D := (0.0, 0.0); + Camera : Camera_3D := No_Camera_3D + ) return Ray with + Import => True, + Convention => C, + External_Name => "GetMouseRay"; + + function Get_Camera_Matrix_3D ( + Camera : Camera_3D := No_Camera_3D + ) return Matrix_4D with + Import => True, + Convention => C, + External_Name => "GetCameraMatrix"; + + function Get_Camera_Matrix_2D ( + Camera : Camera_2D := No_Camera_2D + ) return Matrix_4D with + Import => True, + Convention => C, + External_Name => "GetCameraMatrix2D"; + + function Get_World_To_Screen_3D ( + Position : Vector_3D := (0.0, 0.0, 0.0); + Camera : Camera_3D := No_Camera_3D + ) return Vector_2D with + Import => True, + Convention => C, + External_Name => "GetWorldToScreen"; + + function Get_Screen_To_World_2D ( + Position : Vector_2D := (0.0, 0.0); + Camera : Camera_2D := No_Camera_2D + ) return Vector_2D with + Import => True, + Convention => C, + External_Name => "GetScreenToWorld2D"; + + function Get_World_To_Screen_Ex ( + Position : Vector_3D := (0.0, 0.0, 0.0); + Camera : Camera_3D := No_Camera_3D; + Width : Integer := 0; + Height : Integer := 0 + ) return Vector_2D with + Import => True, + Convention => C, + External_Name => "GetWorldToScreenEx"; + + function Get_World_To_Screen_2D ( + Position : Vector_2D := (0.0, 0.0); + Camera : Camera_2D := No_Camera_2D + ) return Vector_2D with + Import => True, + Convention => C, + External_Name => "GetWorldToScreen2D"; + + procedure Set_Target_FPS ( + FPS : Integer := 60 + ) with + Import => True, + Convention => C, + External_Name => "SetTargetFPS"; + + function Get_Frame_Time return Float with + Import => True, + Convention => C, + External_Name => "GetFrameTime"; + + function Get_Time return Long_Float with + Import => True, + Convention => C, + External_Name => "GetTime"; + + function Get_FPS return Integer with + Import => True, + Convention => C, + External_Name => "GetFPS"; + + procedure Swap_Screen_Buffer with + Import => True, + Convention => C, + External_Name => "SwapScreenBuffer"; + + procedure Poll_Input_Events with + Import => True, + Convention => C, + External_Name => "PollInputEvents"; + + procedure Wait_Time ( + Seconds : Long_Float := 0.0 + ) with + Import => True, + Convention => C, + External_Name => "WaitTime"; + + procedure Set_Random_Seed ( + Seed : Natural := 16#0EADBEEF# + ) with + Import => True, + Convention => C, + External_Name => "SetRandomSeed"; + + function Get_Random_Value ( + Min : Integer := 0; + Max : Integer := 255 + ) return Integer with + Import => True, + Convention => C, + External_Name => "GetRandomValue"; + + function Load_Random_Sequence ( + Count : Natural := 0; + Min : Integer := 0; + Max : Integer := 0 + ) return access Integer with + Import => True, + Convention => C, + External_Name => "LoadRandomSequence"; + + procedure Unload_Random_Sequence ( + Sequence : access Integer := null + ) with + Import => True, + Convention => C, + External_Name => "UnloadRandomSequence"; + + procedure Take_Screenshot ( + File_Name : String := "Screenshot.png" + ) with + Import => True, + Convention => C, + External_Name => "TakeScreenshot"; + + procedure Set_Config_Flags ( + Flags : Config_Flags := Flag_None + ) with + Import => True, + Convention => C, + External_Name => "SetConfigFlags"; + + procedure Open_URL ( + URL : String := "" + ) with + Import => True, + Convention => C, + External_Name => "OpenURL"; + + --~procedure TraceLog (int logLevel, const char *text, ...) with + --~Import => True, + --~Convention => C, + --~External_Name => "TraceLog"; + + 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"; + + --~function AutomationEventList LoadAutomationEventList (const char *fileName) with + --~Import => True, + --~Convention => C, + --~External_Name => "LoadAutomationEventList"; + + --~procedure UnloadAutomationEventList (AutomationEventList *list) with + --~Import => True, + --~Convention => C, + --~External_Name => "UnloadAutomationEventList"; + + --~function bool ExportAutomationEventList (AutomationEventList list, const char *fileName) with + --~Import => True, + --~Convention => C, + --~External_Name => "ExportAutomationEventList"; + + --~procedure SetAutomationEventList (AutomationEventList *list) with + --~Import => True, + --~Convention => C, + --~External_Name => "SetAutomationEventList"; + + --~procedure SetAutomationEventBaseFrame (int frame) with + --~Import => True, + --~Convention => C, + --~External_Name => "SetAutomationEventBaseFrame"; + + --~procedure StartAutomationEventRecording (void) with + --~Import => True, + --~Convention => C, + --~External_Name => "StartAutomationEventRecording"; + + --~procedure StopAutomationEventRecording (void) with + --~Import => True, + --~Convention => C, + --~External_Name => "StopAutomationEventRecording"; + + --~procedure PlayAutomationEvent (AutomationEvent event) with + --~Import => True, + --~Convention => C, + --~External_Name => "PlayAutomationEvent"; + + function Is_Key_Pressed ( + Key : Keyboard_Key := Key_Null + ) return Logical with + Import => True, + Convention => C, + External_Name => "IsKeyPressed"; + + function Is_Key_Pressed_Repeat ( + Key : Keyboard_Key := Key_Null + ) return Logical with + Import => True, + Convention => C, + External_Name => "IsKeyPressedRepeat"; + + function Is_Key_Down ( + Key : Keyboard_Key := Key_Null + ) return Logical with + Import => True, + Convention => C, + External_Name => "IsKeyDown"; + + function Is_Key_Released ( + Key : Keyboard_Key := Key_Null + ) return Logical with + Import => True, + Convention => C, + External_Name => "IsKeyReleased"; + + function Is_Key_Up ( + Key : Keyboard_Key := Key_Null + ) return Logical with + Import => True, + Convention => C, + External_Name => "IsKeyUp"; + + function Get_Key_Pressed return Keyboard_Key with + Import => True, + Convention => C, + External_Name => "GetKeyPressed"; + + function Get_Character_Pressed return Character with + Import => True, + Convention => C, + External_Name => "GetCharPressed"; + + procedure Set_Exit_Key ( + Key : Keyboard_Key := Key_Escape + ) with + Import => True, + Convention => C, + External_Name => "SetExitKey"; + + --~function bool IsGamepadAvailable (int gamepad) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function const char *GetGamepadName (int gamepad) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsGamepadButtonPressed (int gamepad, int button) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsGamepadButtonDown (int gamepad, int button) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsGamepadButtonReleased (int gamepad, int button) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsGamepadButtonUp (int gamepad, int button) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function int GetGamepadButtonPressed (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function int GetGamepadAxisCount (int gamepad) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function float GetGamepadAxisMovement (int gamepad, int axis) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function int SetGamepadMappings (const char *mappings) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + function Is_Mouse_Button_Pressed ( + Button : Mouse_Button := Mouse_Button_Left + ) return Logical with + Import => True, + Convention => C, + External_Name => "IsMouseButtonPressed"; + + function Is_Mouse_Button_Down ( + Button : Mouse_Button := Mouse_Button_Left + ) return Logical with + Import => True, + Convention => C, + External_Name => "IsMouseButtonDown"; + + function Is_Mouse_Button_Released ( + Button : Mouse_Button := Mouse_Button_Left + ) return Logical with + Import => True, + Convention => C, + External_Name => "IsMouseButtonReleased"; + + function Is_Mouse_Button_Up ( + Button : Mouse_Button := Mouse_Button_Left + ) return Logical with + Import => True, + Convention => C, + External_Name => "IsMouseButtonUp"; + + function Get_Mouse_X return Integer with + Import => True, + Convention => C, + External_Name => "GetMouseX"; + + function Get_Mouse_Y return Integer with + Import => True, + Convention => C, + External_Name => "GetMouseY"; + + function Get_Mouse_Position return Vector_2D with + Import => True, + Convention => C, + External_Name => "GetMousePosition"; + + function Get_Mouse_Delta return Vector_2D with + Import => True, + Convention => C, + External_Name => "GetMouseDelta"; + + procedure Set_Mouse_Position ( + X : Integer := 0; + Y : Integer := 0 + ) with + Import => True, + Convention => C, + External_Name => "SetMousePosition"; + + procedure Set_Mouse_Offset ( + X : Integer := 0; + Y : Integer := 0 + ) with + Import => True, + Convention => C, + External_Name => "SetMouseOffset"; + + procedure Set_Mouse_Scale ( + X : Float := 0.0; + Y : Float := 0.0 + ) with + Import => True, + Convention => C, + External_Name => "SetMouseScale"; + + function Get_Mouse_Wheel_Move return Float with + Import => True, + Convention => C, + External_Name => "GetMouseWheelMove"; + + function Get_Mouse_Wheel_Move_V return Vector_2D with + Import => True, + Convention => C, + External_Name => "GetMouseWheelMoveV"; + + procedure Set_Mouse_Cursor ( + Cursor : Mouse_Cursor := Mouse_Cursor_Default + ) with + Import => True, + Convention => C, + External_Name => "SetMouseCursor"; + + --~function int GetTouchX (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function int GetTouchY (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Vector2 GetTouchPosition (int index) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function int GetTouchPointId (int index) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function int GetTouchPointCount (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetGesturesEnabled (unsigned int flags) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsGestureDetected (unsigned int gesture) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function int GetGestureDetected (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function float GetGestureHoldDuration (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Vector2 GetGestureDragVector (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function float GetGestureDragAngle (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Vector2 GetGesturePinchVector (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function float GetGesturePinchAngle (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + procedure Update_Camera ( + Data : access Camera_3D := null; + Mode : Camera_Mode := Camera_First_Person + ) with + Import => True, + Convention => C, + External_Name => "UpdateCamera"; + + procedure Update_Camera_Pro ( + Data : access Camera_3D := null; + Movement : Vector_3D := (0.0, 0.0, 0.0); + Rotation : Vector_3D := (0.0, 0.0, 0.0); + Zoom : Float := 0.0 + ) with + Import => True, + Convention => C, + External_Name => "UpdateCameraPro"; + + procedure Set_Shapes_Texture ( + Data : Texture := No_Texture; + Source : Rectangle := No_Rectangle + ) with + Import => True, + Convention => C, + External_Name => "SetShapesTexture"; + + procedure Draw_Pixel ( + X : Integer := 0; + Y : Integer := 0; + Tint : Color := White + ) with + Import => True, + Convention => C, + External_Name => "DrawPixel"; + + procedure Draw_Pixel_V ( + Position : Vector_2D := (0.0, 0.0); + Tint : Color := White + ) with + Import => True, + Convention => C, + External_Name => "DrawPixelV"; + + procedure Draw_Line ( + X0 : Integer := 0; + Y0 : Integer := 0; + X1 : Integer := 0; + Y1 : Integer := 0; + Tint : Color := Black + ) with + Import => True, + Convention => C, + External_Name => "DrawLine"; + + procedure Draw_Line_V ( + From : Vector_2D := (0.0, 0.0); + To : Vector_2D := (0.0, 0.0); + Tint : Color := Black + ) with + Import => True, + Convention => C, + External_Name => "DrawLineV"; + + procedure Draw_Line_Ex ( + From : Vector_2D := (0.0, 0.0); + To : Vector_2D := (0.0, 0.0); + Thick : Float := 0.0; + Tint : Color := Black + ) with + Import => True, + Convention => C, + External_Name => "DrawLineEx"; + + procedure Draw_Line_Strip ( + Points : access Vector_2D := null; + Point_Count : Natural := 0; + Tint : Color := Black + ) with + Import => True, + Convention => C, + External_Name => "DrawLineStrip"; + + procedure Draw_Line_Bezier ( + From : Vector_2D := (0.0, 0.0); + To : Vector_2D := (0.0, 0.0); + Thick : Float := 0.0; + Tint : Color := Black + ) with + Import => True, + Convention => C, + External_Name => "DrawLineBezier"; + + procedure Draw_Circle ( + X : Integer := 0; + Y : Integer := 0; + Radius : Float := 0.0; + Tint : Color := Black + ) with + Import => True, + Convention => C, + External_Name => "DrawCircle"; + + procedure Draw_Circle_Sector ( + Center : Vector_2D := (0.0, 0.0); + Radius : Float := 0.0; + From : Float := 0.0; + To : Float := 0.0; + Segments : Integer := 0; + Tint : Color := Black + ) with + Import => True, + Convention => C, + External_Name => "DrawCircleSector"; + + procedure Draw_Circle_Sector_Lines ( + Center : Vector_2D := (0.0, 0.0); + Radius : Float := 0.0; + From : Float := 0.0; + To : Float := 0.0; + Segments : Integer := 0; + Tint : Color := Black + ) with + Import => True, + Convention => C, + External_Name => "DrawCircleSectorLines"; + + procedure Draw_Circle_Gradient ( + X : Integer := 0; + Y : Integer := 0; + Radius : Float := 0.0; + Tint_1 : Color := Black; + Tint_2 : Color := White + ) with + Import => True, + Convention => C, + External_Name => "DrawCircleGradient"; + + procedure Draw_Circle_V ( + Center : Vector_2D := (0.0, 0.0); + Radius : Float := 0.0; + Tint : Color := Black + ) with + Import => True, + Convention => C, + External_Name => "DrawCircleV"; + + procedure Draw_Circle_Lines ( + X : Integer := 0; + Y : Integer := 0; + Radius : Float := 0.0; + Tint : Color := Black + ) with + Import => True, + Convention => C, + External_Name => "DrawCircleLines"; + + procedure Draw_Circle_Lines_V ( + Center : Vector_2D := (0.0, 0.0); + Radius : Float := 0.0; + Tint : Color := Black + ) with + Import => True, + Convention => C, + External_Name => "DrawCircleLinesV"; + + procedure Draw_Ellipse ( + X : Integer := 0; + Y : Integer := 0; + Horizontal : Float := 0.0; + Vertical : Float := 0.0; + Tint : Color := Black + ) with + Import => True, + Convention => C, + External_Name => "DrawEllipse"; + + procedure Draw_Ellipse_Lines ( + X : Integer := 0; + Y : Integer := 0; + Horizontal : Float := 0.0; + Vertical : Float := 0.0; + Tint : Color := Black + ) with + Import => True, + Convention => C, + External_Name => "DrawEllipseLines"; + + procedure Draw_Ring ( + Center : Vector_2D := (0.0, 0.0); + Inner_Radius : Float := 0.0; + Outer_Radius : Float := 0.0; + From : Float := 0.0; + To : Float := 0.0; + Segments : Integer := 0; + Tint : Color := Black + ) with + Import => True, + Convention => C, + External_Name => "DrawRing"; + + procedure Draw_Ring_Lines ( + Center : Vector_2D := (0.0, 0.0); + Inner_Radius : Float := 0.0; + Outer_Radius : Float := 0.0; + From : Float := 0.0; + To : Float := 0.0; + Segments : Integer := 0; + Tint : Color := Black + ) with + Import => True, + Convention => C, + External_Name => "DrawRingLines"; + + procedure Draw_Rectangle ( + X : Integer := 0; + Y : Integer := 0; + Width : Integer := 0; + Height : Integer := 0; + Tint : Color := Black + ) with + Import => True, + Convention => C, + External_Name => "DrawRectangle"; + + procedure Draw_Rectangle_V ( + Position : Vector_2D := (0.0, 0.0); + Size : Vector_2D := (0.0, 0.0); + Tint : Color := Black + ) with + Import => True, + Convention => C, + External_Name => "DrawRectangleV"; + + procedure Draw_Rectangle_Rec ( + Data : Rectangle := No_Rectangle; + Tint : Color := Black + ) with + Import => True, + Convention => C, + External_Name => "DrawRectangleRec"; + + procedure Draw_Rectangle_Pro ( + Data : Rectangle := No_Rectangle; + Origin : Vector_2D := (0.0, 0.0); + Rotation : Float := 0.0; + Tint : Color := Black + ) with + Import => True, + Convention => C, + External_Name => "DrawRectanglePro"; + + procedure Draw_Rectangle_Gradient_V ( + X : Integer := 0; + Y : Integer := 0; + Width : Integer := 0; + Height : Integer := 0; + Color_1 : Color := Black; + Color_2 : Color := White + ) with + Import => True, + Convention => C, + External_Name => "DrawRectangleGradientV"; + + procedure Draw_Rectangle_Gradient_H ( + X : Integer := 0; + Y : Integer := 0; + Width : Integer := 0; + Height : Integer := 0; + Color_1 : Color := Black; + Color_2 : Color := White + ) with + Import => True, + Convention => C, + External_Name => "DrawRectangleGradientH"; + + procedure Draw_Rectangle_Gradient_Ex ( + Data : Rectangle := No_Rectangle; + Color_1 : Color := Red; + Color_2 : Color := Green; + Color_3 : Color := Blue; + Color_4 : Color := Black + ) with + Import => True, + Convention => C, + External_Name => "DrawRectangleGradientEx"; + + procedure Draw_Rectangle_Lines ( + X : Integer := 0; + Y : Integer := 0; + Width : Integer := 0; + Height : Integer := 0; + Tint : Color := Black + ) with + Import => True, + Convention => C, + External_Name => "DrawRectangleLines"; + + procedure Draw_Rectangle_Lines_Ex ( + Data : Rectangle := No_Rectangle; + Thickness : Float := 1.0; + Tint : Color := Black + ) with + Import => True, + Convention => C, + External_Name => "DrawRectangleLinesEx"; + + procedure Draw_Rectangle_Rounded ( + Data : Rectangle := No_Rectangle; + Roundness : Float := 1.0; + Segments : Integer := 1; + Tint : Color := Black + ) with + Import => True, + Convention => C, + External_Name => "DrawRectangleRounded"; + + procedure Draw_Rectangle_Rounded_Lines ( + Data : Rectangle := No_Rectangle; + Roundness : Float := 1.0; + Segments : Integer := 1; + Thickness : Float := 1.0; + Tint : Color := Black + ) with + Import => True, + Convention => C, + External_Name => "DrawRectangleRoundedLines"; + + --~procedure 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; + Position : Vector_2D := (0.0, 0.0); + Tint : Color := White + ) with + Import => True, + Convention => C, + External_Name => "DrawTextureV"; + + procedure Draw_Texture_Ex ( + Data : Texture := No_Texture; + Position : Vector_2D := (0.0, 0.0); + Rotation : Float := 0.0; + Scale : Float := 0.0; + Tint : Color := White + ) with + Import => True, + Convention => C, + External_Name => "DrawTextureEx"; + + procedure Draw_Texture_Rec ( + Data : Texture := No_Texture; + Source : Rectangle := No_Rectangle; + Position : Vector_2D := (0.0, 0.0); + Tint : Color := White + ) with + Import => True, + Convention => C, + External_Name => "DrawTextureRec"; + + procedure Draw_Texture_Pro ( + Data : Texture := No_Texture; + Source : Rectangle := No_Rectangle; + Destination : Rectangle := No_Rectangle; + Origin : Vector_2D := (0.0, 0.0); + 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 := ""; + Position : Vector_2D := (0.0, 0.0); + Font_Size : Float := 0.0; + Spacing : Float := 0.0; + Tint : Color := White + ) with + Import => True, + Convention => C, + External_Name => "DrawTextEx"; + + procedure Draw_Text_Pro ( + Data : Font := Get_Font_Default; + Text : String := ""; + Position : Vector_2D := (0.0, 0.0); + Origin : Vector_2D := (0.0, 0.0); + Rotation : Float := 0.0; + Font_Size : Float := 0.0; + Spacing : Float := 0.0; + Tint : Color := White + ) with + Import => True, + Convention => C, + External_Name => "DrawTextPro"; + + --~procedure 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 ( + Position : Vector_3D := (0.0, 0.0, 0.0); + Width : Float := 0.0; + Height : Float := 0.0; + Length : Float := 0.0; + Tint : Color := White + ) with + Import => True, + Convention => C, + External_Name => "DrawCube"; + + --~procedure DrawCubeV (Vector3 position, Vector3 size, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + procedure Draw_Cube_Wires ( + Position : Vector_3D := (0.0, 0.0, 0.0); + Width : Float := 0.0; + Height : Float := 0.0; + Length : Float := 0.0; + Tint : Color := Black + ) with + Import => True, + Convention => C, + External_Name => "DrawCubeWires"; + + --~procedure 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 ( + Center : Vector_3D := (0.0, 0.0, 0.0); + Size : Vector_2D := (0.0, 0.0); + 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"; + + --~function BoundingBox GetModelBoundingBox (Model model) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + procedure Draw_Model ( + Data : Model := No_Model; + Position : Vector_3D := (0.0, 0.0, 0.0); + Scale : Float := 1.0; + Tint : Color := White + ) with + Import => True, + Convention => C, + External_Name => "DrawModel"; + + procedure Draw_Model_Ex ( + Data : Model := No_Model; + Position : Vector_3D := (0.0, 0.0, 0.0); + Axis : Vector_3D := (0.0, 0.0, 0.0); + Angle : Float := 0.0; + Scale : Vector_3D := (1.0, 1.0, 1.0); + Tint : Color := White + ) with + Import => True, + Convention => C, + External_Name => "DrawModelEx"; + + --~procedure DrawModelWires (Model model, Vector3 position, float scale, Color tint) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + procedure Draw_Model_Wires_Ex ( + Data : Model := No_Model; + Position : Vector_3D := (0.0, 0.0, 0.0); + Axis : Vector_3D := (0.0, 0.0, 0.0); + Angle : Float := 0.0; + Scale : Vector_3D := (1.0, 1.0, 1.0); + Tint : Color := White + ) with + Import => True, + Convention => C, + External_Name => "DrawModelWiresEx"; + + --~procedure DrawBoundingBox (BoundingBox box, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + procedure Draw_Billboard ( + Camera : Camera_3D := No_Camera_3D; + Billboard : Texture := No_Texture; + Position : Vector_3D := (0.0, 0.0, 0.0); + Size : Float := 0.0; + Tint : Color := White + ) with + Import => True, + Convention => C, + External_Name => "DrawBillboard"; + + --~procedure DrawBillboardRec (Camera camera, Texture2D texture, Rectangle source, Vector3 position, Vector2 size, Color tint) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + procedure Draw_Billboard_Pro ( + Camera : Camera_3D := No_Camera_3D; + Billboard : Texture := No_Texture; + Source : Rectangle := No_Rectangle; + Position : Vector_3D := (0.0, 0.0, 0.0); + Up : Vector_3D := (0.0, 0.0, 0.0); + Size : Vector_2D := (0.0, 0.0); + Origin : Vector_2D := (0.0, 0.0); + Rotation : Float := 0.0; + Tint : Color := White + ) with + Import => True, + Convention => C, + External_Name => "DrawBillboardPro"; + + procedure Upload_Mesh ( + Data : access Mesh := null; + Dynamic : Logical := False + ) with + Import => True, + Convention => C, + External_Name => "UploadMesh"; + + --~procedure UpdateMeshBuffer (Mesh mesh, int index, const void *data, int dataSize, int offset) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure UnloadMesh (Mesh mesh) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + procedure Draw_Mesh ( + Data : Mesh := No_Mesh; + Pixels : Material := No_Material; + Transform : Matrix_4D := (others => 0.0) + ) with + Import => True, + Convention => C, + External_Name => "DrawMesh"; + + --~procedure DrawMeshInstanced (Mesh mesh, Material material, const Matrix *transforms, int instances) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function BoundingBox GetMeshBoundingBox (Mesh mesh) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure GenMeshTangents (Mesh *mesh) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool ExportMesh (Mesh mesh, const char *fileName) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool ExportMeshAsCode (Mesh mesh, const char *fileName) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Mesh GenMeshPoly (int sides, float radius) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + function Gen_Mesh_Plane ( + Width : Float := 1.0; + Height : Float := 1.0; + X : Integer := 1; + Z : Integer := 1 + ) return Mesh with + Import => True, + Convention => C, + External_Name => "GenMeshPlane"; + + function Gen_Mesh_Cube ( + Width : Float := 0.0; + Height : Float := 0.0; + Length : Float := 0.0 + ) return Mesh with + Import => True, + Convention => C, + External_Name => "GenMeshCube"; + + function Gen_Mesh_Sphere ( + Radius : Float := 0.0; + Rings : Integer := 0; + Slices : Integer := 0 + ) return Mesh with + Import => True, + Convention => C, + External_Name => "GenMeshSphere"; + + function Gen_Mesh_Hemisphere ( + Radius : Float := 0.0; + Rings : Integer := 0; + Slices : Integer := 0 + ) return Mesh with + Import => True, + Convention => C, + External_Name => "GenMeshHemiSphere"; + + function Gen_Mesh_Cylinder ( + Radius : Float := 0.0; + Height : Float := 0.0; + Slices : Integer := 0 + ) return Mesh with + Import => True, + Convention => C, + External_Name => "GenMeshCylinder"; + + function Gen_Mesh_Cone ( + Radius : Float := 0.0; + Height : Float := 0.0; + Slices : Integer := 0 + ) return Mesh with + Import => True, + Convention => C, + External_Name => "GenMeshCone"; + + function Gen_Mesh_Torus ( + Radius : Float := 0.0; + Size : Float := 0.0; + Segments : Integer := 0; + Sides : Integer := 0 + ) return Mesh with + Import => True, + Convention => C, + External_Name => "GenMeshTorus"; + + function Gen_Mesh_Knot ( + Radius : Float := 0.0; + Size : Float := 0.0; + Segments : Integer := 0; + Sides : Integer := 0 + ) return Mesh with + Import => True, + Convention => C, + External_Name => "GenMeshKnot"; + + function Gen_Mesh_Height_Map ( + Height_Map : Image := No_Image; + Size : Vector_3D := (0.0, 0.0, 0.0) + ) return Mesh with + Import => True, + Convention => C, + External_Name => "GenMeshHeightmap"; + + function Gen_Mesh_Cubic_Map ( + Cubic_Map : Image := No_Image; + Size : Vector_3D := (0.0, 0.0, 0.0) + ) return Mesh with + Import => True, + Convention => C, + External_Name => "GenMeshCubicmap"; + + function Load_Materials ( + File_Name : String := ""; + Counts : access Integer := null + ) return access Material with + Import => True, + Convention => C, + External_Name => "LoadMaterials"; + + function Load_Material_Default return Material with + Import => True, + Convention => C, + External_Name => "LoadMaterialDefault"; + + function Is_Material_Ready ( + Data : Material := No_Material + ) return Logical with + Import => True, + Convention => C, + External_Name => "IsMaterialReady"; + + procedure Unload_Material ( + Data : Material := No_Material + ) with + Import => True, + Convention => C, + External_Name => "UnloadMaterial"; + + procedure Set_Material_Texture ( + Data : access Material := null; + Kind : Material_Map_Index := Material_Map_Height; + This : Texture := No_Texture + ) with + Import => True, + Convention => C, + External_Name => "SetMaterialTexture"; + + procedure Set_Model_Mesh_Material ( + Data : access Model := null; + Mesh_Id : Integer := 0; + Material_Id : Integer := 0 + ) with + Import => True, + Convention => C, + External_Name => "SetModelMeshMaterial"; + + function Load_Model_Animations ( + File_Name : String := ""; + Counts : access Integer := null + ) return access Model_Animation with + Import => True, + Convention => C, + External_Name => "LoadModelAnimations"; + + procedure Update_Model_Animation ( + Data : Model := No_Model; + Animation : Model_Animation := No_Model_Animation; + Frame : Integer := 0 + ) with + Import => True, + Convention => C, + External_Name => "UpdateModelAnimation"; + + procedure Unload_Model_Animation ( + Animation : Model_Animation := No_Model_Animation + ) with + Import => True, + Convention => C, + External_Name => "UnloadModelAnimation"; + + procedure Unload_Model_Animations ( + Animations : access Model_Animation := null; + Animation_Count : Natural := 0 + ) with + Import => True, + Convention => C, + External_Name => "UnloadModelAnimations"; + + function Is_Model_Animation_Valid ( + Data : Model := No_Model; + Animation : Model_Animation := No_Model_Animation + ) return Logical with + Import => True, + Convention => C, + External_Name => "IsModelAnimationValid"; + + function Check_Collision_Spheres ( + Center_1 : Vector_3D := (0.0, 0.0, 0.0); + Radius_1 : Float := 0.0; + Center_2 : Vector_3D := (0.0, 0.0, 0.0); + Radius_2 : Float := 0.0 + ) return Logical with + Import => True, + Convention => C, + External_Name => "CheckCollisionSpheres"; + + function Check_Collision_Boxes ( + Box_1 : Bounding_Box := No_Bounding_Box; + Box_2 : Bounding_Box := No_Bounding_Box + ) return Logical with + Import => True, + Convention => C, + External_Name => "CheckCollisionBoxes"; + + function Check_Collision_Box_Sphere ( + Box : Bounding_Box := No_Bounding_Box; + Center : Vector_3D := (0.0, 0.0, 0.0); + Radius : Float := 0.0 + ) return Logical with + Import => True, + Convention => C, + External_Name => "CheckCollisionBoxSphere"; + + function Get_Ray_Collision_Sphere ( + Hit : Ray := No_Ray; + Center : Vector_3D := (0.0, 0.0, 0.0); + Radius : Float := 0.0 + ) return Ray_Collision with + Import => True, + Convention => C, + External_Name => "GetRayCollisionSphere"; + + function Get_Ray_Collision_Box ( + Hit : Ray := No_Ray; + Box : Bounding_Box := No_Bounding_Box + ) return Ray_Collision with + Import => True, + Convention => C, + External_Name => "GetRayCollisionBox"; + + function Get_Ray_Collision_Mesh ( + Hit : Ray := No_Ray; + Data : Mesh := No_Mesh; + Transform : Matrix_4D := Id_Matrix + ) return Ray_Collision with + Import => True, + Convention => C, + External_Name => "GetRayCollisionMesh"; + + function Get_Ray_Collision_Triangle ( + Hit : Ray := No_Ray; + Point_1 : Vector_3D := (0.0, 0.0, 0.0); + Point_2 : Vector_3D := (0.0, 0.0, 0.0); + Point_3 : Vector_3D := (0.0, 0.0, 0.0) + ) return Ray_Collision with + Import => True, + Convention => C, + External_Name => "GetRayCollisionTriangle"; + + function Get_Ray_Collision_Quad ( + Hit : Ray := No_Ray; + Point_1 : Vector_3D := (0.0, 0.0, 0.0); + Point_2 : Vector_3D := (0.0, 0.0, 0.0); + Point_3 : Vector_3D := (0.0, 0.0, 0.0); + Point_4 : Vector_3D := (0.0, 0.0, 0.0) + ) return Ray_Collision with + Import => True, + Convention => C, + External_Name => "GetRayCollisionQuad"; + + procedure Open_Audio_Device with + Import => True, + Convention => C, + External_Name => "InitAudioDevice"; + + procedure Close_Audio_Device with + Import => True, + Convention => C, + External_Name => "CloseAudioDevice"; + + function Is_Audio_Device_Ready return Logical with + Import => True, + Convention => C, + External_Name => "IsAudioDeviceReady"; + + procedure Set_Master_Volume (Volume : Float := 1.0) with + Import => True, + Convention => C, + External_Name => "SetMasterVolume"; + + function Get_Master_Volume return Float with + Import => True, + Convention => C, + External_Name => "GetMasterVolume"; + + function Load_Wave ( + File_Name : String := "" + ) return Wave with + Import => True, + Convention => C, + External_Name => "LoadWave"; + + function Load_Wave_From_Memory ( + File_Type : String := ""; + File_Data : Pointer := null; + Data_Size : Natural := 0 + ) return Wave with + Import => True, + Convention => C, + External_Name => "LoadWaveFromMemory"; + + function Is_Wave_Ready ( + Data : Wave := No_Wave + ) return Logical with + Import => True, + Convention => C, + External_Name => "IsWaveReady"; + + function Load_Sound ( + File_Name : String := "" + ) return Sound with + Import => True, + Convention => C, + External_Name => "LoadSound"; + + function Load_Sound_From_Wave ( + Data : Wave := No_Wave + ) return Sound with + Import => True, + Convention => C, + External_Name => "LoadSoundFromWave"; + + function Load_Sound_Alias ( + Source : Sound := No_Sound + ) return Sound with + Import => True, + Convention => C, + External_Name => "LoadSoundAlias"; + + function Is_Sound_Ready ( + Source : Sound := No_Sound + ) return Logical with + Import => True, + Convention => C, + External_Name => "IsSoundReady"; + + procedure Update_Sound ( + Source : Sound := No_Sound; + Data : Pointer := null; + Sample_Count : Integer := 0 + ) with + Import => True, + Convention => C, + External_Name => "UpdateSound"; + + procedure Unload_Wave ( + Data : Wave := No_Wave + ) with + Import => True, + Convention => C, + External_Name => "UnloadWave"; + + procedure Unload_Sound ( + Data : Sound := No_Sound + ) with + Import => True, + Convention => C, + External_Name => "UnloadSound"; + + procedure Unload_Sound_Alias ( + Alias : Sound := No_Sound + ) with + Import => True, + Convention => C, + External_Name => "UnloadSoundAlias"; + + function Export_Wave ( + Data : Wave := No_Wave; + File_Name : String := "" + ) return Logical with + Import => True, + Convention => C, + External_Name => "ExportWave"; + + function Export_Wave_As_Code ( + Data : Wave := No_Wave; + File_Name : String := "" + ) return Logical with + Import => True, + Convention => C, + External_Name => "ExportWaveAsCode"; + + procedure Play_Sound ( + Data : Sound := No_Sound + ) with + Import => True, + Convention => C, + External_Name => "PlaySound"; + + procedure Stop_Sound ( + Data : Sound := No_Sound + ) with + Import => True, + Convention => C, + External_Name => "StopSound"; + + procedure Pause_Sound ( + Data : Sound := No_Sound + ) with + Import => True, + Convention => C, + External_Name => "PauseSound"; + + procedure Resume_Sound ( + Data : Sound := No_Sound + ) with + Import => True, + Convention => C, + External_Name => "ResumeSound"; + + function Is_Sound_Playing ( + Data : Sound := No_Sound + ) return Logical with + Import => True, + Convention => C, + External_Name => "IsSoundPlaying"; + + procedure Set_Sound_Volume ( + Data : Sound := No_Sound; + Volume : Float := 0.0 + ) with + Import => True, + Convention => C, + External_Name => "SetSoundVolume"; + + procedure Set_Sound_Pitch ( + Data : Sound := No_Sound; + Pitch : Float := 0.0 + ) with + Import => True, + Convention => C, + External_Name => "SetSoundPitch"; + + procedure Set_Sound_Pan ( + Data : Sound := No_Sound; + Pan : Float := 0.0 + ) with + Import => True, + Convention => C, + External_Name => "SetSoundPan"; + + function Wave_Copy ( + Data : Wave := No_Wave + ) return Wave with + Import => True, + Convention => C, + External_Name => "WaveCopy"; + + procedure Wave_Crop ( + Data : access Wave := null; + First_Sample : Integer := 0; + Final_Sample : Integer := 0 + ) with + Import => True, + Convention => C, + External_Name => "WaveCrop"; + + procedure Wave_Format ( + Data : access Wave := null; + Sample_Rate : Integer := 0; + Sample_Size : Integer := 0; + Channels : Integer := 0 + ) with + Import => True, + Convention => C, + External_Name => "WaveFormat"; + + function Load_Wave_Samples ( + Data : Wave := No_Wave + ) return access Float with + Import => True, + Convention => C, + External_Name => "LoadWaveSamples"; + + procedure Unload_Wave_Samples ( + Samples : access Float := null + ) with + Import => True, + Convention => C, + External_Name => "UnloadWaveSamples"; + + function Load_Music_Stream ( + File_Name : String := "" + ) return Music with + Import => True, + Convention => C, + External_Name => "LoadMusicStream"; + + function Load_Music_Stream_From_Memory ( + File_Type : String := ""; + Data : Pointer := null; + Data_Size : Integer := 0 + ) return Music with + Import => True, + Convention => C, + External_Name => "LoadMusicStreamFromMemory"; + + function Is_Music_Ready ( + Data : Music := No_Music + ) return Logical with + Import => True, + Convention => C, + External_Name => "IsMusicReady"; + + procedure Unload_Music_Stream ( + Data : Music := No_Music + ) with + Import => True, + Convention => C, + External_Name => "UnloadMusicStream"; + + procedure Play_Music_Stream ( + Data : Music := No_Music + ) with + Import => True, + Convention => C, + External_Name => "PlayMusicStream"; + + function Is_Music_Stream_Playing ( + Data : Music := No_Music + ) return Logical with + Import => True, + Convention => C, + External_Name => "IsMusicStreamPlaying"; + + procedure Update_Music_Stream ( + Data : Music := No_Music + ) with + Import => True, + Convention => C, + External_Name => "UpdateMusicStream"; + + procedure Stop_Music_Stream ( + Data : Music := No_Music + ) with + Import => True, + Convention => C, + External_Name => "StopMusicStream"; + + procedure Pause_Music_Stream ( + Data : Music := No_Music + ) with + Import => True, + Convention => C, + External_Name => "PauseMusicStream"; + + procedure Resume_Music_Stream ( + Data : Music := No_Music + ) with + Import => True, + Convention => C, + External_Name => "ResumeMusicStream"; + + procedure Seek_Music_Stream ( + Data : Music := No_Music; + Position : Float := 0.0 + ) with + Import => True, + Convention => C, + External_Name => "SeekMusicStream"; + + procedure Set_Music_Volume ( + Data : Music := No_Music; + Volume : Float := 0.0 + ) with + Import => True, + Convention => C, + External_Name => "SetMusicVolume"; + + procedure Set_Music_Pitch ( + Data : Music := No_Music; + Pitch : Float := 0.0 + ) with + Import => True, + Convention => C, + External_Name => "SetMusicPitch"; + + procedure Set_Music_Pan ( + Data : Music := No_Music; + Pan : Float := 0.0 + ) with + Import => True, + Convention => C, + External_Name => "SetMusicPan"; + + function Get_Music_Time_Length ( + Data : Music := No_Music + ) return Float with + Import => True, + Convention => C, + External_Name => "GetMusicTimeLength"; + + function Get_Music_Time_Played ( + Data : Music := No_Music + ) return Float with + Import => True, + Convention => C, + External_Name => "GetMusicTimePlayed"; + + function Load_Audio_Stream ( + Sample_Rate : Natural := 0; + Sample_Size : Natural := 0; + Channels : Natural := 0 + ) return Audio_Stream with + Import => True, + Convention => C, + External_Name => "LoadAudioStream"; + + function Is_Audio_Stream_Ready ( + Data : Audio_Stream := No_Audio_Stream + ) return Logical with + Import => True, + Convention => C, + External_Name => "IsAudioStreamReady"; + + procedure Unload_Audio_Stream ( + Data : Audio_Stream := No_Audio_Stream + ) with + Import => True, + Convention => C, + External_Name => "UnloadAudioStream"; + + procedure Update_Audio_Stream ( + Data : Audio_Stream := No_Audio_Stream; + Raw_Data : Pointer := null; + Frame_Count : Integer := 0 + ) with + Import => True, + Convention => C, + External_Name => "UpdateAudioStream"; + + function Is_Audio_Stream_Processed ( + Data : Audio_Stream := No_Audio_Stream + ) return Logical with + Import => True, + Convention => C, + External_Name => "IsAudioStreamProcessed"; + + procedure Play_Audio_Stream ( + Data : Audio_Stream := No_Audio_Stream + ) with + Import => True, + Convention => C, + External_Name => "PlayAudioStream"; + + procedure Pause_Audio_Stream ( + Data : Audio_Stream := No_Audio_Stream + ) with + Import => True, + Convention => C, + External_Name => "PauseAudioStream"; + + procedure Resume_Audio_Stream ( + Data : Audio_Stream := No_Audio_Stream + ) with + Import => True, + Convention => C, + External_Name => "ResumeAudioStream"; + + function Is_Audio_Stream_Playing ( + Data : Audio_Stream := No_Audio_Stream + ) return Logical with + Import => True, + Convention => C, + External_Name => "IsAudioStreamPlaying"; + + procedure Stop_Audio_Stream ( + Data : Audio_Stream := No_Audio_Stream + ) with + Import => True, + Convention => C, + External_Name => "StopAudioStream"; + + procedure Set_Audio_Stream_Volume ( + Data : Audio_Stream := No_Audio_Stream; + Volume : Float := 0.0 + ) with + Import => True, + Convention => C, + External_Name => "SetAudioStreamVolume"; + + procedure Set_Audio_Stream_Pitch ( + Data : Audio_Stream := No_Audio_Stream; + Pitch : Float := 0.0 + ) with + Import => True, + Convention => C, + External_Name => "SetAudioStreamPitch"; + + procedure Set_Audio_Stream_Pan ( + Data : Audio_Stream := No_Audio_Stream; + Pan : Float := 0.0 + ) with + Import => True, + Convention => C, + External_Name => "SetAudioStreamPan"; + + procedure Set_Audio_Stream_Buffer_Size_Default ( + Size : Integer := 0 + ) with + Import => True, + Convention => C, + External_Name => "SetAudioStreamBufferSizeDefault"; + + procedure Attach_Audio_Stream_Processor ( + Stream : Audio_Stream := No_Audio_Stream; + Processor : Pointer := null + ) with + Import => True, + Convention => C, + External_Name => "AttachAudioStreamProcessor"; + + procedure Detach_Audio_Stream_Processor ( + Stream : Audio_Stream := No_Audio_Stream; + Processor : Pointer := null + ) with + Import => True, + Convention => C, + External_Name => "DetachAudioStreamProcessor"; + + procedure Attach_Audio_Mixed_Processor ( + Processor : Pointer := null + ) with + Import => True, + Convention => C, + External_Name => "AttachAudioMixedProcessor"; + + procedure Detach_Audio_Mixed_Processor ( + Processor : Pointer := null + ) with + Import => True, + Convention => C, + External_Name => "DetachAudioMixedProcessor"; + +------------------------------------------------------------------------ end Raylib;