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

  1. ////////////////////////////////////////////////////////////////
  2. // random pixels direct to the display (ARGB8888 modes only!) //
  3. ////////////////////////////////////////////////////////////////
  4.  
  5. #include "ptc.h"
  6. #include <conio.h>
  7. #include <iostream.h>
  8. #include <stdlib.h>
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16. int main()
  17. {
  18.     // resolution
  19.     int xres=320;
  20.     int yres=200;
  21.  
  22.     // initialize ptc
  23.     PTC ptc(xres,yres,ARGB8888);
  24.     if (!ptc.ok())
  25.     {
  26.         ptc.Close();
  27.         cout << "this example requires a 32bit ARGB8888 video mode\n";
  28.         return 1;
  29.     }
  30.  
  31.     // get primary surface (display surface)
  32.     Surface *primary=ptc.GetPrimary();
  33.     if (!primary || !primary->ok())
  34.     {
  35.         ptc.Close();
  36.         cout << "could not access primary surface\n";
  37.         return 0;
  38.     }
  39.  
  40.     // main loop
  41.     while (!ptc.kbhit())
  42.     {
  43.         // lock primary surface
  44.         uint* buffer=(uint*)primary->Lock();
  45.         if (!buffer) return 1;
  46.         
  47.         // plot 100 random pixels
  48.         for (int i=0; i<100; i++)
  49.         {
  50.             int x=random(xres);
  51.             int y=random(yres);
  52.             uint* dest=buffer + (xres*y)+x;
  53.             *dest=RGB32(random(255),random(255),random(255));
  54.         }
  55.  
  56.         // unlock primary
  57.         primary->Unlock();
  58.     }
  59.     return 0;
  60. }
  61.