summaryrefslogtreecommitdiff
path: root/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx
diff options
context:
space:
mode:
authorMatthias Melcher <fltk@matthiasm.com>2016-01-31 13:51:01 +0000
committerMatthias Melcher <fltk@matthiasm.com>2016-01-31 13:51:01 +0000
commit7440ea209ad349d92f27796f1c8d8090c4541ab8 (patch)
tree20b6ba658ca93e412633cea9ed042d7506f59b01 /src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx
parentcaf2a7e92c371df699a87553032f62dcd44a5487 (diff)
Moved fl_create_bitmask and fl_delete_bitmask functions into driver structure. Tested on OS X.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11100 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx')
-rw-r--r--src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx
index 8e9cf1fc9..cf91cb3a7 100644
--- a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx
+++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx
@@ -600,6 +600,30 @@ void fl_rectf(int x, int y, int w, int h, uchar r, uchar g, uchar b) {
}
}
+Fl_Bitmask Fl_Xlib_Graphics_Driver::create_bitmask(int w, int h, const uchar *data) {
+ return XCreateBitmapFromData(fl_display, fl_window, (const char *)data,
+ (w+7)&-8, h);
+}
+
+void Fl_Xlib_Graphics_Driver::delete_bitmask(Fl_Bitmask bm) {
+ fl_delete_offscreen((Fl_Offscreen)bm);
+}
+
+void Fl_Xlib_Graphics_Driver::draw(Fl_Bitmap *bm, int XP, int YP, int WP, int HP, int cx, int cy) {
+ int X, Y, W, H;
+ if (bm->start(XP, YP, WP, HP, cx, cy, X, Y, W, H)) {
+ return;
+ }
+
+ XSetStipple(fl_display, fl_gc, bm->id_);
+ int ox = X-cx; if (ox < 0) ox += bm->w();
+ int oy = Y-cy; if (oy < 0) oy += bm->h();
+ XSetTSOrigin(fl_display, fl_gc, ox, oy);
+ XSetFillStyle(fl_display, fl_gc, FillStippled);
+ XFillRectangle(fl_display, fl_window, fl_gc, X, Y, W, H);
+ XSetFillStyle(fl_display, fl_gc, FillSolid);
+}
+
//
// End of "$Id$".
//