]> git.xolatile.top Git - xolatile-raylib-ada.git/commitdiff
Minor refactoring...
authorxolatile <xolatile@proton.me>
Fri, 5 Apr 2024 13:36:42 +0000 (09:36 -0400)
committerxolatile <xolatile@proton.me>
Fri, 5 Apr 2024 13:36:42 +0000 (09:36 -0400)
raylib.ads

index 787f07b9ac514fb47fdf9c0ebacba7eea5795618..7afd858487ec85607466d4dc6cd0beea61e3d921 100644 (file)
@@ -657,9 +657,9 @@ package Raylib is
    No_Font : Font;
 
    type Camera_3D is record
-      Position      : Vector_3D         := (0.0, 0.0, 0.0);
-      Target        : Vector_3D         := (0.0, 0.0, 0.0);
-      Up            : Vector_3D         := (0.0, 0.0, 0.0);
+      Position      : Vector_3D         := (others => 0.0);
+      Target        : Vector_3D         := (others => 0.0);
+      Up            : Vector_3D         := (others => 0.0);
       Field_Of_View : Float             := 0.0;
       Projection    : Camera_Projection := Camera_Perspective;
    end record with Convention => C_Pass_By_Copy;
@@ -667,8 +667,8 @@ package Raylib is
    No_Camera_3D : Camera_3D;
 
    type Camera_2D is record
-      Offset   : Vector_2D := (0.0, 0.0);
-      Target   : Vector_2D := (0.0, 0.0);
+      Offset   : Vector_2D := (others => 0.0);
+      Target   : Vector_2D := (others => 0.0);
       Rotation : Float     := 0.0;
       Zoom     : Float     := 0.0;
    end record with Convention => C_Pass_By_Copy;
@@ -723,9 +723,9 @@ package Raylib is
    No_Material : Material;
 
    type Transform is record
-      Translation : Vector_3D := (0.0, 0.0, 0.0);
-      Rotation    : Vector_4D := (0.0, 0.0, 0.0, 0.0);
-      Scale       : Vector_3D := (0.0, 0.0, 0.0);
+      Translation : Vector_3D := (others => 0.0);
+      Rotation    : Vector_4D := (others => 0.0);
+      Scale       : Vector_3D := (others => 0.0);
    end record with Convention => C_Pass_By_Copy;
 
    type Character_Array_32 is array (0 .. 31) of Character;
@@ -767,8 +767,8 @@ package Raylib is
    No_Model_Animation : Model_Animation;
 
    type Ray is record
-      Position  : Vector_3D := (0.0, 0.0, 0.0);
-      Direction : Vector_3D := (0.0, 0.0, 0.0);
+      Position  : Vector_3D := (others => 0.0);
+      Direction : Vector_3D := (others => 0.0);
    end record with Convention => C_Pass_By_Copy;
 
    No_Ray : Ray;
@@ -776,15 +776,15 @@ package Raylib is
    type Ray_Collision is record
       Hit      : Logical   := False;
       Distance : Float     := 0.0;
-      Point    : Vector_3D := (0.0, 0.0, 0.0);
-      Normal   : Vector_3D := (0.0, 0.0, 0.0);
+      Point    : Vector_3D := (others => 0.0);
+      Normal   : Vector_3D := (others => 0.0);
    end record with Convention => C_Pass_By_Copy;
 
    No_Ray_Collision : Ray_Collision;
 
    type Bounding_Box is record
-      Min : Vector_3D := (0.0, 0.0, 0.0);
-      Max : Vector_3D := (0.0, 0.0, 0.0);
+      Min : Vector_3D := (others => 0.0);
+      Max : Vector_3D := (others => 0.0);
    end record with Convention => C_Pass_By_Copy;
 
    No_Bounding_Box : Bounding_Box;
@@ -835,8 +835,8 @@ package Raylib is
       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);
+      Lens_Distortion_Values       : Float_Array_4 := (others => 0.0);
+      Chroma_Abberation_Correction : Float_Array_4 := (others => 0.0);
    end record with Convention => C_Pass_By_Copy;
 
    No_VR_Device_Info : VR_Device_Info;
