[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