summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/shapedwindow.cxx8
1 files changed, 7 insertions, 1 deletions
diff --git a/examples/shapedwindow.cxx b/examples/shapedwindow.cxx
index f614f98da..a7ffe8f13 100644
--- a/examples/shapedwindow.cxx
+++ b/examples/shapedwindow.cxx
@@ -86,7 +86,13 @@ Fl_RGB_Image* prepare_shape(int w)
Fl_RGB_Image* img = surf->image();
delete surf;
current->set_current();
- return img; // return depth-3 white image on black background
+ if (img->d() == 4) { // if RGBA image, set its A component equal to its R component
+ for (int i = 0; i < img->h(); i ++) {
+ uchar *q = (uchar*)img->array + i * img->ld();
+ for (int j = 0; j < img->w(); j++, q += 4) *(q+3) = *q;
+ }
+ }
+ return img; // return white image on black background
}
int main(int argc, char **argv) {