]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/dfb/private.h
fix warning about empty if statement in HDCClipper ctor in release build
[wxWidgets.git] / include / wx / dfb / private.h
index a613c53b4ab1e1e49e8475401e531233cd13cbd6..23c6d830acaaa855af89431604aeed8341240648 100644 (file)
 #include "wx/intl.h"
 #include "wx/log.h"
 
-#include <directfb.h>
+#include "wx/dfb/wrapdfb.h"
 #include <directfb_version.h>
 
-#include "wx/dfb/ifacehelpers.h"
-
-wxDFB_DECLARE_INTERFACE(IDirectFB);
-wxDFB_DECLARE_INTERFACE(IDirectFBDisplayLayer);
-wxDFB_DECLARE_INTERFACE(IDirectFBSurface);
-wxDFB_DECLARE_INTERFACE(IDirectFBPalette);
-
 //-----------------------------------------------------------------------------
 // strings conversion
 //-----------------------------------------------------------------------------
@@ -35,59 +28,6 @@ wxDFB_DECLARE_INTERFACE(IDirectFBPalette);
     #define wxSTR_TO_DFB(s)    wxConvUTF8.cWC2MB((s).wc_str(*wxConvUI))
 #endif
 
-//-----------------------------------------------------------------------------
-// error checking
-//-----------------------------------------------------------------------------
-
-inline bool wxDfbCheckReturn(DFBResult code)
-{
-    switch ( code )
-    {
-        case DFB_OK:
-            return true;
-
-        // these are programming errors, assert:
-        #define DFB_ASSERT(code)                                        \
-            case code:                                                  \
-                wxFAIL_MSG( _T("DirectFB error: ") _T(#code) );         \
-                return false                                            \
-
-        DFB_ASSERT(DFB_DEAD);
-        DFB_ASSERT(DFB_UNSUPPORTED);
-        DFB_ASSERT(DFB_UNIMPLEMENTED);
-        DFB_ASSERT(DFB_INVARG);
-        DFB_ASSERT(DFB_NOIMPL);
-        DFB_ASSERT(DFB_MISSINGFONT);
-        DFB_ASSERT(DFB_THIZNULL);
-        DFB_ASSERT(DFB_INVAREA);
-        DFB_ASSERT(DFB_DESTROYED);
-        DFB_ASSERT(DFB_NOSUCHMETHOD);
-        DFB_ASSERT(DFB_NOSUCHINSTANCE);
-        DFB_ASSERT(DFB_VERSIONMISMATCH);
-
-        #undef  DFB_ASSERT
-
-        // these are not errors, but valid return codes:
-        case DFB_INTERRUPTED:
-        case DFB_BUFFEREMPTY:
-            return true;
-
-        default:
-            // FIXME: should handle the errors individually
-            wxLogError(_("DirectFB error %d occured."), (int)code);
-            return false;
-    }
-}
-
-/**
-    Wrap all calls to DirectFB in this macro so that the return value is
-    checked and errors reported as appropriate.
-
-    Returns true if the call succeeded, false otherwise.
- */
-#define DFB_CALL(call)      (wxDfbCheckReturn(call))
-
-
 //-----------------------------------------------------------------------------
 // surface manipulation helpers
 //-----------------------------------------------------------------------------
@@ -106,49 +46,22 @@ enum wxDfbCloneSurfaceMode
     either makes exact copy (wxDfbCloneSurface_CopyPixels) or only creates a
     new surface with the same size and attributes (wxDfbCloneSurface_NoPixels).
  */
-IDirectFBSurfacePtr wxDfbCloneSurface(const IDirectFBSurfacePtr& s,
-                                      wxDfbCloneSurfaceMode mode);
+wxIDirectFBSurfacePtr wxDfbCloneSurface(const wxIDirectFBSurfacePtr& s,
+                                        wxDfbCloneSurfaceMode mode);
 
 /// Returns bit depth used by the surface
-int wxDfbGetSurfaceDepth(const IDirectFBSurfacePtr& s);
+int wxDfbGetSurfaceDepth(const wxIDirectFBSurfacePtr& s);
 
 /// Returns interface to the primary display layer:
-IDirectFBDisplayLayerPtr wxDfbGetDisplayLayer();
+wxIDirectFBDisplayLayerPtr wxDfbGetDisplayLayer();
 
 /// Returns interface to the primary surface:
-IDirectFBSurfacePtr wxDfbGetPrimarySurface();
-
+wxIDirectFBSurfacePtr wxDfbGetPrimarySurface();
 
 //-----------------------------------------------------------------------------
-// wxDfbEvent
+// misc helpers
 //-----------------------------------------------------------------------------
 
-/**
-    The struct defined by this macro is a thin wrapper around DFB*Event type.
-    It is needed because DFB*Event are typedefs and so we can't forward declare
-    them, but we need to pass them to methods declared in public headers where
-    <directfb.h> cannot be included. So this struct just holds the event value,
-    it's sole purpose is that it can be forward declared.
- */
-#define WXDFB_DEFINE_EVENT_WRAPPER(T)                                       \
-    struct wx##T                                                            \
-    {                                                                       \
-        wx##T() {}                                                          \
-        wx##T(const T& event) : m_event(event) {}                           \
-                                                                            \
-        operator T&() { return m_event; }                                   \
-        operator const T&() const { return m_event; }                       \
-        T* operator&() { return &m_event; }                                 \
-                                                                            \
-        DFBEventClass GetClass() const { return m_event.clazz; }            \
-                                                                            \
-    private:                                                                \
-        T m_event;                                                          \
-    };
-
-WXDFB_DEFINE_EVENT_WRAPPER(DFBEvent)
-WXDFB_DEFINE_EVENT_WRAPPER(DFBWindowEvent)
-
 /// Convert DirectFB timestamp to wxEvent one:
 #define wxDFB_EVENT_TIMESTAMP(event) \
         ((event).timestamp.tv_sec * 1000 + (event).timestamp.tv_usec / 1000)
@@ -156,7 +69,7 @@ WXDFB_DEFINE_EVENT_WRAPPER(DFBWindowEvent)
 /**
     Check if DirectFB library version is at least @a major.@a minor.@a release.
 
-    @sa wxCHECK_VERSION
+    @see wxCHECK_VERSION
  */
 #define wxCHECK_DFB_VERSION(major,minor,release) \
     (DIRECTFB_MAJOR_VERSION > (major) || \