You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
2.6 KiB
96 lines
2.6 KiB
|
|
/* Copyright (c) Mark J. Kilgard, 1996. */
|
|
|
|
/* This program is freely distributable without licensing fees
|
|
and is provided without guarantee or warrantee expressed or
|
|
implied. This program is -not- in the public domain. */
|
|
|
|
/* compile: cc -o sovinfo sovinfo.c sovLayerUtil.c -lX11 */
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include "sovLayerUtil.h"
|
|
|
|
int
|
|
main(int argc, char *argv[])
|
|
{
|
|
Display *dpy;
|
|
char *display_name, *arg, *class;
|
|
sovVisualInfo template, *lvinfo;
|
|
int nVisuals, i, overlaysOnly = 0;
|
|
|
|
display_name = NULL;
|
|
for (i = 1; i < argc; i++) {
|
|
arg = argv[i];
|
|
if (!strcmp(arg, "-display")) {
|
|
if (++i >= argc) {
|
|
fprintf(stderr, "sovinfo: missing argument to -display\n");
|
|
exit(1);
|
|
}
|
|
display_name = argv[i];
|
|
} else if (!strcmp(arg, "-overlays_only")) {
|
|
overlaysOnly = 1;
|
|
} else {
|
|
fprintf(stderr,
|
|
"usage: sovinfo [-display dpy] [-overlays_only]\n");
|
|
exit(1);
|
|
}
|
|
}
|
|
dpy = XOpenDisplay(display_name);
|
|
if (dpy == NULL) {
|
|
fprintf(stderr, "sovinfo: cannot open display %s\n",
|
|
XDisplayName(NULL));
|
|
exit(1);
|
|
}
|
|
lvinfo = sovGetVisualInfo(dpy, 0L, &template, &nVisuals);
|
|
for (i = 0; i < nVisuals; i++) {
|
|
if (!overlaysOnly || lvinfo[i].layer > 0) {
|
|
printf(" Visual ID: 0x%x\n", lvinfo[i].vinfo.visualid);
|
|
printf(" screen: %d\n", lvinfo[i].vinfo.screen);
|
|
printf(" depth: %d\n", lvinfo[i].vinfo.depth);
|
|
switch (lvinfo[i].vinfo.class) {
|
|
case StaticGray:
|
|
class = "StaticGray";
|
|
break;
|
|
case GrayScale:
|
|
class = "GrayScale";
|
|
break;
|
|
case StaticColor:
|
|
class = "StaticColor";
|
|
break;
|
|
case PseudoColor:
|
|
class = "PseudoColor";
|
|
break;
|
|
case TrueColor:
|
|
class = "TrueColor";
|
|
break;
|
|
case DirectColor:
|
|
class = "DirectColor";
|
|
break;
|
|
default:
|
|
class = "Unknown";
|
|
break;
|
|
}
|
|
printf(" class: %s\n", class);
|
|
switch (lvinfo[i].type) {
|
|
case None:
|
|
printf(" transparent type: None\n");
|
|
break;
|
|
case TransparentPixel:
|
|
printf(" transparent type: TransparentPixel\n");
|
|
printf(" pixel value: %d\n", lvinfo[i].value);
|
|
break;
|
|
case TransparentMask:
|
|
printf(" transparent type: TransparentMask\n");
|
|
printf(" transparency mask: %0x%x\n", lvinfo[i].value);
|
|
break;
|
|
default:
|
|
printf(" transparent type: Unknown or invalid\n");
|
|
break;
|
|
}
|
|
printf(" layer: %d\n", lvinfo[i].layer);
|
|
}
|
|
}
|
|
return 0;
|
|
}
|