- __u8 *d=(__u8*)(surface->data)+buffer_stride*ry+rx*surface->bypp;
- __u8 *s=glyph_bitmap->buffer;
- register int sx=glyph_bitmap->width;
- int sy=glyph_bitmap->height;
- if ((sy+ry) >= clip.extends.bottom())
- sy=clip.extends.bottom()-ry;
- if ((sx+rx) >= clip.extends.right())
- sx=clip.extends.right()-rx;
- if (rx < clip.extends.left())
- {
- int diff=clip.extends.left()-rx;
- s+=diff;
- sx-=diff;
- rx+=diff;
- d+=diff*surface->bypp;
- }
- if (ry < clip.extends.top())
- {
- int diff=clip.extends.top()-ry;
- s+=diff*glyph_bitmap->pitch;
- sy-=diff;
- ry+=diff;
- d+=diff*buffer_stride;
- }
- if (sx>0)
- for (int ay=0; ay<sy; ay++)
+ __u8 *d=(__u8*)(surface->data)+buffer_stride*ry+rx*surface->bypp;
+ __u8 *s=glyph_bitmap->buffer;
+ register int sx=glyph_bitmap->width;
+ int sy=glyph_bitmap->height;
+ if ((sy+ry) >= clip.rects[c].bottom())
+ sy=clip.rects[c].bottom()-ry;
+ if ((sx+rx) >= clip.rects[c].right())
+ sx=clip.rects[c].right()-rx;
+ if (rx < clip.rects[c].left())