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.