[teklib-general] changeset in /hg/teklib/current: added drawarc
Franciska Schulze
fschulze at neoscientists.org
Mon Nov 26 16:27:01 CET 2007
changeset 237f7ceb9a80 in /hg/teklib/current
details: http://teklib.org:8001/hg/teklib/current?cmd=changeset;node=237f7ceb9a80
description:
added drawarc
diffs (135 lines):
diff -r 7c5ce8a35e27 -r 237f7ceb9a80 src/display_x11/display_x11_api.c
--- a/src/display_x11/display_x11_api.c Mon Nov 12 20:17:14 2007 +0100
+++ b/src/display_x11/display_x11_api.c Mon Nov 19 18:31:27 2007 +0100
@@ -411,8 +411,8 @@ x11_drawstrip(TMOD_X11 *mod, struct TVRe
tri[0].y = tri[1].y;
tri[1].x = tri[2].x;
tri[1].y = tri[2].y;
- tri[2].x = (TINT16)array[i*2];
- tri[2].y = (TINT16)array[i*2+1];
+ tri[2].x = (TINT16) array[i*2];
+ tri[2].y = (TINT16) array[i*2+1];
if (penarray)
setfgpen(mod, v, penarray[i]);
@@ -457,8 +457,8 @@ x11_drawfan(TMOD_X11 *mod, struct TVRequ
{
tri[1].x = tri[2].x;
tri[1].y = tri[2].y;
- tri[2].x = (TINT16)array[i*2];
- tri[2].y = (TINT16)array[i*2+1];
+ tri[2].x = (TINT16) array[i*2];
+ tri[2].y = (TINT16) array[i*2+1];
if (penarray)
setfgpen(mod, v, penarray[i]);
@@ -473,6 +473,16 @@ LOCAL void
LOCAL void
x11_drawarc(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);
+ XDrawArc(mod->x11_Display, v->window, v->gc, x, y, w, h, a1, a2);
}
/*****************************************************************************/
diff -r 7c5ce8a35e27 -r 237f7ceb9a80 src/visual/visual_api.c
--- a/src/visual/visual_api.c Mon Nov 12 20:17:14 2007 +0100
+++ b/src/visual/visual_api.c Mon Nov 19 18:31:27 2007 +0100
@@ -507,6 +507,24 @@ EXPORT void vis_drawfan(TMOD_VIS *inst,
/*****************************************************************************/
+EXPORT void vis_drawarc(TMOD_VIS *inst, TINT x, TINT y, TINT w, TINT h,
+ TINT angle1, TINT angle2, TVPEN pen)
+{
+ struct TVRequest *req = visi_getreq(inst, TVCMD_DRAWARC,
+ 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_drawrgb(TMOD_VIS *inst, TINT x, TINT y, TUINT *buf,
TINT w, TINT h, TINT totw)
{
diff -r 7c5ce8a35e27 -r 237f7ceb9a80 src/visual/visual_mod.c
--- a/src/visual/visual_mod.c Mon Nov 12 20:17:14 2007 +0100
+++ b/src/visual/visual_mod.c Mon Nov 19 18:31:27 2007 +0100
@@ -53,7 +53,7 @@ vis_vectors[VISUAL_NUMVECTORS] =
(TMFPTR) vis_drawtags,
(TMFPTR) vis_scroll,
(TMFPTR) vis_drawfan,
- //(TMFPTR) vis_drawarc,
+ (TMFPTR) vis_drawarc,
};
static void
diff -r 7c5ce8a35e27 -r 237f7ceb9a80 src/visual/visual_mod.h
--- a/src/visual/visual_mod.h Mon Nov 12 20:17:14 2007 +0100
+++ b/src/visual/visual_mod.h Mon Nov 19 18:31:27 2007 +0100
@@ -22,7 +22,7 @@
#define VISUAL_VERSION 2
#define VISUAL_REVISION 0
-#define VISUAL_NUMVECTORS 35
+#define VISUAL_NUMVECTORS 36
#ifndef LOCAL
#define LOCAL
@@ -130,5 +130,7 @@ EXPORT void vis_scroll(TMOD_VIS *mod, TI
TINT dx, TINT dy);
EXPORT void vis_drawtags(TMOD_VIS *mod, TTAGITEM *tags);
EXPORT void vis_drawfan(TMOD_VIS *mod, TINT *array, TINT num, TTAGITEM *tags);
+EXPORT void vis_drawarc(TMOD_VIS *mod, TINT x, TINT y, TINT w, TINT h,
+ TINT angle1, TINT angle2, TVPEN pen);
#endif
diff -r 7c5ce8a35e27 -r 237f7ceb9a80 tek/ansicall/visual.h
--- a/tek/ansicall/visual.h Mon Nov 12 20:17:14 2007 +0100
+++ b/tek/ansicall/visual.h Mon Nov 19 18:31:27 2007 +0100
@@ -89,4 +89,7 @@
#define TVisualDrawFan(visual,array,num,tags) \
(*(((TMODCALL void(**)(TAPTR,TINT *,TINT,TTAGITEM *))(visual))[-35]))(visual,array,num,tags)
+#define TVisualDrawArc(visual,x,y,w,h,angle1,angle2,pen) \
+ (*(((TMODCALL void(**)(TAPTR,TINT,TINT,TINT,TINT,TINT,TINT,TVPEN))(visual))[-36]))(visual,x,y,w,h,angle1,angle2,pen)
+
#endif /* _TEK_ANSICALL_VISUAL_H */
diff -r 7c5ce8a35e27 -r 237f7ceb9a80 tek/idf/visual.idf
--- a/tek/idf/visual.idf Mon Nov 12 20:17:14 2007 +0100
+++ b/tek/idf/visual.idf Mon Nov 19 18:31:27 2007 +0100
@@ -47,5 +47,6 @@ void DrawTags(TTAGITEM *tags)
void DrawTags(TTAGITEM *tags)
void Scroll(TINT x, TINT y, TINT w, TINT h, TINT dx, TINT dy)
void DrawFan(TINT *array, TINT num, TTAGITEM *tags)
+void DrawArc(TINT x, TINT y, TINT w, TINT h, TINT angle1, TINT angle2, TVPEN pen)
.end
diff -r 7c5ce8a35e27 -r 237f7ceb9a80 tek/mod/visual.h
--- a/tek/mod/visual.h Mon Nov 12 20:17:14 2007 +0100
+++ b/tek/mod/visual.h Mon Nov 19 18:31:27 2007 +0100
@@ -105,6 +105,8 @@ struct TVRequest
struct { TAPTR Instance; TINT *Array; TINT Num; TTAGITEM *Tags; } Strip;
struct { TAPTR Instance; TTAGITEM *Tags; } DrawTags;
struct { TAPTR Instance; TINT *Array; TINT Num; TTAGITEM *Tags; } Fan;
+ struct { TAPTR Instance; TINT Rect[4]; TINT Angle1; TINT Angle2;
+ TVPEN Pen;} Arc;
} tvr_Op;
};
More information about the teklib-general
mailing list