URI:
       tlsetrefresh.c - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
       tlsetrefresh.c (695B)
       ---
            1 #include <u.h>
            2 #include <libc.h>
            3 #include <draw.h>
            4 #include <memdraw.h>
            5 #include <memlayer.h>
            6 
            7 int
            8 memlsetrefresh(Memimage *i, Refreshfn fn, void *ptr)
            9 {
           10         Memlayer *l;
           11 
           12         l = i->layer;
           13         if(l->refreshfn!=0 && fn!=0){        /* just change functions */
           14                 l->refreshfn = fn;
           15                 l->refreshptr = ptr;
           16                 return 1;
           17         }
           18 
           19         if(l->refreshfn == 0){        /* is using backup image; just free it */
           20                 freememimage(l->save);
           21                 l->save = nil;
           22                 l->refreshfn = fn;
           23                 l->refreshptr = ptr;
           24                 return 1;
           25         }
           26 
           27         l->save = allocmemimage(i->r, i->chan);
           28         if(l->save == nil)
           29                 return 0;
           30         /* easiest way is just to update the entire save area */
           31         l->refreshfn(i, i->r, l->refreshptr);
           32         l->refreshfn = 0;
           33         l->refreshptr = nil;
           34         return 1;
           35 }