I have added on SVN the same info as inline comments. It looks like this:
{ Draws the UTF8 encoded string, with color c.
If align is taLeftJustify, (x,y) is the top-left corner.
If align is taCenter, (x,y) is at the top and middle of the text.
If align is taRightJustify, (x,y) is the top-right corner.
The value of FontOrientation is taken into account, so that the text may be rotated. }
procedure TextOut(x, y: single; sUTF8: string; c: TBGRAPixel; align: TAlignment); override; overload;
{ Same as above functions, except that the text is filled using texture.
The value of FontOrientation is taken into account, so that the text may be rotated. }
procedure TextOut(x, y: single; sUTF8: string; texture: IBGRAScanner; align: TAlignment); override; overload;
{ Same as above, except that the orientation is specified, overriding the value of the property FontOrientation. }
procedure TextOutAngle(x, y: single; orientationTenthDegCCW: integer; sUTF8: string; c: TBGRAPixel; align: TAlignment); override; overload;
procedure TextOutAngle(x, y: single; orientationTenthDegCCW: integer; sUTF8: string; texture: IBGRAScanner; align: TAlignment); override; overload;
{ Draw the UTF8 encoded string at the coordinate (x,y), clipped inside the rectangle ARect.
Additional style information is provided by the style parameter.
The color c or texture is used to fill the text. No rotation is applied. }
procedure TextRect(ARect: TRect; x, y: integer; sUTF8: string; style: TTextStyle; c: TBGRAPixel); override; overload;
procedure TextRect(ARect: TRect; x, y: integer; sUTF8: string; style: TTextStyle; texture: IBGRAScanner); override; overload;
{ Returns the total size of the string provided using the current font.
Orientation is not taken into account, so that the width is along the text. }
function TextSize(sUTF8: string): TSize; override;
Is this what you had in mind?