Add initial prototype.
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
with
|
||||
openGL.Texture,
|
||||
freetype_c.FT_GlyphSlot;
|
||||
|
||||
private
|
||||
with
|
||||
openGL.Geometry.lit_textured,
|
||||
openGL.Primitive.indexed,
|
||||
GL;
|
||||
|
||||
package openGL.GlyphImpl.texture
|
||||
--
|
||||
-- Implements a texture-based glyph.
|
||||
--
|
||||
is
|
||||
type Item is new GlyphImpl.item with private;
|
||||
type View is access all Item'Class;
|
||||
|
||||
|
||||
---------
|
||||
-- Types
|
||||
--
|
||||
|
||||
type Vertex is
|
||||
record
|
||||
Site : Vector_3;
|
||||
Coords : Coordinate_2D;
|
||||
end record;
|
||||
|
||||
type Quad_t is
|
||||
record
|
||||
NW, NE,
|
||||
SW, SE : Vertex;
|
||||
Advance : Vector_3;
|
||||
end record;
|
||||
|
||||
|
||||
---------
|
||||
-- Forge
|
||||
--
|
||||
function new_GlyphImpl (glyth_Slot : in freetype_c.FT_GlyphSlot.item;
|
||||
texture_Id : in openGL.Texture.texture_Name;
|
||||
xOffset, yOffset : in Integer;
|
||||
Width, Height : in Integer) return GlyphImpl.texture.view;
|
||||
--
|
||||
-- glyth_Slot: The Freetype glyph to be processed.
|
||||
-- texture_Id: The Id of the texture that this glyph will be drawn in.
|
||||
-- xOffset, yOffset: The x any y offset into the parent texture to draw this glyph.
|
||||
-- Width, Height: The width and height (number of rows) of the parent texture.
|
||||
|
||||
|
||||
--------------
|
||||
-- Attributes
|
||||
--
|
||||
|
||||
function Quad (Self : in Item; Pen : in Vector_3) return Quad_t;
|
||||
|
||||
|
||||
--------------
|
||||
-- Operations
|
||||
--
|
||||
|
||||
function renderImpl (Self : in Item; Pen : in Vector_3;
|
||||
renderMode : in Integer) return Vector_3;
|
||||
--
|
||||
-- Pen: The current pen position.
|
||||
-- renderMode: Render mode to display.
|
||||
--
|
||||
-- Returns the advance distance for this glyph.
|
||||
|
||||
|
||||
-------------
|
||||
-- Protected - for derived class use only.
|
||||
--
|
||||
|
||||
procedure ResetActiveTexture;
|
||||
--
|
||||
-- Reset the currently active texture to zero to get into a known
|
||||
-- state before drawing a string. This is to get around possible threading issues.
|
||||
|
||||
|
||||
|
||||
private
|
||||
|
||||
type Item is new GlyphImpl.item with
|
||||
record
|
||||
destWidth, -- The width and height of the glyph 'image'.
|
||||
destHeight : GL.GLint;
|
||||
|
||||
Corner : Vector_3; -- Vector from the pen site to the top left of the pixmap.
|
||||
|
||||
UV : Coordinates_2D (1 .. 2); -- The texture co-ords of this glyph within the texture.
|
||||
glTextureID : openGL.texture.texture_Name; -- The texture index that this glyph is contained in.
|
||||
|
||||
Geometry : access Geometry.lit_textured.item;
|
||||
Primitive : openGL.Primitive.indexed.view;
|
||||
end record;
|
||||
|
||||
end openGL.GlyphImpl.texture;
|
||||
Reference in New Issue
Block a user