home *** CD-ROM | disk | FTP | other *** search
/ Dream 52 / Amiga_Dream_52.iso / Linux / Enlightenment / imlib_DR-0.2.tar.gz / imlib_DR-0.2.tar / imlib / TST / TEST.c < prev   
C/C++ Source or Header  |  1997-05-11  |  2KB  |  95 lines

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <unistd.h>
  4. #include <X11/Xlib.h>
  5. #include "../imlib.h"
  6. Display *disp;
  7. Window Root; 
  8. Window win;
  9. Visual *vis; 
  10. int scr; 
  11. GC fg,bg;
  12. int blk,wht;
  13. int width,height;
  14.  
  15. void OpenWindow()
  16. {
  17.    XGCValues gcvals;
  18.    int i;
  19.    int dummy;
  20.    
  21.    disp=XOpenDisplay(NULL);
  22.    if (disp)
  23.      {
  24.     Root=DefaultRootWindow(disp);
  25.     scr=DefaultScreen(disp);
  26.     blk=BlackPixel(disp,scr);
  27.     wht=WhitePixel(disp,scr);
  28.     vis=DefaultVisual(disp,scr);
  29.     win=XCreateSimpleWindow(disp,Root,0,0,width+2,height+2,0,blk,blk);
  30.     XMapWindow(disp,win);
  31.     XSync(disp,False);
  32.     fg=XCreateGC(disp,win,(unsigned long)0,&gcvals);
  33.     bg=XCreateGC(disp,win,(unsigned long)0,&gcvals);
  34.     XSetForeground(disp,fg,wht);
  35.     XSetBackground(disp,bg,blk);
  36.      }
  37.    else
  38.      {
  39.     printf("Cannot open display\n");
  40.     exit(1);
  41.      }
  42. }
  43.  
  44. main(int argc, char **argv)
  45. {  
  46.    int i,j;
  47.    ImlibData *id;
  48.    Image *im;
  49.    ImColor icl;
  50.    Pixmap pmap;
  51.    int sec1,usec1,sec2,usec2;
  52.    struct timeval timev;
  53.    int c;
  54.    double tim;
  55.    
  56.    printf(".\n");
  57.    width=256;
  58.    height=256;
  59.    pmap=0;
  60.    OpenWindow();
  61.    id=ImlibInit(disp);
  62.    printf("..\n");
  63.    
  64.    icl.r=255,icl.g=0;icl.b=255;
  65.    im=ImlibLoadImage(id,argv[1],&icl);
  66.    printf("...\n");
  67.    i=200,j=200;
  68.    gettimeofday(&timev,NULL); 
  69.    sec1=(int)timev.tv_sec; 
  70.    usec1=(int)timev.tv_usec;
  71.    c=0;
  72.    while(1)
  73.      {
  74.     ImlibRender(id,im,i+(rand()%80),j+(rand()%80));
  75.     if (pmap) XFreePixmap(disp,pmap);
  76.     pmap=ImlibMoveImageToPixmap(id,im);
  77.     XSetWindowBackgroundPixmap(disp,win,pmap);
  78.     XClearWindow(disp,win);
  79.     c++;
  80.     if (c==128)
  81.       {  
  82.          gettimeofday(&timev,NULL);
  83.          sec2=(int)timev.tv_sec;
  84.          usec2=(int)timev.tv_usec;
  85.          tim=((double)sec2+((double)usec2/1000000))-
  86.            ((double)sec1+((double)usec1/1000000));
  87.          printf("time: %3.5f sec\nfps:  %3.5f\n",tim,(double)c/tim);
  88.          c=0;
  89.          gettimeofday(&timev,NULL);
  90.          sec1=(int)timev.tv_sec;
  91.          usec1=(int)timev.tv_usec;
  92.       }
  93.      }
  94. }
  95.