summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FL/Fl_Image.H6
-rw-r--r--src/Fl_Image.cxx7
2 files changed, 11 insertions, 2 deletions
diff --git a/FL/Fl_Image.H b/FL/Fl_Image.H
index 5dad09c01..f2e68bc1b 100644
--- a/FL/Fl_Image.H
+++ b/FL/Fl_Image.H
@@ -201,8 +201,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:
// These two variables are used to cache the image and mask for the main display graphics driver
diff --git a/src/Fl_Image.cxx b/src/Fl_Image.cxx
index 2fc389c86..25c3f0afe 100644
--- a/src/Fl_Image.cxx
+++ b/src/Fl_Image.cxx
@@ -245,6 +245,10 @@ int fl_convert_pixmap(const char*const* cdata, uchar* out, Fl_Color bg);
\param[in] LD Line data size (default=0).<br>
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) :
@@ -263,7 +267,8 @@ Fl_RGB_Image::Fl_RGB_Image(const uchar *bits, int W, int H, int D, int LD) :
The constructor creates a new RGBA image from the specified Fl_Pixmap.
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
+ 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),