Hi Tomasz.

You can check if your layer supports setting the level with IDirectFBDisplayLayer::GetDescription(). Unfortunately, you cannot learn this way which levels are supported, you will only received the default level.
Normally, the value should be negative for "below" and positive for "above".
If your driver is sane and nice, it should return DFB_INVARG for unsupported levels.
You might want to check SetLevel in your gfxdrivers sources.

Greets
Niels

[email protected] wrote:
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 - Hardware accelerated graphics |
| http://www.directfb.org/                 |
"------------------------------------------"
_______________________________________________
directfb-users mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users

Reply via email to