粘贴的代码没有问题,不过要把vram、buf指针的定义改为int *,否则显示不正常。还是看看下面声明的代码吧。
/* sheet.h */
#define MAX_SHEETS 256
#define SHEET_USE 1
struct SHEET {
unsigned int *buf;
int bxsize, bysize, vx0, vy0, col_inv, height, flags;
};
struct SHTCTL {
unsigned int *vram;
int xsize, ysize, top;
struct SHEET *sheets[MAX_SHEETS];
struct SHEET sheets0[MAX_SHEETS];
};
struct SHTCTL *shtctl_init(struct MEMMAN *memman, unsigned int *vram, int xsize, int ysize);
struct SHEET *sheet_alloc(struct SHTCTL *ctl);
void sheet_setbuf(struct SHEET *sht, unsigned int *buf, int xsize, int ysize, int col_inv);
void sheet_updown(struct SHTCTL *ctl, struct SHEET *sht, int height);
void sheet_refresh(struct SHTCTL *ctl, struct SHEET *sht, int bx0, int by0, int bx1, int by1);
void sheet_slide(struct SHTCTL *ctl, struct SHEET *sht, int vx0, int vy0);
void sheet_free(struct SHTCTL *ctl, struct SHEET *sht);