FBinit(结构体注册,由disp_manager.c调用)
int FBInit(void)
{
return RegisterDispOpr(&g_tFBOpr);
}
g_tFBOpr(结构体设置)
static T_DispOpr g_tFBOpr = {
.name = "fb",
.DeviceInit = FBDeviceInit,
.ShowPixel = FBShowPixel,
.CleanScreen = FBCleanScreen,
};
FBDeviceInit(设备文件初始化)
desc:此函数从freetype中show_lines得来,打开设备文件,获得fb固定和变换screen信息,给结构体赋值(iXres、iYres、iBpp)
note:FB_DEVICE_NAME和DBG_PRINTF这两个宏的用法
static int FBDeviceInit(void)
{
int ret;
//FB_DEVICE_NAME宏定义在config中,为了随便更换设备文件(dev设备更换)
g_fd = open(FB_DEVICE_NAME, O_RDWR);
if (0 > g_fd)
{
//DBG_PRINTF也是宏定义在config中,如果不想打印,直接注释掉宏(打印开关)
DBG_PRINTF("can't open %s\n", FB_DEVICE_NAME);
}
ret = ioctl(g_fd, FBIOGET_VSCREENINFO, &g_tFBVar);
if (ret < 0)
{
DBG_PRINTF("can't get fb's var\n");
return -1;
}
ret = ioctl(g_