Я пытаюсь сохранить поток в файле / dev / fb0 (linux framebuffer) открытым в течение нескольких функций-членов Qt. Цель состоит в том, чтобы использовать функцию myscreen :: connect для открытия кадрового буфера
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 (). Я должен реализовать это, потому что мое оборудование не поддерживает отображение памяти по умолчанию.
Затем я хотел бы перетащить его на экран:
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