SetBkMode(gdiSurface.hdc, opaque ? OPAQUE : TRANSPARENT);
}
- void WriteText(Display display, Surface surface, int x, int y, const char * text, int len)
+ void WriteText(Display display, Surface surface, int x, int y, const char * text, int len, int prevGlyph, int * rPrevGlyph)
{
Win32BitmapPrinterSurface gdiSurface = surface.driverData;
int wordCount;
delete u16text;
}
- void TextExtent(Display display, Surface surface, const char * text, int len, int * width, int * height)
+ void TextExtent(Display display, Surface surface, const char * text, int len, int * width, int * height, int prevGlyph, int * rPrevGlyph, int * adv)
{
Win32BitmapPrinterSurface gdiSurface = surface.driverData;
SIZE space, size;
// UNICODE FIX: proper space computation
if(width) *width = size.cx + (wordCount - realLen) * space.cx;
+ if(adv) *adv = 0;
if(height)
{
if(realLen)
}
}
- void FontExtent(DisplaySystem displaySystem, void * font, const char * text, int len, int * width, int * height)
+ void FontExtent(DisplaySystem displaySystem, void * font, const char * text, int len, int * width, int * height, int prevGlyph, int * rPrevGlyph, int * adv)
{
Win32BitmapPrinterSystem gdiSystem = displaySystem.driverData;
if(gdiSystem.tmpDC)
gdiSurface.hdc = gdiSystem.tmpDC;
SelectObject(gdiSurface.hdc, font);
- TextExtent(null, surface, text, len, width, height);
+ TextExtent(null, surface, text, len, width, height, prevGlyph, rPrevGlyph, adv);
delete surface;
delete gdiSurface;
}
else
{
+ if(adv) *adv = 0;
if(width) *width = 0;
if(height) *height = 0;
}