Hi,

I am sending some more patches:

1) LUT8 fix -> lut8 palette entries (which are in RGB) were erroneously converted from YUV to RGB in the software renderer.

2) dfbscreen test app enhancement

3) dfblayer test app enhancement - allows to set layer's screen location & size

4) add DSPF_VYU and DSPF_AVYU to dfbinspector test app

5) add DSOC_656 to DFBScreenOutputConnectors (DirectFB already has 656 as signal type)

6) since the non public CORE_TI_CMEM type exists - can we have a CORE_STMFBDEV system, too. I will send the system's implementation to the list (for inclusion) if considered useful (I doubt it is, given that it targets our driver, which is free though...), but in any case having the system identifier reserved would be useful :-)

Basically, I found it dissatisfying that the devmem system requires users to specify physical addresses as directfb options for graphics memory and mmio... but I still wanted its flexibility.
It's in essence an fbdev system without any screen and layers.


Cheers,
Andre'
From d795624fd17f410777148cae04a8150b17b6c578 Mon Sep 17 00:00:00 2001
From: =?utf-8?q?Andr=C3=A9=20Draszik?= <andre.dras...@st.com>
Date: Fri, 29 Jan 2010 11:34:03 +0000
Subject: [PATCH 2/8] generic: LUT8 is not a YUV format

---
 src/gfx/generic/generic.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/gfx/generic/generic.c b/src/gfx/generic/generic.c
index bf93185..59bbfe2 100644
--- a/src/gfx/generic/generic.c
+++ b/src/gfx/generic/generic.c
@@ -355,7 +355,7 @@ static bool is_ycbcr[DFB_NUM_PIXELFORMATS] = {
      true,     /* DSPF_UYVY */
      true,     /* DSPF_I420 */
      true,     /* DSPF_YV12 */
-     true,     /* DSPF_LUT8 */
+     false,    /* DSPF_LUT8 */
      false,    /* DSPF_ALUT44 */
      false,    /* DSPF_AiRGB */
      false,    /* DSPF_A1 */
-- 
1.6.3.3

From d7bf7751148d0c3801dec17b8b30ac85ab914993 Mon Sep 17 00:00:00 2001
From: =?utf-8?q?Andr=C3=A9=20Draszik?= <andre.dras...@st.com>
Date: Thu, 7 May 2009 03:45:18 +0100
Subject: [PATCH 1/8] dfbscreen: little fixes
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

print background alpha, too
fix printing of scan mode name

Signed-off-by: André Draszik <andre.dras...@st.com>
---
 include/Makefile.am |    3 +++
 tools/dfbscreen.c   |    6 +++---
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/include/Makefile.am b/include/Makefile.am
index 2f0f4ff..66b58af 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -112,6 +112,9 @@ directfb_strings.h: directfb.h $(MKNAMES) Makefile
        $(MKNAMES) DFBScreenEncoderScanMode DSESM UNKNOWN ScreenEncoderScanMode 
scan_mode $(INCP)/directfb.h \
           | grep -v DSESM_ALL >> $@
 
+       $(MKNAMES) DFBScreenEncoderConfigFlags DSECONF UNKNOWN 
ScreenEncoderConfigFlags config_flags $(INCP)/directfb.h \
+          | grep -v DSECONF_ALL >> $@
+
        $(MKNAMES) DFBScreenEncoderFrequency DSEF UNKNOWN 
ScreenEncoderFrequency frequency $(INCP)/directfb.h \
           | grep -v DSEF_ALL >> $@
 
diff --git a/tools/dfbscreen.c b/tools/dfbscreen.c
index 1957aee..c593a35 100644
--- a/tools/dfbscreen.c
+++ b/tools/dfbscreen.c
@@ -593,8 +593,8 @@ dump_mixer_config( const DFBScreenMixerConfig *config )
      }
 
      if (config->flags & DSMCONF_BACKGROUND)
-          printf( "Background:    0x%02x, 0x%02x, 0x%02x (RGB)\n",
-                  config->background.r, config->background.g, 
config->background.b );
+          printf( "Background:    0x%02x, 0x%02x, 0x%02x, 0x%02x (ARGB)\n",
+                  config->background.a, config->background.r, 
config->background.g, config->background.b );
 
      printf( "\n" );
 }
@@ -628,7 +628,7 @@ resolution_name( DFBScreenOutputResolution resolution )
 }
 
 static const char *
