Topic: Bitmap Fonts
Bitmap Fonts: Using Prerendered Graphics for Text
NOTE: This tutorial assumes you can handle the basic setup of a D3D/DX project. The code included here can be added to such a project for use. You will also have to work with the code a bit, as it is very much designed to work within our specific project. Also, accompanying source is available in our downloads section.
During the initial development of WordWars, we were using the D3DXFont object; it's very simple and takes very little to set up. As we neared the beta release, the performance became a serious issue. DirectX actually creates multiple polygons per letter to do the text, and does so very inefficiently. This is fine for small amounts of text, but not for long messages (or interactive chat text). DrawText isn't much better.
The only real answer was a prerendered font, or bitmap font. Bitmap fonts have the advantage of being very fast, and they can be painted with whatever texture or mix of colors you like. The WordWars metal set uses a "liquid metal" effect for its fonts, as an example. Unfortunately, it can be tricky to draw them where their baselines align correctly, and manually calculating the width of each letter (much less applying that information when drawing them) can be a very trying experience. What finally made us decide to take the plunge into bitmap fonts was the discovery of an excellent free tool: Bitmap Font Builder.
This tutorial roughly covers the process we use for WordWars' bitmap fonts. Code is also available for download, although it will need a little modification to work in your own program. Our bitmap font engine supports standard D3DXFont alignments (left, top, center, etc.) and a few formatting tags (/COLOR, /NEWLINE). You are welcome to use the provided code for any purpose.

Bitmap Font Builder I stumbled across this on a C++ site, and it can be found at http://www.lmnopc.com/. The creator asks for an email telling him what you're doing with it...and that's the only cost. Seems fair.
Bitmap Font Builder gives you many options, but the only one truly important to this tutorial is the texture size of 512x512.
There is an option to create a bitmap with a full ASCII character set, but the default gives you all the characters you should need. WordWars sets use the latter, with Font 2 set to precisely half the size of Font 1. Create a font bitmap and save the graphic to a tutorial project folder. Record the font sizes you used for later use. Finally, save the font widths to an INI file (in the File menu. Put this file inside your project folder also.
Next, a look at the ATOMFont code module.