diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..38b4169 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*.o +*.ali +window diff --git a/README.md b/README.md index c55ee3c..be82612 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,23 @@ # raylib-ada -Ada bindings for Raylib 5.1 library. \ No newline at end of file +Ada bindings for Raylib 5.1 library. + +```ada +with Raylib; +use Raylib; + +procedure Window is +begin + Open_Window (720, 360, "Heyo Raylib!" & Character'Val (0)); + -- + Main_Loop: loop + exit when Window_Should_Close; + -- + Begin_Drawing; + Clear_Background (Blue); + End_Drawing; + end loop Main_Loop; + -- + Close_Window; +end Window; +``` diff --git a/compile.sh b/compile.sh new file mode 100644 index 0000000..bc9aac4 --- /dev/null +++ b/compile.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +set -xe + +gnatmake -c window.adb +gnatbind window.ali +gnatlink window.ali -lraylib + +exit diff --git a/raylib.ads b/raylib.ads new file mode 100644 index 0000000..f252579 --- /dev/null +++ b/raylib.ads @@ -0,0 +1,3842 @@ +------------------------------------------------------------------------ +-- +-- raylib v5.1-dev - A simple and easy-to-use library to enjoy videogames programming (www.raylib.com) +-- +-- FEATURES: +-- - NO external dependencies, all required libraries included with raylib +-- - Multiplatform: Windows, Linux, FreeBSD, OpenBSD, NetBSD, DragonFly, +-- MacOS, Haiku, Android, Raspberry Pi, DRM native, HTML5. +-- - Written in plain C code (C99) in PascalCase/camelCase notation +-- - Hardware accelerated with OpenGL (1.1, 2.1, 3.3, 4.3 or ES2 - choose at compile) +-- - Unique OpenGL abstraction layer (usable as standalone module): [rlgl] +-- - Multiple Fonts formats supported (TTF, XNA fonts, AngelCode fonts) +-- - Outstanding texture formats support, including compressed formats (DXT, ETC, ASTC) +-- - Full 3d support for 3d Shapes, Models, Billboards, Heightmaps and more! +-- - Flexible Materials system, supporting classic maps and PBR maps +-- - Animated 3D models supported (skeletal bones animation) (IQM) +-- - Shaders support, including Model shaders and Postprocessing shaders +-- - Powerful math module for Vector, Matrix and Quaternion operations: [raymath] +-- - Audio loading and playing with streaming support (WAV, OGG, MP3, FLAC, XM, MOD) +-- - VR stereo rendering with configurable HMD device parameters +-- - Bindings to multiple programming languages available! +-- +-- NOTES: +-- - One default Font is loaded on InitWindow()->LoadFontDefault() [core, text] +-- - One default Texture2D is loaded on rlglInit(), 1x1 white pixel R8G8B8A8 [rlgl] (OpenGL 3.3 or ES2) +-- - One default Shader is loaded on rlglInit()->rlLoadShaderDefault() [rlgl] (OpenGL 3.3 or ES2) +-- - One default RenderBatch is loaded on rlglInit()->rlLoadRenderBatch() [rlgl] (OpenGL 3.3 or ES2) +-- +-- DEPENDENCIES (included): +-- [rcore] rglfw (Camilla Löwy - github.com/glfw/glfw) for window/context management and input (PLATFORM_DESKTOP) +-- [rlgl] glad (David Herberth - github.com/Dav1dde/glad) for OpenGL 3.3 extensions loading (PLATFORM_DESKTOP) +-- [raudio] miniaudio (David Reid - github.com/mackron/miniaudio) for audio device/context management +-- +-- OPTIONAL DEPENDENCIES (included): +-- [rcore] msf_gif (Miles Fogle) for GIF recording +-- [rcore] sinfl (Micha Mettke) for DEFLATE decompression algorithm +-- [rcore] sdefl (Micha Mettke) for DEFLATE compression algorithm +-- [rtextures] stb_image (Sean Barret) for images loading (BMP, TGA, PNG, JPEG, HDR...) +-- [rtextures] stb_image_write (Sean Barret) for image writing (BMP, TGA, PNG, JPG) +-- [rtextures] stb_image_resize (Sean Barret) for image resizing algorithms +-- [rtext] stb_truetype (Sean Barret) for ttf fonts loading +-- [rtext] stb_rect_pack (Sean Barret) for rectangles packing +-- [rmodels] par_shapes (Philip Rideout) for parametric 3d shapes generation +-- [rmodels] tinyobj_loader_c (Syoyo Fujita) for models loading (OBJ, MTL) +-- [rmodels] cgltf (Johannes Kuhlmann) for models loading (glTF) +-- [rmodels] Model3D (bzt) for models loading (M3D, https:--bztsrc.gitlab.io/model3d) +-- [raudio] dr_wav (David Reid) for WAV audio file loading +-- [raudio] dr_flac (David Reid) for FLAC audio file loading +-- [raudio] dr_mp3 (David Reid) for MP3 audio file loading +-- [raudio] stb_vorbis (Sean Barret) for OGG audio loading +-- [raudio] jar_xm (Joshua Reisenauer) for XM audio module loading +-- [raudio] jar_mod (Joshua Reisenauer) for MOD audio module loading +-- +-- +-- LICENSE: zlib/libpng +-- +-- raylib is licensed under an unmodified zlib/libpng license, which is an OSI-certified, +-- BSD-like license that allows static linking with closed source software: +-- +-- Copyright (c) 2013-2023 Ramon Santamaria (@raysan5) +-- +-- This software is provided "as-is", without any express or implied warranty. In no event +-- will the authors be held liable for any damages arising from the use of this software. +-- +-- Permission is granted to anyone to use this software for any purpose, including commercial +-- applications, and to alter it and redistribute it freely, subject to the following restrictions: +-- +-- 1. The origin of this software must not be misrepresented; you must not claim that you +-- wrote the original software. If you use this software in a product, an acknowledgment +-- in the product documentation would be appreciated but is not required. +-- +-- 2. Altered source versions must be plainly marked as such, and must not be misrepresented +-- as being the original software. +-- +-- 3. This notice may not be removed or altered from any source distribution. +-- +-- Documenting small changes I've made to avoid the confusion: +-- -- Changed all names from PascalCase to Ada_Case. +-- -- Removed 2D from some names, added _ND to other names. +-- -- What was once an integer is now a properly checked enumeration. +-- -- IDE with search support can handle things changed above... +-- -- +-- -- +-- -- +-- -- +-- +------------------------------------------------------------------------ + +with System; + +package Raylib is + +------------------------------------------------------------------------ + + type Config_Flags is ( + 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_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; + + 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, M10, M20, M30, + --~M01, M11, M21, M31, + --~M02, M12, M22, M32, + --~M03, M13, M23, M33 : Float := ( + --~1.0, 0.0, 0.0, 0.0, + --~0.0, 1.0, 0.0, 0.0, + --~0.0, 0.0, 1.0, 0.0, + --~0.0, 0.0, 0.0, 1.0); + M00, M10, M20, M30, + M01, M11, M21, M31, + M02, M12, M22, M32, + M03, M13, M23, M33 : Float; + 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; + + 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; + + 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; + + 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; + + type Float_Array_4 is array (0 .. 3) of Float; + + type Material is record + Data : Shader := No_Shader; + Map : access Material_Map := null; + Parameter : Float_Array_4 := (0.0, 0.0, 0.0, 0.0); + end record with Convention => C_Pass_By_Copy; + + 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; + + type Model is record + Transform : Matrix_4D := Id_Matrix; + Mesh_Count : Integer := 0; + Material_Count : Integer := 0; + Meshes : access Mesh := null; + Materials : access Material := 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; + + 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; + + 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; + + type Ray_Collision is record + Hit : Boolean := 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; + + 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; + + type Wave is record + Frame_Count : Natural := 0; + Sample_Rate : Natural := 0; + Sample_Size : Natural := 0; + Channels : Natural := 0; + Data : Pointer := null; + end record; + + type Audio_Stream is record + Buffer : Pointer := null; + Processor : Pointer := null; + Sample_Rate : Natural := 0; + Sample_Size : Natural := 0; + Channels : Natural := 0; + end record; + + No_Audio_Stream : Audio_Stream; + + type Sound is record + Stream : Audio_Stream := No_Audio_Stream; + Frame_Count : Natural := 0; + end record; + + type Music is record + Stream : Audio_Stream := No_Audio_Stream; + Frame_Count : Natural := 0; + Looping : Boolean := False; + Context_Type : Integer := 0; + Context_Data : Pointer := null; + end record; + + 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; + + 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; + + No_VR_Stereo_Config : VR_Stereo_Config; + + type File_Path_List is record + Capacity : Natural := 0; + Count : Natural := 0; + Paths : Pointer := null; + end record; + + 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; + + type Automation_Event_List is record + Capacity : Natural := 0; + Count : Natural := 0; + Events : access Automation_Event := null; + end record; + +------------------------------------------------------------------------ + + 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); + +------------------------------------------------------------------------ + +--~typedef void (*TraceLogCallback)(int logLevel, const char *text, va_list args); -- Logging: Redirect trace log messages +--~typedef unsigned char *(*LoadFileDataCallback)(const char *fileName, int *dataSize); -- FileIO: Load binary data +--~typedef bool (*SaveFileDataCallback)(const char *fileName, void *data, int dataSize); -- FileIO: Save binary data +--~typedef char *(*LoadFileTextCallback)(const char *fileName); -- FileIO: Load text data +--~typedef bool (*SaveFileTextCallback)(const char *fileName, char *text); -- FileIO: Save text data + + 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 Boolean with + Import => True, + Convention => C, + External_Name => "WindowShouldClose"; + + function Is_Window_Ready return Boolean with + Import => True, + Convention => C, + External_Name => "IsWindowReady"; + + function Is_Window_Fullscreen return Boolean with + Import => True, + Convention => C, + External_Name => "IsWindowFullscreen"; + + function Is_Window_Hidden return Boolean with + Import => True, + Convention => C, + External_Name => "IsWindowHidden"; + + function Is_Window_Minimized return Boolean with + Import => True, + Convention => C, + External_Name => "IsWindowMinimized"; + + function Is_Window_Maximized return Boolean with + Import => True, + Convention => C, + External_Name => "IsWindowMaximized"; + + function Is_Window_Focused return Boolean with + Import => True, + Convention => C, + External_Name => "IsWindowFocused"; + + function Is_Window_Resized return Boolean with + Import => True, + Convention => C, + External_Name => "IsWindowResized"; + + function Is_Window_State ( + Flags : Natural := 0 + ) return Boolean 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 Boolean 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 Boolean 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 Boolean 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 Ray GetMouseRay (Vector2 mousePosition, Camera camera) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Matrix GetCameraMatrix (Camera camera) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Matrix GetCameraMatrix2D (Camera2D camera) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Vector2 GetWorldToScreen (Vector3 position, Camera camera) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Vector2 GetScreenToWorld2D (Vector2 position, Camera2D camera) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Vector2 GetWorldToScreenEx (Vector3 position, Camera camera, int width, int height) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Vector2 GetWorldToScreen2D (Vector2 position, Camera2D camera) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetTargetFPS (int fps) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function float GetFrameTime (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function double GetTime (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function int GetFPS (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SwapScreenBuffer (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure PollInputEvents (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure WaitTime (double seconds) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetRandomSeed (unsigned int seed) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function int GetRandomValue (int min, int max) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function int *LoadRandomSequence (unsigned int count, int min, int max) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure UnloadRandomSequence (int *sequence) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure TakeScreenshot (const char *fileName) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetConfigFlags (unsigned int flags) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure OpenURL (const char *url) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure TraceLog (int logLevel, const char *text, ...) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetTraceLogLevel (int logLevel) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure *MemAlloc (unsigned int size) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure *MemRealloc (void *ptr, unsigned int size) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure MemFree (void *ptr) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetTraceLogCallback (TraceLogCallback callback) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetLoadFileDataCallback (LoadFileDataCallback callback) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetSaveFileDataCallback (SaveFileDataCallback callback) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetLoadFileTextCallback (LoadFileTextCallback callback) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetSaveFileTextCallback (SaveFileTextCallback callback) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function unsigned char *LoadFileData (const char *fileName, int *dataSize) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure UnloadFileData (unsigned char *data) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool SaveFileData (const char *fileName, void *data, int dataSize) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool ExportDataAsCode (const unsigned char *data, int dataSize, const char *fileName) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function char *LoadFileText (const char *fileName) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure UnloadFileText (char *text) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool SaveFileText (const char *fileName, char *text) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool FileExists (const char *fileName) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool DirectoryExists (const char *dirPath) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsFileExtension (const char *fileName, const char *ext) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function int GetFileLength (const char *fileName) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function const char *GetFileExtension (const char *fileName) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function const char *GetFileName (const char *filePath) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function const char *GetFileNameWithoutExt (const char *filePath) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function const char *GetDirectoryPath (const char *filePath) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function const char *GetPrevDirectoryPath (const char *dirPath) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function const char *GetWorkingDirectory (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function const char *GetApplicationDirectory (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool ChangeDirectory (const char *dir) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsPathFile (const char *path) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function FilePathList LoadDirectoryFiles (const char *dirPath) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function FilePathList LoadDirectoryFilesEx (const char *basePath, const char *filter, bool scanSubdirs) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure UnloadDirectoryFiles (FilePathList files) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsFileDropped (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function FilePathList LoadDroppedFiles (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure UnloadDroppedFiles (FilePathList files) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function long GetFileModTime (const char *fileName) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function unsigned char *CompressData (const unsigned char *data, int dataSize, int *compDataSize) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function unsigned char *DecompressData (const unsigned char *compData, int compDataSize, int *dataSize) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function char *EncodeDataBase64 (const unsigned char *data, int dataSize, int *outputSize) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function unsigned char *DecodeDataBase64 (const unsigned char *data, int *outputSize) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function AutomationEventList LoadAutomationEventList (const char *fileName) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure UnloadAutomationEventList (AutomationEventList *list) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool ExportAutomationEventList (AutomationEventList list, const char *fileName) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetAutomationEventList (AutomationEventList *list) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetAutomationEventBaseFrame (int frame) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure StartAutomationEventRecording (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure StopAutomationEventRecording (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure PlayAutomationEvent (AutomationEvent event) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsKeyPressed (int key) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsKeyPressedRepeat (int key) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsKeyDown (int key) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsKeyReleased (int key) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsKeyUp (int key) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function int GetKeyPressed (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function int GetCharPressed (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetExitKey (int key) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~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 bool IsMouseButtonPressed (int button) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsMouseButtonDown (int button) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsMouseButtonReleased (int button) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsMouseButtonUp (int button) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function int GetMouseX (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function int GetMouseY (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Vector2 GetMousePosition (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Vector2 GetMouseDelta (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetMousePosition (int x, int y) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetMouseOffset (int offsetX, int offsetY) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetMouseScale (float scaleX, float scaleY) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function float GetMouseWheelMove (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Vector2 GetMouseWheelMoveV (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetMouseCursor (int cursor) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~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 UpdateCamera (Camera *camera, int mode) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure UpdateCameraPro (Camera *camera, Vector3 movement, Vector3 rotation, float zoom) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetShapesTexture (Texture2D texture, Rectangle source) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawPixel (int posX, int posY, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawPixelV (Vector2 position, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawLine (int startPosX, int startPosY, int endPosX, int endPosY, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawLineV (Vector2 startPos, Vector2 endPos, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawLineEx (Vector2 startPos, Vector2 endPos, float thick, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawLineStrip (Vector2 *points, int pointCount, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawLineBezier (Vector2 startPos, Vector2 endPos, float thick, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawCircle (int centerX, int centerY, float radius, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawCircleSector (Vector2 center, float radius, float startAngle, float endAngle, int segments, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawCircleSectorLines (Vector2 center, float radius, float startAngle, float endAngle, int segments, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawCircleGradient (int centerX, int centerY, float radius, Color color1, Color color2) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawCircleV (Vector2 center, float radius, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawCircleLines (int centerX, int centerY, float radius, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawCircleLinesV (Vector2 center, float radius, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawEllipse (int centerX, int centerY, float radiusH, float radiusV, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawEllipseLines (int centerX, int centerY, float radiusH, float radiusV, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawRing (Vector2 center, float innerRadius, float outerRadius, float startAngle, float endAngle, int segments, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawRingLines (Vector2 center, float innerRadius, float outerRadius, float startAngle, float endAngle, int segments, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawRectangle (int posX, int posY, int width, int height, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawRectangleV (Vector2 position, Vector2 size, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawRectangleRec (Rectangle rec, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawRectanglePro (Rectangle rec, Vector2 origin, float rotation, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawRectangleGradientV (int posX, int posY, int width, int height, Color color1, Color color2) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawRectangleGradientH (int posX, int posY, int width, int height, Color color1, Color color2) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawRectangleGradientEx (Rectangle rec, Color col1, Color col2, Color col3, Color col4) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawRectangleLines (int posX, int posY, int width, int height, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawRectangleLinesEx (Rectangle rec, float lineThick, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawRectangleRounded (Rectangle rec, float roundness, int segments, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawRectangleRoundedLines (Rectangle rec, float roundness, int segments, float lineThick, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~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 Texture2D LoadTexture (const char *fileName) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~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 UnloadTexture (Texture2D texture) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsRenderTextureReady (RenderTexture2D target) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure UnloadRenderTexture (RenderTexture2D target) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure UpdateTexture (Texture2D texture, const void *pixels) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure UpdateTextureRec (Texture2D texture, Rectangle rec, const void *pixels) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure GenTextureMipmaps (Texture2D *texture) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetTextureFilter (Texture2D texture, int filter) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetTextureWrap (Texture2D texture, int wrap) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawTexture (Texture2D texture, int posX, int posY, Color tint) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawTextureV (Texture2D texture, Vector2 position, Color tint) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawTextureEx (Texture2D texture, Vector2 position, float rotation, float scale, Color tint) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawTextureRec (Texture2D texture, Rectangle source, Vector2 position, Color tint) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawTexturePro (Texture2D texture, Rectangle source, Rectangle dest, Vector2 origin, float rotation, Color tint) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~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 Font GetFontDefault (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Font LoadFont (const char *fileName) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Font LoadFontEx (const char *fileName, int fontSize, int *codepoints, int codepointCount) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Font LoadFontFromImage (Image image, Color key, int firstChar) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Font LoadFontFromMemory (const char *fileType, const unsigned char *fileData, int dataSize, int fontSize, int *codepoints, int codepointCount) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsFontReady (Font font) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function GlyphInfo *LoadFontData (const unsigned char *fileData, int dataSize, int fontSize, int *codepoints, int codepointCount, int type) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Image GenImageFontAtlas (const GlyphInfo *glyphs, Rectangle **glyphRecs, int glyphCount, int fontSize, int padding, int packMethod) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure UnloadFontData (GlyphInfo *glyphs, int glyphCount) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure UnloadFont (Font font) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool ExportFontAsCode (Font font, const char *fileName) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawFPS (int posX, int posY) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawText (const char *text, int posX, int posY, int fontSize, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawTextEx (Font font, const char *text, Vector2 position, float fontSize, float spacing, Color tint) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawTextPro (Font font, const char *text, Vector2 position, Vector2 origin, float rotation, float fontSize, float spacing, Color tint) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~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 SetTextLineSpacing (int spacing) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function int MeasureText (const char *text, int fontSize) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Vector2 MeasureTextEx (Font font, const char *text, float fontSize, float spacing) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function int GetGlyphIndex (Font font, int codepoint) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function GlyphInfo GetGlyphInfo (Font font, int codepoint) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Rectangle GetGlyphAtlasRec (Font font, int codepoint) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function char *LoadUTF8 (const int *codepoints, int length) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure UnloadUTF8 (char *text) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~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 DrawCube (Vector3 position, float width, float height, float length, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawCubeV (Vector3 position, Vector3 size, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawCubeWires (Vector3 position, float width, float height, float length, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~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 DrawPlane (Vector3 centerPos, Vector2 size, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~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 Model LoadModel (const char *fileName) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~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 UnloadModel (Model model) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function BoundingBox GetModelBoundingBox (Model model) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawModel (Model model, Vector3 position, float scale, Color tint) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawModelEx (Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawModelWires (Model model, Vector3 position, float scale, Color tint) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawModelWiresEx (Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawBoundingBox (BoundingBox box, Color color) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawBillboard (Camera camera, Texture2D texture, Vector3 position, float size, Color tint) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawBillboardRec (Camera camera, Texture2D texture, Rectangle source, Vector3 position, Vector2 size, Color tint) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure DrawBillboardPro (Camera camera, Texture2D texture, Rectangle source, Vector3 position, Vector3 up, Vector2 size, Vector2 origin, float rotation, Color tint) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure UploadMesh (Mesh *mesh, bool dynamic) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~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 DrawMesh (Mesh mesh, Material material, Matrix transform) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~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 Mesh GenMeshPlane (float width, float length, int resX, int resZ) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Mesh GenMeshCube (float width, float height, float length) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Mesh GenMeshSphere (float radius, int rings, int slices) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Mesh GenMeshHemiSphere (float radius, int rings, int slices) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Mesh GenMeshCylinder (float radius, float height, int slices) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Mesh GenMeshCone (float radius, float height, int slices) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Mesh GenMeshTorus (float radius, float size, int radSeg, int sides) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Mesh GenMeshKnot (float radius, float size, int radSeg, int sides) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Mesh GenMeshHeightmap (Image heightmap, Vector3 size) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Mesh GenMeshCubicmap (Image cubicmap, Vector3 cubeSize) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Material *LoadMaterials (const char *fileName, int *materialCount) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Material LoadMaterialDefault (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsMaterialReady (Material material) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure UnloadMaterial (Material material) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetMaterialTexture (Material *material, int mapType, Texture2D texture) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetModelMeshMaterial (Model *model, int meshId, int materialId) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function ModelAnimation *LoadModelAnimations (const char *fileName, int *animCount) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure UpdateModelAnimation (Model model, ModelAnimation anim, int frame) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure UnloadModelAnimation (ModelAnimation anim) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure UnloadModelAnimations (ModelAnimation *animations, int animCount) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsModelAnimationValid (Model model, ModelAnimation anim) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool CheckCollisionSpheres (Vector3 center1, float radius1, Vector3 center2, float radius2) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool CheckCollisionBoxes (BoundingBox box1, BoundingBox box2) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool CheckCollisionBoxSphere (BoundingBox box, Vector3 center, float radius) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function RayCollision GetRayCollisionSphere (Ray ray, Vector3 center, float radius) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function RayCollision GetRayCollisionBox (Ray ray, BoundingBox box) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function RayCollision GetRayCollisionMesh (Ray ray, Mesh mesh, Matrix transform) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function RayCollision GetRayCollisionTriangle (Ray ray, Vector3 p1, Vector3 p2, Vector3 p3) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function RayCollision GetRayCollisionQuad (Ray ray, Vector3 p1, Vector3 p2, Vector3 p3, Vector3 p4) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~typedef void (*AudioCallback) (void *bufferData, unsigned int frames) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure InitAudioDevice (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure CloseAudioDevice (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsAudioDeviceReady (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetMasterVolume (float volume) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function float GetMasterVolume (void) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Wave LoadWave (const char *fileName) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Wave LoadWaveFromMemory (const char *fileType, const unsigned char *fileData, int dataSize) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsWaveReady (Wave wave) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Sound LoadSound (const char *fileName) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Sound LoadSoundFromWave (Wave wave) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Sound LoadSoundAlias (Sound source) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsSoundReady (Sound sound) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure UpdateSound (Sound sound, const void *data, int sampleCount) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure UnloadWave (Wave wave) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure UnloadSound (Sound sound) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure UnloadSoundAlias (Sound alias) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool ExportWave (Wave wave, const char *fileName) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool ExportWaveAsCode (Wave wave, const char *fileName) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure PlaySound (Sound sound) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure StopSound (Sound sound) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure PauseSound (Sound sound) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure ResumeSound (Sound sound) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsSoundPlaying (Sound sound) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetSoundVolume (Sound sound, float volume) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetSoundPitch (Sound sound, float pitch) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetSoundPan (Sound sound, float pan) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Wave WaveCopy (Wave wave) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure WaveCrop (Wave *wave, int initSample, int finalSample) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure WaveFormat (Wave *wave, int sampleRate, int sampleSize, int channels) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function float *LoadWaveSamples (Wave wave) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure UnloadWaveSamples (float *samples) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Music LoadMusicStream (const char *fileName) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function Music LoadMusicStreamFromMemory (const char *fileType, const unsigned char *data, int dataSize) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsMusicReady (Music music) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure UnloadMusicStream (Music music) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure PlayMusicStream (Music music) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsMusicStreamPlaying (Music music) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure UpdateMusicStream (Music music) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure StopMusicStream (Music music) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure PauseMusicStream (Music music) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure ResumeMusicStream (Music music) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SeekMusicStream (Music music, float position) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetMusicVolume (Music music, float volume) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetMusicPitch (Music music, float pitch) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetMusicPan (Music music, float pan) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function float GetMusicTimeLength (Music music) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function float GetMusicTimePlayed (Music music) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function AudioStream LoadAudioStream (unsigned int sampleRate, unsigned int sampleSize, unsigned int channels) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsAudioStreamReady (AudioStream stream) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure UnloadAudioStream (AudioStream stream) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure UpdateAudioStream (AudioStream stream, const void *data, int frameCount) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsAudioStreamProcessed (AudioStream stream) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure PlayAudioStream (AudioStream stream) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure PauseAudioStream (AudioStream stream) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure ResumeAudioStream (AudioStream stream) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~function bool IsAudioStreamPlaying (AudioStream stream) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure StopAudioStream (AudioStream stream) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetAudioStreamVolume (AudioStream stream, float volume) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetAudioStreamPitch (AudioStream stream, float pitch) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetAudioStreamPan (AudioStream stream, float pan) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetAudioStreamBufferSizeDefault (int size) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + --~procedure SetAudioStreamCallback (AudioStream stream, AudioCallback callback) with + --~Import => True, + --~Convention => C, + --~External_Name => ""; + + 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; diff --git a/window.adb b/window.adb new file mode 100644 index 0000000..f50781c --- /dev/null +++ b/window.adb @@ -0,0 +1,22 @@ +with Raylib; +use Raylib; + +procedure Window is + +begin + + Open_Window (720, 360, "Heyo Raylib!" & Character'Val (0)); + + Main_Loop: loop + exit when Window_Should_Close; + -- + Begin_Drawing; + -- + Clear_Background (Blue); + -- + End_Drawing; + end loop Main_Loop; + + Close_Window; + +end Window;