Add initial prototype.
This commit is contained in:
88
3-mid/opengl/source/lean/shader/opengl-attribute.ads
Normal file
88
3-mid/opengl/source/lean/shader/opengl-attribute.ads
Normal file
@@ -0,0 +1,88 @@
|
||||
with
|
||||
GL,
|
||||
system.storage_Elements;
|
||||
|
||||
package openGL.Attribute
|
||||
--
|
||||
-- Models an openGL shader attribute.
|
||||
--
|
||||
is
|
||||
type Item is tagged private;
|
||||
type View is access all Item'Class;
|
||||
type Views is array (Positive range <>) of View;
|
||||
|
||||
type data_Kind is (GL_BYTE, GL_UNSIGNED_BYTE,
|
||||
GL_SHORT, GL_UNSIGNED_SHORT,
|
||||
GL_INT, GL_UNSIGNED_INT,
|
||||
GL_FLOAT, GL_FIXED);
|
||||
---------
|
||||
--- Forge
|
||||
--
|
||||
|
||||
procedure define (Self : in out Item);
|
||||
procedure destroy (Self : in out Item);
|
||||
|
||||
package Forge
|
||||
is
|
||||
use system.storage_Elements;
|
||||
|
||||
function to_Attribute (Name : in String;
|
||||
gl_Location : in gl.GLuint;
|
||||
Size : in gl.GLint;
|
||||
data_Kind : in Attribute.data_Kind;
|
||||
Stride : in Natural;
|
||||
Offset : in storage_Offset;
|
||||
Normalized : in Boolean) return Item;
|
||||
|
||||
function new_Attribute (Name : in String;
|
||||
gl_Location : in gl.GLuint;
|
||||
Size : in gl.GLint;
|
||||
data_Kind : in Attribute.data_Kind;
|
||||
Stride : in Natural;
|
||||
Offset : in storage_Offset;
|
||||
Normalized : in Boolean) return View;
|
||||
end Forge;
|
||||
|
||||
|
||||
--------------
|
||||
--- Attributes
|
||||
--
|
||||
|
||||
function Name (Self : in Item'Class) return String;
|
||||
function gl_Location (Self : in Item'Class) return gl.GLuint;
|
||||
|
||||
|
||||
--------------
|
||||
--- Operations
|
||||
--
|
||||
|
||||
procedure enable (Self : in Item);
|
||||
|
||||
|
||||
|
||||
private
|
||||
|
||||
type String_view is access String;
|
||||
|
||||
|
||||
type Item is tagged
|
||||
record
|
||||
Name : String_view;
|
||||
Location : gl.GLuint;
|
||||
Size : gl.GLint;
|
||||
data_Kind : Attribute.data_Kind;
|
||||
vertex_Stride : gl.GLint;
|
||||
Offset : system.storage_Elements.storage_Offset;
|
||||
Normalized : gl.GLboolean;
|
||||
end record;
|
||||
|
||||
for data_Kind use (GL_BYTE => 16#1400#,
|
||||
GL_UNSIGNED_BYTE => 16#1401#,
|
||||
GL_SHORT => 16#1402#,
|
||||
GL_UNSIGNED_SHORT => 16#1403#,
|
||||
GL_INT => 16#1404#,
|
||||
GL_UNSIGNED_INT => 16#1405#,
|
||||
GL_FLOAT => 16#1406#,
|
||||
GL_FIXED => 16#140c#);
|
||||
|
||||
end openGL.Attribute;
|
||||
Reference in New Issue
Block a user