I implemented a fix for DFB 1.2.x (it appears to apply to 1.4.x as well), for 
when the directfbrc command no-init-layer[n] is used, to prevent a display 
layer surface buffer from being automatically flipped and made visible when the 
IDirectFB::GetDisplayLayer function is called.

This behavior occurs when the default display layer buffer mode is 
frontonly/backvideo/triple.  There is a specific FIXME note related to this 
defect in src/core/layer_context.c in dfb_layer_context_set_configuration when 
the dfb_windowstack_repaint_all function is called.

As a solution, I have had success by wrapping the window stack repaint call as 
follows:
  
               if (context->primary.region && 
                   !D_FLAGS_IS_SET( 
                         context->primary.region->state, 
                         CLRSF_FROZEN ))
               {
                    dfb_windowstack_repaint_all( stack );
               }

As far as I could tell CLRSF_REALIZED appeared to be mutually exclusive with 
CLRSF_FROZEN.

Further, I think that most calls to the dfb_windowstack_repaint_all function in 
the src/core/windowstack.c module should be similarly wrapped - including 
dfb_windowstack_set_background_mode/image/color/color_index and 
dfb_windowstack_background_image_listener (probably just for the CSNF_DESTROY 
notification).  By doing this, when the related display layer background 
configuration functions are called prior to an explicit user requested flip (or 
GetSurface if buffer mode is frontonly/single), an early flip is NOT performed.

Does this make sense to extend the CLRSF_FROZEN usage here?  Would such changes 
in windowstack.c break any common usaage models or the intent?

Any other places missing come to mind?

Thanks,
Timothy

--

Timothy Strelchun
CE Software Engineering
Digital Home Group
Intel Corporation

The views expressed above are my own and not those of Intel
_______________________________________________
directfb-dev mailing list
directfb-dev@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to