ファイル /dev/fb0 (Linux フレームバッファ) へのストリームをいくつかの 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 を作成します。次に、私の「画像」は、ビット()関数を介して画面上の最初の可視ピクセル(メモリ)を指します。ハードウェアがデフォルトのメモリ マッピングをサポートしていないため、これを実装する必要があります。
次に、次のように画面にブリットしたいと思います。
void myscreen::blit(const QImage &img, const QPoint &topLeft, const QRegion ®ion)
{
QScreen::blit(img, topLeft, region);
write(myscreen_Fb, image.bits(), image.size());
}
スコープで宣言されていない myscreen_Fb に関する GCC からの苦情を使用するために開いている最初の可視ピクセルへのポインターを取得できないようです。何か案は?
アップデート
提案された変更を行い、クラスで関数を宣言しましたが、このエラーが発生して気が狂いました。
error: expected constructor, destructor, or type conversion before '.' token
以下を含む行を指します。
vopuscreenFd.open("/dev/fb0", fstream::out);
ブライス