2005-10-26   klan	16:29:03	Claudio Ciccani <klan82@cheapnet.it>

	Files:	configure.in (1.4) (+1 -1)
	
	Version 0.9.24.
	
2005-10-26   klan	16:28:28	Claudio Ciccani <klan82@cheapnet.it>

	Files:	++dfb/idirectfbdatabuffer.cpp (1.2) (+14 -0)
		include/idirectfbvideoprovider.h (1.3) (+2 -0)
		include/idirectfbdatabuffer.h (1.3) (+2 -0)
	
	Follow recent API changes.
	
2005-09-14   dok	14:28:43	Denis Oliver Kropp <dok@directfb.org>

	Files:	include/idirectfbeventbuffer.h (1.3) (+1 -1)
	
	Thanks again to Mark Adams <mark147m@gmail.com>!
	
	He changed WaitForEventWithTimeout() so that it doesn't throw an
	exception when a timeout occurs, which is a normal circumstance.
	
	Instead it returns true if events are available or false after a timeout.
	
2005-09-14   dok	14:28:42	Denis Oliver Kropp <dok@directfb.org>

	Files:	++dfb/idirectfbeventbuffer.cpp (1.2) (+9 -2)
	
	Thanks again to Mark Adams <mark147m@gmail.com>!
	
	He changed WaitForEventWithTimeout() so that it doesn't throw an
	exception when a timeout occurs, which is a normal circumstance.
	
	Instead it returns true if events are available or false after a timeout.
	
2005-09-14   dok	14:05:27	Denis Oliver Kropp <dok@directfb.org>

	Files:	++dfb/idirectfbdisplaylayer.cpp (1.4) (+1 -1)
	
	Fixed SetColorAdjustment(), thanks to Mark Adams <mark147m@gmail.com>!
	
2005-06-06   mws	19:51:19	

	Files:	include/++dfb.h (1.5) (+4 -4)
		include/idirectfbsurface.h (1.8) (+1 -1)
	
	use c++ style casting;
	
2005-06-01   mws	00:19:14	

	Files:	include/idirectfb.h (1.4) (+8 -8)
		include/idirectfbsurface.h (1.7) (+2 -2)
	
	fix wrong template param in copy constructor;
	more const'ed member functions;
	fix return type in template copy constructor;
	
	 ++dfb.h              |    9 +++++----
	 idirectfb.cpp        |   12 ++++++------
	 idirectfb.h          |   16 ++++++++--------
	 idirectfbsurface.cpp |    6 +++---
	 idirectfbsurface.h   |    4 ++--
	 5 files changed, 24 insertions(+), 23 deletions(-)
	
2005-06-01   mws	00:19:13	

	Files:	++dfb/idirectfb.cpp (1.3) (+6 -6)
		include/++dfb.h (1.4) (+5 -4)
		++dfb/idirectfbsurface.cpp (1.6) (+3 -3)
	
	fix wrong template param in copy constructor;
	more const'ed member functions;
	fix return type in template copy constructor;
	
	 ++dfb.h              |    9 +++++----
	 idirectfb.cpp        |   12 ++++++------
	 idirectfb.h          |   16 ++++++++--------
	 idirectfbsurface.cpp |    6 +++---
	 idirectfbsurface.h   |    4 ++--
	 5 files changed, 24 insertions(+), 23 deletions(-)
	
2005-05-30   mws	21:36:57	

	Files:	++dfb/idirectfbfont.cpp (1.2) (+8 -8)
		include/idirectfbwindow.h (1.2) (+9 -2)
		include/idirectfbvideoprovider.h (1.2) (+9 -3)
		include/idirectfbsurface.h (1.6) (+9 -3)
		include/idirectfbscreen.h (1.3) (+9 -2)
		include/idirectfbpalette.h (1.2) (+9 -2)
		include/idirectfbinputdevice.h (1.2) (+9 -3)
		include/idirectfbimageprovider.h (1.2) (+9 -3)
		include/idirectfbfont.h (1.2) (+17 -10)
		include/idirectfbeventbuffer.h (1.2) (+9 -2)
		include/idirectfbdisplaylayer.h (1.4) (+9 -2)
		include/idirectfbdatabuffer.h (1.2) (+9 -2)
		include/idirectfb.h (1.3) (+9 -3)
		include/++dfb.h (1.3) (+54 -101)
	
	changed ++DFB class interface from
	huge #define macro to a template class
	adapted all clientclasses to be derived;
	consted some of the idirectfbfont member functions;
	
	 changed files:
	 ++dfb.h                  |  155 ++++++++++++++++-------------------------------
	 idirectfb.h              |   12 ++-
	 idirectfbdatabuffer.h    |   11 ++-
	 idirectfbdisplaylayer.h  |   11 ++-
	 idirectfbeventbuffer.h   |   11 ++-
	 idirectfbfont.cpp        |   16 ++--
	 idirectfbfont.h          |   27 +++++---
	 idirectfbimageprovider.h |   12 ++-
	 idirectfbinputdevice.h   |   12 ++-
	 idirectfbpalette.h       |   11 ++-
	 idirectfbscreen.h        |   11 ++-
	 idirectfbsurface.h       |   12 ++-
	 idirectfbvideoprovider.h |   12 ++-
	 idirectfbwindow.h        |   11 ++-
	 14 files changed, 178 insertions(+), 146 deletions(-)
	
