public void DrawString(char[] text, int startAt, int len, double x, double y)
{
if (this.UseSubPixelRendering)
{
//1. clear prev drawing result
_aggPainter.Clear(Drawing.Color.FromArgb(0, 0, 0, 0));
//aggPainter.Clear(Drawing.Color.White);
//aggPainter.Clear(Drawing.Color.FromArgb(0, 0, 0, 0));
//2. print text span into Agg Canvas
textPrinter.DrawString(text, startAt, len, 0, 0);
//3.copy to gl bitmap
byte[] buffer = PixelFarm.Agg.ActualImage.GetBuffer(actualImage);
//------------------------------------------------------
GLBitmap glBmp = new GLBitmap(bmpWidth, bmpHeight, buffer, true);
glBmp.IsInvert = false;
//TODO: review font height
canvas.DrawGlyphImageWithSubPixelRenderingTechnique(glBmp, (float)x, (float)y + 40);
glBmp.Dispose();
}
else
{
//1. clear prev drawing result
_aggPainter.Clear(Drawing.Color.FromArgb(0, 0, 0, 0));
//2. print text span into Agg Canvas
textPrinter.DrawString(text, startAt, len, 0, 0);
//3.copy to gl bitmap
byte[] buffer = PixelFarm.Agg.ActualImage.GetBuffer(actualImage);
//------------------------------------------------------
GLBitmap glBmp = new GLBitmap(bmpWidth, bmpHeight, buffer, true);
glBmp.IsInvert = false;
//TODO: review font height
canvas.DrawGlyphImage(glBmp, (float)x, (float)y + 40);
glBmp.Dispose();
}
}