with Allegro.Bitmaps; use Allegro.Bitmaps;
with Allegro.Truecolor; use Allegro.Truecolor;
with Objects; use Objects;
package Font_API is
procedure Initialize;
procedure Finalize;
type Abstract_Font is abstract new Limited_Object with private;
type Font_Type is access all Abstract_Font'Class;
function Load_Font( filename : String; size : Positive ) return Font_Type;
pragma Precondition( filename'Length > 0 );
function Text_Height( this : access Abstract_Font ) return Positive is abstract;
function Text_Length( this : access Abstract_Font;
str : String ) return Natural is abstract;
procedure Textout( this : access Abstract_Font;
bmp : A_Bitmap;
str : String;
x, y : Integer;
color : Color_Type;
smooth : Boolean ) is abstract;
procedure Delete( this : in out Font_Type );
pragma Postcondition( this = null );
FONT_EXCEPTION : exception;
private
type Abstract_Font is abstract new Limited_Object with null record;
end Font_API;