diff options
| author | Manolo Gouy <Manolo> | 2018-04-12 13:07:00 +0000 |
|---|---|---|
| committer | Manolo Gouy <Manolo> | 2018-04-12 13:07:00 +0000 |
| commit | 16705ef734cd00e114e422e2cb4a5c84ad49c09f (patch) | |
| tree | 11ee243812b0fce99549d7a41b8a4a91f1efa568 /src/drivers/PostScript/Fl_PostScript_image.cxx | |
| parent | efc3ec1b7b54718be4d2f5145342484607b5059e (diff) | |
Image drawing: simplify the code organisation to better support Fl_Image::scale().
Graphics drivers now use up to 6 virtual member functions to support Fl_Image
drawing in the context of GUI and image rescaling :
virtual void draw_pixmap(Fl_Pixmap *pxm, int XP, int YP, int WP, int HP, int cx, int cy)
virtual void draw_bitmap(Fl_Bitmap *bm, int XP, int YP, int WP, int HP, int cx, int cy)
virtual void draw_rgb(Fl_RGB_Image *rgb, int XP, int YP, int WP, int HP, int cx, int cy)
and
virtual void draw_fixed(Fl_Pixmap *pxm, int XP, int YP, int WP, int HP, int cx, int cy)
virtual void draw_fixed(Fl_Bitmap *bm, int XP, int YP, int WP, int HP, int cx, int cy)
virtual void draw_fixed(Fl_RGB_Image *rgb, int XP, int YP, int WP, int HP, int cx, int cy)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12828 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/drivers/PostScript/Fl_PostScript_image.cxx')
| -rw-r--r-- | src/drivers/PostScript/Fl_PostScript_image.cxx | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/drivers/PostScript/Fl_PostScript_image.cxx b/src/drivers/PostScript/Fl_PostScript_image.cxx index cc91f24da..4b7c26744 100644 --- a/src/drivers/PostScript/Fl_PostScript_image.cxx +++ b/src/drivers/PostScript/Fl_PostScript_image.cxx @@ -575,7 +575,7 @@ void Fl_PostScript_Graphics_Driver::draw(Fl_Pixmap * pxm,int XP, int YP, int WP, int need_clip = cx || cy || WP != pxm->w() || HP != pxm->h(); if (need_clip) push_clip(XP, YP, WP, HP); if (pxm->w() != pxm->data_w() || pxm->h() != pxm->data_h()) { - draw_scaled(pxm, XP-cx, YP-cy, pxm->w(), pxm->h()); + scale_and_draw(pxm, XP-cx, YP-cy, pxm->w(), pxm->h()); } else { const char * const * di =pxm->data(); int w,h; @@ -597,7 +597,7 @@ void Fl_PostScript_Graphics_Driver::draw(Fl_RGB_Image * rgb,int XP, int YP, int int need_clip = cx || cy || WP != rgb->w() || HP != rgb->h(); if (need_clip) push_clip(XP, YP, WP, HP); if (rgb->w() != rgb->data_w() || rgb->h() != rgb->data_h()) { - draw_scaled(rgb, XP-cx, YP-cy, rgb->w(), rgb->h()); + scale_and_draw(rgb, XP-cx, YP-cy, rgb->w(), rgb->h()); } else { const uchar * di = rgb->array; int w = rgb->w(); @@ -612,7 +612,7 @@ void Fl_PostScript_Graphics_Driver::draw(Fl_RGB_Image * rgb,int XP, int YP, int if (need_clip) pop_clip(); } -int Fl_PostScript_Graphics_Driver::draw_scaled(Fl_Image *img, int XP, int YP, int WP, int HP){ +int Fl_PostScript_Graphics_Driver::scale_and_draw(Fl_Image *img, int XP, int YP, int WP, int HP){ int X, Y, W, H; clip_box(XP,YP,WP,HP,X,Y,W,H); // X,Y,W,H will give the unclipped area of XP,YP,WP,HP if (W == 0 || H == 0) return 1; @@ -632,7 +632,7 @@ void Fl_PostScript_Graphics_Driver::draw(Fl_Bitmap * bitmap,int XP, int YP, int int need_clip = cx || cy || WP != bitmap->w() || HP != bitmap->h(); if (need_clip) push_clip(XP, YP, WP, HP); if (bitmap->w() != bitmap->data_w() || bitmap->h() != bitmap->data_h()) { - draw_scaled(bitmap, XP-cx, YP-cy, bitmap->w(), bitmap->h()); + scale_and_draw(bitmap, XP-cx, YP-cy, bitmap->w(), bitmap->h()); } else { const uchar * di = bitmap->array; int w,h; |
