我试图在几个Qt成员函数中保持一个流向文件/dev/fb0(linux framebuffer)的开放。 目标是使用myscreen::connect函数来打开framebuffer
bool myscreen::connect()
std::fstream myscreen_Fb;
myscreen_Fb.open("/dev/fb0")
QImage* image;
image = new QImage(w, h, QImage::Format_RGB888);
QScreen::data = image->bits();
这将理想地打开帧缓冲区并创建一个新的QImage,作为被写入屏幕的数据的内存缓冲区。 然后我的 "图像 "将通过bits()函数指向屏幕上第一个可见的像素(内存)。 我必须要实现这一点,因为我的硬件不支持默认的内存映射。
I would then like to blit it to the screen with:
void myscreen::blit(const QImage &img, const QPoint &topLeft, const QRegion ®ion)
QScreen::blit(img, topLeft, region);
write(myscreen_Fb, image.bits(), image.size());
我似乎不能让指向第一个可见像素的指针打开使用,并从GCC得到关于myscreen_Fb没有在范围内声明的投诉。 有什么想法吗?
我做了建议的修改,并在类中声明了该函数,但得到了这个错误,这让我很抓狂。
error: expected constructor, destructor, or type conversion before '.' token
它指的是包含的行。
vopuscreenFd.open("/dev/fb0", fstream::out);
Bryce