summaryrefslogtreecommitdiff
path: root/Source/++DFB/dok.diff
diff options
context:
space:
mode:
Diffstat (limited to 'Source/++DFB/dok.diff')
-rwxr-xr-xSource/++DFB/dok.diff378
1 files changed, 378 insertions, 0 deletions
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 <directfb.h>
++#include <directfb_strings.h>
++#include <directfb_util.h>
++}
+
+ #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 &region ) {
++ 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 &region ) {
++ 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 &region ) 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 &region ) {
++ 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 &region ) {
++ 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"