[Armadillo:04124] DirectFBの色深度について

horiuchi email@hidden
2009年 3月 12日 (木) 23:49:46 JST


堀内と申します。

現在、armadillo-9を使ってDirectFBを使ったアプリケーションを作成
しています。

atmark社ホームページの、「最新組み込みLinux実践講座Part4」
を参考に、自前でGUIアプリケーションを組んだのですが、表示する
背景やボタンの色深度が変更できず、悩んでおります。

現状では、一応デフォルト設定(?)の8bitで動いているようなのですが
これを16bit程度で動作させたいと思っております。

過去ログも漁ってみたのですが、関係する内容は見つけられませんでした。
どなたか、DirectFBで色深度の設定を変更する方法をご存知の方が
いらっしゃいましたら、教えて頂けませんでしょうか。


環境と、試した内容は以下の通りです。
=======================
開発環境: atde2-20071018
dist: atmark-dist-20081022
カーネル: linux-2.6.12.3-a9-14
DirectFB: Ver.1.0.1
=======================

Hermitターミナルから...
 hermit> setenv video=ep93xxfb:CRT-800x600,16bpp
を行いました。

DirectFB本家のリファレンスも参考にしてみたところ、関係ありそうな
関数として、SetVideoMode()を見つけました。

実際に以下のように実装し、コンパイル、実行してみたのですが、
残念ながら、変化がありませんでした。

以下、実装部分(初期化)のソース
====================================================
	// DirectFBの初期化を行い、スーパーインタフェースを作成します。
	// また、プライマリレイヤを取得し設定を行います。
	{
		DFBCHECK(DirectFBInit(&argc, &argv));
		DFBCHECK(DirectFBCreate(&dfb));
		DFBCHECK(dfb->GetDeviceDescription(dfb, &desc));
		DFBCHECK(dfb->GetDisplayLayer(dfb, DLID_PRIMARY, &layer));

⇒ ココ		DFBCHECK(dfb->SetVideoMode(dfb,800,600,16));

		DFBCHECK(layer->SetCooperativeLevel(layer,
DLSCL_ADMINISTRATIVE));

		if (!((desc.blitting_flags & DSBLIT_BLEND_ALPHACHANNEL) &&
			(desc.blitting_flags & DSBLIT_BLEND_COLORALPHA))) {
					config.flags = DLCONF_BUFFERMODE;
					config.buffermode = DLBM_BACKSYSTEM;


DFBCHECK(layer->SetConfiguration(layer, &config));
		}

		DFBCHECK(layer->GetConfiguration(layer, &config));

	}
=======================================================

DirectFB起動後のログには、以下のエラーメッセージが出ていました。

(!) DirectFB/FBDev: Panning display failed (x=0 y=0 ywarp=0 vbl=0)!
    ⇒Invalid argument


以上、宜しくお願いします。





armadillo メーリングリストの案内