Dumping the MS MinCho font, all 65 thousand glyphs.
By the way, JoDeGr8, if you cache/draw glyphs, like I do,
you can " clip " using ExtTextOut().
From " www.Cotse.NET/users/jeffrelf/X.CPP ":
HDC DC ; Chk( Font->GetDC( & DC ) ), SetBkMode( DC, TRANSPARENT );
SetTextAlign( DC , TA_LEFT | TA_TOP | TA_UPDATECP );
SetTextColor( DC, * Hue );
SetPtr(
DC, Ch < Lowest_Ascii || Ch > Highest_Ascii ? SymFnt : Fnt );
int _W = W_Rnd * 2 , X = ( C.I = ++ I_Font ) * W_Rnd ;
RECT R = _R( X, 0, _W, H_Rnd ); FillRect( DC, & R, Blue );
MvTo( X, 0 ); wchar_t B[ 2 ] = { Ch };
ExtTextOut(
DC, X, 0, ETO_CLIPPED | ETO_IGNORELANGUAGE, & R, B, 1, 0 );
MvTo( 0,0 ), Chk( Font->ReleaseDC( DC ) );
Here's a screenshot of X.EXE dumping the MS MinCho font:
" www.Cotse.NET/users/jeffrelf/MinCho.PNG ".
X took 60 seconds to cache/draw the 65 thousand glyphs
and most of the characters were 26 x 26 pixels ( monospaced ).
Once cached, they can be drawn " instantly ".
I can select and copy glyphs this way.
The cashing is dynamic and, under normal conditions,
only about 80 characters would ever be cached;
so, normally, the caching is " instant ".
I Use DirectDraw 7, I tried DirectX 3D 9,
but I could see no speed advantage
( DrawText() is slower than iced molasses ).
Worse, many PCs don't have Dx3D 9 installed.