-scan_mode_name( DFBScreenEncoderTestPicture scan_mode )
+scan_mode_name( DFBScreenEncoderScanMode scan_mode )
 {
      int i;
 
-- 
1.6.3.3

From 06006e2d4d9145f493bc4953ac5f6f81f40877b6 Mon Sep 17 00:00:00 2001
From: =?utf-8?q?Andr=C3=A9=20Draszik?= <andre.dras...@st.com>
Date: Fri, 29 Jan 2010 17:32:59 +0000
Subject: [PATCH 7/8] dfblayer: allow to set layer position and size using 
command line
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

Signed-off-by: André Draszik <andre.dras...@st.com>
---
 tools/dfblayer.c |   59 ++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 55 insertions(+), 4 deletions(-)

diff --git a/tools/dfblayer.c b/tools/dfblayer.c
index 6519be1..f81caed 100644
--- a/tools/dfblayer.c
+++ b/tools/dfblayer.c
@@ -55,6 +55,9 @@ static DFBDisplayLayerDescription  desc;
 static DFBDisplayLayerID         id           = DLID_PRIMARY;
 static int                       width        = 0;
 static int                       height       = 0;
+static DFBBoolean                set_dest_coord = DFB_FALSE;
+static DFBBoolean                set_dest_dim   = DFB_FALSE;
+static DFBRectangle              dest;
 static DFBSurfacePixelFormat     format       = DSPF_UNKNOWN;
 static DFBDisplayLayerBufferMode buffermode   = -1;
 static int                       opacity      = -1;
@@ -173,6 +176,8 @@ print_usage (const char *prg_name)
      fprintf (stderr, "Options:\n");
      fprintf (stderr, "   -l,  --layer            <id>              Use the 
specified layer, default is primary\n");
      fprintf (stderr, "   -m,  --mode             <width>x<height>  Change the 
resolution (pixels)\n");
+     fprintf (stderr, "   -d,  --dest             <width>x<height>  Change the 
destination resolution (pixels)\n");
+     fprintf (stderr, "   -c,  --coord            <x>x<y>           Change the 
destination coordinates (pixels)\n");
      fprintf (stderr, "   -f,  --format           <pixelformat>     Change the 
pixel format\n");
      fprintf (stderr, "   -b,  --buffer           <buffermode>      Change the 
buffer mode (single/video/system)\n");
      fprintf (stderr, "   -o,  --opacity          <opacity>         Change the 
layer's opacity (0-255)\n");
@@ -240,10 +245,12 @@ parse_layer( const char *arg )
 }
 
 static DFBBoolean
-parse_mode( const char *arg )
+parse_mode( const char *arg,
+            int        *width_,
+            int        *height_ )
 {
-     if (sscanf( arg, "%dx%d", &width, &height ) != 2 ||
-         width < 1 || height < 1)
+     if (sscanf( arg, "%dx%d", width_, height_ ) != 2 ||
+         *width_ < 0 || *height_ < 0)
      {
           fprintf (stderr, "\nInvalid mode specified!\n\n" );
           return DFB_FALSE;
@@ -368,12 +375,40 @@ parse_command_line( int argc, char *argv[] )
                     return DFB_FALSE;
                }
 
-               if (!parse_mode( argv[n] ))
+               if (!parse_mode( argv[n], &width, &height ))
                     return DFB_FALSE;
 
                continue;
           }
 
+          if (strcmp (arg, "-d") == 0 || strcmp (arg, "--dest") == 0) {
+               if (++n == argc) {
+                    print_usage (argv[0]);
+                    return DFB_FALSE;
+               }
+
+               if (!parse_mode( argv[n], &dest.w, &dest.h ))
+                    return DFB_FALSE;
+
+               set_dest_dim = DFB_TRUE;
+
+               continue;
+          }
+
+          if (strcmp (arg, "-c") == 0 || strcmp (arg, "--coord") == 0) {
+               if (++n == argc) {
+                    print_usage (argv[0]);
+                    return DFB_FALSE;
+               }
+
+               if (!parse_mode( argv[n], &dest.x, &dest.y ))
+                    return DFB_FALSE;
+
+               set_dest_coord = DFB_TRUE;
+
+               continue;
+          }
+
           if (strcmp (arg, "-f") == 0 || strcmp (arg, "--format") == 0) {
                if (++n == argc) {
                     print_usage (argv[0]);
@@ -541,6 +576,22 @@ set_configuration( void )
                DirectFBError( "IDirectFBDisplayLayer::SetRotation() failed", 
ret );
      }
 
+     if (set_dest_dim) {
+          ret = layer->SetScreenRectangle( layer,
+                                           dest.x, dest.y, dest.w, dest.h );
+          if (ret == DFB_UNSUPPORTED)
+               fprintf( stderr, "ScreenRectangle not supported!\n\n" );
+          else if (ret)
+               DirectFBError( "IDirectFBDisplayLayer::SetScreenRectangle() 
failed", ret );
+     }
+     else if (set_dest_coord) {
+          ret = layer->SetScreenPosition( layer, dest.x, dest.y );
+          if (ret == DFB_UNSUPPORTED)
+               fprintf( stderr, "ScreenPosition not supported!\n\n" );
+          else if (ret)
+               DirectFBError( "IDirectFBDisplayLayer::SetScreenPosition() 
failed", ret );
+     }
+
 
      if (config.flags & DLCONF_WIDTH)
           printf( "Width       %d\n", config.width );
-- 
1.6.3.3

From 801689c1648018d7299518f7536cb0a4b3e188f3 Mon Sep 17 00:00:00 2001
From: =?utf-8?q?Andr=C3=A9=20Draszik?= <andre.dras...@st.com>
Date: Fri, 29 Jan 2010 17:33:30 +0000
Subject: [PATCH 8/8] dfbinspector: add DSPF_AVYU and DSPF_VYU pixelformats
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

Signed-off-by: André Draszik <andre.dras...@st.com>
---
 tools/dfbinspector.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/tools/dfbinspector.c b/tools/dfbinspector.c
index 489d854..ebcc879 100644
--- a/tools/dfbinspector.c
+++ b/tools/dfbinspector.c
@@ -106,6 +106,8 @@ Inspector_Run( Inspector *inspector )
           DSPF_NV16,
           DSPF_AYUV,
           DSPF_YUV444P,
+          DSPF_AVYU,
+          DSPF_VYU,
      };
 
      int                    i, j, n;
-- 
1.6.3.3

From 0ace24385c69a63311848a6ae9ab2a9f6d319add Mon Sep 17 00:00:00 2001
From: =?utf-8?q?Andr=C3=A9=20Draszik?= <andre.dras...@st.com>
Date: Fri, 29 Jan 2010 16:31:39 +0000
Subject: [PATCH 5/8] directfb.h: add a DVO 656 'connector'
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

Signed-off-by: André Draszik <andre.dras...@st.com>
---
 include/directfb.h |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/include/directfb.h b/include/directfb.h
index a4edf43..8dfdcbd 100644
--- a/include/directfb.h
+++ b/include/directfb.h
@@ -2218,7 +2218,8 @@ typedef enum {
      DSOC_CVBS           = 0x00000008, /* CVBS connector */
      DSOC_SCART2         = 0x00000010, /* 2nd SCART connector */
      DSOC_COMPONENT      = 0x00000020, /* Component video connector */
-     DSOC_HDMI           = 0x00000040  /* HDMI connector */
+     DSOC_HDMI           = 0x00000040, /* HDMI connector */
+     DSOC_656            = 0x00000080, /* DVO connector */
 } DFBScreenOutputConnectors;
 
 /*
-- 
1.6.3.3

From ed33d9184d2fe25d44ec1c1d036e52c65dfbbfd2 Mon Sep 17 00:00:00 2001
From: =?utf-8?q?Andr=C3=A9=20Draszik?= <andre.dras...@st.com>
Date: Fri, 29 Jan 2010 16:33:13 +0000
Subject: [PATCH 6/8] systems: add CORE_STMFBDEV system
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

Signed-off-by: André Draszik <andre.dras...@st.com>
---
 src/core/system.h |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/src/core/system.h b/src/core/system.h
index 8ecc564..6b8c217 100644
--- a/src/core/system.h
+++ b/src/core/system.h
@@ -45,7 +45,8 @@ typedef enum {
      CORE_SDL,
      CORE_VNC,
      CORE_DEVMEM,
-     CORE_TI_CMEM
+     CORE_TI_CMEM,
+     CORE_STMFBDEV,
 } CoreSystemType;
 
 typedef enum {
-- 
1.6.3.3

_______________________________________________
directfb-dev mailing list
directfb-dev@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to