概要
Linux のフレームバッファ(/dev/fb0) を使ったアプリを開発するのにデバグが面倒なのでなんとかしたい。
いまなら SDL2 とかのフレームワークを使えばいいんだけど、昔ながら環境だと
- Linux系(たとえば RaspberryPI)でしか開発できない
- セルフビルドだとビルドがクソ遅い
- クロス環境作るのも面倒
ということで、Linux と Windowsで共通の互換クラスを作ってしまえばいいんだ。
互換クラス
作ったんのがコレ。
https://gitlab.com/nekodevteam/brainux/-/tree/main/framebuffer
公開メソッドは最小限
framebuffer.h
/** @brief frame buffer class */
class CFrameBuffer
{
public:
CFrameBuffer();
~CFrameBuffer();
bool Open();
void Close();
void* GetPtr();
const fb_var_screeninfo* GetScreenInfo() const;
void Update(bool bRedraw = false);
};
Windows
- コンソール アプリから使える
- ウィンドウを作成してビットマップを貼り付け、そのイメージポインタを返す
- フラッシュ用のヒントのために更新メソッドを追加
- スクリーン情報は linux/fb.h な struct fb_var_screeninfo を返す
Linux (ここでは SHARP Brain)
本番。
こんな感じで Windows でも Linux でも同じ表示が行えますよ・・・と。
これで色々捗る。