setclip.c

来自「Nxlib,一个模拟xlib的程序。使用microwindows的库来运行需要x」· C语言 代码 · 共 60 行

C
60
字号
#include "nxlib.h"#include <stdlib.h>intXSetClipOrigin(Display *display, GC gc, int clip_x_origin, int clip_y_origin){	GrSetGCClipOrigin(gc->gid, clip_x_origin, clip_y_origin);	return 1;}intXSetClipMask(Display *display, GC gc, Pixmap mask){	GR_REGION_ID	r;	GR_WINDOW_INFO	info;	if (mask == None) {		GrSetGCRegion(gc->gid, 0);		return 1;	}printf("XSetClipMask %d\n", mask);	GrGetWindowInfo(mask, &info);	r = GrNewRegionFromPixmap(mask, 0, 0, info.width, info.height);	GrSetGCRegion(gc->gid, r);	/*GrDestroyRegion(r);*/	/* FIXME: LEAK: can't destroy region here...*/	return 1;}intXSetClipRectangles(Display *display, GC gc, int clip_x_origin, int clip_y_origin,	XRectangle *rectangles, int n, int ordering){	GR_REGION_ID	r;	GrSetGCClipOrigin(gc->gid, clip_x_origin, clip_y_origin);	if (n == 0) {		/* FIXME need to disable all output here...*/		printf("XSetClipRectangles called with n=0\n");		return 1;	}	r = GrNewRegion();	while (--n >= 0) {		GR_RECT rc;		rc.x = rectangles->x;		rc.y = rectangles->y;		rc.width = rectangles->width;		rc.height = rectangles->height;		GrUnionRectWithRegion(r, &rc);		++rectangles;	}	GrSetGCRegion(gc->gid, r);	/*GrDestroyRegion(r);*/	/* FIXME: LEAK: can't destroy region here...*/	return 1;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?