2005-04-06   dok	21:01:41	Denis Oliver Kropp <dok@directfb.org>

	Files:	++dfb/idirectfb.cpp (1.2) (+2 -2)
		include/idirectfb.h (1.2) (+1 -1)
	
	GetCardCapabilities() -> GetDeviceDescription()
	
2005-03-22   dok	12:46:10	Denis Oliver Kropp <dok@directfb.org>

	Files:	++dfb/idirectfbscreen.cpp (1.2) (+74 -0)
		include/idirectfbscreen.h (1.2) (+39 -0)
	
	Added missing methods.
	
2005-03-11   dok	13:26:08	Denis Oliver Kropp <dok@directfb.org>

	Files:	++dfb/idirectfbsurface.cpp (1.5) (+6 -1)
		include/idirectfbsurface.h (1.5) (+2 -1)
	
	More SetColor() convenience.
	
2005-02-28   dok	10:04:41	Denis Oliver Kropp <dok@directfb.org>

	Files:	configure.in (1.3) (+1 -1)
		include/idirectfbsurface.h (1.4) (+4 -1)
		++dfb/idirectfbsurface.cpp (1.4) (+5 -0)
	
	Added IDirectFBSurface::DisableAcceleration().
	
2005-02-27   dok	12:14:03	Denis Oliver Kropp <dok@directfb.org>

	Files:	++dfb/idirectfbdisplaylayer.cpp (1.3) (+8 -0)
		include/idirectfbsurface.h (1.3) (+3 -1)
		include/idirectfbdisplaylayer.h (1.3) (+4 -0)
		++dfb/idirectfbsurface.cpp (1.3) (+6 -1)
	
	Added IDirectFBDisplayLayer::SetScreenRectangle().
	
	Added IDirectFBSurface::FillRectangles().
	
2005-02-10   dok	15:38:41	Denis Oliver Kropp <dok@directfb.org>

	Files:	++dfb/idirectfbsurface.cpp (1.2) (+5 -0)
		include/idirectfbsurface.h (1.2) (+5 -1)
	
	Added IDirectFBSurface::SetAlphaRamp().
	
	Changed default alpha of Clear() from 0xff to 0x00.
	
2005-01-19   dok	23:09:50	Denis Oliver Kropp <dok@directfb.org>

	Files:	include/++dfb.h (1.2) (+9 -0)
	
	Fix reference counting by implementing the
	constructor "Interface( const Interface &other )".
	
2005-01-19   dok	21:30:40	Denis Oliver Kropp <dok@directfb.org>

	Files:	++dfb/idirectfbdisplaylayer.cpp (1.2) (+6 -0)
		include/idirectfbdisplaylayer.h (1.2) (+2 -0)
	
	Added IDirectFBDisplayLayer::SetScreenPosition().
	
2005-01-19   dok	21:20:37	Denis Oliver Kropp <dok@directfb.org>

	Files:	configure.in (1.2) (+1 -1)
	
	0.9.22
	
2004-08-17   dok	20:07:54	Denis Oliver Kropp <dok@directfb.org>

	Files:	++dfb/++dfb.cpp (1.2) (+0 -0)
		++dfb/ppdfb.cpp (1.1) ( )
		++dfb/Makefile.am (1.3) (+1 -1)
	
	libfool!
	
2004-08-17   dok	19:54:49	Denis Oliver Kropp <dok@directfb.org>

	Files:	++dfb/++dfb.cpp (1.1) ( )
		++dfb/dfb++_internal.h (1.2) (+0 -0)
		++dfb/dfb++.cpp (1.2) (+0 -0)
		++dfb/Makefile.am (1.2) (+3 -3)
		++dfb/++dfb_internal.h (1.1) ( )
	
	Forgot some renaming.
	
