opengl.texture: Add simple tiling.
This commit is contained in:
@@ -161,13 +161,15 @@ is
|
|||||||
loop
|
loop
|
||||||
the_Vertices (Index_t (i)) := (Site => Vector_3 (the_Sites (i) & 0.0),
|
the_Vertices (Index_t (i)) := (Site => Vector_3 (the_Sites (i) & 0.0),
|
||||||
Normal => Normal,
|
Normal => Normal,
|
||||||
Coords => Coords_and_Centroid.Coords (Index_t (i)),
|
Coords => (Coords_and_Centroid.Coords (Index_t (i)).S * Self.Face.texture_Tiling,
|
||||||
|
Coords_and_Centroid.Coords (Index_t (i)).T * Self.Face.texture_Tiling),
|
||||||
Shine => default_Shine);
|
Shine => default_Shine);
|
||||||
end loop;
|
end loop;
|
||||||
|
|
||||||
the_Vertices (the_Vertices'Last) := (Site => Vector_3 (Coords_and_Centroid.Centroid & 0.0),
|
the_Vertices (the_Vertices'Last) := (Site => Vector_3 (Coords_and_Centroid.Centroid & 0.0),
|
||||||
Normal => Normal,
|
Normal => Normal,
|
||||||
Coords => (0.5, 0.5),
|
Coords => (S => 0.5 * Self.Face.texture_Tiling,
|
||||||
|
T => 0.5 * Self.Face.texture_Tiling),
|
||||||
Shine => default_Shine);
|
Shine => default_Shine);
|
||||||
|
|
||||||
upper_Face := new_Face (Vertices => the_Vertices);
|
upper_Face := new_Face (Vertices => the_Vertices);
|
||||||
|
|||||||
@@ -14,9 +14,10 @@ is
|
|||||||
|
|
||||||
type Face is
|
type Face is
|
||||||
record
|
record
|
||||||
Fades : texture_Set.fade_Levels (texture_Set.texture_Id) := [others => 0.0];
|
Fades : texture_Set.fade_Levels (texture_Set.texture_Id) := [others => 0.0];
|
||||||
Textures : openGL.asset_Names (1 .. Positive (texture_Set.texture_Id'Last)) := [others => null_Asset]; -- The textures to be applied to the hex.
|
Textures : openGL.asset_Names (1 .. Positive (texture_Set.texture_Id'Last)) := [others => null_Asset]; -- The textures to be applied to the hex.
|
||||||
texture_Count : Natural := 0;
|
texture_Count : Natural := 0;
|
||||||
|
texture_Tiling : openGL.Real := 1.0; -- The number of times the texture should be wrapped.
|
||||||
end record;
|
end record;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -181,17 +181,18 @@ is
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
function new_polygon_Sprite (in_World : in gel.World.view;
|
function new_polygon_Sprite (in_World : in gel.World.view;
|
||||||
Name : in String;
|
Name : in String;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
Mass : in math.Real := 1.0;
|
Mass : in math.Real := 1.0;
|
||||||
Friction : in math.Real := 0.5;
|
Friction : in math.Real := 0.5;
|
||||||
Bounce : in math.Real := 0.5;
|
Bounce : in math.Real := 0.5;
|
||||||
is_Tangible : in Boolean := True;
|
is_Tangible : in Boolean := True;
|
||||||
Vertices : in Geometry_2d.Sites;
|
Vertices : in Geometry_2d.Sites;
|
||||||
Color : in openGL.Color := opengl.Palette.White;
|
Color : in openGL.Color := opengl.Palette.White;
|
||||||
Texture : in openGL.asset_Name := openGL.null_Asset;
|
Texture : in openGL.asset_Name := openGL.null_Asset;
|
||||||
user_Data : in any_user_Data_view := null) return gel.Sprite.view
|
texture_Tiling : in openGL.Real := 1.0;
|
||||||
|
user_Data : in any_user_Data_view := null) return gel.Sprite.view
|
||||||
is
|
is
|
||||||
use type Geometry_2d.Sites,
|
use type Geometry_2d.Sites,
|
||||||
openGL.asset_Name;
|
openGL.asset_Name;
|
||||||
@@ -219,9 +220,10 @@ is
|
|||||||
(Color, openGL.Opaque)).all'Access;
|
(Color, openGL.Opaque)).all'Access;
|
||||||
else
|
else
|
||||||
the_graphics_Model := openGL.Model.polygon.lit_textured.new_Polygon (openGL.Vector_2_array (Vertices),
|
the_graphics_Model := openGL.Model.polygon.lit_textured.new_Polygon (openGL.Vector_2_array (Vertices),
|
||||||
Face => (Fades => [1 => 0.0, others => <>],
|
Face => (Fades => [1 => 0.0, others => <>],
|
||||||
Textures => [1 => Texture, others => <>],
|
Textures => [1 => Texture, others => <>],
|
||||||
texture_Count => 1)).all'Access;
|
texture_Count => 1,
|
||||||
|
texture_Tiling => texture_Tiling)).all'Access;
|
||||||
end if;
|
end if;
|
||||||
|
|
||||||
return gel.Sprite.Forge.new_Sprite (Name,
|
return gel.Sprite.Forge.new_Sprite (Name,
|
||||||
@@ -237,18 +239,19 @@ is
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
function new_rectangle_Sprite (in_World : in gel.World.view;
|
function new_rectangle_Sprite (in_World : in gel.World.view;
|
||||||
Name : in String;
|
Name : in String;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
Mass : in math.Real := 1.0;
|
Mass : in math.Real := 1.0;
|
||||||
Friction : in math.Real := 0.5;
|
Friction : in math.Real := 0.5;
|
||||||
Bounce : in math.Real := 0.5;
|
Bounce : in math.Real := 0.5;
|
||||||
is_Tangible : in Boolean := True;
|
is_Tangible : in Boolean := True;
|
||||||
Width,
|
Width,
|
||||||
Height : in math.Real;
|
Height : in math.Real;
|
||||||
Color : in openGL.Color := opengl.Palette.White;
|
Color : in openGL.Color := opengl.Palette.White;
|
||||||
Texture : in openGL.asset_Name := openGL.null_Asset;
|
Texture : in openGL.asset_Name := openGL.null_Asset;
|
||||||
user_Data : in any_user_Data_view := null) return gel.Sprite.view
|
texture_Tiling : in openGL.Real := 1.0;
|
||||||
|
user_Data : in any_user_Data_view := null) return gel.Sprite.view
|
||||||
is
|
is
|
||||||
use Math;
|
use Math;
|
||||||
|
|
||||||
@@ -260,7 +263,18 @@ is
|
|||||||
[ half_Width, half_Height],
|
[ half_Width, half_Height],
|
||||||
[-half_Width, half_Height]];
|
[-half_Width, half_Height]];
|
||||||
begin
|
begin
|
||||||
return new_polygon_Sprite (in_World, Name, Site, Mass, Friction, Bounce, is_Tangible, the_Vertices, Color, Texture, user_Data);
|
return new_polygon_Sprite (in_World,
|
||||||
|
Name,
|
||||||
|
Site,
|
||||||
|
Mass,
|
||||||
|
Friction,
|
||||||
|
Bounce,
|
||||||
|
is_Tangible,
|
||||||
|
the_Vertices,
|
||||||
|
Color,
|
||||||
|
Texture,
|
||||||
|
texture_Tiling,
|
||||||
|
user_Data);
|
||||||
end new_rectangle_Sprite;
|
end new_rectangle_Sprite;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -67,30 +67,35 @@ is
|
|||||||
Texture : in openGL.asset_Name := openGL.null_Asset;
|
Texture : in openGL.asset_Name := openGL.null_Asset;
|
||||||
user_Data : in any_user_Data_view := null) return gel.Sprite.view;
|
user_Data : in any_user_Data_view := null) return gel.Sprite.view;
|
||||||
|
|
||||||
function new_polygon_Sprite (in_World : in gel.World.view;
|
function new_polygon_Sprite (in_World : in gel.World.view;
|
||||||
Name : in String;
|
Name : in String;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
Mass : in math.Real := 1.0;
|
Mass : in math.Real := 1.0;
|
||||||
Friction : in math.Real := 0.5;
|
Friction : in math.Real := 0.5;
|
||||||
Bounce : in math.Real := 0.5;
|
Bounce : in math.Real := 0.5;
|
||||||
is_Tangible : in Boolean := True;
|
is_Tangible : in Boolean := True;
|
||||||
Vertices : in Geometry_2d.Sites;
|
Vertices : in Geometry_2d.Sites;
|
||||||
Color : in openGL.Color := opengl.Palette.White;
|
Color : in openGL.Color := opengl.Palette.White;
|
||||||
Texture : in openGL.asset_Name := openGL.null_Asset;
|
Texture : in openGL.asset_Name := openGL.null_Asset;
|
||||||
user_Data : in any_user_Data_view := null) return gel.Sprite.view;
|
texture_Tiling : in openGL.Real := 1.0;
|
||||||
|
user_Data : in any_user_Data_view := null) return gel.Sprite.view;
|
||||||
|
|
||||||
function new_rectangle_Sprite (in_World : in gel.World.view;
|
function new_rectangle_Sprite (in_World : in gel.World.view;
|
||||||
Name : in String;
|
Name : in String;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
Mass : in math.Real := 1.0;
|
Mass : in math.Real := 1.0;
|
||||||
Friction : in math.Real := 0.5;
|
Friction : in math.Real := 0.5;
|
||||||
Bounce : in math.Real := 0.5;
|
Bounce : in math.Real := 0.5;
|
||||||
is_Tangible : in Boolean := True;
|
is_Tangible : in Boolean := True;
|
||||||
Width,
|
Width,
|
||||||
Height : in math.Real;
|
Height : in math.Real;
|
||||||
Color : in openGL.Color := opengl.Palette.White;
|
Color : in openGL.Color := opengl.Palette.White;
|
||||||
Texture : in openGL.asset_Name := openGL.null_Asset;
|
Texture : in openGL.asset_Name := openGL.null_Asset;
|
||||||
user_Data : in any_user_Data_view := null) return gel.Sprite.view;
|
texture_Tiling : in openGL.Real := 1.0;
|
||||||
|
user_Data : in any_user_Data_view := null) return gel.Sprite.view;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- 3D
|
-- 3D
|
||||||
--
|
--
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user