Quoting Ville Syrj�l�:
> On Tue, Jul 13, 2004 at 03:31:25PM +0800, Jack Liu (Shanghai) wrote:
> > Hi, Sven,
> >     Now comes the codes, I write it refer to the example"df_window.c".
> > 
> > 
> >     DirectFBInit (&argc, &argv);
> >     DirectFBCreate (&dfb);
> > 
> >     //init display layer
> >     dfb->GetDisplayLayer( dfb, DLID_PRIMARY, &layer );
> >     layer->SetCooperativeLevel( layer, DLSCL_ADMINISTRATIVE );
> >     layer_config.flags = DLCONF_BUFFERMODE;
> >     layer_config.buffermode = DLBM_FRONTONLY;
> >     layer->SetConfiguration( layer, &layer_config );
> >     layer->GetConfiguration( layer, &layer_config );
> >     layer->EnableCursor ( layer, 1 );
> > 
> >     //create bg surface
> >     {
> >             DFBSurfaceDescription desc;
> > 
> >             desc.flags = DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_CAPS;
> >             desc.width = layer_config.width;
> >             desc.height = layer_config.height;
> >             desc.caps = DSCAPS_PRIMARY |DSCAPS_SYSTEMONLY;
> >             dfb->CreateSurface( dfb, &desc, &bgsurface );
> 
> Here you are implicitly creating a window because your DirectFB 
> cooperative level is DFSCL_SHARED. That's why you can move it around. Just 
> replace this part with layer->GetSurface( layer ); and your app will work 
> correctly.

You shouldn't access the layer's surface directly in windowed mode.

But you can create a surface like above, without using DSCAPS_PRIMARY.

You can set this surface as the background image using:

layer->SetBackgroundImage( layer, bgsurface );
layer->SetBackgroundMode( layer, DLBM_IMAGE );

If you create a flipping surface you can use bgsurface->Flip() calls
afterwards to force a window stack recomposition for the whole screen.
Note that you have to pass a NULL region in this case, otherwise it's
not a real flip and it won't be propagated.

-- 
Best regards,
  Denis Oliver Kropp

.------------------------------------------.
| DirectFB - Hardware accelerated graphics |
| http://www.directfb.org/                 |
"------------------------------------------"

                            Convergence GmbH


Reply via email to