예제 #1
0
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;
   }
예제 #2
0
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;
}
예제 #3
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;
}