diff --git a/FL/Fl_Image.H b/FL/Fl_Image.H index 818e656ee..37774ef1d 100644 --- a/FL/Fl_Image.H +++ b/FL/Fl_Image.H @@ -200,8 +200,12 @@ class FL_EXPORT Fl_RGB_Image : public Fl_Image { static size_t max_size_; public: + /** Points to the start of the object's data array + */ const uchar *array; - int alloc_array; // Non-zero if array was allocated + /** If non-zero, the object's data array is delete[]'d when deleting the object. + */ + int alloc_array; private: diff --git a/src/Fl_Image.cxx b/src/Fl_Image.cxx index 3eadfa2b1..7407138d8 100644 --- a/src/Fl_Image.cxx +++ b/src/Fl_Image.cxx @@ -249,6 +249,10 @@ int fl_convert_pixmap(const char*const* cdata, uchar* out, Fl_Color bg); \param[in] LD Line data size (default=0).
Line data is extra data that is included after each line of color image data and is normally not present. + + This constructor sets Fl_RGB_Image::alloc_array to 0. + To have the image object control the deallocation of the data array, + set alloc_array to non-zero after construction. \see Fl_Image::data(), Fl_Image::w(), Fl_Image::h(), Fl_Image::d(), Fl_Image::ld() */ Fl_RGB_Image::Fl_RGB_Image(const uchar *bits, int W, int H, int D, int LD) : @@ -268,6 +272,7 @@ Fl_RGB_Image::Fl_RGB_Image(const uchar *bits, int W, int H, int D, int LD) : The RGBA image is built fully opaque except for the transparent area of the pixmap that is assigned the \p bg color with full transparency + This constructor sets Fl_RGB_Image::alloc_array to 1. */ Fl_RGB_Image::Fl_RGB_Image(const Fl_Pixmap *pxm, Fl_Color bg): Fl_Image(pxm->w(), pxm->h(), 4),