static bool GetInfo_OpenGL_Generic( Q3ListView *lBox ) { Q3ListViewItem *l1, *l2 = NULL; char *displayName = NULL; Display *dpy; int numScreens, scrnum; dpy = XOpenDisplay(displayName); if (!dpy) { // kDebug() << "Error: unable to open display " << displayName; return false; } lBox->addColumn(i18n("Information") ); lBox->addColumn(i18n("Value") ); l1 = new Q3ListViewItem(lBox, i18n("Name of the Display"), DisplayString(dpy)); l1->setOpen(true); l1->setSelectable(false); l1->setExpandable(false); numScreens = ScreenCount(dpy); scrnum = 0; #ifdef KCMGL_MANY_SCREENS for (; scrnum < numScreens; scrnum++) #endif { mesa_hack(dpy, scrnum); l2 = get_gl_info(dpy, scrnum, true, l1, l2); if (l2) l2->setOpen(true); if (IsDirect) l2 = get_gl_info(dpy, scrnum, false, l1, l2); // TODO print_visual_info(dpy, scrnum, mode); } if (l2) print_glx_glu(l1, l2); else KMessageBox::error(0, i18n("Could not initialize OpenGL")); XCloseDisplay(dpy); return true; }
int main(int argc, char *argv[]) { char *displayName = NULL; Display *dpy; int numScreens, scrnum; InfoMode mode = Normal; GLboolean findBest = GL_FALSE; GLboolean limits = GL_FALSE; Bool allowDirect = True; int i; for (i = 1; i < argc; i++) { if (strcmp(argv[i], "-display") == 0 && i + 1 < argc) { displayName = argv[i + 1]; i++; } else if (strcmp(argv[i], "-t") == 0) { mode = Wide; } else if (strcmp(argv[i], "-v") == 0) { mode = Verbose; } else if (strcmp(argv[i], "-b") == 0) { findBest = GL_TRUE; } else if (strcmp(argv[i], "-i") == 0) { allowDirect = False; } else if (strcmp(argv[i], "-l") == 0) { limits = GL_TRUE; } else if (strcmp(argv[i], "-h") == 0) { usage(); return 0; } else { printf("Unknown option `%s'\n", argv[i]); usage(); return 0; } } dpy = XOpenDisplay(displayName); if (!dpy) { fprintf(stderr, "Error: unable to open display %s\n", displayName); return -1; } if (findBest) { int b; mesa_hack(dpy, 0); b = find_best_visual(dpy, 0); printf("%d\n", b); } else { numScreens = ScreenCount(dpy); print_display_info(dpy); for (scrnum = 0; scrnum < numScreens; scrnum++) { mesa_hack(dpy, scrnum); print_screen_info(dpy, scrnum, allowDirect, limits); printf("\n"); print_visual_info(dpy, scrnum, mode); if (scrnum + 1 < numScreens) printf("\n\n"); } } XCloseDisplay(dpy); return 0; }
int main(int argc, char *argv[]) { char *displayName = NULL; Display *dpy; int numScreens, scrnum; InfoMode mode = Normal; Bool findBest = False; Bool limits = False; Bool allowDirect = True; Bool singleLine = False; Bool coreWorked; int i; for (i = 1; i < argc; i++) { if (strcmp(argv[i], "-display") == 0 && i + 1 < argc) { displayName = argv[i + 1]; i++; } else if (strcmp(argv[i], "-t") == 0) { mode = Wide; } else if (strcmp(argv[i], "-v") == 0) { mode = Verbose; } else if (strcmp(argv[i], "-b") == 0) { findBest = True; } else if (strcmp(argv[i], "-i") == 0) { allowDirect = False; } else if (strcmp(argv[i], "-l") == 0) { limits = True; } else if (strcmp(argv[i], "-h") == 0) { usage(); return 0; } else if (strcmp(argv[i], "-s") == 0) { singleLine = True; } else { printf("Unknown option `%s'\n", argv[i]); usage(); return 0; } } dpy = XOpenDisplay(displayName); if (!dpy) { fprintf(stderr, "Error: unable to open display %s\n", XDisplayName(displayName)); return -1; } if (findBest) { int b; mesa_hack(dpy, 0); b = find_best_visual(dpy, 0); printf("%d\n", b); } else { numScreens = ScreenCount(dpy); print_display_info(dpy); for (scrnum = 0; scrnum < numScreens; scrnum++) { mesa_hack(dpy, scrnum); coreWorked = print_screen_info(dpy, scrnum, allowDirect, True, False, limits, singleLine, False); print_screen_info(dpy, scrnum, allowDirect, False, False, limits, singleLine, coreWorked); print_screen_info(dpy, scrnum, allowDirect, False, True, False, singleLine, True); printf("\n"); print_visual_info(dpy, scrnum, mode); #ifdef GLX_VERSION_1_3 print_fbconfig_info(dpy, scrnum, mode); #endif if (scrnum + 1 < numScreens) printf("\n\n"); } } XCloseDisplay(dpy); return 0; }