0

ファイル /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 &region)
{

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);

ブライス

4

2 に答える 2

5

「接続」関数のみのスコープで myscreen_Fb を宣言しました。これを myscreen クラスのメンバーにするか、「blit」関数に引数として渡すことをお勧めします。

于 2009-07-10T19:24:16.547 に答える