summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAlbrecht Schlosser <albrechts.fltk@online.de>2009-04-21 09:25:22 +0000
committerAlbrecht Schlosser <albrechts.fltk@online.de>2009-04-21 09:25:22 +0000
commiteb70e46d2ad340145e48ae7272edb520e6c0d449 (patch)
tree865f5005ac7112bfc5eda9ca3a1407ea398b1a82 /test
parentb475babf172ec6702af57f514c6fc28bd43159da (diff)
Fixed gray scale w/alpha image drawing for Mac OS with Quartz (FLTK 1.1
with Quickdraw worked) in src/Fl_Images.cxx. Changed test/unittest_images.cxx to use Fl_RGB_Image::draw() to draw images with alpha channel, because the current version of fl_draw_image() supports alpha channels only on Mac. Tested on Windows[1], Linux, and Mac. [1] Windows with GDI drawing doesn't work yet for gray+alpha (STR 2105). To do: Check, if fl_draw_image() should support alpha channel images on all platforms or not at all. The current documentation mentions only RGB and gray scale images. IMHO the behavior is undefined for values of abs(d) == 2 and abs(d) > 3. See also fl_draw_image_mono(). git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6773 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'test')
-rw-r--r--test/unittest_images.cxx14
1 files changed, 11 insertions, 3 deletions
diff --git a/test/unittest_images.cxx b/test/unittest_images.cxx
index d6ffbabfa..2859c6434 100644
--- a/test/unittest_images.cxx
+++ b/test/unittest_images.cxx
@@ -29,7 +29,7 @@
#include <FL/fl_draw.H>
//
-//------- test the line drawing capabilities of this implementation ----------
+//------- test the image drawing capabilities of this implementation ----------
//
class ImageTest : public Fl_Box {
public:
@@ -48,12 +48,16 @@ public:
*drgba++ = *dga++ = x+y;
}
}
+ i_rgba = new Fl_RGB_Image (img_rgba,128,128,4);
+ i_ga = new Fl_RGB_Image (img_gray_a,128,128,2);
return new ImageTest(TESTAREA_X, TESTAREA_Y, TESTAREA_W, TESTAREA_H);
}
static uchar *img_gray;
static uchar *img_gray_a;
static uchar *img_rgb;
static uchar *img_rgba;
+ static Fl_RGB_Image *i_rgba;
+ static Fl_RGB_Image *i_ga;
ImageTest(int x, int y, int w, int h) : Fl_Box(x, y, w, h) {
label("Testing Image Drawing\n\n"
"This test renders four images, two of them with a checker board\n"
@@ -74,7 +78,8 @@ public:
fl_color(FL_BLACK); fl_rectf(xx, yy, 130, 130);
fl_color(FL_WHITE); fl_rectf(xx+1, yy+1, 64, 64);
fl_color(FL_WHITE); fl_rectf(xx+65, yy+65, 64, 64);
- fl_draw_image(img_rgba, xx+1, yy+1, 128, 128, 4);
+ // fl_draw_image(img_rgba, xx+1, yy+1, 128, 128, 4);
+ i_rgba->draw(xx+1,yy+1);
fl_color(FL_BLACK); fl_draw("RGBA", xx+134, yy+64);
xx = x()+10+200; yy = y()+10;
@@ -86,7 +91,8 @@ public:
fl_color(FL_BLACK); fl_rectf(xx, yy, 130, 130);
fl_color(FL_WHITE); fl_rectf(xx+1, yy+1, 64, 64);
fl_color(FL_WHITE); fl_rectf(xx+65, yy+65, 64, 64);
- fl_draw_image(img_gray_a, xx+1, yy+1, 128, 128, 2);
+ // fl_draw_image(img_gray_a, xx+1, yy+1, 128, 128, 2);
+ i_ga->draw(xx+1,yy+1);
fl_color(FL_BLACK); fl_draw("Gray+Alpha", xx+134, yy+64);
}
};
@@ -95,6 +101,8 @@ uchar *ImageTest::img_gray = 0;
uchar *ImageTest::img_gray_a = 0;
uchar *ImageTest::img_rgb = 0;
uchar *ImageTest::img_rgba = 0;
+Fl_RGB_Image *ImageTest::i_rgba = 0;
+Fl_RGB_Image *ImageTest::i_ga = 0;
UnitTest images("drawing images", ImageTest::create);