CVSROOT:        /cvs/directfb
Module name:    DirectFB
Changes by:     dok     20041109 02:28:04

Modified files:
        src/core       : core.c fonts.c fonts.h gfxcard.c gfxcard.h 
                         state.c state.h surfaces.c surfaces.h system.h 
                         wm.h 
        src/display    : idirectfbsurface.c 
        src/gfx/generic: generic.c 

Log message:
Use DirectSerial for CoreSurface, increased by dfb_surface_notify_listeners().

Removed the surface listeners attached by dfb_state_set_destination() and
dfb_state_set_source().

Store the serial of the source and destination surface in each state.

Added dfb_state_update() which does the work of the removed listeners
if direct_serial_update() returns true. Updating the source is optional.
Only surfaces set via dfb_state_set_*() are handled.

Use dfb_state_update() in dfb_gfxcard_state_acquire() and gAcquire().

Use dfb_state_set_destination() for the font's state to avoid setting up the
accelerators destination settings for each DrawString().

Added dfb_font_drop_destination() being called by IDirectFBSurface::SetFont()
and IDirectFBSurface_Destruct() and unsets the font's state destination if it
matches the specified surface. This avoids late deallocation of the surface
when the font's state destination is changed for another reason.



Reply via email to