summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FL/Fl_Bitmap.H2
-rw-r--r--FL/Fl_Graphics_Driver.H12
-rw-r--r--FL/Fl_Pixmap.H2
-rw-r--r--src/Fl_Bitmap.cxx13
-rw-r--r--src/Fl_Pixmap.cxx19
-rw-r--r--src/drivers/Quartz/Fl_Quartz_Graphics_Driver_image.cxx17
6 files changed, 16 insertions, 49 deletions
diff --git a/FL/Fl_Bitmap.H b/FL/Fl_Bitmap.H
index 79eba0a4b..47818e7f9 100644
--- a/FL/Fl_Bitmap.H
+++ b/FL/Fl_Bitmap.H
@@ -40,8 +40,6 @@ public:
int alloc_array;
private:
- int prepare(int XP, int YP, int WP, int HP, int &cx, int &cy,
- int &X, int &Y, int &W, int &H);
/** for internal use */
fl_uintptr_t id_;
int cache_w_, cache_h_; // size of bitmap when cached
diff --git a/FL/Fl_Graphics_Driver.H b/FL/Fl_Graphics_Driver.H
index 05398c4c3..b1ec64c07 100644
--- a/FL/Fl_Graphics_Driver.H
+++ b/FL/Fl_Graphics_Driver.H
@@ -248,17 +248,7 @@ protected:
static Fl_Color* pixmap_bg_color(Fl_Pixmap *pm) {return &(pm->pixmap_bg_color);}
/** For internal library use only */
static void draw_empty(Fl_Image* img, int X, int Y) {img->draw_empty(X, Y);}
- /** Accessor to a private member function of Fl_Bitmap */
- static int prepare(Fl_Bitmap *bm, int XP, int YP, int WP, int HP, int &cx, int &cy,
- int &X, int &Y, int &W, int &H) {
- return bm->prepare(XP,YP,WP,HP,cx,cy,X,Y,W,H);
- }
- /** Accessor to a private member function of Fl_Pixmap */
- static int prepare(Fl_Pixmap *pm, int XP, int YP, int WP, int HP, int &cx, int &cy,
- int &X, int &Y, int &W, int &H) {
- return pm->prepare(XP,YP,WP,HP,cx,cy,X,Y,W,H);
- }
-
+
Fl_Graphics_Driver();
void cache_size(Fl_Image *img, int &width, int &height);
public:
diff --git a/FL/Fl_Pixmap.H b/FL/Fl_Pixmap.H
index d5c0612db..b6eb178d1 100644
--- a/FL/Fl_Pixmap.H
+++ b/FL/Fl_Pixmap.H
@@ -40,8 +40,6 @@ class FL_EXPORT Fl_Pixmap : public Fl_Image {
void copy_data();
void delete_data();
void set_data(const char * const *p);
- int prepare(int XP, int YP, int WP, int HP, int &cx, int &cy,
- int &X, int &Y, int &W, int &H);
protected:
void measure();
diff --git a/src/Fl_Bitmap.cxx b/src/Fl_Bitmap.cxx
index 16da1e8b1..476754f0a 100644
--- a/src/Fl_Bitmap.cxx
+++ b/src/Fl_Bitmap.cxx
@@ -116,19 +116,6 @@ void Fl_Bitmap::draw(int XP, int YP, int WP, int HP, int cx, int cy) {
fl_graphics_driver->draw_bitmap(this, XP, YP, WP, HP, cx, cy);
}
-int Fl_Bitmap::prepare(int XP, int YP, int WP, int HP, int &cx, int &cy,
- int &X, int &Y, int &W, int &H)
-{
- if (!array) {
- draw_empty(XP, YP);
- return 1;
- }
- if (fl_graphics_driver->start_image(this, XP,YP,WP,HP,cx,cy,X,Y,W,H)) return 1;
- if (!id_)
- fl_graphics_driver->cache(this);
- return 0;
-}
-
/**
The destructor frees all memory and server resources that are used by
the bitmap.
diff --git a/src/Fl_Pixmap.cxx b/src/Fl_Pixmap.cxx
index d7b837915..699b136af 100644
--- a/src/Fl_Pixmap.cxx
+++ b/src/Fl_Pixmap.cxx
@@ -50,25 +50,6 @@ void Fl_Pixmap::draw(int XP, int YP, int WP, int HP, int cx, int cy) {
fl_graphics_driver->draw_pixmap(this, XP, YP, WP, HP, cx, cy);
}
-
-int Fl_Pixmap::prepare(int XP, int YP, int WP, int HP, int &cx, int &cy,
- int &X, int &Y, int &W, int &H) {
- if (w() < 0) measure();
- if (!data() || !w()) {
- draw_empty(XP, YP);
- return 1;
- }
- if (WP == -1) {
- WP = w();
- HP = h();
- }
- if ( fl_graphics_driver->start_image(this, XP,YP,WP,HP,cx,cy,X,Y,W,H) ) return 1;
- if (!id_) {
- fl_graphics_driver->cache(this);
- }
- return 0;
-}
-
/**
The destructor frees all memory and server resources that are used by
the pixmap.
diff --git a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_image.cxx b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_image.cxx
index b0cab9733..ac705fcd5 100644
--- a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_image.cxx
+++ b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_image.cxx
@@ -134,9 +134,14 @@ void fl_rectf(int x, int y, int w, int h, uchar r, uchar g, uchar b) {
void Fl_Quartz_Graphics_Driver::draw_bitmap(Fl_Bitmap *bm, int XP, int YP, int WP, int HP, int cx, int cy) {
int X, Y, W, H;
- if (Fl_Graphics_Driver::prepare(bm, XP, YP, WP, HP, cx, cy, X, Y, W, H)) {
+ if (!bm->array) {
+ draw_empty(bm, XP, YP);
return;
}
+ if (start_image(bm, XP,YP,WP,HP,cx,cy,X,Y,W,H)) return;
+ if (!*id(bm))
+ cache(bm);
+
if (*Fl_Graphics_Driver::id(bm) && gc_) {
draw_CGImage((CGImageRef)*Fl_Graphics_Driver::id(bm), X,Y,W,H, cx, cy, bm->w(), bm->h());
}
@@ -199,7 +204,15 @@ void Fl_Quartz_Graphics_Driver::draw_rgb(Fl_RGB_Image *img, int XP, int YP, int
void Fl_Quartz_Graphics_Driver::draw_pixmap(Fl_Pixmap *pxm, int XP, int YP, int WP, int HP, int cx, int cy) {
int X, Y, W, H;
- if (Fl_Graphics_Driver::prepare(pxm, XP, YP, WP, HP, cx, cy, X, Y, W, H)) return;
+ if (!pxm->data() || !pxm->w()) {
+ draw_empty(pxm, XP, YP);
+ return;
+ }
+ if ( start_image(pxm, XP,YP,WP,HP,cx,cy,X,Y,W,H) ) return;
+ if (!*id(pxm)) {
+ cache(pxm);
+ }
+
CGImageRef cgimg = (CGImageRef)*Fl_Graphics_Driver::id(pxm);
draw_CGImage(cgimg, X,Y,W,H, cx,cy, pxm->w(), pxm->h());
}