0,0 → 1,46 |
SDL_bdf version 1.2 |
|
http://www.geocities.com/andre_leiradella/ |
|
For copyright information see the source files. |
|
SDL_bdf is a small library that renders BDF fonts. As of version 1.2, SDL_bdf |
doesn't depend on SDL anymore, you can use it with any graphics library throgh |
it's API, but the bundled exampled uses SDL to show a text with a BDF font on |
the screen. |
|
The library has been tested with SDL under Windows but should work on any |
platform/graphics library. The functions provided are: |
|
. BDF_Font *BDF_OpenFont(BDF_ReadByte getbyte, void *info, int *error): Opens a |
BDF font, it receives the function that will produce the stream of bytes, the |
user defined void pointer that will be passed to getbyte and a pointer to an |
int that will receive the error code. Returns the BDF font. |
. void BDF_CloseFont(BDF_Font *font): Closes the font and frees all associated |
memory. |
. void BDF_SizeH(BDF_Font *font, char *text, int *x0, int *y0, int *width, |
int *height): Determines the size of the horizontal text, returns the width |
and height of the smallest rectangle that can acomodate the rendered text and |
the start position in x0 and y0 on where the text must be rendered to exactly |
fit the rectangle. This is because the render functions take the y parameter |
as the baseline of the text to allow different fonts (e.g. normal and italic) |
to be mixed in the same line. It handles NULL pointers for pieces of |
information you don't want. |
. void BDF_SizeEntitiesH(BDF_Font *font, char *text, int *x0, int *y0, |
int *width, int *height): Same as above but accepts entities in the |
form &...; (e.g. André) |
. int BDF_DrawH(void *surface, BDF_PutPixel putpixel, BDF_Font *font, |
char *text, int x, int y, unsigned int color): Draws the text at the given |
surface starting at position (x, y). It calls putpixel with the surface, |
coordinates and color to draw the pixel (doesn't clip). Returns the next x |
coordinate to continue to render more text. Only accepts characters in the |
range [0..255]. |
. int BDF_DrawEntitiesH(void *, BDF_PutPixel, BDF_Font *, char *, int, int, |
unsigned int): Same as above but accepts entities in the form &...; |
|
TODO: |
|
. Handle vertical writing. |
. Use a hash table instead of an ordered array to access the glyphs by name. |
. What else? Tell me: leiradella@bigfoot.com |
|