参考博客:
https://blog.csdn.net/m0_63168877/article/details/138545059
一、设计思路
软件框架及目录
二、显示系统
2.1显示管理器框架
2.2DispOpr 结构体
在disp_manager.h这一层抽象出显示结构体
在底层显示模块分配、设置这个结构体,并且向本层注册这个结构体。
/* 表示区域的结构体 */
typedef struct Region {
int iLeftUpX;
int iLeftUpY;
int iWidth;
int iHeigh;
}Region, *PRegion;
typedef struct DispBuff {
int iXres;
int iYres;
int iBpp;
char *buff;
}DispBuff, *PDispBuff;
/* 显示操作结构体 */
typedef struct DispOpr {
char *name;
int (*DeviceInit)(void);
int (*DeviceExit)(void);
int (*GetBuffer)(PDispBuff ptDispBuff);
int (*FlushRegion)(PRegion ptRegion, PDispBuff ptDispBuff);//刷新区域
struct DispOpr *ptNext;//链表指针,用来链接起来这些结构体
}DispOpr, *PDispOpr;
2.3Framfbuffer中结构体
/*
* Filename: framebuffer.c
*
*/
//定义结构体, 然后实现这些成员函数
static DispOpr g_tFramebufferOpr = {
.name = "fb",
.DeviceInit = FbDeviceInit,
.DeviceExit = FbDeviceExit,
.GetBuffer = FbGetBuffer,
.FlushRegion = FbFlushRegion,
};