2007-02-13 dok 20:05:42 Denis Oliver Kropp Files: examples/.cvsignore (1.2) (+1 -0;) examples/dfbplay.cpp (1.1) (27J3qZVNZqCPTm6s; ) examples/Makefile.am (1.4) (+1 -2;) oops, here it is 2007-02-13 mws 19:52:07 Files: examples/Makefile.am (1.3) (+2 -1;) removed dfbplay from examples Makefile.am for now reason: source is not present this fixed compiling again 2007-02-02 dok 22:02:20 Denis Oliver Kropp Files: ChangeLog (1.4) (+37 -0;) examples/tests/data/Makefile.am (1.1) (4I4Dlvf8yE7NTX4s; ) examples/tests/data/.cvsignore (1.1) (4I4Dlvf8yE7NTX4s; ) examples/tests/Makefile.am (1.2) (+2 -2;) configure.in (1.9) (+2 -1;) distfix 2007-02-02 dok 20:46:45 Denis Oliver Kropp Files: ++dfb/idirectfbsurface.cpp (1.10) (+9 -0;) include/idirectfbsurface.h (1.12) (+2 -0;) IDirectFBSurface::GetFramebufferOffset() 2007-02-02 dok 20:43:08 Denis Oliver Kropp Files: ChangeLog (1.3) (+168 -54;) include/idirectfbwindow.h (1.4) (+9 -2;) include/idirectfbsurface.h (1.11) (+4 -0;) include/idirectfbdisplaylayer.h (1.6) (+1 -0;) examples/tests/data/test32x32x16.dfiff (1.1) (HVcZKVYh368ysX4s; ) examples/tests/data/test32x32.tif (1.1) (HVcZKVYh368ysX4s; ) examples/tests/data/test32x32.ppm (1.1) (HVcZKVYh368ysX4s; ) examples/tests/data/test32x32.png (1.1) (HVcZKVYh368ysX4s; ) examples/tests/data/test32x32.jpeg (1.1) (HVcZKVYh368ysX4s; ) examples/tests/data/test32x32.gif (1.1) (HVcZKVYh368ysX4s; ) examples/tests/data/test32x32.dfiff (1.1) (HVcZKVYh368ysX4s; ) examples/tests/data/test32x32.bmp (1.1) (HVcZKVYh368ysX4s; ) examples/tests/images.cpp (1.1) (HVcZKVYh368ysX4s; ) examples/tests/Makefile.am (1.1) (HVcZKVYh368ysX4s; ) examples/tests/.cvsignore (1.1) (HVcZKVYh368ysX4s; ) examples/Makefile.am (1.2) (+7 -1;) ++dfb/idirectfbwindow.cpp (1.3) (+16 -2;) ++dfb/idirectfbsurface.cpp (1.9) (+12 -0;) ++dfb/idirectfbdisplaylayer.cpp (1.6) (+5 -0;) configure.in (1.8) (+4 -3;) Update for 1.0.0 and some test stuff I had lying around. 2007-01-08 marka 16:01:10 Files: ++dfb.spec.in (1.1) (N5EIaVN9Qw7AHI1s; ) configure.in (1.7) (+1 -0;) .cvsignore (1.3) (+1 -0;) Added spec file for building RPM packages. 2006-12-17 mws 22:48:07 Files: .cvsignore (1.2) (+10 -0;) updated cvsignore a bit 2006-12-17 mws 22:29:31 Files: include/++dfb.h (1.6) (+4 -4;) fix wrong copy ctor argument; thanks to Phil Endecott for pointing out. 2006-10-01 mws 00:23:12 Files: ++dfb/idirectfbfont.cpp (1.4) (+10 -0;) include/idirectfbfont.h (1.4) (+7 -0;) follow up integration of GetStringBreak in DirectFB for testing purposes in ++dfb; 2006-07-08 klan 14:16:06 Files: ++dfb/idirectfbdisplaylayer.cpp (1.5) (+12 -0;) include/idirectfbvideoprovider.h (1.7) (+9 -1;) include/idirectfbsurface.h (1.10) (+17 -7;) include/idirectfbscreen.h (1.4) (+3 -0;) include/idirectfbfont.h (1.3) (+7 -0;) include/idirectfbdisplaylayer.h (1.5) (+5 -0;) ++dfb/idirectfbvideoprovider.cpp (1.5) (+34 -2;) ++dfb/idirectfbsurface.cpp (1.8) (+37 -11;) ++dfb/idirectfbscreen.cpp (1.3) (+6 -0;) ++dfb/idirectfbfont.cpp (1.3) (+18 -0;) Updated to current DirectFB API. 2006-05-20 klan 13:25:32 Files: configure.in (1.6) (+1 -1;) 0.9.26 required. 2006-05-20 klan 13:24:52 Files: ++dfb/idirectfbinputdevice.cpp (1.2) (+5 -0;) include/idirectfbwindow.h (1.3) (+1 -0;) include/idirectfbinputdevice.h (1.3) (+1 -0;) ++dfb/idirectfbwindow.cpp (1.2) (+5 -0;) Added IDirectFBWindow::DetachEventBuffer() and IDirectFBInputDevice::DetachEventBuffer(). 2006-05-07 dok 00:00:35 Denis Oliver Kropp Files: examples/dfbswitch.cpp (1.2) (+19 -1;) Pass "-l" to get a list of modes. 2006-03-26 dok 18:56:52 Denis Oliver Kropp Files: autogen.sh (1.2) (+1 -1;) Fix autoconf version detection. 2006-01-15 klan 19:18:02 Files: ++dfb/idirectfbvideoprovider.cpp (1.4) (+9 -0;) include/idirectfbvideoprovider.h (1.6) (+2 -1;) Added IDirectFBVideoProvider::GetStatus(). 2006-01-15 klan 12:25:59 Files: ++dfb/idirectfbeventbuffer.cpp (1.3) (+9 -0;) include/idirectfbvideoprovider.h (1.5) (+1 -0;) include/idirectfbsurface.h (1.9) (+2 -0;) include/idirectfbeventbuffer.h (1.4) (+3 -0;) ++dfb/idirectfbvideoprovider.cpp (1.3) (+5 -0;) ++dfb/idirectfbsurface.cpp (1.7) (+4 -0;) Implemented IDirectFBSurface::GetClip(), IDirectFBEventBuffer::EnableStatistics(), IDirectFBEventBuffer::GetStatistics(), IDirectFBVideoProvider::GetStreamDescription(). 2005-11-04 klan 09:43:41 Files: configure.in (1.5) (+1 -1;) Version 0.9.25. 2005-10-30 klan 18:34:44 Files: ++dfb/idirectfbvideoprovider.cpp (1.2) (+5 -0;) include/idirectfbvideoprovider.h (1.4) (+2 -0;) IDirectFBVideoProvider::SendEvent(). 2005-10-26 klan 16:30:06 Files: ChangeLog (1.2) (+360 -0;) Updated ChangeLog. 2005-10-26 klan 16:29:03 Files: configure.in (1.4) (+1 -1;) Version 0.9.24. 2005-10-26 klan 16:28:28 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 Files: include/idirectfbeventbuffer.h (1.3) (+1 -1;) Thanks again to Mark Adams ! 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 Files: ++dfb/idirectfbeventbuffer.cpp (1.2) (+9 -2;) Thanks again to Mark Adams ! 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 Files: ++dfb/idirectfbdisplaylayer.cpp (1.4) (+1 -1;) Fixed SetColorAdjustment(), thanks to Mark Adams ! 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 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 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 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 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 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 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 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 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 Files: configure.in (1.2) (+1 -1;) 0.9.22 2004-08-17 dok 20:07:54 Denis Oliver Kropp 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 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 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;