home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Graphics 16,000
/
graphics-16000.iso
/
msdos
/
animutil
/
flilib
/
flisrc
/
memscree.c
< prev
next >
Wrap
C/C++ Source or Header
|
1989-11-24
|
876b
|
52 lines
#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);
}
}