Il giorno lun, 03/03/2008 alle 22.08 +0530, animesh ha scritto:
> Hi All,
>     I am sending this mail with the hope that i would get some reply. 
>     I am writing a simple DirectFB application, but when i change the
> PixelFormat, Iget errors that CreateSurface is Not supported.
> #include <stdio.h>
> #include <unistd.h>
> #include <directfb.h>  
> 
> static IDirectFB *dfb = NULL;
> static IDirectFBSurface *primary = NULL;
> static int screen_width  = 0;
> static int screen_height = 0;
> 
> #define DFBCHECK(x...)                                         \
>   {                                                            \
>     DFBResult err = x;                                         \
>                                                                \
>     if (err != DFB_OK)                                         \
>       {                                                        \
>         fprintf( stderr, "%s <%d>:\n\t", __FILE__, __LINE__ ); \
>         DirectFBErrorFatal( #x, err );                         \
>       }                                                        \
>   }
> int main (int argc, char **argv)
> {
>     
>   DFBSurfaceDescription dsc;
> 
>   DFBCHECK (DirectFBInit (&argc, &argv));
>   DFBCHECK (DirectFBCreate (&dfb));
>   DFBCHECK (dfb->SetCooperativeLevel (dfb, DFSCL_FULLSCREEN));
> 
>   dsc.flags = DSDESC_CAPS;
> /*Now if I Change this line to
>   dsc.flags = DSDESC_CAPS | DSDESC_PIXELFORMAT*/
> 
>   dsc.caps  = DSCAPS_PRIMARY | DSCAPS_FLIPPING;
> 
> /*And Add this line
> dsc.pixelformat = DSPF_A8 
> or
> dsc.pixelformat = DSPF_ALUT44
> or, many other Pixel format then i get an error while executing the
> code the
> dfb->CreateSurface( dfb, &dsc, &primary ) is not supported.*/
> 
> 
>   DFBCHECK (dfb->CreateSurface( dfb, &dsc, &primary ));
>   DFBCHECK (primary->GetSize (primary, &screen_width,
> &screen_height));
>   DFBCHECK (primary->FillRectangle (primary, 0, 0, screen_width,
> screen_height));
>   DFBCHECK (primary->SetColor (primary, 0x80, 0x80, 0xff, 0xff));
>   DFBCHECK (primary->DrawLine (primary,
>                                   0, screen_height / 2,
>                    screen_width - 1, screen_height / 2));
> 
>   DFBCHECK (primary->Flip (primary, NULL, 0));
> 
>   sleep (5);
> 
> 
>   primary->Release( primary );
>   dfb->Release( dfb );
> 
>   return 23;
> }

Of course, you cannot set the primary surface format to A8. 
The primary surface is nevertheless the surface of the primary layer
(i.e. of the screen). Never screen a screen supporting A8.

> 
> In this code  I have to enable Palette Support also, so how can i do
> this.
> Can anyone help me out why i am getting this error.
> 
LUT8 should be supported by the primary layer.

-- 
Claudio Ciccani
[EMAIL PROTECTED]
[EMAIL PROTECTED]
http://directfb.org


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

Reply via email to