Mono フレームワークで Linux 用の小さなアプリケーションを書き始めています。アプリケーションは基本的に、ユーザーの操作が非常に少ない小さなキオスク フロントエンドになります。これは、100% テキスト/コンソール ベースの同じアプリケーションの以前のバージョンを置き換えるものです。
これは Raspberry Pi で実行されるため、X の実行を避け、アプリケーションがフレームバッファと直接通信するようにしたいと考えています。私は C# をよく知っているので、Mono フレームワークと C# を開発言語として使用することにしました。この場合、移植性は問題になりません。
ただし、Mono から Framebuffer にアクセスできる適切なライブラリとバインディングを見つけるのに苦労しています。ライブラリはGTK#
すべて X11 インターフェースに明示的にバインドされており、いずれにせよ、ARM Soft-Float (armel) アーキテクチャ用に Debian Wheezy にビルド済みの GtkFB ライブラリはないようです。
Mono.Cairo
ライブラリは型を公開しますがDirectFBSurface
、そのサーフェスのコンストラクターは 2 つのIntPtr
引数を取り、文書化されていないため、フレームバッファーをカイロ サーフェスとして適切に初期化するためにコンストラクターに何を渡す必要があるかわかりません。
誰かが Mono と C# を使って Linux フレームバッファと通信したことがありますか? もしそうなら、初期化して FB への描画を開始するための基本的な例を提供したり、オンライン ドキュメントを参照して助けたりできますか?
更新 1
null
次のコードを使用して、両方のコンストラクターパラメーターでDirectFBSurface をインスタンス化しようと思いました。
public static void Main(string[] args)
{
// ...
DirectFBSurface surface = new DirectFBSurface(((IntPtr)null), ((IntPtr)null));
// ...
}
これにより、パラメーター値が許可されていないことを示す例外が生成されると予想していましたnull
が、代わりに、DirectFBSurface が実装されていないかMono.Cairo
、Debian Wheezy (armel) に同梱されているライブラリにコンパイルされていないように見えます。
Unhandled Exception: System.EntryPointNotFoundException: cairo_directfb_surface_create
at (wrapper managed-to-native) Cairo.NativeMethods:cairo_directfb_surface_create (intptr,intptr)
at Cairo.DirectFBSurface..ctor (IntPtr dfb, IntPtr dfb_surface) [0x00000] in <filename unknown>:0
at Info.Insch.SandBox.TestCairo.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0
したがって、このMono.Cairo
アプローチはおそらく私のニーズには合わないようです。また、上記のように、GTK#
Framebuffer ライブラリは、armel の Debian Wheezy の一部ではないようです。Mono から Linux フレームバッファにアクセスするために使用できるライブラリの別のセットはありますか?