Example #1
0
struct LAYER_CTL * layer_ctl_init(struct MEMMAN *man, unsigned char *vram, int xsize ,int ysize){
    struct LAYER_CTL *ctl;
    ctl = (struct LAYER_CTL *) mem_alloc_4k(man, sizeof(struct LAYER_CTL));
    if(ctl == 0){
        return ctl;
    }
    ctl->map  = (unsigned char *)mem_alloc_4k(man,xsize*ysize);
    if(ctl->map == 0){
        return ctl;
    }
    ctl->vram = vram;
    ctl->xsize = xsize;
    ctl->ysize = ysize;
    ctl->top = -1;
    for( int i = 0; i < MAX_LAYERS; i++ ){
        ctl->layers[i].flags = 0;
        ctl->layers[i].ctl   = ctl;
    }
    return ctl;
}
Example #2
0
File: sheet.c Project: cupnes/os
SHEET_CTL *sheetctl_init(MEMORY_MANAGE* man, byte *vram,  int xsize, int ysize) {
	SHEET_CTL *ctl;
	int i;
	ctl = (SHEET_CTL*)mem_alloc_4k(man, sizeof(SHEET_CTL));
	if(ctl == 0) return 0;

	ctl->map = (byte*)mem_alloc_4k(man, xsize * ysize);
	if(ctl->map == 0) {
		mem_free_4k(man, (int)ctl, sizeof(SHEET_CTL));
		return 0;
	}

	ctl->vram = vram;
	ctl->xsize = xsize;
	ctl->ysize = ysize;
	ctl->top = -1;	// シートは1枚もない
	for(i = 0; i < MAX_SHEETS; i++) {
		ctl->sheets0[i].flags = 0;	// 未使用マーク
		ctl->sheets0[i].ctl = ctl;	// 所属を記録
	}

	return ctl;
}