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;
+ M00 : Float := 1.0;
+ M10 : Float := 0.0;
+ M20 : Float := 0.0;
+ M30 : Float := 0.0;
+ M01 : Float := 0.0;
+ M11 : Float := 1.0;
+ M21 : Float := 0.0;
+ M31 : Float := 0.0;
+ M02 : Float := 0.0;
+ M12 : Float := 0.0;
+ M22 : Float := 1.0;
+ M32 : Float := 0.0;
+ M03 : Float := 0.0;
+ M13 : Float := 0.0;
+ M23 : Float := 0.0;
+ M33 : Float := 1.0;
end record with Convention => C_Pass_By_Copy;
Id_Matrix : Matrix_4D;
Projection : Camera_Projection := Camera_Perspective;
end record with Convention => C_Pass_By_Copy;
+ No_Camera_3D : Camera_3D;
+
type Camera_2D is record
Offset : Vector_2D := (0.0, 0.0);
Target : Vector_2D := (0.0, 0.0);
Zoom : Float := 0.0;
end record with Convention => C_Pass_By_Copy;
+ No_Camera_2D : Camera_2D;
+
type Mesh is record
Vertex_Count : Integer := 0;
Triangle_Count : Integer := 0;
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 Get_Mouse_Ray (
+ Mouse_Position : Vector_2D := (0.0, 0.0);
+ Camera : Camera_3D := No_Camera_3D
+ ) return Ray with
+ Import => True,
+ Convention => C,
+ External_Name => "GetMouseRay";
- --~function Matrix GetCameraMatrix2D (Camera2D camera) with
- --~Import => True,
- --~Convention => C,
- --~External_Name => "";
+ function Get_Camera_Matrix_3D (
+ Camera : Camera_3D := No_Camera_3D
+ ) return Matrix_4D with
+ Import => True,
+ Convention => C,
+ External_Name => "GetCameraMatrix";
- --~function Vector2 GetWorldToScreen (Vector3 position, Camera camera) with
- --~Import => True,
- --~Convention => C,
- --~External_Name => "";
+ function Get_Camera_Matrix_2D (
+ Camera : Camera_2D := No_Camera_2D
+ ) return Matrix_4D with
+ Import => True,
+ Convention => C,
+ External_Name => "GetCameraMatrix2D";
- --~function Vector2 GetScreenToWorld2D (Vector2 position, Camera2D camera) with
- --~Import => True,
- --~Convention => C,
- --~External_Name => "";
+ function Get_World_To_Screen_3D (
+ Position : Vector_3D := (0.0, 0.0, 0.0);
+ Camera : Camera_3D := No_Camera_3D
+ ) return Vector_2D with
+ Import => True,
+ Convention => C,
+ External_Name => "GetWorldToScreen";
- --~function Vector2 GetWorldToScreenEx (Vector3 position, Camera camera, int width, int height) with
- --~Import => True,
- --~Convention => C,
- --~External_Name => "";
+ function Get_Screen_To_World_2D (
+ Position : Vector_2D := (0.0, 0.0);
+ Camera : Camera_2D := No_Camera_2D
+ ) return Vector_2D with
+ Import => True,
+ Convention => C,
+ External_Name => "GetScreenToWorld2D";
- --~function Vector2 GetWorldToScreen2D (Vector2 position, Camera2D camera) with
- --~Import => True,
- --~Convention => C,
- --~External_Name => "";
+ function Get_World_To_Screen_Ex (
+ Position : Vector_3D := (0.0, 0.0, 0.0);
+ Camera : Camera_3D := No_Camera_3D;
+ Width : Integer := 0;
+ Height : Integer := 0
+ ) return Vector_2D with
+ Import => True,
+ Convention => C,
+ External_Name => "GetWorldToScreenEx";
+ function Get_World_To_Screen_2D (
+ Position : Vector_2D := (0.0, 0.0);
+ Camera : Camera_2D := No_Camera_2D
+ ) return Vector_2D with
+ Import => True,
+ Convention => C,
+ External_Name => "GetWorldToScreen2D";
+################################################################
+################################################################
+################################################################
procedure Set_Target_FPS (
FPS : Integer := 60
) with