summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Fl_SVG_Image.cxx3
-rw-r--r--src/drivers/PostScript/Fl_PostScript_image.cxx3
2 files changed, 5 insertions, 1 deletions
diff --git a/src/Fl_SVG_Image.cxx b/src/Fl_SVG_Image.cxx
index 4e4645d3f..c30227daa 100644
--- a/src/Fl_SVG_Image.cxx
+++ b/src/Fl_SVG_Image.cxx
@@ -218,6 +218,9 @@ void Fl_SVG_Image::color_average(Fl_Color c, float i) {
int Fl_SVG_Image::draw_scaled(int X, int Y, int W, int H) {
+ if (rasterized_ && raster_w_ >= W && raster_h_ >= H) {
+ return fl_graphics_driver->draw_scaled(this, X, Y, W, H);
+ }
w(W);
h(H);
draw(X, Y, W, H, 0, 0);
diff --git a/src/drivers/PostScript/Fl_PostScript_image.cxx b/src/drivers/PostScript/Fl_PostScript_image.cxx
index 4b3d316bb..579375ebc 100644
--- a/src/drivers/PostScript/Fl_PostScript_image.cxx
+++ b/src/drivers/PostScript/Fl_PostScript_image.cxx
@@ -608,7 +608,8 @@ int Fl_PostScript_Graphics_Driver::draw_scaled(Fl_Image *img, int XP, int YP, in
push_no_clip(); // remove the FLTK clip that can't be rescaled
clocale_printf("%d %d %i %i CL\n", X, Y, W, H);
clocale_printf("GS %d %d TR %f %f SC GS\n", XP, YP, float(WP)/img->w(), float(HP)/img->h());
- img->draw(0, 0, img->w(), img->h(), 0, 0);
+ if (img->as_rgb_image()) draw(img->as_rgb_image(), 0, 0, img->w(), img->h(), 0, 0);
+ else img->draw(0, 0, img->w(), img->h(), 0, 0);
clocale_printf("GR GR\n");
pop_clip(); // restore FLTK's clip
return 1;