Files
lace/3-mid/opengl/source/lean/text/opengl-font-texture.ads
2022-07-31 17:34:54 +10:00

69 lines
1.8 KiB
Ada

with
openGL.Texture,
openGL.GlyphImpl.texture;
package openGL.Font.texture
--
-- A texture font is a specialisation of the font class for handling texture mapped fonts.
--
is
type Item is new Font.item with private;
type View is access all Item'Class;
---------
-- Forge
--
function to_Font_texture (fontFilePath : in String) return Font.texture.item;
--
--
-- Open and read a font file. Sets Error flag.
function new_Font_texture (fontFilePath : in String) return Font.texture.view;
function to_Font_texture (pBufferBytes : in FontImpl.unsigned_char_Pointer;
bufferSizeInBytes : in Natural) return Font.texture.item;
--
-- Open and read a font from a buffer in memory. Sets Error flag.
--
-- The buffer is owned by the client and is NOT copied by FTGL. The
-- pointer must be valid while using FTGL.
--
-- pBufferBytes: The in-memory buffer.
-- bufferSizeInBytes: The length of the buffer in bytes.
overriding
procedure destruct (Self : in out Item);
procedure free (Self : in out View);
--------------
-- Attributes
--
function gl_Texture (Self : in Item) return openGL.Texture.texture_Name;
function Quad (Self : in Item; for_Character : in Character) return GlyphImpl.Texture.Quad_t;
private
type Item is new Font.item with null record;
overriding
function MakeGlyph (Self : access Item; Slot : in freetype_c.FT_GlyphSlot.item) return glyph.Container.Glyph_view;
--
-- Construct a glyph of the correct type.
--
-- Clients must override the function and return their specialised FTGlyph.
-- Returns an FTGlyph or null on failure.
--
-- Slot: A FreeType glyph slot.
end openGL.Font.texture;