src/fixedfontwrap.cpp
// lowLevelDrawTextLine *****
// This method manages the low level drawing of a one line text
// in a surface. It might be different for every subclass of
// fixedFontClass.

lowLevelDrawTextLine
This method manages the low level drawing of a one line text
in a surface. It might be different for every subclass of
fixedFontClass.
lowLevelDrawTextLine This method manages the low level drawing of a one line text in a surface . It might be different for every subclass of fixedFontClass .
bool bitmappedFixedFontClass::lowLevelDrawTextLine(
	ddSurfaceClass& srfTo,
	char* text,
	int textSize,
	int x, int y,
	int xClip, int yClip,
	int wClip, int hClip,
	bool transparent)
{
	int i;
	characterStruct* currCharInfo;
	char* currChar=text;
	int xTemp=x, yTemp=y;
	if (!initialized) return false;
	if (!INTERSECTINGRECTANGLES(
		0, 0, srfTo.getWidth(), srfTo.getHeight(),
		xClip, yClip, xClip+wClip, yClip+hClip)) {
		return true;
	}
	if (xClip<0) {
		wClip+=xClip;
		xClip=0;
	}
	if (yClip<0) {
		hClip+=yClip;
		yClip=0;
	}
	if (xClip+wClip>srfTo.getWidth()) wClip=srfTo.getWidth()-xClip;
	if (yClip+hClip>srfTo.getHeight()) hClip=srfTo.getHeight()-yClip;
	for (i=0; i<textSize; i++) {
		currCharInfo=&(characters[(unsigned char)(*currChar)]);
		if (currCharInfo->isAllowed) {
			if (!srfTo.bltFrom(
				*surface,
				xTemp, yTemp,
				currCharInfo->x, currCharInfo->y,
				charW, charH,
				xClip, yClip,
				wClip, hClip,
				true,
				transparent))
				return false;
		}
		currChar++;
		xTemp+=charW;
	}
	return true;
}
bool bitmappedFixedFontClass :: lowLevelDrawTextLine ( ddSurfaceClass & srfTo , char * text , int textSize , int x , int y , int xClip , int yClip , int wClip , int hClip , bool transparent ) { int i ; characterStruct * currCharInfo ; char * currChar = text ; int xTemp = x , yTemp = y ; if ( ! initialized ) return false ; if ( ! INTERSECTINGRECTANGLES ( 0 , 0 , srfTo . getWidth ( ) , srfTo . getHeight ( ) , xClip , yClip , xClip + wClip , yClip + hClip ) ) { return true ; } if ( xClip < 0 ) { wClip += xClip ; xClip = 0 ; } if ( yClip < 0 ) { hClip += yClip ; yClip = 0 ; } if ( xClip + wClip > srfTo . getWidth ( ) ) wClip = srfTo . getWidth ( ) - xClip ; if ( yClip + hClip > srfTo . getHeight ( ) ) hClip = srfTo . getHeight ( ) - yClip ; for ( i = 0 ; i < textSize ; i ++ ) { currCharInfo = & ( characters [ ( unsigned char ) ( * currChar ) ] ) ; if ( currCharInfo -> isAllowed ) { if ( ! srfTo . bltFrom ( * surface , xTemp , yTemp , currCharInfo -> x , currCharInfo -> y , charW , charH , xClip , yClip , wClip , hClip , true , transparent ) ) return false ; } currChar ++ ; xTemp += charW ; } return true ; }
lowLevelDrawTextLine 
This method manages the low level drawing of a one line text
in a surface.
lowLevelDrawTextLine This method manages the low level drawing of a one line text in a surface .
// surface where to draw the text
 // text to draw
 // size of the string to draw
 // position where to draw the text
 // clip box
 // will the text be transparent?
 // current char information
 // current char
 // check it's initialized
 // check for the clipping area being totally outside the surface
 // surface rectangle
 // clipping rectangle
 // nothing to draw in such case
 // all ok
 // calculate the clipping rectangle (correct it if it goes further than
 // the surface)
 // draw every character
 // draw a character in the destination surface
 // source surface
 // destination coordinates
 // source coordinates
 // image size
 // rectangle for clipping
 // clip: true
 // transparency?
 // go to the next character
 // all ok