2004-08-17   dok	19:50:07	Denis Oliver Kropp <dok@directfb.org>

	Files:	++dfb-config.in (1.1) ( )
		include/idirectfbwindow.h (1.1) ( )
		include/idirectfbvideoprovider.h (1.1) ( )
		include/idirectfbsurface.h (1.1) ( )
		include/idirectfbscreen.h (1.1) ( )
		include/idirectfbpalette.h (1.1) ( )
		include/idirectfbinputdevice.h (1.1) ( )
		include/idirectfbimageprovider.h (1.1) ( )
		include/idirectfbfont.h (1.1) ( )
		include/idirectfbeventbuffer.h (1.1) ( )
		include/idirectfbdisplaylayer.h (1.1) ( )
		include/idirectfbdatabuffer.h (1.1) ( )
		include/idirectfb.h (1.1) ( )
		include/Makefile.am (1.1) ( )
		include/.cvsignore (1.1) ( )
		include/++dfb.h (1.1) ( )
		examples/simple.cpp (1.1) ( )
		examples/dfbswitch.cpp (1.1) ( )
		examples/dfbshow.cpp (1.1) ( )
		examples/dfbimage.h (1.1) ( )
		examples/dfbimage.cpp (1.1) ( )
		examples/dfbapp.h (1.1) ( )
		examples/dfbapp.cpp (1.1) ( )
		examples/Makefile.am (1.1) ( )
		examples/.cvsignore (1.1) ( )
		++dfb/idirectfbwindow.cpp (1.1) ( )
		++dfb/idirectfbvideoprovider.cpp (1.1) ( )
		++dfb/idirectfbsurface.cpp (1.1) ( )
		++dfb/idirectfbscreen.cpp (1.1) ( )
		++dfb/idirectfbpalette.cpp (1.1) ( )
		++dfb/idirectfbinputdevice.cpp (1.1) ( )
		++dfb/idirectfbimageprovider.cpp (1.1) ( )
		++dfb/idirectfbfont.cpp (1.1) ( )
		++dfb/idirectfbeventbuffer.cpp (1.1) ( )
		++dfb/idirectfbdisplaylayer.cpp (1.1) ( )
		++dfb/idirectfbdatabuffer.cpp (1.1) ( )
		++dfb/idirectfb.cpp (1.1) ( )
		++dfb/dfb++_internal.h (1.1) ( )
		++dfb/dfb++.cpp (1.1) ( )
		++dfb/Makefile.am (1.1) ( )
		++dfb/.cvsignore (1.1) ( )
		configure.in (1.1) ( )
		autogen.sh (1.1) ( )
		README (1.1) ( )
		NEWS (1.1) ( )
		Makefile.am (1.1) ( )
		ChangeLog (1.1) ( )
		AUTHORS (1.1) ( )
		.cvsignore (1.1) ( )
		++dfb.pc.in (1.1) ( )
	
	++DFB is an advanced version of DFB++
	
	It's an incompatible fork with fundamental changes.
	
	Applications no longer deal with interface pointers. The classes
	wrapping around interfaces are used a container for an interface
	pointer, providing garbage collection the "direct" way 8-)
	
	By overwriting certain operators, e.g. '=', the need to care
	about AddRef() and Release() has been eliminated. These methods
	aren't even available anymore.
	
	All interfaces are released automatically now, either caused by
	finalization of an object having interface members, or by leaving
	a stack frame with an interface hold in a local variable.
	
	This also eliminates duplication of code caused by the lack of
	a C++ equivalent to Java's "finally" block.
	
	The following code is using DFB++:
	
	void DFBImage::Load( std::string filename )
	{
		IDirectFB              *dfb      = NULL;
		IDirectFBImageProvider *provider = NULL;
		IDirectFBSurface       *surface  = NULL;
	
		try {
			DFBSurfaceDescription desc;
	
			dfb = DirectFB::Create();
	
			provider = dfb->CreateImageProvider( filename.data() );
	
			provider->GetSurfaceDescription( &desc );
	
			surface = dfb->CreateSurface( desc );
	
			provider->RenderTo( surface, NULL );
		}
		/* Work around missing "finally". */
		catch (...) {
			if (surface)
				surface->Release();
	
			if (provider)
				provider->Release();
	
			if (dfb)
				dfb->Release();
	
			throw;
		}
	
		m_surface = surface;	/* Keep pointer to interface object. */
	
		provider->Release();
		dfb->Release();
	}
	
	This is how it's looking using ++DFB:
	
	void DFBImage::Load( std::string filename )
	{
		IDirectFB              dfb;
		IDirectFBImageProvider provider;
		IDirectFBSurface       surface;
		DFBSurfaceDescription  desc;
	
		dfb = DirectFB::Create();
	
		provider = dfb.CreateImageProvider( filename.data() );
	
		provider.GetSurfaceDescription( &desc );
	
		surface = dfb.CreateSurface( desc );
	
		provider.RenderTo( surface, NULL );
	
		m_surface = surface;
	}
	
	The last line instructs the container object 'm_surface' (member)
	to take the interface pointer from 'surface' after calling AddRef().
	
	Leaving the stack frame due to an exception or a return causes
	finalization of the local container objects 'dfb', 'provider'
	and 'surface' calling Release() if they've already been assigned
	an interface pointer.
	
	The suggested way of passing interfaces via parameters
	is to use C++ references as in this declaration:
	
		void PrepareTarget( IDirectFBSurface &target );
	
	Explicitly releasing an interface is as simple as this:
	
		m_surface = NULL;
	