@@ -847,12 +847,12 @@ package Raylib is
    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);
+      Left_Lens_Center    : Float_Array_2     := (others => 0.0);
+      Right_Lens_Center   : Float_Array_2     := (others => 0.0);
+      Left_Screen_Center  : Float_Array_2     := (others => 0.0);
+      Right_Screen_Center : Float_Array_2     := (others => 0.0);
+      Scale               : Float_Array_2     := (others => 0.0);
+      Scale_In            : Float_Array_2     := (others => 0.0);
    end record with Convention => C_Pass_By_Copy;
 
    No_VR_Stereo_Config : VR_Stereo_Config;
@@ -1441,7 +1441,7 @@ package Raylib is
       External_Name => "UnloadShader";
 
    function Get_Mouse_Ray (
-      Mouse_Position : Vector_2D := (0.0, 0.0);
+      Mouse_Position : Vector_2D := (others => 0.0);
       Camera         : Camera_3D := No_Camera_3D
    ) return Ray with
       Import        => True,
@@ -1463,7 +1463,7 @@ package Raylib is
       External_Name => "GetCameraMatrix2D";
 
    function Get_World_To_Screen_3D (
-      Position : Vector_3D := (0.0, 0.0, 0.0);
+      Position : Vector_3D := (others => 0.0);
       Camera   : Camera_3D := No_Camera_3D
    ) return Vector_2D with
       Import        => True,
@@ -1471,7 +1471,7 @@ package Raylib is
       External_Name => "GetWorldToScreen";
 
    function Get_Screen_To_World_2D (
-      Position : Vector_2D := (0.0, 0.0);
+      Position : Vector_2D := (others => 0.0);
       Camera   : Camera_2D := No_Camera_2D
    ) return Vector_2D with
       Import        => True,
