Added some 3D functions...

This commit is contained in:
Ognjen Milan Robovic 2024-03-25 23:30:41 -04:00
parent bd53eb070d
commit cbf06c5d33

View File

@ -689,14 +689,20 @@ package Raylib is
Value : Float := 0.0; Value : Float := 0.0;
end record with Convention => C_Pass_By_Copy; end record with Convention => C_Pass_By_Copy;
type Float_Array_4 is array (0 .. 3) of Float; No_Material_Map : Material_Map;
type Float_Array_4 is array (0 .. 3) of Float;
type Material_Map_Array_4 is array (0 .. 3) of Material_Map;
type Material_Map_Array is array (Natural range <>) of Material_Map;
type Material is record type Material is record
Data : Shader := No_Shader; Data : Shader := No_Shader;
Map : access Material_Map := null; Maps : access Material_Map_Array := null;
Parameter : Float_Array_4 := (0.0, 0.0, 0.0, 0.0); Parameter : Float_Array_4 := (0.0, 0.0, 0.0, 1.0);
end record with Convention => C_Pass_By_Copy; end record with Convention => C_Pass_By_Copy;
No_Material : Material;
type Transform is record type Transform is record
Translation : Vector_3D := (0.0, 0.0, 0.0); Translation : Vector_3D := (0.0, 0.0, 0.0);
Rotation : Vector_4D := (0.0, 0.0, 0.0, 0.0); Rotation : Vector_4D := (0.0, 0.0, 0.0, 0.0);
@ -712,18 +718,23 @@ package Raylib is
Parent : Integer := 0; Parent : Integer := 0;
end record with Convention => C_Pass_By_Copy; end record with Convention => C_Pass_By_Copy;
type Material_Array_4 is array (0 .. 3) of Material;
type Material_Array is array (Natural range <>) of Material;
type Model is record type Model is record
Transform : Matrix_4D := Id_Matrix; Transform : Matrix_4D := Id_Matrix;
Mesh_Count : Integer := 0; Mesh_Count : Integer := 0;
Material_Count : Integer := 0; Material_Count : Integer := 0;
Meshes : access Mesh := null; Meshes : access Mesh := null;
Materials : access Material := null; Materials : access Material_Array := null;
Mesh_Materials : access Integer := null; Mesh_Materials : access Integer := null;
Bone_Count : Integer := 0; Bone_Count : Integer := 0;
Bones : access Bone_Info := null; Bones : access Bone_Info := null;
--~Bind_Post : access Transform := null; ERROR --~Bind_Post : access Transform := null; ERROR
end record with Convention => C_Pass_By_Copy; end record with Convention => C_Pass_By_Copy;
No_Model : Model;
type Model_Animation is record type Model_Animation is record
Bone_Count : Integer := 0; Bone_Count : Integer := 0;
Frame_Count : Integer := 0; Frame_Count : Integer := 0;
@ -3445,10 +3456,12 @@ package Raylib is
--~Convention => C, --~Convention => C,
--~External_Name => ""; --~External_Name => "";
--~function Model LoadModel (const char *fileName) with function Load_Model (
--~Import => True, File_Name : String := ""
--~Convention => C, ) return Model with
--~External_Name => ""; Import => True,
Convention => C,
External_Name => "LoadModel";
--~function Model LoadModelFromMesh (Mesh mesh) with --~function Model LoadModelFromMesh (Mesh mesh) with
--~Import => True, --~Import => True,
@ -3460,20 +3473,27 @@ package Raylib is
--~Convention => C, --~Convention => C,
--~External_Name => ""; --~External_Name => "";
--~procedure UnloadModel (Model model) with procedure Unload_Model (
--~Import => True, Data : Model := No_Model
--~Convention => C, ) with
--~External_Name => ""; Import => True,
Convention => C,
External_Name => "UnloadModel";
--~function BoundingBox GetModelBoundingBox (Model model) with --~function BoundingBox GetModelBoundingBox (Model model) with
--~Import => True, --~Import => True,
--~Convention => C, --~Convention => C,
--~External_Name => ""; --~External_Name => "";
--~procedure DrawModel (Model model, Vector3 position, float scale, Color tint) with procedure Draw_Model (
--~Import => True, Data : Model := No_Model;
--~Convention => C, Position : Vector_3D := (0.0, 0.0, 0.0);
--~External_Name => ""; Scale : Float := 1.0;
Tint : Color := White
) with
Import => True,
Convention => C,
External_Name => "DrawModel";
--~procedure DrawModelEx (Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint) with --~procedure DrawModelEx (Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint) with
--~Import => True, --~Import => True,
@ -3495,25 +3515,44 @@ package Raylib is
--~Convention => C, --~Convention => C,
--~External_Name => ""; --~External_Name => "";
--~procedure DrawBillboard (Camera camera, Texture2D texture, Vector3 position, float size, Color tint) with procedure Draw_Billboard (
--~Import => True, Camera : Camera_3D := No_Camera_3D;
--~Convention => C, Billboard : Texture := No_Texture;
--~External_Name => ""; Position : Vector_3D := (0.0, 0.0, 0.0);
Size : Float := 0.0;
Tint : Color := White
) with
Import => True,
Convention => C,
External_Name => "DrawBillboard";
--~procedure DrawBillboardRec (Camera camera, Texture2D texture, Rectangle source, Vector3 position, Vector2 size, Color tint) with --~procedure DrawBillboardRec (Camera camera, Texture2D texture, Rectangle source, Vector3 position, Vector2 size, Color tint) with
--~Import => True, --~Import => True,
--~Convention => C, --~Convention => C,
--~External_Name => ""; --~External_Name => "";
--~procedure DrawBillboardPro (Camera camera, Texture2D texture, Rectangle source, Vector3 position, Vector3 up, Vector2 size, Vector2 origin, float rotation, Color tint) with procedure Draw_Billboard_Pro (
--~Import => True, Camera : Camera_3D := No_Camera_3D;
--~Convention => C, Billboard : Texture := No_Texture;
--~External_Name => ""; Source : Rectangle := No_Rectangle;
Position : Vector_3D := (0.0, 0.0, 0.0);
Up : Vector_3D := (0.0, 0.0, 0.0);
Size : Vector_2D := (0.0, 0.0);
Origin : Vector_2D := (0.0, 0.0);
Rotation : Float := 0.0;
Tint : Color := White
) with
Import => True,
Convention => C,
External_Name => "DrawBillboardPro";
--~procedure UploadMesh (Mesh *mesh, bool dynamic) with procedure Upload_Mesh (
--~Import => True, Data : access Mesh := null;
--~Convention => C, Dynamic : Logical := False
--~External_Name => ""; ) with
Import => True,
Convention => C,
External_Name => "UploadMesh";
--~procedure UpdateMeshBuffer (Mesh mesh, int index, const void *data, int dataSize, int offset) with --~procedure UpdateMeshBuffer (Mesh mesh, int index, const void *data, int dataSize, int offset) with
--~Import => True, --~Import => True,
@ -3525,10 +3564,14 @@ package Raylib is
--~Convention => C, --~Convention => C,
--~External_Name => ""; --~External_Name => "";
--~procedure DrawMesh (Mesh mesh, Material material, Matrix transform) with procedure Draw_Mesh (
--~Import => True, Data : Mesh := No_Mesh;
--~Convention => C, Pixels : Material := No_Material;
--~External_Name => ""; Transform : Matrix_4D := (others => 0.0)
) with
Import => True,
Convention => C,
External_Name => "DrawMesh";
--~procedure DrawMeshInstanced (Mesh mesh, Material material, const Matrix *transforms, int instances) with --~procedure DrawMeshInstanced (Mesh mesh, Material material, const Matrix *transforms, int instances) with
--~Import => True, --~Import => True,
@ -3560,10 +3603,15 @@ package Raylib is
--~Convention => C, --~Convention => C,
--~External_Name => ""; --~External_Name => "";
--~function Mesh GenMeshPlane (float width, float length, int resX, int resZ) with function Gen_Mesh_Plane (
--~Import => True, Width : Float := 1.0;
--~Convention => C, Height : Float := 1.0;
--~External_Name => ""; X : Integer := 1;
Z : Integer := 1
) return Mesh with
Import => True,
Convention => C,
External_Name => "GenMeshPlane";
--~function Mesh GenMeshCube (float width, float height, float length) with --~function Mesh GenMeshCube (float width, float height, float length) with
--~Import => True, --~Import => True,