home *** CD-ROM | disk | FTP | other *** search
/ Graphics 16,000 / graphics-16000.iso / msdos / animutil / pvquan / flilib / memscree.c < prev    next >
C/C++ Source or Header  |  1992-11-30  |  830b  |  45 lines

  1. #ifdef __TURBOC__
  2. #include <mem.h>
  3. #endif
  4. #include <stdio.h>
  5.  
  6. #include "aatypes.h"
  7. #include "aascreen.h"
  8.  
  9. Vscreen *aa_alloc_mem_cel(int x, int y, int w, int h)
  10. {
  11.     Vscreen *vs;
  12.  
  13.     if ((vs = (Vscreen *)malloc(sizeof(Vscreen))) != NULL) {
  14.         memset(vs, 0, sizeof(Vscreen));
  15.         vs->x = x;
  16.         vs->y = y;
  17.         vs->bpr = vs->w = w;
  18.         vs->h = h;
  19.         vs->psize = w*h;
  20.         if ((vs->pmap = (Pixel *)malloc(vs->psize)) == NULL) {
  21.             free(vs);
  22.             return NULL;
  23.         }
  24.         if ((vs->cmap = (Cmap *)malloc(AA_COLORS*3)) == NULL) {
  25.             aa_free_mem_screen(vs);
  26.             return NULL;
  27.         }
  28.     }
  29.     return vs;
  30. }
  31.  
  32. Vscreen *aa_alloc_mem_screen(void)
  33. {
  34. return(aa_alloc_mem_cel(0, 0, AA_XMAX, AA_YMAX));
  35. }
  36.  
  37. void aa_free_mem_screen(Vscreen *vs)
  38. {
  39.     if (vs) {
  40.         if (vs->cmap)        free(vs->cmap);
  41.         if (vs->pmap)        free(vs->pmap);
  42.         free(vs);
  43.     }
  44. }
  45.