@@ -1479,7 +1479,7 @@ package Raylib is
       External_Name => "GetScreenToWorld2D";
 
    function Get_World_To_Screen_Ex (
-      Position : Vector_3D := (0.0, 0.0, 0.0);
+      Position : Vector_3D := (others => 0.0);
       Camera   : Camera_3D := No_Camera_3D;
       Width    : Integer   := 0;
       Height   : Integer   := 0
@@ -1489,7 +1489,7 @@ package Raylib is
       External_Name => "GetWorldToScreenEx";
 
    function Get_World_To_Screen_2D (
-      Position : Vector_2D := (0.0, 0.0);
+      Position : Vector_2D := (others => 0.0);
       Camera   : Camera_2D := No_Camera_2D
    ) return Vector_2D with
       Import        => True,
@@ -1587,11 +1587,6 @@ package Raylib is
       Convention    => C,
       External_Name => "OpenURL";
 
-   --~procedure TraceLog (int logLevel, const char *text, ...) with
-      --~Import        => True,
-      --~Convention    => C,
-      --~External_Name => "TraceLog";
-
    procedure Set_Trace_Log_Level (
       Level : Trace_Log_Level := Log_All
    ) with
@@ -2087,8 +2082,8 @@ package Raylib is
 
    procedure Update_Camera_Pro (
       Data     : access Camera_3D := null;
-      Movement :        Vector_3D := (0.0, 0.0, 0.0);
-      Rotation :        Vector_3D := (0.0, 0.0, 0.0);
+      Movement :        Vector_3D := (others => 0.0);
+      Rotation :        Vector_3D := (others => 0.0);
       Zoom     :        Float     := 0.0
    ) with
       Import        => True,
@@ -2113,7 +2108,7 @@ package Raylib is
       External_Name => "DrawPixel";
 
    procedure Draw_Pixel_V (
-      Position : Vector_2D := (0.0, 0.0);
+      Position : Vector_2D := (others => 0.0);
       Tint     : Color     := White
    ) with
       Import        => True,
@@ -2132,8 +2127,8 @@ package Raylib is
       External_Name => "DrawLine";
 
    procedure Draw_Line_V (
-      From : Vector_2D := (0.0, 0.0);
-      To   : Vector_2D := (0.0, 0.0);
+      From : Vector_2D := (others => 0.0);
+      To   : Vector_2D := (others => 0.0);
       Tint : Color     := Black
    ) with
       Import        => True,
@@ -2141,8 +2136,8 @@ package Raylib is
       External_Name => "DrawLineV";
 
    procedure Draw_Line_Ex (
-      From  : Vector_2D := (0.0, 0.0);
-      To    : Vector_2D := (0.0, 0.0);
+      From  : Vector_2D := (others => 0.0);
+      To    : Vector_2D := (others => 0.0);
       Thick : Float     := 0.0;
       Tint  : Color     := Black
    ) with
@@ -2160,8 +2155,8 @@ package Raylib is
       External_Name => "DrawLineStrip";
 
    procedure Draw_Line_Bezier (
-      From  : Vector_2D := (0.0, 0.0);
-      To    : Vector_2D := (0.0, 0.0);
+      From  : Vector_2D := (others => 0.0);
+      To    : Vector_2D := (others => 0.0);
       Thick : Float     := 0.0;
       Tint : Color   := Black
    ) with
@@ -2180,7 +2175,7 @@ package Raylib is
       External_Name => "DrawCircle";
 
    procedure Draw_Circle_Sector (
-      Center   : Vector_2D := (0.0, 0.0);
+      Center   : Vector_2D := (others => 0.0);
       Radius   : Float     := 0.0;
       From     : Float     := 0.0;
       To       : Float     := 0.0;
@@ -2192,7 +2187,7 @@ package Raylib is
       External_Name => "DrawCircleSector";
 
    procedure Draw_Circle_Sector_Lines (
-      Center   : Vector_2D := (0.0, 0.0);
+      Center   : Vector_2D := (others => 0.0);
       Radius   : Float     := 0.0;
       From     : Float     := 0.0;
       To       : Float     := 0.0;
@@ -2215,7 +2210,7 @@ package Raylib is
       External_Name => "DrawCircleGradient";
 
    procedure Draw_Circle_V (
-      Center : Vector_2D := (0.0, 0.0);
+      Center : Vector_2D := (others => 0.0);
       Radius : Float     := 0.0;
       Tint   : Color     := Black
    ) with
@@ -2234,7 +2229,7 @@ package Raylib is
       External_Name => "DrawCircleLines";
 
    procedure Draw_Circle_Lines_V (
-      Center : Vector_2D := (0.0, 0.0);
+      Center : Vector_2D := (others => 0.0);
       Radius : Float     := 0.0;
       Tint   : Color     := Black
    ) with
@@ -2265,7 +2260,7 @@ package Raylib is
       External_Name => "DrawEllipseLines";
 
    procedure Draw_Ring (
-      Center       : Vector_2D := (0.0, 0.0);
+      Center       : Vector_2D := (others => 0.0);
       Inner_Radius : Float     := 0.0;
       Outer_Radius : Float     := 0.0;
       From         : Float     := 0.0;
@@ -2278,7 +2273,7 @@ package Raylib is
       External_Name => "DrawRing";
 
    procedure Draw_Ring_Lines (
-      Center       : Vector_2D := (0.0, 0.0);
+      Center       : Vector_2D := (others => 0.0);
       Inner_Radius : Float     := 0.0;
       Outer_Radius : Float     := 0.0;
       From         : Float     := 0.0;
@@ -2302,8 +2297,8 @@ package Raylib is
       External_Name => "DrawRectangle";
 
    procedure Draw_Rectangle_V (
-      Position : Vector_2D := (0.0, 0.0);
-      Size     : Vector_2D := (0.0, 0.0);
+      Position : Vector_2D := (others => 0.0);
+      Size     : Vector_2D := (others => 0.0);
       Tint     : Color     := Black
    ) with
       Import        => True,
@@ -2320,7 +2315,7 @@ package Raylib is
 
    procedure Draw_Rectangle_Pro (
       Data     : Rectangle := No_Rectangle;
-      Origin   : Vector_2D := (0.0, 0.0);
+      Origin   : Vector_2D := (others => 0.0);
       Rotation : Float     := 0.0;
       Tint     : Color     := Black
    ) with
@@ -3024,7 +3019,7 @@ package Raylib is
 
    procedure Draw_Texture_V (
       Data     : Texture   := No_Texture;
-      Position : Vector_2D := (0.0, 0.0);
+      Position : Vector_2D := (others => 0.0);
       Tint     : Color     := White
    ) with
       Import        => True,
@@ -3033,7 +3028,7 @@ package Raylib is
 
    procedure Draw_Texture_Ex (
       Data     : Texture   := No_Texture;
-      Position : Vector_2D := (0.0, 0.0);
+      Position : Vector_2D := (others => 0.0);
       Rotation : Float     := 0.0;
       Scale    : Float     := 0.0;
       Tint     : Color     := White
@@ -3045,7 +3040,7 @@ package Raylib is
    procedure Draw_Texture_Rec (
       Data     : Texture   := No_Texture;
       Source   : Rectangle := No_Rectangle;
-      Position : Vector_2D := (0.0, 0.0);
+      Position : Vector_2D := (others => 0.0);
       Tint     : Color     := White
    ) with
       Import        => True,
@@ -3056,7 +3051,7 @@ package Raylib is
       Data        : Texture   := No_Texture;
       Source      : Rectangle := No_Rectangle;
       Destination : Rectangle := No_Rectangle;
-      Origin      : Vector_2D := (0.0, 0.0);
+      Origin      : Vector_2D := (others => 0.0);
       Rotation    : Float     := 0.0;
       Tint        : Color     := White
    ) with
@@ -3263,7 +3258,7 @@ package Raylib is
    procedure Draw_Text_Ex (
       Data      : Font      := Get_Font_Default;
       Text      : String    := "";
-      Position  : Vector_2D := (0.0, 0.0);
+      Position  : Vector_2D := (others => 0.0);
       Font_Size : Float     := 0.0;
       Spacing   : Float     := 0.0;
       Tint      : Color     := White
@@ -3275,8 +3270,8 @@ package Raylib is
    procedure Draw_Text_Pro (
       Data      : Font      := Get_Font_Default;
       Text      : String    := "";
-      Position  : Vector_2D := (0.0, 0.0);
-      Origin    : Vector_2D := (0.0, 0.0);
+      Position  : Vector_2D := (others => 0.0);
+      Origin    : Vector_2D := (others => 0.0);
       Rotation  : Float     := 0.0;
       Font_Size : Float     := 0.0;
       Spacing   : Float     := 0.0;
@@ -3496,7 +3491,7 @@ package Raylib is
       --~External_Name => "";
 
    procedure Draw_Cube (
-      Position : Vector_3D := (0.0, 0.0, 0.0);
+      Position : Vector_3D := (others => 0.0);
       Width    : Float     := 0.0;
       Height   : Float     := 0.0;
       Length   : Float     := 0.0;
@@ -3512,7 +3507,7 @@ package Raylib is
       --~External_Name => "";
 
    procedure Draw_Cube_Wires (
-      Position : Vector_3D := (0.0, 0.0, 0.0);
+      Position : Vector_3D := (others => 0.0);
       Width    : Float     := 0.0;
       Height   : Float     := 0.0;
       Length   : Float     := 0.0;
@@ -3573,8 +3568,8 @@ package Raylib is
       --~External_Name => "";
 
    procedure Draw_Plane (
-      Center : Vector_3D := (0.0, 0.0, 0.0);
-      Size   : Vector_2D := (0.0, 0.0);
+      Center : Vector_3D := (others => 0.0);
+      Size   : Vector_2D := (others => 0.0);
       Tint   : Color := White
    ) with
       Import        => True,
@@ -3615,14 +3610,16 @@ package Raylib is
       Convention    => C,
       External_Name => "UnloadModel";
 
-   --~function BoundingBox GetModelBoundingBox (Model model) with
-      --~Import        => True,
-      --~Convention    => C,
-      --~External_Name => "";
+   function GetModelBoundingBox (
+      Data : Model := No_Model
+   ) return Bounding_Box with
+      Import        => True,
+      Convention    => C,
+      External_Name => "GetModelBoundingBox";
 
    procedure Draw_Model (
       Data     : Model     := No_Model;
-      Position : Vector_3D := (0.0, 0.0, 0.0);
+      Position : Vector_3D := (others => 0.0);
       Scale    : Float     := 1.0;
       Tint     : Color     := White
    ) with
@@ -3632,8 +3629,8 @@ package Raylib is
 
    procedure Draw_Model_Ex (
       Data     : Model     := No_Model;
-      Position : Vector_3D := (0.0, 0.0, 0.0);
-      Axis     : Vector_3D := (0.0, 0.0, 0.0);
+      Position : Vector_3D := (others => 0.0);
+      Axis     : Vector_3D := (others => 0.0);
       Angle    : Float     := 0.0;
       Scale    : Vector_3D := (1.0, 1.0, 1.0);
       Tint     : Color     := White
@@ -3642,15 +3639,20 @@ package Raylib is
       Convention    => C,
       External_Name => "DrawModelEx";
 
-   --~procedure DrawModelWires (Model model, Vector3 position, float scale, Color tint) with
-      --~Import        => True,
-      --~Convention    => C,
-      --~External_Name => "";
+   procedure Draw_Model_Wires (
+      Data     : Model     := No_Model;
+      Position : Vector_3D := (others => 0.0);
+      Scale    : Float     := 0.0;
+      Tint     : Color     := White
+   ) with
+      Import        => True,
+      Convention    => C,
+      External_Name => "DrawModelWires";
 
    procedure Draw_Model_Wires_Ex (
       Data     : Model     := No_Model;
-      Position : Vector_3D := (0.0, 0.0, 0.0);
-      Axis     : Vector_3D := (0.0, 0.0, 0.0);
+      Position : Vector_3D := (others => 0.0);
+      Axis     : Vector_3D := (others => 0.0);
       Angle    : Float     := 0.0;
       Scale    : Vector_3D := (1.0, 1.0, 1.0);
       Tint     : Color     := White
@@ -3659,37 +3661,47 @@ package Raylib is
       Convention    => C,
       External_Name => "DrawModelWiresEx";
 
-   --~procedure DrawBoundingBox (BoundingBox box, Color color) with
-      --~Import        => True,
-      --~Convention    => C,
-      --~External_Name => "";
+   procedure Draw_Bounding_Box (
+      Box  : BoundingBox := No_Bounding_Box;
+      Tint : Color       := White
+   ) with
+      Import        => True,
+      Convention    => C,
+      External_Name => "DrawBoundingBox";
 
    procedure Draw_Billboard (
-      Camera      : Camera_3D := No_Camera_3D;
-      Billboard   : Texture   := No_Texture;
-      Position    : Vector_3D := (0.0, 0.0, 0.0);
-      Size        : Float     := 0.0;
-      Tint        : Color     := White
+      Camera    : Camera_3D := No_Camera_3D;
+      Billboard : Texture   := No_Texture;
+      Position  : Vector_3D := (others => 0.0);
+      Size      : Float     := 0.0;
+      Tint      : Color     := White
    ) with
       Import        => True,
       Convention    => C,
       External_Name => "DrawBillboard";
 
-   --~procedure DrawBillboardRec (Camera camera, Texture2D texture, Rectangle source, Vector3 position, Vector2 size, Color tint) with
-      --~Import        => True,
-      --~Convention    => C,
-      --~External_Name => "";
+   procedure Draw_Billboard_Rec (
+      Camera    : Camera_3D := No_Camera_3D;
+      Billboard : Texture   := No_Texture;
+      Source    : Rectangle := No_Rectangle;
+      Position  : Vector_3D := (others => 0.0);
+      Size      : Vector_2D := (others => 0.0);
+      Tint      : Color     := White
+   ) with
+      Import        => True,
+      Convention    => C,
+      External_Name => "DrawBillboardRec";
 
    procedure Draw_Billboard_Pro (
-      Camera      : Camera_3D := No_Camera_3D;
-      Billboard   : Texture   := No_Texture;
-      Source      : Rectangle := No_Rectangle;
-      Position    : Vector_3D := (0.0, 0.0, 0.0);
-      Up          : Vector_3D := (0.0, 0.0, 0.0);
-      Size        : Vector_2D := (0.0, 0.0);
-      Origin      : Vector_2D := (0.0, 0.0);
-      Rotation    : Float     := 0.0;
-      Tint        : Color     := White
+      Camera    : Camera_3D := No_Camera_3D;
+      Billboard : Texture   := No_Texture;
+      Source    : Rectangle := No_Rectangle;
+      Position  : Vector_3D := (others => 0.0);
+      Up        : Vector_3D := (others => 0.0);
+      Size      : Vector_2D := (others => 0.0);
+      Origin    : Vector_2D := (others => 0.0);
+      Rotation  : Float     := 0.0;
+      Tint      : Color     := White
    ) with
       Import        => True,
       Convention    => C,
@@ -3703,15 +3715,23 @@ package Raylib is
       Convention    => C,
       External_Name => "UploadMesh";
 
-   --~procedure UpdateMeshBuffer (Mesh mesh, int index, const void *data, int dataSize, int offset) with
-      --~Import        => True,
-      --~Convention    => C,
-      --~External_Name => "";
+   procedure Update_Mesh_Buffer (
+      Data      : Mesh    := No_Mesh;
+      Index     : Integer := 0;
+      This      : Pointer := null;
+      Data_Size : Natural := 0;
+      Offset    : Integer := 0
+   ) with
+      Import        => True,
+      Convention    => C,
+      External_Name => "UpdateMeshBuffer";
 
-   --~procedure UnloadMesh (Mesh mesh) with
-      --~Import        => True,
-      --~Convention    => C,
-      --~External_Name => "";
+   procedure Unload_Mesh (
+      Data : Mesh := No_Mesh
+   ) with
+      Import        => True,
+      Convention    => C,
+      External_Name => "UnloadMesh";
 
    procedure Draw_Mesh (
       Data      : Mesh      := No_Mesh;
@@ -3722,35 +3742,53 @@ package Raylib is
       Convention    => C,
       External_Name => "DrawMesh";
 
-   --~procedure DrawMeshInstanced (Mesh mesh, Material material, const Matrix *transforms, int instances) with
-      --~Import        => True,
-      --~Convention    => C,
-      --~External_Name => "";
+   procedure Draw_Mesh_Instanced (
+      Data         :        Mesh      := No_Mesh;
+      Use_Material :        Material  := No_Material;
+      Transforms   : access Matrix_4D := null;
+      Instances    :        Integer   := 0
+   ) with
+      Import        => True,
+      Convention    => C,
+      External_Name => "DrawMeshInstanced";
 
-   --~function BoundingBox GetMeshBoundingBox (Mesh mesh) with
-      --~Import        => True,
-      --~Convention    => C,
-      --~External_Name => "";
+   function Get_Mesh_Bounding_Box (
+      Data : Mesh := No_Mesh
+   ) return Bounding_Box with
+      Import        => True,
+      Convention    => C,
+      External_Name => "GetMeshBoundingBox";
 
-   --~procedure GenMeshTangents (Mesh *mesh) with
-      --~Import        => True,
-      --~Convention    => C,
-      --~External_Name => "";
+   procedure Gen_Mesh_Tangents (
+      Data : access Mesh := null
+   ) with
+      Import        => True,
+      Convention    => C,
+      External_Name => "GenMeshTangents";
 
-   --~function bool ExportMesh (Mesh mesh, const char *fileName) with
-      --~Import        => True,
-      --~Convention    => C,
-      --~External_Name => "";
+   function Export_Mesh (
+      Data      : Mesh   := No_Mesh;
+      File_Name : String := ""
+   ) return Logical with
+      Import        => True,
+      Convention    => C,
+      External_Name => "ExportMesh";
 
-   --~function bool ExportMeshAsCode (Mesh mesh, const char *fileName) with
-      --~Import        => True,
-      --~Convention    => C,
-      --~External_Name => "";
+   function Export_Mesh_As_Code (
+      Data      : Mesh   := No_Mesh;
+      File_Name : String := ""
+   ) return Logical with
+      Import        => True,
+      Convention    => C,
+      External_Name => "ExportMeshAsCode";
 
-   --~function Mesh GenMeshPoly (int sides, float radius) with
-      --~Import        => True,
-      --~Convention    => C,
-      --~External_Name => "";
+   function Gen_Mesh_Poly (
+      Sides  : Integer := 0;
+      Radius : Float   := 0.0
+   ) return Mesh with
+      Import        => True,
+      Convention    => C,
+      External_Name => "GenMeshPoly";
 
    function Gen_Mesh_Plane (
       Width  : Float   := 1.0;
@@ -3829,7 +3867,7 @@ package Raylib is
 
    function Gen_Mesh_Height_Map (
       Height_Map : Image     := No_Image;
-      Size       : Vector_3D := (0.0, 0.0, 0.0)
+      Size       : Vector_3D := (others => 0.0)
    ) return Mesh with
       Import        => True,
       Convention    => C,
@@ -3837,7 +3875,7 @@ package Raylib is
 
    function Gen_Mesh_Cubic_Map (
       Cubic_Map : Image     := No_Image;
-      Size      : Vector_3D := (0.0, 0.0, 0.0)
+      Size      : Vector_3D := (others => 0.0)
    ) return Mesh with
       Import        => True,
       Convention    => C,
@@ -3929,9 +3967,9 @@ package Raylib is
       External_Name => "IsModelAnimationValid";
 
    function Check_Collision_Spheres (
-      Center_1 : Vector_3D := (0.0, 0.0, 0.0);
+      Center_1 : Vector_3D := (others => 0.0);
       Radius_1 : Float     := 0.0;
-      Center_2 : Vector_3D := (0.0, 0.0, 0.0);
+      Center_2 : Vector_3D := (others => 0.0);
       Radius_2 : Float     := 0.0
    ) return Logical with
       Import        => True,
@@ -3948,7 +3986,7 @@ package Raylib is
 
    function Check_Collision_Box_Sphere (
       Box    : Bounding_Box := No_Bounding_Box;
-      Center : Vector_3D    := (0.0, 0.0, 0.0);
+      Center : Vector_3D    := (others => 0.0);
       Radius : Float        := 0.0
    ) return Logical with
       Import        => True,
@@ -3957,7 +3995,7 @@ package Raylib is
 
    function Get_Ray_Collision_Sphere (
       Hit    : Ray       := No_Ray;
-      Center : Vector_3D := (0.0, 0.0, 0.0);
+      Center : Vector_3D := (others => 0.0);
       Radius : Float     := 0.0
    ) return Ray_Collision with
       Import        => True,
@@ -3983,9 +4021,9 @@ package Raylib is
 
    function Get_Ray_Collision_Triangle (
       Hit     : Ray       := No_Ray;
-      Point_1 : Vector_3D := (0.0, 0.0, 0.0);
-      Point_2 : Vector_3D := (0.0, 0.0, 0.0);
-      Point_3 : Vector_3D := (0.0, 0.0, 0.0)
+      Point_1 : Vector_3D := (others => 0.0);
+      Point_2 : Vector_3D := (others => 0.0);
+      Point_3 : Vector_3D := (others => 0.0)
    ) return Ray_Collision with
       Import        => True,
       Convention    => C,
@@ -3993,10 +4031,10 @@ package Raylib is
 
    function Get_Ray_Collision_Quad (
       Hit     : Ray       := No_Ray;
-      Point_1 : Vector_3D := (0.0, 0.0, 0.0);
-      Point_2 : Vector_3D := (0.0, 0.0, 0.0);
-      Point_3 : Vector_3D := (0.0, 0.0, 0.0);
-      Point_4 : Vector_3D := (0.0, 0.0, 0.0)
+      Point_1 : Vector_3D := (others => 0.0);
+      Point_2 : Vector_3D := (others => 0.0);
+      Point_3 : Vector_3D := (others => 0.0);
+      Point_4 : Vector_3D := (others => 0.0)
    ) return Ray_Collision with
       Import        => True,
       Convention    => C,
@@ -4017,7 +4055,9 @@ package Raylib is
       Convention    => C,
       External_Name => "IsAudioDeviceReady";
 
-   procedure Set_Master_Volume (Volume : Float := 1.0) with
+   procedure Set_Master_Volume (
+      Volume : Float := 1.0
+   ) with
       Import        => True,
       Convention    => C,
       External_Name => "SetMasterVolume";