一、叠加处理
1、单个图层
如果使用过PS应该很容易理解图层的概念,以下是对图层的结构体定义:
struct SHEET {
unsigned char *buf;
int bxsize, bysize, vx0, vy0, col_inv, height, flags;
};
*buf:这是一个指针,指向图层上要显示内容
bxsize:图层的x大小
bysize:图层的y大小(bxsize*bysize就是图层的整体大小)
vx0:图层在背景画面的相对位置x
vy0:图层在背景画面的相对位置y(图层在背景画面上的位置,从此位置开始显示)
col_inv:透明色色号
height:图层高度
flags:存放图层有关的各种设定信息
2、多个图层
上面是单个图层的定义,要实现多个图层的管理,需要创建一个图层的集合
struct SHTCTL {
unsigned char *vram;
int xsize, ysize, top;
struct SHEET *sheets[MAX_SHEETS];
struct SHEET sheets0[MAX_SHEETS];
};
*vram :这是一个指针,指向vram 。
xsize:屏幕分辨率x
ysize:屏幕分辨率y
top:最上面图层的高度
sheet0[]:准备的图层的全部信息,按照申请图层的先后存放,先申请的放前面
*sheets[]: