Fix Fl_GDI_Graphics_Driver::cache(Fl_Pixmap *) where 2 distinct Fl_GDI_Graphics_Driver objects should be used in the right way.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12865 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
7e234e3abc
commit
de4026aeca
@ -348,10 +348,8 @@ Fl_Bitmask Fl_GDI_Graphics_Driver::create_bitmask(int w, int h, const uchar *dat
|
||||
static uchar loNibble[16] =
|
||||
{ 0x00, 0x08, 0x04, 0x0c, 0x02, 0x0a, 0x06, 0x0e,
|
||||
0x01, 0x09, 0x05, 0x0d, 0x03, 0x0b, 0x07, 0x0f };
|
||||
HDC hdc = GetDC(NULL);
|
||||
int np = GetDeviceCaps(hdc, PLANES); //: was always one on sample machines
|
||||
int bpp = GetDeviceCaps(hdc, BITSPIXEL);//: 1,4,8,16,24,32 and more odd stuff?
|
||||
ReleaseDC(NULL, hdc);
|
||||
int np = GetDeviceCaps(gc_, PLANES); //: was always one on sample machines
|
||||
int bpp = GetDeviceCaps(gc_, BITSPIXEL);//: 1,4,8,16,24,32 and more odd stuff?
|
||||
int Bpr = (bpp*w+7)/8; //: bytes per row
|
||||
int pad = Bpr&1, w1 = (w+7)/8, shr = ((w-1)&7)+1;
|
||||
if (bpp==4) shr = (shr+1)/2;
|
||||
@ -703,7 +701,8 @@ void Fl_GDI_Graphics_Driver::cache(Fl_Pixmap *img) {
|
||||
fl_draw_pixmap(img->data(), 0, 0, FL_BLACK);
|
||||
uchar *bitmap = *pbitmap;
|
||||
if (bitmap) {
|
||||
*Fl_Graphics_Driver::mask(img) = (fl_uintptr_t)create_bitmask(img->data_w(), img->data_h(), bitmap);
|
||||
// call fl_create_bitmask here because "this" is not the current graphics driver
|
||||
*Fl_Graphics_Driver::mask(img) = (fl_uintptr_t)fl_create_bitmask(img->data_w(), img->data_h(), bitmap);
|
||||
delete[] bitmap;
|
||||
}
|
||||
*pbitmap = 0;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user