+ int xStart = 0, yStart = 0;
+ int x, y;
+ uint32_t *outBuf;
+ uint8_t *inBuf;
+ // TODO: Implement
+
+ X += Glyph->OffsetX;
+ if( X < 0 ) { // If -ve, skip the first -X collums
+ xStart = -X;
+ X = 0;
+ }
+
+ Y += Glyph->OffsetY;
+ if( Y < 0 ) { // If -ve, skip the first -Y lines
+ yStart = -Y;
+ Y = 0;
+ }
+
+ outBuf = gpScreenBuffer + Y*giScreenWidth + X;
+ inBuf = Glyph->Bitmap + yStart*Glyph->TrueWidth;
+
+ for( y = yStart; y < Glyph->TrueHeight; y ++ )
+ {
+ for( x = xStart; x < Glyph->TrueWidth; x ++ )
+ {
+ outBuf[x] = Video_AlphaBlend( outBuf[x], Color, inBuf[x] );
+ }
+ outBuf += giScreenWidth;
+ inBuf += Glyph->TrueWidth;
+
+ }