# WoopsiUI::PackedFontBase Class Reference

`#include <packedfontbase.h>`

Inheritance diagram for WoopsiUI::PackedFontBase:

List of all members.

## Public Member Functions
| PackedFontBase (u8 first, u8 last, const u16 *glyphData, const u16 *glyphOffset, const u8 *glyphWidth, const u8 height, const u8 spWidth, const u8 fixedWidth=0)
void | setFontWidth (u8 fontWidth)
virtual s16 | drawChar (u16 *bitmap, u16 bitmapWidth, u16 bitmapHeight, char letter, s16 x, s16 y, u16 clipX1, u16 clipY1, u16 clipX2, u16 clipY2)
virtual u16 | getStringWidth (const char *text) const
virtual u16 | getStringWidth (const char *text, u16 length) const
virtual u16 | getCharWidth (char letter) const
const bool | isCharBlank (const char letter) const
virtual void | renderChar (const u16 *pixelData, u16 pixelsPerRow, u16 *bitmap, u16 bitmapWidth, s16 x, s16 y, u16 clipX1, u16 clipY1, u16 clipX2, u16 clipY2)=0
## Protected Attributes
u8 | _first
u8 | _last
const u16 * | _glyphData
const u16 * | _glyphOffset
const u8 * | _glyphWidth
u8 | _fontWidth
u8 | _spWidth
u8 | _widMax

## Detailed Description

PackedFont is a base class defining a font whose data is packed into a more efficient data format.

## Constructor & Destructor Documentation

WoopsiUI::PackedFontBase::PackedFontBase | ( | u8 | first,
|  | u8 | last,
|  | const u16 * | glyphData,
|  | const u16 * | glyphOffset,
|  | const u8 * | glyphWidth,
|  | const u8 | height,
|  | const u8 | spWidth,
|  | const u8 | fixedWidth = `0` |
| ) |  |  | `[inline]`

Constructor.

Parameters:

  | first | Ascii index of first character in glphyDdata.
  | last | Ascii index of last character in glyphData.
  | glyphData | Packed array representing font.
  | glyphOffset | Offset into glyphData[] of character[i].
  | glyphWidth | Pixel width of character[i].
  | height | The height of the font.
  | spWidth | The width of a space character
  | fixedWidth | Character width (fixed), or 0 for proportional.

## Member Function Documentation

virtual s16 WoopsiUI::PackedFontBase::drawChar | ( | u16 * | bitmap,
|  | u16 | bitmapWidth,
|  | u16 | bitmapHeight,
|  | char | letter,
|  | s16 | x,
|  | s16 | y,
|  | u16 | clipX1,
|  | u16 | clipY1,
|  | u16 | clipX2,
|  | u16 | clipY2 |
| ) |  |  | `[virtual]`

Draw an individual character of the font to the specified bitmap.

Parameters:

  | bitmap | The bitmap to draw to.
  | bitmapWidth | The width of the bitmap being drawn to.
  | bitmapHeight | The height of the bitmap being drawn to.
  | letter | The character to output.
  | x | The x co-ordinate of the text.
  | y | The y co-ordinate of the text.
  | clipX1 | The left edge of the clipping rectangle.
  | clipY1 | The top edge of the clipping rectangle.
  | clipX2 | The right edge of the clipping rectangle.
  | clipY2 | The bottom edge of the clipping rectangle.

Returns:
  The x co-ordinate for the next character to be drawn.

virtual u16 WoopsiUI::PackedFontBase::getCharWidth | ( | char | letter | ) | const`[virtual]`

Get the width of an individual character.

Parameters:

  | letter | The character to get the width of.

Returns:
  The width of the character in pixels.

Implements WoopsiUI::FontBase.

virtual u16 WoopsiUI::PackedFontBase::getStringWidth | ( | const char * | text,
|  | u16 | length |
| ) |  |  | const`[virtual]`

Get the width of a string with a specified length in pixels when drawn with this font. Useful if you want to determine the width of a string without a terminator, or the width of a section of a string.

Parameters:

  | text | The string to check.
  | length | The length of the string in chars.

Returns:
  The width of the string in pixels.

Implements WoopsiUI::FontBase.

virtual u16 WoopsiUI::PackedFontBase::getStringWidth | ( | const char * | text | ) | const`[virtual]`

Get the width of a string in pixels when drawn with this font.

Parameters:

  | text | The string to check.

Returns:
  The width of the string in pixels.

Implements WoopsiUI::FontBase.

const bool WoopsiUI::PackedFontBase::isCharBlank | ( | const char | letter | ) | const`[virtual]`

Text uses this to decide whether a given character is blank or not

Implements WoopsiUI::FontBase.

virtual void WoopsiUI::PackedFontBase::renderChar | ( | const u16 * | pixelData,
|  | u16 | pixelsPerRow,
|  | u16 * | bitmap,
|  | u16 | bitmapWidth,
|  | s16 | x,
|  | s16 | y,
|  | u16 | clipX1,
|  | u16 | clipY1,
|  | u16 | clipX2,
|  | u16 | clipY2 |
| ) |  |  | `[pure virtual]`

Render an individual character of the font to the specified bitmap.

Parameters:

  | pixelData | The font-specific pixel data
  | pixelsPerRow | The number of pixels to render per row (for this character)
  | bitmap | Top-left corner of output space to draw to.
  | bitmapWidth | The width of the bitmap being drawn to.
  | x | The x co-ordinate of the text.
  | y | The y co-ordinate of the text.
  | clipX1 | The left edge of the clipping rectangle.
  | clipY1 | The top edge of the clipping rectangle.
  | clipX2 | The right edge of the clipping rectangle.
  | clipY2 | The bottom edge of the clipping rectangle.

void WoopsiUI::PackedFontBase::setFontWidth | ( | u8 | fontWidth | ) | `[inline]`

Makes this font fixed-width, though doesn't allow the spacing to be less than the font's known maximum character width. If you want fixed spacing but don't know the required size, pass 1.

Parameters:

  | fontWidth | Font width to use (0 for proportional, 1 for wide-enough)

The documentation for this class was generated from the following file:

- C:/Documents and Settings/Administrator/Desktop/woopsi-src-0.40/Woopsi/libwoopsi/include/packedfontbase.h