FreeTypeGX
FreeTypeGX is a wrapper class for libFreeType which renders a compiled FreeType parsable font into a GX texture for Wii homebrew development.
FreeTypeGX is written in C++ and makes use of a selectable pre-buffered or buffer-on-demand methodology to allow fast and efficient printing of text to the EFB.
This library was developed in-full by Armin Tamzarian with the support of developers in #wiibrew on EFnet.
- Ensure that you have the libFreeType Wii library installed in your development environment with the library added to your Makefile where appropriate.
- Ensure that you have the Metaphrasis library installed in your development environment with the library added to your Makefile where appropriate.
- Extract the FreeTypeGX archive.
- Copy the contents of the src directory into your project's development path.
- Place a copy of the desired TrueType or OpenType font you wish to use in the FreeTypeGX/ttf directory.
- Modify the fontface.s file and change the value of the incbin variable to point to your font.
- Modify the fontface.s file and change the value of the fontsize variable to the byte-size of the font file.
- Include the FreeTypeGX header file in your code using syntax such as the following:
- Ensure that you have the libFreeType Wii library installed in your development environment with the library added to your Makefile where appropriate.
- Ensure that you have the Metaphrasis library installed in your development environment with the library added to your Makefile where appropriate.
- Extract the FreeTypeGX archive.
- Copy the contents of the lib directory into your devKitPro/libogc directory.
- Include the FreeTypeGX header file in your code using syntax such as the following:
- Within the file you included the FreeTypeGX.h file create an instance object of the FreeTypeGX class passing in the desired font point size: Alternately you can specify a texture format you would like to which you would like to render the font characters. Furthermore you can also specify a third flag which will load and cache all available font glyphs immidiately. Note that on large font sets enabling this feature could take a significant amount of time. Currently supported textures are:
- GX_TF_I4
- GX_TF_I8
- GX_TF_IA4
- GX_TF_IA8
- GX_TF_RGB565
- GX_TF_RGB5A3
- GX_TF_RGBA8
- Using the allocated FreeTypeGX instance object call the drawText function to print a string at the specified screen X and Y coordinates to the current EFB: Alternately you can specify a GXColor object you would like to apply to the printed characters:
freeTypeGX->drawText(10, 25, _TEXT("FreeTypeGX Rocks!"), (GXColor){0xff, 0xee, 0xaa, 0xff});
FreeTypeGX is distributed under the GNU Lesser General Public License.
If you have any suggestions, questions, or comments regarding this library feel free to e-mail me at tamzarian1989 [at] gmail [dawt] com.