89 lines
2.3 KiB
Ada
89 lines
2.3 KiB
Ada
with
|
|
openGL,
|
|
Physics,
|
|
|
|
float_Math.Geometry.D2,
|
|
float_Math.Geometry.D3,
|
|
float_Math.Algebra.linear.D2,
|
|
float_Math.Algebra.linear.D3;
|
|
|
|
|
|
package GEL
|
|
--
|
|
-- A game engine library.
|
|
--
|
|
is
|
|
pragma Pure;
|
|
|
|
Error : exception;
|
|
|
|
|
|
--------
|
|
--- Math
|
|
--
|
|
package Math renames float_Math;
|
|
package Geometry renames math.Geometry;
|
|
package Geometry_2d renames Geometry.D2;
|
|
package Geometry_3d renames Geometry.D3;
|
|
package Algebra renames math.Algebra;
|
|
package linear_Algebra renames Algebra.linear;
|
|
package linear_Algebra_2D renames linear_Algebra.D2;
|
|
package linear_Algebra_3D renames linear_Algebra.D3;
|
|
|
|
|
|
|
|
---------------
|
|
--- Constraints
|
|
--
|
|
max_Worlds : constant := 1_000;
|
|
max_Cameras : constant := 1_000;
|
|
max_graphics_Models : constant := 2**32 - 1;
|
|
-- max_physics_Models : constant := 2**32 - 1;
|
|
max_Sprites : constant := 2**32 - 1;
|
|
|
|
|
|
|
|
-------
|
|
--- Ids
|
|
--
|
|
|
|
type world_Id is range 0 .. max_Worlds;
|
|
type camera_Id is range 0 .. max_Cameras;
|
|
|
|
subtype graphics_model_Id is openGL.model_Id;
|
|
-- type physics_model_Id is range 0 .. max_physics_Models;
|
|
type sprite_Id is range 0 .. max_Sprites;
|
|
|
|
null_graphics_model_Id : constant graphics_model_Id;
|
|
-- null_physics_model_Id : constant physics.model_Id;
|
|
null_sprite_Id : constant sprite_Id;
|
|
|
|
type graphics_model_Ids is array (Positive range <>) of graphics_model_Id;
|
|
type physics_model_Ids is array (Positive range <>) of physics.model_Id;
|
|
type sprite_Ids is array (Positive range <>) of sprite_Id;
|
|
|
|
|
|
----------
|
|
--- Assets
|
|
--
|
|
|
|
type asset_Name is new String (1 .. 128); -- TODO: Make private.
|
|
--
|
|
-- Name of a file containing textures, images, fonts, sounds, media or other resources.
|
|
|
|
null_Asset : constant asset_Name;
|
|
|
|
function to_Asset (Self : in String) return asset_Name;
|
|
function to_String (Self : in asset_Name) return String;
|
|
|
|
|
|
|
|
private
|
|
|
|
null_graphics_model_Id : constant graphics_model_Id := 0;
|
|
-- null_physics_model_Id : constant physics.model_Id := 0;
|
|
null_sprite_Id : constant sprite_Id := 0;
|
|
|
|
null_Asset : constant asset_Name := (others => ' ');
|
|
end GEL;
|