2012-04-05 9 views
1

私が書いているセキュリティアプリケーションのために可能な最も低いレベルでビデオカードのフレームバッファを読みたいと思います。
私が読んでいるものはまさに最終的に何であるか正確に分かりたいと思っています 画面のピクセルを照らすハードウェアのビットを置くと、
そしてソフトウェアレイヤーは中間にありません真ん中にレイヤーをできるだけ少なくしたい)。Xの下で可能な最も低いレベルでフレームバッファを読み取る

Xを使って正確な時刻に画面を取得するのはかなり簡単ですが、 という呼び出しはまだXサーバーを通過しています。
ビデオカードでいくつかのioctlを混乱させても、実際にはもっと低いレベルのものがあります。
私はDRIとDRI2の存在を見てきましたが、非常にひどくひどく文書化されています。特に 後者です。
どのように動作するのか分かりません。 良い研究のためのアイデア、リファレンス、または出発点がありますか?

何かをいただければ幸いです!

+0

特定のタイプのオーバーレイグラフィックス(特にビデオ)の場合、実際には「フレームバッファ」として識別されるイメージに実際に書き込まれることはありませんが、これはカードから出力されるストリームに合成されただけです(これは、さまざまな画面キャプチャのことについて不平を言う多くの人々の起源で、メディアプレーヤーのウィンドウの空白をキャプチャします)。それは考慮すべきものかもしれません。 – timday

答えて

0

フレームバッファの読み込み量がわかりません(コメントでタイムドゥーディが指摘した問題を無視して、読み込んだ内容が非常に簡単ではないかもしれないかどうかを判断する)。あなたがLinux上でこれをやっているのであれば、DirectFBを使ってkernel framebuffer devicesをマップすることができます。また、Linux以外のPCプラットフォームの場合は、VESAコードを使用することもできます(X.OrgX.Org VESA driverのVESAコードを参照してください(実際のコードは2つに分かれています)。