GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
AG_TEXT(3) FreeBSD Library Functions Manual AG_TEXT(3)

AG_Text
agar text rendering interface

#include <agar/core.h>
#include <agar/gui.h>

The AG_Text interface uses an underlying font engine to render text. Currently, two font engines are supported: AG_FONT_VECTOR (for rendering any font supported by FreeType) and AG_FONT_BITMAP (for rendering simple pixmap fonts).

A number of settings which affect the rendering functions (see RENDERING section) can be modified at any time, and are organized in a stack of rendering attributes.


void
AG_PushTextState(void);


void
AG_PopTextState(void);


void
AG_TextFont(AG_Font *font);


AG_Font *
AG_TextFontLookup(const char *face, int size, Uint flags);


AG_Font *
AG_TextFontPct(int size_pct);


AG_Font *
AG_TextFontPts(int points);


void
AG_TextJustify(enum ag_text_justify mode);


void
AG_TextValign(enum ag_text_valign mode);


void
AG_TextTabWidth(int pixels);


void
AG_TextColor(AG_Color C);


void
AG_TextColorRGB(Uint8 r, Uint8 g, Uint8 b);


void
AG_TextColorRGBA(Uint8 r, Uint8 g, Uint8 b, Uint8 a);


void
AG_TextBGColor(AG_Color C);


void
AG_TextBGColorRGB(Uint8 r, Uint8 g, Uint8 b);


void
AG_TextBGColorRGBA(Uint8 r, Uint8 g, Uint8 b, Uint8 a);


void
AG_TextBGColorRGBA(Uint8 r, Uint8 g, Uint8 b, Uint8 a);

The AG_PushTextState() and AG_PopTextState() functions respectively push and pop the text rendering attribute stack. The attribute stack can hold AG_TEXT_STATES_MAX items (at least 32).

The AG_TextFont() function selects font as the active font.

AG_TextFontLookup() searches the font cache for the given font face, size and flags combination, possibly loading new fonts from disk (scanning all ‘font-path’ directories). On success, the font is selected as the active font and returned. If no match is found, the function returns NULL.

AG_TextFontPts() sets the size of the active font in points.

AG_TextFontPct() sets the size of the active font, specified as percentage of current font size. An argument of 100% leaves the size unchanged.

AG_TextJustify() selects the justification mode to use in multi-line rendering:

enum ag_text_justify {
	AG_TEXT_LEFT,
	AG_TEXT_CENTER,
	AG_TEXT_RIGHT
};

AG_TextValign() selects the vertical alignment mode to use where text is rendered to an area of arbitrary height:

enum ag_text_valign {
	AG_TEXT_TOP,
	AG_TEXT_MIDDLE,
	AG_TEXT_BOTTOM
};

AG_TextTabWidth() sets the width of tabs in pixels.

AG_TextColor() sets the text color (see AG_Color(3)). AG_TextColorRGB() and AG_TextColorRGBA() accept individual color components.

Similarly, AG_TextBG*() functions assign a background color for the surfaces returned by the rendering functions.

AG_Surface *
AG_TextRender(const char *text);


AG_Surface *
AG_TextRenderUCS4(const Uint32 *text);


AG_Surface *
AG_TextRenderf(const char *fmt, ...);


AG_Glyph *
AG_TextRenderGlyph(Uint32 uch);


void
AG_TextSize(const char *text, int *w, int *h);


void
AG_TextSizeUCS4(const Uint32 *text, int *w, int *h);


void
AG_TextSizeMulti(const char *text, int *w, int *h, Uint **wLines, Uint *nLines);


void
AG_TextSizeMultiUCS4(const Uint32 *text, int *w, int *h, Uint **wLines, Uint *nLines);

The AG_TextRender() function renders text to a new, transparent surface. The input text may contain UTF-8 sequences. The AG_TextRenderf() variant accepts printf(3) style arguments.

AG_TextRenderUCS4() renders text in UCS-4 format onto a new surface. AG_TextRenderGlyph() renders the specified UCS-4 encoded Unicode character. The function returns an AG_Glyph structure, which has the following public (read-only) members:

