mirror of
https://github.com/fltk/fltk.git
synced 2026-05-31 22:04:26 +08:00
X11 platform: Fl_RGB_Image::mask_ is always 0, so remove code to process mask_ in Fl_Xlib_Graphics_Driver.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12119 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
@@ -715,29 +715,10 @@ void Fl_Xlib_Graphics_Driver::draw(Fl_RGB_Image *img, int XP, int YP, int WP, in
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (*Fl_Graphics_Driver::id(img)) {
|
if (*Fl_Graphics_Driver::id(img)) {
|
||||||
if (*Fl_Graphics_Driver::mask(img)) {
|
|
||||||
// I can't figure out how to combine a mask with existing region,
|
|
||||||
// so cut the image down to a clipped rectangle:
|
|
||||||
int nx, ny; fl_clip_box(X,Y,W,H,nx,ny,W,H);
|
|
||||||
cx += nx-X; X = nx;
|
|
||||||
cy += ny-Y; Y = ny;
|
|
||||||
// make X use the bitmap as a mask:
|
|
||||||
XSetClipMask(fl_display, gc_, *Fl_Graphics_Driver::mask(img));
|
|
||||||
int ox = X-cx; if (ox < 0) ox += img->w();
|
|
||||||
int oy = Y-cy; if (oy < 0) oy += img->h();
|
|
||||||
XSetClipOrigin(fl_display, gc_, X-cx, Y-cy);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (img->d() == 4 && fl_can_do_alpha_blending())
|
if (img->d() == 4 && fl_can_do_alpha_blending())
|
||||||
copy_offscreen_with_alpha(X, Y, W, H, *Fl_Graphics_Driver::id(img), cx, cy);
|
copy_offscreen_with_alpha(X, Y, W, H, *Fl_Graphics_Driver::id(img), cx, cy);
|
||||||
else
|
else
|
||||||
copy_offscreen(X, Y, W, H, *Fl_Graphics_Driver::id(img), cx, cy);
|
copy_offscreen(X, Y, W, H, *Fl_Graphics_Driver::id(img), cx, cy);
|
||||||
|
|
||||||
if (*Fl_Graphics_Driver::mask(img)) {
|
|
||||||
// put the old clip region back
|
|
||||||
XSetClipOrigin(fl_display, gc_, 0, 0);
|
|
||||||
fl_restore_clip();
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
// Composite image with alpha manually each time...
|
// Composite image with alpha manually each time...
|
||||||
alpha_blend(img, X, Y, W, H, cx, cy);
|
alpha_blend(img, X, Y, W, H, cx, cy);
|
||||||
@@ -750,11 +731,6 @@ void Fl_Xlib_Graphics_Driver::uncache(Fl_RGB_Image*, fl_uintptr_t &id_, fl_uintp
|
|||||||
XFreePixmap(fl_display, (Fl_Offscreen)id_);
|
XFreePixmap(fl_display, (Fl_Offscreen)id_);
|
||||||
id_ = 0;
|
id_ = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mask_) {
|
|
||||||
fl_delete_bitmask((Fl_Bitmask)mask_);
|
|
||||||
mask_ = 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fl_uintptr_t Fl_Xlib_Graphics_Driver::cache(Fl_Bitmap*, int w, int h, const uchar *array) {
|
fl_uintptr_t Fl_Xlib_Graphics_Driver::cache(Fl_Bitmap*, int w, int h, const uchar *array) {
|
||||||
|
|||||||
Reference in New Issue
Block a user