home *** CD-ROM | disk | FTP | other *** search
-
- #include "aai86.h"
- #include "aascreen.h"
-
- Vscreen *
- aa_alloc_mem_cel(int x, int y, int w, int h)
- {
- Vscreen *vs;
-
- if ((vs = aa_malloc(sizeof(*vs))) != NULL)
- {
- i86_bzero(vs, sizeof(*vs) );
- vs->x = x;
- vs->y = y;
- vs->bpr = vs->w = w;
- vs->h = h;
- vs->psize = (long)w*h;
- if ((vs->allocedp = aa_malloc((unsigned)vs->psize+16)) == NULL)
- {
- aa_free(vs);
- return(NULL);
- }
- if ((vs->cmap = aa_malloc(AA_COLORS*3)) == NULL)
- {
- aa_free_mem_screen(vs);
- return(NULL);
- }
- /* force even paragraph allignment */
- vs->p = i86_make_ptr(0, i86_ptr_seg(vs->allocedp)+1);
- }
- return(vs);
- }
-
- Vscreen *
- aa_alloc_mem_screen()
- {
- return(aa_alloc_mem_cel(0, 0, AA_XMAX, AA_YMAX));
- }
-
- void aa_free_mem_screen(Vscreen *vs)
- {
- if (vs)
- {
- if (vs->cmap)
- aa_free(vs->cmap);
- if (vs->allocedp)
- aa_free(vs->allocedp);
- aa_free(vs);
- }
- }
-
-