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

  1. /////////////////////////////
  2. // random putpixel example //
  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(int argc,char *argv[])
  17. {
  18.     // try to init ptc from command line (ie. "rand16 640 480 RGB565")
  19.     PTC ptc(argc,argv);
  20.     if (!ptc.ok())
  21.     {
  22.         // command line init failed - fall back to 320x200 fuzzy 16bit modeset
  23.         if (!ptc.Init(320,200,FUZZY16))
  24.         {
  25.             ptc.Close();
  26.             cout << "could not initialize ptc\n";
  27.             return 1;
  28.         }
  29.     }
  30.  
  31.     // get display resolution
  32.     int xres=ptc.GetXResolution();
  33.     int yres=ptc.GetYResolution();
  34.  
  35.     // create fullscreen 16bit RGB565 surface
  36.     Surface surface(ptc,xres,yres,RGB565);
  37.  
  38.     // main loop
  39.     while (!ptc.kbhit())
  40.     {
  41.         // lock surface
  42.         ushort* buffer=(ushort*)surface.Lock();
  43.         if (!buffer)
  44.         {
  45.             ptc.Close();       
  46.             cout << "null surface lock!\n";
  47.             return 1;
  48.         }
  49.         
  50.         // plot 100 random pixels
  51.         for (int i=0; i<100; i++)
  52.         {
  53.             int x=random(xres);
  54.             int y=random(yres);
  55.             buffer[xres*y+x]=RGB16(random(255),random(255),random(255));
  56.         }
  57.  
  58.         // unlock surface
  59.         surface.Unlock();
  60.  
  61.         // update to display
  62.         surface.Update();
  63.     }
  64.     return 0;
  65. }
  66.