mirror of https://github.com/fltk/fltk
More logical use of Fl_Device::draw(<image class> *,...) functions
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7501 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
97c893ab5e
commit
be9127c61a
|
@ -40,6 +40,7 @@ struct Fl_Menu_Item;
|
|||
(bitmap) images. Images are drawn using the current color.
|
||||
*/
|
||||
class FL_EXPORT Fl_Bitmap : public Fl_Image {
|
||||
friend class Fl_Device;
|
||||
public:
|
||||
|
||||
/** pointer to raw bitmap data */
|
||||
|
@ -57,6 +58,7 @@ class FL_EXPORT Fl_Bitmap : public Fl_Image {
|
|||
unsigned id_;
|
||||
#endif // __APPLE__ || WIN32
|
||||
|
||||
void generic_device_draw(int XP, int YP, int WP, int HP, int cx, int cy);
|
||||
public:
|
||||
|
||||
/** The constructors create a new bitmap from the specified bitmap data */
|
||||
|
|
|
@ -188,6 +188,8 @@ class FL_EXPORT Fl_Image {
|
|||
<FL/Fl_RGB_Image.H> should be included.
|
||||
*/
|
||||
class FL_EXPORT Fl_RGB_Image : public Fl_Image {
|
||||
friend class Fl_Device;
|
||||
void generic_device_draw(int X, int Y, int W, int H, int cx=0, int cy=0);
|
||||
public:
|
||||
|
||||
const uchar *array;
|
||||
|
|
|
@ -45,6 +45,7 @@ struct Fl_Menu_Item;
|
|||
(pixmap) images, including transparency.
|
||||
*/
|
||||
class FL_EXPORT Fl_Pixmap : public Fl_Image {
|
||||
friend class Fl_Device;
|
||||
void copy_data();
|
||||
void delete_data();
|
||||
void set_data(const char * const *p);
|
||||
|
@ -66,6 +67,7 @@ class FL_EXPORT Fl_Pixmap : public Fl_Image {
|
|||
unsigned id_; // for internal use
|
||||
unsigned mask_; // for internal use (mask bitmap)
|
||||
#endif // __APPLE__ || WIN32
|
||||
void generic_device_draw(int XP, int YP, int WP, int HP, int cx, int cy);
|
||||
|
||||
public:
|
||||
|
||||
|
|
|
@ -248,10 +248,10 @@ Fl_Bitmask fl_create_alphamask(int w, int h, int d, int ld, const uchar *array)
|
|||
}
|
||||
|
||||
void Fl_Bitmap::draw(int XP, int YP, int WP, int HP, int cx, int cy) {
|
||||
if(fl_device->type() == Fl_Device::postscript_device) {
|
||||
fl_device->draw(this, XP, YP, WP, HP, cx, cy);
|
||||
return;
|
||||
}
|
||||
fl_device->draw(this, XP, YP, WP, HP, cx, cy);
|
||||
}
|
||||
|
||||
void Fl_Bitmap::generic_device_draw(int XP, int YP, int WP, int HP, int cx, int cy) {
|
||||
if (!array) {
|
||||
draw_empty(XP, YP);
|
||||
return;
|
||||
|
|
|
@ -27,7 +27,6 @@
|
|||
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/Fl_Device.H>
|
||||
//#include <FL/fl_draw.H>
|
||||
#include <FL/Fl_Image.H>
|
||||
|
||||
/** \brief Draws an Fl_Pixmap object to the device.
|
||||
|
@ -35,9 +34,8 @@
|
|||
Specifies a bounding box for the image, with the origin (upper left-hand corner) of
|
||||
the image offset by the cx and cy arguments.
|
||||
*/
|
||||
void Fl_Device::draw(Fl_Pixmap *pxm,int XP, int YP, int WP, int HP, int cx, int cy)
|
||||
{
|
||||
pxm->draw(XP, YP, WP, HP, cx, cy);
|
||||
void Fl_Device::draw(Fl_Pixmap *pxm, int XP, int YP, int WP, int HP, int cx, int cy) {
|
||||
pxm->generic_device_draw(XP, YP, WP, HP, cx, cy);
|
||||
}
|
||||
|
||||
/** \brief Draws an Fl_Bitmap object to the device.
|
||||
|
@ -45,9 +43,8 @@ void Fl_Device::draw(Fl_Pixmap *pxm,int XP, int YP, int WP, int HP, int cx, int
|
|||
Specifies a bounding box for the image, with the origin (upper left-hand corner) of
|
||||
the image offset by the cx and cy arguments.
|
||||
*/
|
||||
void Fl_Device::draw(Fl_Bitmap *bm,int XP, int YP, int WP, int HP, int cx, int cy)
|
||||
{
|
||||
bm->draw(XP, YP, WP, HP, cx, cy);
|
||||
void Fl_Device::draw(Fl_Bitmap *bm, int XP, int YP, int WP, int HP, int cx, int cy) {
|
||||
bm->generic_device_draw(XP, YP, WP, HP, cx, cy);
|
||||
}
|
||||
|
||||
/** \brief Draws an Fl_RGB_Image object to the device.
|
||||
|
@ -55,9 +52,8 @@ void Fl_Device::draw(Fl_Bitmap *bm,int XP, int YP, int WP, int HP, int cx, int c
|
|||
Specifies a bounding box for the image, with the origin (upper left-hand corner) of
|
||||
the image offset by the cx and cy arguments.
|
||||
*/
|
||||
void Fl_Device::draw(Fl_RGB_Image *rgb,int XP, int YP, int WP, int HP, int cx, int cy)
|
||||
{
|
||||
rgb->draw(XP, YP, WP, HP, cx, cy);
|
||||
void Fl_Device::draw(Fl_RGB_Image *rgb, int XP, int YP, int WP, int HP, int cx, int cy) {
|
||||
rgb->generic_device_draw(XP, YP, WP, HP, cx, cy);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -434,10 +434,10 @@ static void alpha_blend(Fl_RGB_Image *img, int X, int Y, int W, int H, int cx, i
|
|||
#endif // !WIN32 && !__APPLE_QUARTZ__
|
||||
|
||||
void Fl_RGB_Image::draw(int XP, int YP, int WP, int HP, int cx, int cy) {
|
||||
if(fl_device->type() == Fl_Device::postscript_device) {
|
||||
fl_device->draw(this, XP, YP, WP, HP, cx, cy);
|
||||
return;
|
||||
}
|
||||
fl_device->draw(this, XP, YP, WP, HP, cx, cy);
|
||||
}
|
||||
|
||||
void Fl_RGB_Image::generic_device_draw(int XP, int YP, int WP, int HP, int cx, int cy) {
|
||||
// Don't draw an empty image...
|
||||
if (!d() || !array) {
|
||||
draw_empty(XP, YP);
|
||||
|
|
|
@ -74,10 +74,10 @@ void Fl_Pixmap::measure() {
|
|||
}
|
||||
|
||||
void Fl_Pixmap::draw(int XP, int YP, int WP, int HP, int cx, int cy) {
|
||||
if(fl_device->type() == Fl_Device::postscript_device) {
|
||||
fl_device->draw(this, XP, YP, WP, HP, cx, cy);
|
||||
return;
|
||||
}
|
||||
fl_device->draw(this, XP, YP, WP, HP, cx, cy);
|
||||
}
|
||||
|
||||
void Fl_Pixmap::generic_device_draw(int XP, int YP, int WP, int HP, int cx, int cy) {
|
||||
// ignore empty or bad pixmap data:
|
||||
if (!data()) {
|
||||
draw_empty(XP, YP);
|
||||
|
|
Loading…
Reference in New Issue