



BlitPool_PostByDescription( g.PlanetPool, p->PlanetSurface, "pos=(0,0):" "T:(29,0)-(170,200):" /* transparent height belt */ "T:(0,29)-(200,170):" /* transparent width belt */ "O:(29,29)-(170,170):" /* opaque square */ ); BlitPool_Optimize(g.PlanetPool, BLIT_OPT_REMOVEOVERLAP); /* delete back operation */
static unsigned char g_buf[1024 * 256];
static unsigned char *g_p;
#define InitAllocator() g_p = g_buf
static void *Allocator(unsigned long nbyte)
{
return (void *)((g_p += nbyte) - nbyte);
}
static void Releaser(void *p)
{
/* Do Nothing */;
}
and
BlitPool_SetAllocator(pool, Allocator, Releaser); InitAllocator();
BlitPool_PostSurface( pool, Bullet[angle], /* little surface */ NULL, &BulletPosition[i], BLIT_ALPHA_TRANSPARENT | BLIT_EXEC_NO_OPTIMIZE /* <- */ );