m.ty = ymin;
m.m00 = m.m11 = 1;
m.m10 = m.m01 = 0;
+ m.tx -= 0.5;
+ m.ty -= 0.5;
gfxline_t* line = gfxline_makerectangle(xmin, ymin, xmax, ymax);
dev->fillbitmap(dev, line, img, &m, 0);
msg("<debug> drawChar render=%d", state->getRender());
if(state->getRender()&RENDER_CLIP) {
+ //char is just a clipping boundary
rgbdev->drawChar(state, x, y, dx, dy, originX, originY, code, nBytes, u, uLen);
-
- /* FIXME: do we need these calls? */
boolpolydev->drawChar(state, x, y, dx, dy, originX, originY, code, nBytes, u, uLen);
booltextdev->drawChar(state, x, y, dx, dy, originX, originY, code, nBytes, u, uLen);
clip1dev->drawChar(state, x, y, dx, dy, originX, originY, code, nBytes, u, uLen);
+ } else if(rgbbitmap != rgbdev->getBitmap()) {
+ // we're doing softmasking or transparency grouping
+ boolpolydev->drawChar(state, x, y, dx, dy, originX, originY, code, nBytes, u, uLen);
+ checkNewBitmap(UNKNOWN_BOUNDING_BOX);
+ rgbdev->drawChar(state, x, y, dx, dy, originX, originY, code, nBytes, u, uLen);
} else {
+ // we're drawing a regular char
clearClips();
clip0dev->drawChar(state, x, y, dx, dy, originX, originY, code, nBytes, u, uLen);
clip1dev->drawChar(state, x, y, dx, dy, originX, originY, code, nBytes, u, uLen);