[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