Hi, 

   First of all I would like to thank you both for this help. The device
that I´m working on is an IP set-top box from Philips called STB810, it has
a Nexperia processor and works with 5 different layers (I can list the full
result of dfbinfo it you what to know how it is). 

   I did the modification as Richard said and what happens is that
DLBM_BACKVIDEO returns "out of video memory" (I´m having lot of trouble
about this "out of video memory" in general. Maybe there is some DirectFB
configuration where I can make some changes on it. Specially about
CreateSurfaces) 

   Using DLBM_BACKSYSTEM it seems to be working fine. Except by one detail: 
 
   I have the following code workflow, to print contents:

   1- load layer 2 (graphics) 
   2- set options to DLOP_LAYER_SHOW
   2- get primary surface of layer 2
   3- create and flip an image into primary

   4- load layer 1 (graphics)
   5- set buffermode to DLOP_BACKSYSTEM and also options to DLOP_LAYER_SHOW
   6- get primary surface of layer 1
   7- create 16 images and then FLIP 

   8- load layer 0 (framebuffer)
   9- get primary surface of layer 0 
  10- flip some graphics. 

   If I insert the following lines , the image of step 3 only appears after
the step 7, togheter with all other images, otherwise it appears normally
according with the current workflow: 

   IDirectFBFont *font;
   DFBFontDescription fontDesc;
   fontDesc.flags = DFDESC_HEIGHT;
   fontDesc.height = 18;
   dfb->CreateFont(dfb,"directory/tahoma.ttf",&fontDesc, &font);

Best Regards,
Erick Galassi
   

-----Mensagem original-----
De: Denis Oliver Kropp [mailto:[EMAIL PROTECTED] 
Enviada em: segunda-feira, 17 de julho de 2006 12:49
Para: Erick Galassi
Cc: 'Unger Richard'; 'DirectFB-Users'
Assunto: Re: [directfb-users] RES: Blit prints direct on Screen

Erick Galassi wrote:
> Hi,
> 
>   I´ retriving this surface using GetSurface from the DisplayLayer object.
> How can I reallocate a surface that I already have ? This part of the
code: 
> 
>   IDirectFBSurface *primary;
>   IDirectFBDisplayLayer *layer;
> 
>   dfb->GetDisplayLayer(dfb,layer_id,&layer);
>   layer->SetCooperativeLeve(layer,DLSCL_EXCLUSIVE);

As Richard pointed out, insert this here:

DFBDisplayLayerConfiguration config;

config.flags      = DLCONF_BUFFERMODE;
config.buffermode = DLBM_BACKVIDEO;

layer->SetConfiguration( layer, &config );

>   layer->GetSurface(layer,&primary);



Do you know if you have hardware accelerated blending?

If not and if you're using a lot of blending, better use DLBM_BACKSYSTEM,
because it's still faster to prepare everything in system memory and just
write into video memory instead of read/write when software does blending.

Anyways, never heard of something like StbRend5L, can only guess which
hardware the driver is for, is that info confidential?

--
Best regards,
   Denis Oliver Kropp

.------------------------------------------.
| 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