Uint32 ch
Unicode character (UCS-4 encoded)
AG_Surface *su
Pixel surface
Uint texture
OpenGL texture handle (if OpenGL is in use)
float texcoord[4]
OpenGL texture coordinates (if OpenGL is in use
int advance
Amount of translation (in pixels) recommended to follow when rendering text

The AG_TextSize() and AG_TextSizeUCS4() functions return the minimal bounding box in pixels required for rendering the given text. The AG_TextSizeMulti() and AG_TextSizeMultiUCS4() variants also return the number of lines into nLines and the width in pixels of each line in the array wLines (which must be initialized to NULL).

void
AG_TextMsg(enum ag_text_msg_title title, const char *format, ...);


void
AG_TextMsgS(enum ag_text_msg_title title, const char *msg);


void
AG_TextMsgFromError(void);


void
AG_TextWarning(const char *disableKey, const char *format, ...);


void
AG_TextWarningS(const char *disableKey, const char *msg);


void
AG_TextError(const char *format, ...);


void
AG_TextErrorS(const char *msg);


void
AG_TextInfo(const char *disableKey, const char *format, ...);


void
AG_TextInfoS(const char *disableKey, const char *msg);


void
AG_TextTmsg(enum ag_text_msg_title title, Uint32 expire, const char *format, ...);


void
AG_TextTmsgS(enum ag_text_msg_title title, Uint32 expire, const char *msg);


void
AG_TextEditFloat(double *fp, double min, double max, const AG_Unit *unit, const char *format, ...);


void
AG_TextEditString(char *buf, size_t len, const char *format, ...);

The AG_TextMsg() function displays a text message window containing the given printf(3) formatted string, and an ‘OK’ button. title is one of the following:

enum ag_text_msg_title {
	AG_MSG_ERROR,
	AG_MSG_WARNING,
	AG_MSG_INFO
};

AG_TextMsgFromError() displays a standard error message using the value of AG_GetError(3).

AG_TextWarning() displays a standard warning message, but also provides the user with a “Don't show again” checkbox. The checkbox controls the AG_Config(3) value specified by disableKey.

AG_TextError() displays an error message. It is equivalent to AG_TextMsg() with a AG_MSG_ERROR setting.

AG_TextInfo() displays an informational message. Similar to AG_TextWarning(), a “Don't show again” option is provided to the user (and the setting is referenced by disableKey).

The AG_TextTmsg() routine is a variant of AG_TextMsg() which displays the message for a specific amount of time, given in milliseconds.

The AG_TextEditFloat() function displays a dialog asking for a floating-point value. The fp argument is a pointer to the variable, while min and max define the acceptable range. Unless unit is NULL, the argument indicates the unit system to use (as in AG_Units(3)).

Similarly, AG_TextEditString() displays a dialog asking for a string, where buf is a pointer to the string buffer, and len is the size of the buffer.

AG_Font *
AG_FetchFont(const char *face, int size, int flags);


void
AG_UnusedFont(AG_Font *font);


void
AG_SetDefaultFont(AG_Font *font);


void
AG_SetRTL(int enable);


void
AG_TextParseFontSpec(const char *fontspec);

The AG_FetchFont() function retrieves the font corresponding to the specified face and size in points. Acceptable flags include AG_FONT_BOLD and AG_FONT_ITALIC. The font is loaded from file if not currently resident (unless the fontconfig library is available, the font file should reside in one of the directories specified in the font-path setting). If any the parameters are specified as NULL or -1, the AG_Config(3) defaults font.face, font.size and font.flags are used. AG_FetchFont() returns a pointer to the font object, incrementing its reference count. If the font cannot be loaded, the function returns NULL.

The AG_UnusedFont() function decrements the reference count on a font. If the font is no longer referenced, it is destroyed.

AG_SetDefaultFont() sets the specified font object as the default font.

AG_SetRTL() enables or disables right-to-left text mode.

The AG_TextParseFontSpec() function parses a font specification of the form ‘face,size,style’ (valid separators include ‘:,./’) and assigns the default font. This function is typically called prior to AG_InitGraphics() (e.g., to parse alternate fonts specified on the command line).

AG_Config(3), AG_Editable(3), AG_Intro(3), AG_Label(3), AG_Surface(3), AG_Textbox(3), AG_TextElement(3), AG_Widget(3)

The FreeType project

Unicode home page

The AG_Text interface first appeared in Agar 1.0. The stack of rendering attributes was added in Agar 1.3. Right-to-left rendering first appeared in Agar 1.4.1.
April 24, 2003 FreeBSD 13.1-RELEASE

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.