2013-07-15 6 views
15

コンソールに本物の男性:)Linuxでビデオメモリにバイトを直接書き込むことができますか、またはデータを画面に取り込むためのより良い方法がありますか?

印刷テキストは楽しいですが、私はまだ切り替えの爽快感を覚えているように、私は「右/ハードな方法」私の息子のプログラミングを教えていますので、私たちはCで開始しています私の古いi386を320x200x256モードにして、色の付いた四角形を描きました。その日にはint 10hを呼び出すのと同じくらい簡単でしたし、画面にピクセルを描画するためにバイトを[A000:0000]に書きます。

しかし、現代のLinuxでは、ハードウェアへのこのような低レベルのアクセスは(明らかな理由により)より複雑に思えます。私は簡単にmmap -ing /dev/fd0を見てきました。here - 私のUbuntu 13.04には、/dev/fb0というデバイスはありません。 svgalibを使用してみましたが、サンプルコードではモニタに何も表示されません。

質問:現代のLinuxでは、多くのシステム構成や定型コードを必要としないビデオメモリに直接アクセスする簡単な方法がありますか?それはフルスクリーンアクセスである必要はありません - Xウィンドウを開き、そこにピクセルを描画することは、メモリに直接データを書き込むことによって行われる限り、問題ありません。

+1

SDLの使い方を覚えておいて、システムにSDLを適用する方法を習得することをおすすめします。 –

+0

@ IgnacioVazquez-Abrams:うわー、SDLに言及してくれてありがとう。私はサンプルのSDLプログラムをコンパイルすることができました。それはまさに私が探していたもののように見えます。あなたが答えとしてあなたのコメントを追加する場合、私は数日でそれを受け入れることを約束しても、awesomerのフレームワークは記載されていません:) – Sergey

+0

実際のプログラマーコードアセンブリ:)。それとも、本当のプログラマーが[蝶](http://xkcd.com/378/)を身につけて、あなたの息子にバタフライネットを手に入れて、彼が若くて今すぐ始めましょう! – terdon

答えて

12

スクリーンメモリに直接アクセスするのではなく(恐ろしいことが考えられる)、Simple DirectMedia Layerをグラフィックスに使用し、OSハンドルで画面に描画させることを検討する必要があります。

+0

合意。 SDLは道のりです。 – Joe

+3

基本については、ビデオメモリとその基本レベルでの動作を理解することが重要です。 SDL(と特にSDL2)は、スターターにとってあまりにも太っている抽象レイヤーを追加します。 –

関連する問題