with ada.Strings.fixed; package body openGL.Program.lit.textured_skinned is overriding procedure define (Self : in out Item; use_vertex_Shader : in Shader.view; use_fragment_Shader : in Shader.view) is use ada.Strings, ada.Strings.fixed; begin openGL.Program.lit.item (Self).define (use_vertex_Shader, use_fragment_Shader); -- Define base class. for i in Self.bone_transform_Uniforms'Range loop Self.bone_transform_Uniforms (i).define (Self'Access, "bone_Matrices[" & Trim (Integer'Image (i - 1), Left) & "]"); end loop; end define; overriding procedure set_Uniforms (Self : in Item) is begin openGL.Program.lit.item (Self).set_Uniforms; -- Texture -- declare sampler_Uniform : constant Variable.uniform.int := Self.uniform_Variable ("sTexture"); begin sampler_Uniform.Value_is (0); end; end set_Uniforms; procedure bone_Transform_is (Self : in Item; Which : in Integer; Now : in Matrix_4x4) is begin Self.bone_transform_Uniforms (Which).Value_is (Now); end bone_Transform_is; end openGL.Program.lit.textured_skinned;