On 06/07/12 22:30, Poole, Bryce wrote:
> During DirectFBCreate the “default” window manager is instantiated and 
> initialized. As part of this process, it will create a surface and flip it 
> onto a layer
> regardless of whether the app will eventually use windows or not. This 
> interferes with the operating of other functions and allocates memory for 
> something that
> might be used.
> 
>  
> 
> So the process that this goes through starts with DirectFBCreate calling 
> IDirectFB_Construct calling 
> CoreLayer_GetPrimaryContext/dfb_layer_get_primary_context.
> This calls dfb_layer_create_context which creates the window manager stack 
> (the “default” windows manager is my case) and then calls 
> dfb_layer_activate_context.
> In this function, it calls dfb_layer_context_activate which intern calls 
> dfb_wm_set_active. This calls the window managers SetActive API. In this 
> call, the
> “default” wm will end up activating itself and because there are no windows, 
> it draws the background. Drawing the background will instantiate a surface 
> and flip
> it, which is what I want to avoid until it is needed later.
> 
>  
> 
> In DFB 1.4.9, we modified default.c by adding a dfb_updates_reset in 
> process_updates() if the dfb_layer_context_get_primary_region returned a 
> failure which
> happened when it hadn’t been instantiated. However this call is no longer in 
> 1.6.
> 
>  
> 
> So, in DFB 1.6, how do I prevent only the first drawing operation during the 
> SetActive call until after the user initiates something that requires the 
> surface
> to get instantiated and flipped?
> 
>  
> 
> For those that are already thinking about “no-init-layers” (a directfbrc 
> option), that is used later during IDirectFB_InitLayers. It doesn’t affect 
> the window
> manager.

The best way might be to avoid the CoreLayer_GetPrimaryContext() in 
IDirectFB_Construct.

It could be done later when needed.

-- 
Best regards,
  Denis Oliver Kropp

.------------------------------------------.
| DirectFB - Hardware accelerated graphics |
| http://www.directfb.org/                 |
"------------------------------------------"
_______________________________________________
directfb-dev mailing list
directfb-dev@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to