From 7fe60435bce6595a9c58a9bfd8244d74b5320e96 Mon Sep 17 00:00:00 2001 From: Benjamin Franzke Date: Tue, 15 Jan 2013 08:46:13 +0100 Subject: Import DirectFB141_2k11R3_beta5 --- Source/++DFB/dok.diff | 378 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 378 insertions(+) create mode 100755 Source/++DFB/dok.diff (limited to 'Source/++DFB/dok.diff') diff --git a/Source/++DFB/dok.diff b/Source/++DFB/dok.diff new file mode 100755 index 0000000..9f064e5 --- /dev/null +++ b/Source/++DFB/dok.diff @@ -0,0 +1,378 @@ +diff --git a/++dfb/idirectfb.cpp b/++dfb/idirectfb.cpp +index 415f7fa..87c812c 100644 +--- a/++dfb/idirectfb.cpp ++++ b/++dfb/idirectfb.cpp +@@ -119,7 +119,9 @@ IDirectFBEventBuffer IDirectFB::CreateEventBuffer () const + + DFBCHECK( iface->CreateEventBuffer (iface, &idirectfbeventbuffer) ); + +- return IDirectFBEventBuffer (idirectfbeventbuffer); ++ static IDirectFBEventBuffer *buffer = new IDirectFBEventBuffer (idirectfbeventbuffer); ++ return *buffer; ++// return IDirectFBEventBuffer (idirectfbeventbuffer); + } + + IDirectFBEventBuffer IDirectFB::CreateInputEventBuffer (DFBInputDeviceCapabilities caps, +diff --git a/++dfb/idirectfbsurface.cpp b/++dfb/idirectfbsurface.cpp +index bc29fd5..0e65af2 100644 +--- a/++dfb/idirectfbsurface.cpp ++++ b/++dfb/idirectfbsurface.cpp +@@ -348,7 +348,7 @@ void IDirectFBSurface::DrawLine (const DFBRegion &line) + IDirectFBSurface IDirectFBSurface::GetSubSurface (int x, int y, + int width, int height) + { +- DFBRectangle rect = { x, y, width, height }; ++ DFBRectangle rect( x, y, width, height ); + + IDirectFBSurface_C *idirectfbsurface; + +diff --git a/++dfb/idirectfbwindow.cpp b/++dfb/idirectfbwindow.cpp +index d80665a..457df0b 100644 +--- a/++dfb/idirectfbwindow.cpp ++++ b/++dfb/idirectfbwindow.cpp +@@ -51,7 +51,8 @@ IDirectFBEventBuffer IDirectFBWindow::CreateEventBuffer() + + DFBCHECK( iface->CreateEventBuffer (iface, &idirectfbeventbuffer) ); + +- return IDirectFBEventBuffer (idirectfbeventbuffer); ++ static IDirectFBEventBuffer *buffer = new IDirectFBEventBuffer (idirectfbeventbuffer); ++ return *buffer; + } + + void IDirectFBWindow::AttachEventBuffer (IDirectFBEventBuffer *buffer) +diff --git a/include/++dfb.h b/include/++dfb.h +index a7dbf79..fc7b863 100644 +--- a/include/++dfb.h ++++ b/include/++dfb.h +@@ -44,7 +44,17 @@ + #define IDirectFBVideoProvider IDirectFBVideoProvider_C + #define IDirectFBDataBuffer IDirectFBDataBuffer_C + ++#define DFBPoint DFBPoint_C ++#define DFBDimension DFBDimension_C ++#define DFBRectangle DFBRectangle_C ++#define DFBRegion DFBRegion_C ++ ++ ++extern "C" { + #include ++#include ++#include ++} + + #undef IDirectFB + #undef IDirectFBScreen +@@ -59,19 +69,266 @@ + #undef IDirectFBVideoProvider + #undef IDirectFBDataBuffer + +-class DirectFB; +-class IDirectFB; +-class IDirectFBScreen; +-class IDirectFBDisplayLayer; +-class IDirectFBSurface; +-class IDirectFBPalette; +-class IDirectFBWindow; +-class IDirectFBInputDevice; +-class IDirectFBEventBuffer; +-class IDirectFBFont; +-class IDirectFBImageProvider; +-class IDirectFBVideoProvider; +-class IDirectFBDataBuffer; ++#undef DFBPoint ++#undef DFBDimension ++#undef DFBRectangle ++#undef DFBRegion ++ ++ ++ ++class DFBPoint : public DFBPoint_C { ++public: ++ DFBPoint() { ++ x = 0; ++ y = 0; ++ } ++ ++ DFBPoint( const int &_x, const int &_y ) { ++ x = _x; ++ y = _y; ++ } ++ ++ DFBPoint( const DFBPoint_C &point ) { ++ x = point.x; ++ y = point.y; ++ } ++ ++ DFBPoint( const DFBRectangle_C &rectangle ) { ++ x = rectangle.x; ++ y = rectangle.y; ++ } ++ ++ DFBPoint( const DFBRegion_C ®ion ) { ++ x = region.x1; ++ y = region.y1; ++ } ++ ++ bool operator== ( const DFBPoint &ref ) const { ++ return ref.x == x && ref.y == y; ++ } ++ ++ DFBPoint operator +( const DFBPoint &offset ) const { ++ DFBPoint p( *this ); ++ p.x += offset.x; ++ p.y += offset.y; ++ return p; ++ } ++ ++ DFBPoint& operator +=( const DFBPoint& offset ) { ++ x += offset.x; ++ y += offset.y; ++ return *this; ++ } ++}; ++ ++class DFBDimension : public DFBDimension_C { ++public: ++ DFBDimension() { ++ w = 0; ++ h = 0; ++ } ++ ++ DFBDimension( const int &_w, const int &_h ) { ++ w = _w; ++ h = _h; ++ } ++ ++ DFBDimension( const DFBDimension_C &dimension ) { ++ w = dimension.w; ++ h = dimension.h; ++ } ++ ++ DFBDimension( const DFBPoint_C &point ) { ++ w = point.x; ++ h = point.y; ++ } ++ ++ DFBDimension( const DFBRectangle_C &rectangle ) { ++ w = rectangle.w; ++ h = rectangle.h; ++ } ++ ++ DFBDimension( const DFBRegion_C ®ion ) { ++ w = region.x2 - region.x1 + 1; ++ h = region.y2 - region.y1 + 1; ++ } ++ ++ bool operator== ( const DFBDimension &ref ) const { ++ return ref.w == w && ref.h == h; ++ } ++ ++ bool contains( const DFBRegion_C ®ion ) const { ++ if (region.x1 < 0 || region.y1 < 0) ++ return false; ++ ++ if (region.x2 >= w || region.y2 >= h) ++ return false; ++ ++ return true; ++ } ++}; ++ ++ ++ ++class DFBRectangle : public DFBRectangle_C { ++public: ++ DFBRectangle() { ++ x = 0; ++ y = 0; ++ w = 0; ++ h = 0; ++ } ++ ++ DFBRectangle( const int &_x, const int &_y, const int &_w, const int &_h ) { ++ x = _x; ++ y = _y; ++ w = _w; ++ h = _h; ++ } ++ ++ DFBRectangle( const DFBRectangle_C &rectangle ) { ++ x = rectangle.x; ++ y = rectangle.y; ++ w = rectangle.w; ++ h = rectangle.h; ++ } ++ ++ DFBRectangle( const DFBRegion_C ®ion ) { ++ x = region.x1; ++ y = region.y1; ++ w = region.x2 - region.x1 + 1; ++ h = region.y2 - region.y1 + 1; ++ } ++ ++ DFBRectangle( const DFBDimension_C &dimension ) { ++ x = 0; ++ y = 0; ++ w = dimension.w; ++ h = dimension.h; ++ } ++ ++ DFBRectangle( const DFBPoint_C &point, const DFBDimension_C &dimension ) { ++ x = point.x; ++ y = point.y; ++ w = dimension.w; ++ h = dimension.h; ++ } ++ ++ bool operator== ( const DFBRectangle &ref ) const { ++ return ref.x == x && ref.y == y && ref.w == w && ref.h == h; ++ } ++ ++ DFBRectangle& operator-= ( const DFBPoint &sub ) { ++ x -= sub.x; ++ y -= sub.y; ++ ++ return *this; ++ } ++ ++ DFBRectangle operator -( const DFBPoint &sub ) const { ++ return DFBRectangle( x - sub.x, y - sub.y, w, h ); ++ } ++ ++ DFBRectangle operator +( const DFBPoint &offset ) const { ++ DFBRectangle r( *this ); ++ r.x += offset.x; ++ r.y += offset.y; ++ return r; ++ } ++}; ++ ++ ++class DFBRegion : public DFBRegion_C { ++public: ++ DFBRegion() { ++ x1 = 0; ++ y1 = 0; ++ x2 = 0; ++ y2 = 0; ++ } ++ ++ DFBRegion( const int &_x1, const int &_y1, const int &_x2, const int &_y2 ) { ++ x1 = _x1; ++ y1 = _y1; ++ x2 = _x2; ++ y2 = _y2; ++ } ++ ++ DFBRegion( const DFBRegion_C ®ion ) { ++ x1 = region.x1; ++ y1 = region.y1; ++ x2 = region.x2; ++ y2 = region.y2; ++ } ++ ++ DFBRegion( const DFBRectangle_C &rectangle ) { ++ x1 = rectangle.x; ++ y1 = rectangle.y; ++ x2 = x1 + rectangle.w - 1; ++ y2 = y1 + rectangle.h - 1; ++ } ++ ++ DFBRegion( const DFBDimension_C &dimension ) { ++ x1 = 0; ++ y1 = 0; ++ x2 = dimension.w - 1; ++ y2 = dimension.h - 1; ++ } ++ ++ DFBRegion( const DFBPoint_C &point, const DFBDimension_C &dimension ) { ++ x1 = point.x; ++ y1 = point.y; ++ x2 = x1 + dimension.w - 1; ++ y2 = y1 + dimension.h - 1; ++ } ++ ++ bool operator== ( const DFBRegion &ref ) const { ++ return ref.x1 == x1 && ref.y1 == y1 && ref.x2 == x2 && ref.y2 == y2; ++ } ++ ++ DFBRegion& operator-= ( const DFBPoint &sub ) { ++ x1 -= sub.x; ++ y1 -= sub.y; ++ x2 -= sub.x; ++ y2 -= sub.y; ++ ++ return *this; ++ } ++ ++ DFBRegion operator- ( const DFBPoint &sub ) const { ++ return DFBRegion( x1 - sub.x, y1 - sub.y, x2 - sub.x, y2 - sub.y ); ++ } ++ ++ DFBRegion& operator|= ( const DFBRegion &r ) { ++ if (r.x1 < x1) ++ x1 = r.x1; ++ ++ if (r.y1 < y1) ++ y1 = r.y1; ++ ++ if (r.x2 > x2) ++ x2 = r.x2; ++ ++ if (r.y2 > y2) ++ y2 = r.y2; ++ ++ return *this; ++ } ++ ++ void unionWith ( const DFBRegion &r ) { ++ if (r.x1 < x1) ++ x1 = r.x1; ++ ++ if (r.y1 < y1) ++ y1 = r.y1; ++ ++ if (r.x2 > x2) ++ x2 = r.x2; ++ ++ if (r.y2 > y2) ++ y2 = r.y2; ++ } ++}; + + + +@@ -85,7 +342,7 @@ class IPPAny + inline IPPAny_C *get_iface() { return iface; } + inline IPPAny_C *get_iface() const { return iface; } + +- protected: ++ public: + IPPAny_C* iface; + public: + IPPAny(){ +@@ -132,6 +389,24 @@ class IPPAny + } + }; + ++ ++ ++ ++class DirectFB; ++class IDirectFB; ++class IDirectFBScreen; ++class IDirectFBDisplayLayer; ++class IDirectFBSurface; ++class IDirectFBPalette; ++class IDirectFBWindow; ++class IDirectFBInputDevice; ++class IDirectFBEventBuffer; ++class IDirectFBFont; ++class IDirectFBImageProvider; ++class IDirectFBVideoProvider; ++class IDirectFBDataBuffer; ++ ++ + #include "idirectfb.h" + #include "idirectfbscreen.h" + #include "idirectfbdisplaylayer.h" -- cgit