提交 d5a92de9 编写于 作者: 指向BIOS的野指针's avatar 指向BIOS的野指针

add comments

上级 6bbe7483
......@@ -41,10 +41,10 @@ namespace bwl
{
__display.fd = open((std::string("/dev/dri/card") + __card_dvc).c_str(), O_RDWR | O_CLOEXEC); //打开显卡设备文件
/*获取drm信息*/
__display.res = drmModeGetResources(__display.fd);
__display.res = drmModeGetResources(__display.fd); //获取设备资源
uint32_t crtc_id = __display.res->crtcs[0];
uint32_t conn_id = __display.res->connectors[0];
__display.conn = drmModeGetConnector(__display.fd, conn_id);
__display.conn = drmModeGetConnector(__display.fd, conn_id); //获取连接器
setmonitor(__display.conn->modes[0].hdisplay, __display.conn->modes[0].vdisplay, 4);
__display.create.width = __display.conn->modes[0].hdisplay;
__display.create.height = __display.conn->modes[0].vdisplay;
......@@ -54,6 +54,7 @@ namespace bwl
drm_mode_map_dumb map;
map.handle = __display.create.handle;
drmIoctl(__display.fd, DRM_IOCTL_MODE_MAP_DUMB, &map);
//获取帧缓冲
__display.buffer = (char *)mmap(nullptr, __display.create.size, PROT_READ | PROT_WRITE, MAP_SHARED, __display.fd, map.offset);
memset(__display.buffer, 0, __display.create.size);
drmModeSetCrtc(__display.fd, crtc_id, __display.fbid, 0, 0, &conn_id, 1, &__display.conn->modes[0]);
......
......@@ -22,11 +22,12 @@ namespace bwl
void update_bg()
{
if (__ud.__bg.pos[0] == -1)
if (__ud.__bg.pos[0] == -1)//如果坐标是-1,则更新整个屏幕
{
memcpy(drm_buffer, pages[current_pgid]->server_bg_layer, bgbuffsize);
return;
}
//否则区域更新
for (int i = 0; i < __ud.__bg.size[1]; i++)
{
memcpy(((uint32_t *)drm_buffer) + (__ud.__bg.pos[0] + (__ud.__bg.pos[1] + i) * getDisplayWidth()),
......
......@@ -4,18 +4,19 @@
#include <iostream>
#include <vector>
#define BWL_VERSION "0.0.01"
#define BWLS_VERSION "0.0.01"
#define BWL_VERSION "0.01 beta" //整个BadWayland的版本号
#define BWLS_VERSION "0.01 beta" // BadWayland服务器版本号
#ifdef __bwl_server
#ifdef __bwl_server //只有在服务器中这个变量有效
extern std::string monitor_device;
#endif
#define BWLAPI
#define SIGBWLREQ 38
#define SIGREQRECV 35
#define REQMAGIC 0xa68c5cce7be74433
//用于服务器与用户程序之间通信
#define SIGBWLREQ 38 //用户向服务器发送信号的id
#define SIGREQRECV 35 //本来用于服务器向用户发送信号,后来发现不需要
#define REQMAGIC 0xa68c5cce7be74433 //魔数,用于验证是否是正确的数据包
#define BWLDIR (std::string("/dev/bwl") + monitor_device + "")
#define PAGEDIR (std::string("/dev/bwl") + monitor_device + "/pages/")
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册