[Armadillo:01386] Re: DirectFBについて

nakai email@hidden
2006年 11月 17日 (金) 17:29:49 JST


中井です。

# DirectFBに関してなので、ここにつないでおきます。

Armadillo-9/240でDirectFBを動作させようとしたとき、
depthが8bitのときにうまくいかないと思います。

原因は、DirectFBのfbdevが デフォルトのpixelformatをDSPF_RGB16にしてしまうからです。
一応対策パッチを作ってあるので、貼り付けておきます。

# パッチ作成してから長く放置してしまいました。。

--- fbdev.c.orig	2006-09-22 22:32:52.000000000 +0900
+++ fbdev.c	2006-09-22 22:38:05.000000000 +0900
@@ -168,6 +168,8 @@
                                            CoreLayerRegionConfig      *config,
                                            CoreSurface                *surface );
 
+static DFBSurfacePixelFormat dfb_fbdev_get_pixelformat( struct fb_var_screeninfo *var );
+
 static DisplayLayerFuncs primaryLayerFuncs = {
      LayerDataSize:      primaryLayerDataSize,
      RegionDataSize:     primaryRegionDataSize,
@@ -1059,8 +1061,14 @@
      tmp.buffermode = DLBM_FRONTONLY;
      if (dfb_fbdev_set_mode( NULL, NULL, &tmp ))
           config->pixelformat = dfb_pixelformat_for_depth( dfb_fbdev->shared->orig_var.bits_per_pixel );
-     else
-          config->pixelformat = DSPF_RGB16;
+     else{
+     	struct fb_var_screeninfo  var;
+	if ( FBDEV_IOCTL( FBIOGET_VSCREENINFO, &var ) < 0) {
+		config->pixelformat = DSPF_RGB16;
+	} else {
+		config->pixelformat = dfb_fbdev_get_pixelformat( &var );
+	}
+     }
 
      return DFB_OK;
 }




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