Fix for STR#3353: bad depth-2 image drawing when the window is resized smaller than the image.
The problem is specific to the X11 platform. The cause is that depth-2 images were not considered in a previous change (r.10628) that introduced transparent image drawing with alpha blending. Depth-2 images can be processed just as depth-4 images with alpha-blending. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12120 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
5cf12d94cb
commit
18d478055e
@ -701,7 +701,7 @@ void Fl_Xlib_Graphics_Driver::draw(Fl_RGB_Image *img, int XP, int YP, int WP, in
|
||||
int depth = img->d();
|
||||
if (depth == 1 || depth == 3) {
|
||||
surface = new Fl_Image_Surface(img->w(), img->h());
|
||||
} else if (depth == 4 && fl_can_do_alpha_blending()) {
|
||||
} else if (can_do_alpha_blending()) {
|
||||
Fl_Offscreen pixmap = XCreatePixmap(fl_display, RootWindow(fl_display, fl_screen), img->w(), img->h(), 32);
|
||||
surface = new Fl_Image_Surface(img->w(), img->h(), 0, pixmap);
|
||||
depth |= FL_IMAGE_WITH_ALPHA;
|
||||
@ -715,7 +715,7 @@ void Fl_Xlib_Graphics_Driver::draw(Fl_RGB_Image *img, int XP, int YP, int WP, in
|
||||
}
|
||||
}
|
||||
if (*Fl_Graphics_Driver::id(img)) {
|
||||
if (img->d() == 4 && fl_can_do_alpha_blending())
|
||||
if (img->d() == 4 || img->d() == 2)
|
||||
copy_offscreen_with_alpha(X, Y, W, H, *Fl_Graphics_Driver::id(img), cx, cy);
|
||||
else
|
||||
copy_offscreen(X, Y, W, H, *Fl_Graphics_Driver::id(img), cx, cy);
|
||||
|
Loading…
Reference in New Issue
Block a user