44 lines
		
	
	
		
			846 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			846 B
		
	
	
	
		
			C
		
	
	
	
	
	
 | 
						|
static int useargb = 0;
 | 
						|
static Visual *visual;
 | 
						|
static int depth;
 | 
						|
static Colormap cmap;
 | 
						|
 | 
						|
void
 | 
						|
xinitvisual()
 | 
						|
{
 | 
						|
	XVisualInfo *infos;
 | 
						|
	XRenderPictFormat *fmt;
 | 
						|
	int nitems;
 | 
						|
	int i;
 | 
						|
 | 
						|
	XVisualInfo tpl = {
 | 
						|
		.screen = screen,
 | 
						|
		.depth = 32,
 | 
						|
		.class = TrueColor
 | 
						|
	};
 | 
						|
	long masks = VisualScreenMask | VisualDepthMask | VisualClassMask;
 | 
						|
 | 
						|
	infos = XGetVisualInfo(dpy, masks, &tpl, &nitems);
 | 
						|
	visual = NULL;
 | 
						|
	for (i = 0; i < nitems; i ++) {
 | 
						|
		fmt = XRenderFindVisualFormat(dpy, infos[i].visual);
 | 
						|
		if (fmt->type == PictTypeDirect && fmt->direct.alphaMask) {
 | 
						|
			visual = infos[i].visual;
 | 
						|
			depth = infos[i].depth;
 | 
						|
			cmap = XCreateColormap(dpy, root, visual, AllocNone);
 | 
						|
			useargb = 1;
 | 
						|
			break;
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	XFree(infos);
 | 
						|
 | 
						|
	if (!visual) {
 | 
						|
		visual = DefaultVisual(dpy, screen);
 | 
						|
		depth = DefaultDepth(dpy, screen);
 | 
						|
		cmap = DefaultColormap(dpy, screen);
 | 
						|
	}
 | 
						|
}
 | 
						|
 |