[teklib-general] teklib: added unsetClipRect?

hg-notify at neoscientists.org hg-notify at neoscientists.org
Tue Jan 1 17:58:40 CET 2008


details:   http://hg.teklib.org/teklib/rev/19417dc7c0ae
changeset: 146:19417dc7c0ae
user:      Franciska Schulze <fschulze at neoscientists.org>
date:      Tue Jan 01 17:39:50 2008 +0100
description:
added unsetClipRect?

diffs (truncated from 150 to 100 lines):

diff -r 1c018ca3efd1 -r 19417dc7c0ae src/display_x11/display_x11_api.c
--- a/src/display_x11/display_x11_api.c	Tue Jan 01 16:37:04 2008 +0100
+++ b/src/display_x11/display_x11_api.c	Tue Jan 01 17:39:50 2008 +0100
@@ -529,6 +529,31 @@ x11_setcliprect(TMOD_X11 *mod, struct TV
 		(*mod->x11_xftiface.XftDrawSetClip)(v->draw, region);
 
 	XDestroyRegion(region);
+}
+
+/*****************************************************************************/
+
+LOCAL void
+x11_unsetcliprect(TMOD_X11 *mod, struct TVRequest *req)
+{
+	VISUAL *v = req->tvr_Op.ClipRect.Instance;
+	XSetClipMask(mod->x11_Display, v->gc, None);
+
+	if (mod->x11_use_xft == TTRUE)
+	{
+		Region region = XCreateRegion();
+		XRectangle rectangle;
+
+		rectangle.x = 0;
+		rectangle.y = 0;
+		rectangle.width = (unsigned short) v->winwidth;
+		rectangle.height = (unsigned short) v->winheight;
+
+		/* union rect into region */
+		XUnionRectWithRegion(&rectangle, region, region);
+		(*mod->x11_xftiface.XftDrawSetClip)(v->draw, region);
+		XDestroyRegion(region);
+	}
 }
 
 /*****************************************************************************/
diff -r 1c018ca3efd1 -r 19417dc7c0ae src/display_x11/display_x11_inst.c
--- a/src/display_x11/display_x11_inst.c	Tue Jan 01 16:37:04 2008 +0100
+++ b/src/display_x11/display_x11_inst.c	Tue Jan 01 17:39:50 2008 +0100
@@ -375,6 +375,9 @@ x11_docmd(TMOD_X11 *inst, struct TVReque
 			break;
 		case TVCMD_SETCLIPRECT:
 			x11_setcliprect(inst, req);
+			break;
+		case TVCMD_UNSETCLIPRECT:
+			x11_unsetcliprect(inst, req);
 			break;
 		default:
 			TDBPRINTF(TDB_ERROR,("Unknown command code: %d\n",
diff -r 1c018ca3efd1 -r 19417dc7c0ae src/display_x11/display_x11_mod.h
--- a/src/display_x11/display_x11_mod.h	Tue Jan 01 16:37:04 2008 +0100
+++ b/src/display_x11/display_x11_mod.h	Tue Jan 01 17:39:50 2008 +0100
@@ -207,6 +207,7 @@ LOCAL void x11_drawarc(TMOD_X11 *mod, st
 LOCAL void x11_drawarc(TMOD_X11 *mod, struct TVRequest *req);
 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_wake(TMOD_X11 *inst);
 
diff -r 1c018ca3efd1 -r 19417dc7c0ae src/visual/visual_api.c
--- a/src/visual/visual_api.c	Tue Jan 01 16:37:04 2008 +0100
+++ b/src/visual/visual_api.c	Tue Jan 01 17:39:50 2008 +0100
@@ -522,6 +522,16 @@ EXPORT void vis_setcliprect(TMOD_VIS *in
 
 /*****************************************************************************/
 
+EXPORT void vis_unsetcliprect(TMOD_VIS *inst)
+{
+	struct TVRequest *req = visi_getreq(inst, TVCMD_UNSETCLIPRECT,
+		inst->vis_Display, TNULL);
+	req->tvr_Op.ClipRect.Instance = inst->vis_Visual;
+	visi_dosync(inst, req);
+}
+
+/*****************************************************************************/
+
 EXPORT TAPTR vis_opendisplay(TMOD_VIS *mod, TTAGITEM *tags)
 {
 	/* displaybase in taglist? */
diff -r 1c018ca3efd1 -r 19417dc7c0ae src/visual/visual_mod.c
--- a/src/visual/visual_mod.c	Tue Jan 01 16:37:04 2008 +0100
+++ b/src/visual/visual_mod.c	Tue Jan 01 17:39:50 2008 +0100
@@ -59,6 +59,8 @@ vis_vectors[VISUAL_NUMVECTORS] =
 	(TMFPTR) vis_closedisplay,
 	(TMFPTR) vis_querydisplays,
 	(TMFPTR) vis_getnextdisplay,
+
+	(TMFPTR) vis_unsetcliprect,
 };
 
 static void
diff -r 1c018ca3efd1 -r 19417dc7c0ae src/visual/visual_mod.h
--- a/src/visual/visual_mod.h	Tue Jan 01 16:37:04 2008 +0100
+++ b/src/visual/visual_mod.h	Tue Jan 01 17:39:50 2008 +0100
@@ -22,7 +22,7 @@
 
 #define VISUAL_VERSION		4
 #define VISUAL_REVISION		0
-#define VISUAL_NUMVECTORS	40
+#define VISUAL_NUMVECTORS	41


More information about the teklib-general mailing list