New commits:
http://git.directfb.org/?p=core/DirectFB.git;a=commit;h=fee7392214beaa050576c455ca19c58e0b1aad0c
commit fee7392214beaa050576c455ca19c58e0b1aad0c
Author: Denis Oliver Kropp <[email protected]>
Date: Mon Aug 29 04:15:58 2011 +0200
Core: Make Surface Buffer a FusionObject and implement locked surface
resizing
The Surface Buffer object is created when a surface is created or
reconfigured.
It has a global ref count of as long as it belongs to the surface.
dfb_surface_reconfig() no longer returns when a surface is locked, but
decouples
the buffers by setting the back pointer from the Surface Buffer object to
the surface to NULL
and decreasing the global ref count.
When a buffer is locked, the local ref count is increased, to keep the
buffer
object alive until the buffer is unlocked.
Fixed locking for a few functions accessing surface members before locking
it.
Weak 'locked' counter in buffer is now replaced by
dfb_surface_buffer_locks()
function returning the local ref count of the Surface Buffer object.
All functions involved in unlocking and deallocating a buffer may no longer
use the surface back pointer unconditionally.
src/core/CoreSurface_real.cpp | 9 ++-
src/core/core.c | 54 ++++++++++++++++
src/core/core.h | 6 ++
src/core/shared_secure_surface_pool.c | 14 ++--
src/core/surface.c | 85 +++++++++++++-------------
src/core/surface_buffer.c | 108 ++++++++++++++++++++++-----------
src/core/surface_buffer.h | 38 ++++++++++--
src/core/surface_pool.c | 17 +++--
systems/devmem/surfacemanager.c | 7 +-
systems/fbdev/surfacemanager.c | 7 +-
systems/x11/surfacemanager.c | 7 +-
tools/dfbdump.c | 2 +-
12 files changed, 243 insertions(+), 111 deletions(-)
_______________________________________________
directfb-cvs mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-cvs