generic
type base_Object is new openGL.Buffer.Object with private;
type Index is range <>;
type Element is private;
type Element_Array is array (Index range <>) of Element;
package openGL.Buffer.general
--
-- A generic for producing various types of openGL vertex buffer objects.
--
is
type Object is new base_Object with private;
type View is access all Object'Class;
---------
-- Forge
--
package Forge
is
function to_Buffer (From : access constant Element_Array;
Usage : in Buffer.Usage) return Object;
function to_Buffer (From : in Element_Array;
Usage : in Buffer.Usage) return Object;
end Forge;
--------------
-- Operations
--
procedure set (Self : in out Object; Position : in Positive := 1;
To : in Element_Array);
procedure set (Self : in out Object; Position : in Positive := 1;
To : access constant Element_Array);
private
type Object is new base_Object with
record
Usage : Buffer.Usage;
end record;
default_Terminator : Element; -- No 'Interfaces.C.Pointers' subprogram is called which uses the default terminator, so
-- a default 'Element' should suffice.
end openGL.Buffer.general;