diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Fl_Shared_Image.cxx | 2 | ||||
| -rw-r--r-- | src/drivers/GDI/Fl_GDI_Graphics_Driver_image.cxx | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/Fl_Shared_Image.cxx b/src/Fl_Shared_Image.cxx index 216387aa7..f94d28f11 100644 --- a/src/Fl_Shared_Image.cxx +++ b/src/Fl_Shared_Image.cxx @@ -378,7 +378,7 @@ void Fl_Graphics_Driver::draw(Fl_Shared_Image *shared, int X, int Y) { return; } // don't call Fl_Graphics_Driver::draw_scaled(Fl_Image*,...) for an enlarged Fl_Bitmap or Fl_Pixmap - if ((shared->d() != 0 && shared->count() < 2) || (shared->w() <= shared->image_->w() && shared->h() <= shared->image_->h())) { + if (shared->as_rgb_image() || (shared->w() <= shared->image_->w() && shared->h() <= shared->image_->h())) { int done = fl_graphics_driver->draw_scaled(shared->image_, X, Y, shared->w(), shared->h()); if (done) return; } diff --git a/src/drivers/GDI/Fl_GDI_Graphics_Driver_image.cxx b/src/drivers/GDI/Fl_GDI_Graphics_Driver_image.cxx index a9ecae8e0..cbd6f591a 100644 --- a/src/drivers/GDI/Fl_GDI_Graphics_Driver_image.cxx +++ b/src/drivers/GDI/Fl_GDI_Graphics_Driver_image.cxx @@ -542,9 +542,9 @@ int Fl_GDI_Printer_Graphics_Driver::draw_scaled(Fl_Image *img, int XP, int YP, i } int Fl_GDI_Graphics_Driver::draw_scaled(Fl_Image *img, int XP, int YP, int WP, int HP) { - if (img->d() == 0 || img->count() >= 2) return 0; // for bitmaps and pixmaps + Fl_RGB_Image *rgb = img->as_rgb_image(); + if (!rgb || !rgb->array) return 0; // for bitmaps and pixmaps - Fl_RGB_Image *rgb = (Fl_RGB_Image*)img; if (!rgb->id_) rgb->id_ = (fl_uintptr_t)build_id(rgb, (void**)&(rgb->mask_)); HDC new_gc = CreateCompatibleDC(gc_); int save = SaveDC(new_gc); |
