home *** CD-ROM | disk | FTP | other *** search
/ Computer Panoráma / computer_panorama_1997-12-hibas.iso / SHARE / GRAPH / PTC051.ZIP / EXAMPLES / MODELIST.CPP < prev    next >
C/C++ Source or Header  |  1997-09-03  |  3KB  |  102 lines

  1. //////////////////////////
  2. // ptc modelist example //
  3. //////////////////////////
  4. #include "ptc.h"
  5. #include <conio.h>
  6. #include <iostream.h>
  7. #include <iomanip.h>
  8.  
  9.  
  10.  
  11.  
  12.  
  13. int main()
  14. {
  15.     // initialize ptc
  16.     PTC ptc;
  17.  
  18.     // get list of ptc modes
  19.     List<MODE> list;
  20.     ptc.GetModeList(list);
  21.  
  22.     // print information
  23.     cout << "PTC modelist:\n\n";
  24.  
  25.     // output mode information
  26.     Iterator<MODE> iterator(list);
  27.     MODE *mode=iterator.first();
  28.     while (mode)
  29.     {
  30.         // print mode interface name
  31.         cout << setw(11) << mode->i;
  32.  
  33.         // print resolution and bits per pixel
  34.         cout << "  " 
  35.              << setw(4) << mode->x 
  36.              << " x " 
  37.              << setiosflags(ios::left)
  38.              << setw(4) << mode->y
  39.              << resetiosflags(ios::left);
  40.  
  41.         // print bits per pixel
  42.         cout << "  " << setw(2) << mode->format.bits << "bit";
  43.         
  44.         // print format id
  45.         cout << "  " << setw(10);
  46.         switch (mode->format.id)
  47.         {
  48.             case ARGB8888:   cout << "ARGB8888";   break;
  49.             case ABGR8888:   cout << "ABGR8888";   break;
  50.             case BGRA8888:   cout << "BGRA8888";   break;
  51.             case RGBA8888:   cout << "RGBA8888";   break;
  52.             case RGB888:     cout << "RGB888";     break;
  53.             case BGR888:     cout << "BGR888";     break;
  54.             case RGB565:     cout << "RGB565";     break;
  55.             case BGR565:     cout << "BGR565";     break;
  56.             case ARGB1555:   cout << "ARGB1555";   break;
  57.             case ABGR1555:   cout << "ABGR1555";   break;
  58.             case INDEX8:     cout << "INDEX8";     break;
  59.             case FAKEMODE1A: cout << "FAKEMODE1A"; break;
  60.             case FAKEMODE1B: cout << "FAKEMODE1B"; break;
  61.             case FAKEMODE1C: cout << "FAKEMODE1C"; break;
  62.             case FAKEMODE2A: cout << "FAKEMODE2A"; break;
  63.             case FAKEMODE2B: cout << "FAKEMODE2B"; break;
  64.             case FAKEMODE2C: cout << "FAKEMODE2C"; break;
  65.             case FAKEMODE3A: cout << "FAKEMODE3A"; break;
  66.             case FAKEMODE3B: cout << "FAKEMODE3B"; break;
  67.             case FAKEMODE3C: cout << "FAKEMODE3C"; break;
  68.             case GREY8:      cout << "GREY8";      break;
  69.             case RGB332:     cout << "RGB332";     break;
  70.             default:         cout << "(custom)";
  71.         }
  72.  
  73.         // print format type
  74.         cout << "  " << setw(9);
  75.         switch (mode->format.type)
  76.         {
  77.             case DIRECT:    cout << "DIRECT";    break;
  78.             case INDEXED:   cout << "INDEXED";   break;
  79.             case FAKEMODE:  cout << "FAKEMODE";  break;
  80.             default:        cout << "(unknown)";
  81.         }
  82.  
  83.         // print mode layout
  84.         cout << "  " << setw(8);
  85.         if (mode->layout==LINEAR) cout << "LINEAR";
  86.         else if (mode->layout==BANKED) cout << "BANKED";
  87.         else if (mode->layout==FAKEMODE) cout << "FAKEMODE";
  88.         else cout << "(unknown)";
  89.  
  90.         // print mode output
  91.         cout << "  " << setw(10);
  92.         if (mode->output==WINDOWED) cout << "WINDOWED";
  93.         else if (mode->output==FULLSCREEN) cout << "FULLSCREEN";
  94.         else cout << " ";
  95.         cout << "\n";
  96.  
  97.         // go to next mode in the list
  98.         mode=iterator.next();
  99.     }
  100.     return 0;
  101. }
  102.