Add initial prototype.
This commit is contained in:
127
3-mid/opengl/source/lean/text/opengl-glyph-container.ads
Normal file
127
3-mid/opengl/source/lean/text/opengl-glyph-container.ads
Normal file
@@ -0,0 +1,127 @@
|
||||
with
|
||||
freetype.Face,
|
||||
freetype.charMap;
|
||||
|
||||
private
|
||||
with
|
||||
ada.Containers.Vectors;
|
||||
|
||||
package openGL.Glyph.Container
|
||||
--
|
||||
-- Contains the post processed Glyph objects.
|
||||
--
|
||||
is
|
||||
type Item is tagged private;
|
||||
type Glyph_view is access all Glyph.item'Class;
|
||||
|
||||
|
||||
---------
|
||||
-- Forge
|
||||
--
|
||||
|
||||
function to_glyph_Container (parent_Face : in freetype.Face.view) return glyph.Container.item;
|
||||
--
|
||||
-- parent_Face: The Freetype face.
|
||||
|
||||
|
||||
procedure destruct (Self : in out Item);
|
||||
|
||||
|
||||
--------------
|
||||
-- Attributes
|
||||
--
|
||||
|
||||
function CharMap (Self : access Item; Encoding : in freeType_c.FT_Encoding) return Boolean;
|
||||
--
|
||||
-- Sets the character map for the face.
|
||||
--
|
||||
-- Encoding: The Freetype encoding symbol.
|
||||
--
|
||||
-- Returns True if charmap was valid and set correctly.
|
||||
|
||||
|
||||
function FontIndex (Self : in Item; Character : in freetype.charMap.characterCode) return Natural;
|
||||
--
|
||||
-- Get the font index of the input character.
|
||||
--
|
||||
-- Character: The character code of the requested glyph in the current encoding (eg apple roman).
|
||||
--
|
||||
-- Returns the font index for the character.
|
||||
|
||||
|
||||
procedure add (Self : in out Item; Glyph : in Glyph_view;
|
||||
Character : in freetype.charMap.characterCode);
|
||||
--
|
||||
-- Adds a glyph to this glyph list.
|
||||
--
|
||||
-- Glyph: The FTGlyph to be inserted into the container.
|
||||
-- Character: The char code of the glyph NOT the glyph index.
|
||||
|
||||
|
||||
function Glyph (Self : in Item; Character : in freetype.charMap.characterCode) return Glyph_view;
|
||||
--
|
||||
-- Get a glyph from the glyph list.
|
||||
--
|
||||
-- Character: The char code of the glyph NOT the glyph index.
|
||||
--
|
||||
-- Returns a Glyph or null is it hasn't been loaded.
|
||||
|
||||
|
||||
function BBox (Self : in Item; Character : in freetype.charMap.characterCode) return Bounds;
|
||||
--
|
||||
-- Get the bounding box for a character.
|
||||
--
|
||||
-- Character: The char code of the glyph NOT the glyph index.
|
||||
|
||||
|
||||
function Advance (Self : in Item; Character : in freetype.charMap.characterCode;
|
||||
nextCharacterCode : in freetype.charMap.characterCode) return Real;
|
||||
--
|
||||
-- Character: Glyph index of the character.
|
||||
-- nextCharacterCode: The next glyph in a string.
|
||||
--
|
||||
-- Returns the kerned advance width for a glyph.
|
||||
|
||||
|
||||
function Error (Self : in Item) return freetype_c.FT_Error;
|
||||
--
|
||||
-- Queries the glyph container for errors.
|
||||
--
|
||||
-- Returns the current error code.
|
||||
|
||||
|
||||
--------------
|
||||
-- Operations
|
||||
--
|
||||
|
||||
function render (Self : access Item; Character : in freetype.charMap.characterCode;
|
||||
nextCharacterCode : in freetype.charMap.characterCode;
|
||||
penPosition : in Vector_3;
|
||||
renderMode : in Integer) return Vector_3;
|
||||
--
|
||||
-- Renders a character.
|
||||
--
|
||||
-- Character: The glyph to be Rendered.
|
||||
-- nextCharacterCode: The next glyph in the string. Used for kerning.
|
||||
-- penPosition: The position to Render the glyph.
|
||||
-- renderMode: Render mode to display.
|
||||
--
|
||||
-- Returns the distance to advance the pen position after rendering,
|
||||
|
||||
|
||||
|
||||
private
|
||||
|
||||
type charMap_view is access all freetype.charMap.item'class;
|
||||
package glyph_Vectors is new ada.Containers.Vectors (Positive, Glyph_view);
|
||||
|
||||
type Item is tagged
|
||||
record
|
||||
Face : freetype.Face.view; -- The FTGL face.
|
||||
charMap : charMap_view; -- The character map object associated with the current face.
|
||||
|
||||
Glyphs : glyph_Vectors.Vector; -- A structure to hold the glyphs.
|
||||
Err : freeType_c.FT_Error; -- Current error code. Zero means no error.
|
||||
end record;
|
||||
|
||||
end openGL.Glyph.Container;
|
||||
Reference in New Issue
Block a user