[teklib-general] teklib: added drawfarc
hg-notify at neoscientists.org
hg-notify at neoscientists.org
Wed Jan 16 10:34:26 CET 2008
details: http://hg.teklib.org/teklib/rev/96136842c878
changeset: 151:96136842c878
user: Franciska Schulze <fschulze at neoscientists.org>
date: Mon Jan 14 15:59:50 2008 +0000
description:
added drawfarc
diffs (truncated from 153 to 100 lines):
diff -r 3d7c2eb71921 -r 96136842c878 src/display_x11/display_x11_api.c
--- a/src/display_x11/display_x11_api.c Mon Jan 07 16:09:26 2008 +0100
+++ b/src/display_x11/display_x11_api.c Mon Jan 14 15:59:50 2008 +0000
@@ -481,6 +481,23 @@ x11_drawarc(TMOD_X11 *mod, struct TVRequ
setfgpen(mod, v, req->tvr_Op.Arc.Pen);
XDrawArc(mod->x11_Display, v->window, v->gc, x, y, w, h, a1, a2);
+}
+
+/*****************************************************************************/
+
+LOCAL void
+x11_drawfarc(TMOD_X11 *mod, struct TVRequest *req)
+{
+ VISUAL *v = req->tvr_Op.Arc.Instance;
+ TINT x = req->tvr_Op.Arc.Rect[0];
+ TINT y = req->tvr_Op.Arc.Rect[1];
+ TINT w = req->tvr_Op.Arc.Rect[2];
+ TINT h = req->tvr_Op.Arc.Rect[3];
+ TINT a1 = req->tvr_Op.Arc.Angle1*64;
+ TINT a2 = req->tvr_Op.Arc.Angle2*64;
+
+ setfgpen(mod, v, req->tvr_Op.Arc.Pen);
+ XFillArc(mod->x11_Display, v->window, v->gc, x, y, w, h, a1, a2);
}
/*****************************************************************************/
diff -r 3d7c2eb71921 -r 96136842c878 src/display_x11/display_x11_inst.c
--- a/src/display_x11/display_x11_inst.c Mon Jan 07 16:09:26 2008 +0100
+++ b/src/display_x11/display_x11_inst.c Mon Jan 14 15:59:50 2008 +0000
@@ -369,6 +369,9 @@ x11_docmd(TMOD_X11 *inst, struct TVReque
break;
case TVCMD_DRAWARC:
x11_drawarc(inst, req);
+ break;
+ case TVCMD_DRAWFARC:
+ x11_drawfarc(inst, req);
break;
case TVCMD_COPYAREA:
x11_copyarea(inst, req);
diff -r 3d7c2eb71921 -r 96136842c878 src/display_x11/display_x11_mod.h
--- a/src/display_x11/display_x11_mod.h Mon Jan 07 16:09:26 2008 +0100
+++ b/src/display_x11/display_x11_mod.h Mon Jan 14 15:59:50 2008 +0000
@@ -208,6 +208,7 @@ LOCAL void x11_copyarea(TMOD_X11 *mod, s
LOCAL void x11_copyarea(TMOD_X11 *mod, struct TVRequest *req);
LOCAL void x11_setcliprect(TMOD_X11 *mod, struct TVRequest *req);
LOCAL void x11_unsetcliprect(TMOD_X11 *mod, struct TVRequest *req);
+LOCAL void x11_drawfarc(TMOD_X11 *mod, struct TVRequest *req);
LOCAL void x11_wake(TMOD_X11 *inst);
diff -r 3d7c2eb71921 -r 96136842c878 src/visual/tests/fonts.c
--- a/src/visual/tests/fonts.c Mon Jan 07 16:09:26 2008 +0100
+++ b/src/visual/tests/fonts.c Mon Jan 14 15:59:50 2008 +0000
@@ -158,6 +158,7 @@ TVOID fonttest(TAPTR v, TVPEN *pentab)
TVisualDrawStrip(v, a2, 4, stags);
TVisualDrawFan(v, fan, 6, stags);
+ TVisualDrawFArc(v, 100, 200, 120, 100, 90, -360, pentab[3]);
}
TVisualText(v, 10, 10+fh, buf, TStrLen(buf), pentab[0], TVPEN_UNDEFINED);
diff -r 3d7c2eb71921 -r 96136842c878 src/visual/visual_api.c
--- a/src/visual/visual_api.c Mon Jan 07 16:09:26 2008 +0100
+++ b/src/visual/visual_api.c Mon Jan 14 15:59:50 2008 +0000
@@ -488,6 +488,24 @@ EXPORT void vis_drawarc(TMOD_VIS *inst,
/*****************************************************************************/
+EXPORT void vis_drawfarc(TMOD_VIS *inst, TINT x, TINT y, TINT w, TINT h,
+ TINT angle1, TINT angle2, TVPEN pen)
+{
+ struct TVRequest *req = visi_getreq(inst, TVCMD_DRAWFARC,
+ inst->vis_Display, TNULL);
+ req->tvr_Op.Arc.Instance = inst->vis_Visual;
+ req->tvr_Op.Arc.Rect[0] = x;
+ req->tvr_Op.Arc.Rect[1] = y;
+ req->tvr_Op.Arc.Rect[2] = w;
+ req->tvr_Op.Arc.Rect[3] = h;
+ req->tvr_Op.Arc.Angle1 = angle1;
+ req->tvr_Op.Arc.Angle2 = angle2;
+ req->tvr_Op.Arc.Pen = pen;
+ visi_dosync(inst, req);
+}
+
+/*****************************************************************************/
+
EXPORT void vis_copyarea(TMOD_VIS *inst, TINT x, TINT y, TINT w, TINT h,
TINT dx, TINT dy, TTAGITEM *tags)
{
diff -r 3d7c2eb71921 -r 96136842c878 src/visual/visual_mod.c
--- a/src/visual/visual_mod.c Mon Jan 07 16:09:26 2008 +0100
+++ b/src/visual/visual_mod.c Mon Jan 14 15:59:50 2008 +0000
@@ -61,6 +61,7 @@ vis_vectors[VISUAL_NUMVECTORS] =
(TMFPTR) vis_getnextdisplay,
(TMFPTR) vis_unsetcliprect,
+ (TMFPTR) vis_drawfarc,
};
More information about the teklib-general
mailing list