OK. It works.

IDirectFBDisplayLayer * osd_layer = NULL;

if( (dfberr = super_interface->GetDisplayLayer(super_interface, 0, &osd_layer)) != DFB_OK )
{ DirectFBErrorFatal( "GetDisplayLayer()", dfberr); }

int level;

if( (dfberr = osd_layer->GetLevel( osd_layer, &level )) != DFB_OK )
{ DirectFBErrorFatal( "GetLevel()", dfberr); }
printf("%d\n", level );

if( (dfberr = osd_layer->SetCooperativeLevel( osd_layer, DLSCL_EXCLUSIVE)) != DFB_OK )
{ DirectFBErrorFatal( "SetLevel()", dfberr); }

level = 2;
if( (dfberr = osd_layer->SetLevel( osd_layer, level )) != DFB_OK )
{ DirectFBErrorFatal( "SetLevel()", dfberr); }

if( (dfberr = osd_layer->SetCooperativeLevel( osd_layer, DLSCL_SHARED)) != DFB_OK )
{ DirectFBErrorFatal( "SetLevel()", dfberr); }

if( (dfberr = osd_layer->GetLevel( osd_layer, &level )) != DFB_OK )
{ DirectFBErrorFatal( "GetLevel()", dfberr); }
printf("%d\n", level );

It works ok if I set level to 0, 1, 2, 3.
If I try to set level to eg 4, -1 I got error while program runs:

(#) DirectFBError [SetLevel()]: Invalid argument!

So how to know what level may I set for layer in my device? Are they any rules, or is it specific for device?

----------------------------------------------------------------------
Bezplatne konto i limit do 100 tys. Otwierasz?
http://link.interia.pl/f2342

_______________________________________________
directfb-users mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users

Reply via email to