]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/dfb/wrapdfb.h
adding raster op hook
[wxWidgets.git] / include / wx / dfb / wrapdfb.h
index 30ef307513db7d45897e677647dde92905e5d789..9ce251c34d7f406754474977afc5746ac71c9a62 100644 (file)
@@ -17,6 +17,7 @@
 
 wxDFB_DECLARE_INTERFACE(IDirectFB);
 wxDFB_DECLARE_INTERFACE(IDirectFBDisplayLayer);
+wxDFB_DECLARE_INTERFACE(IDirectFBFont);
 wxDFB_DECLARE_INTERFACE(IDirectFBWindow);
 wxDFB_DECLARE_INTERFACE(IDirectFBSurface);
 wxDFB_DECLARE_INTERFACE(IDirectFBPalette);
@@ -231,10 +232,11 @@ struct wxIDirectFBSurface : public wxDfbWrapper<IDirectFBSurface>
                                          (DFBSurfaceTextFlags)flags));
     }
 
-    bool Flip(const DFBRegion *region, int flags)
-    {
-        return Check(m_ptr->Flip(m_ptr, region, (DFBSurfaceFlipFlags)flags));
-    }
+    /**
+        Updates the front buffer from the back buffer. If @a region is not
+        NULL, only given rectangle is updated.
+     */
+    bool FlipToFront(const DFBRegion *region = NULL);
 
     wxIDirectFBSurfacePtr GetSubSurface(const DFBRectangle *rect)
     {
@@ -273,6 +275,14 @@ struct wxIDirectFBSurface : public wxDfbWrapper<IDirectFBSurface>
               int x, int y)
         { return Check(m_ptr->Blit(m_ptr, source, source_rect, x, y)); }
 
+    bool StretchBlit(const wxIDirectFBSurfacePtr& source,
+              const DFBRectangle *source_rect,
+              const DFBRectangle *dest_rect)
+    {
+        return Check(m_ptr->StretchBlit(m_ptr, source->GetRaw(),
+                                        source_rect, dest_rect));
+    }
+
 
     /// Returns bit depth used by the surface or -1 on error
     int GetDepth();
@@ -285,14 +295,27 @@ struct wxIDirectFBSurface : public wxDfbWrapper<IDirectFBSurface>
      */
     wxIDirectFBSurfacePtr Clone();
 
+    /// Flags for CreateCompatible()
+    enum CreateCompatibleFlags
+    {
+        /// Don't create double-buffered surface
+        CreateCompatible_NoBackBuffer = 1
+    };
+
     /**
         Creates a surface compatible with this one, i.e. surface with the same
         capabilities and pixel format, but with different and size.
 
-        @param size Size of the surface to create. If wxDefaultSize, use the
-                    size of this surface.
+        @param size  Size of the surface to create. If wxDefaultSize, use the
+                     size of this surface.
+        @param flags Or-combination of CreateCompatibleFlags values
      */
-    wxIDirectFBSurfacePtr CreateCompatible(const wxSize& size = wxDefaultSize);
+    wxIDirectFBSurfacePtr CreateCompatible(const wxSize& size = wxDefaultSize,
+                                           int flags = 0);
+
+private:
+    // this is private because we want user code to use FlipToFront()
+    bool Flip(const DFBRegion *region, int flags);
 };
 
 
@@ -384,6 +407,9 @@ struct wxIDirectFBWindow : public wxDfbWrapper<IDirectFBWindow>
 
     bool RequestFocus()
         { return Check(m_ptr->RequestFocus(m_ptr)); }
+
+    bool Destroy()
+        { return Check(m_ptr->Destroy(m_ptr)); }
 };
 
 
@@ -404,14 +430,10 @@ struct wxIDirectFBDisplayLayer : public wxDfbWrapper<IDirectFBDisplayLayer>
             return NULL;
     }
 
-    wxIDirectFBSurfacePtr GetSurface()
-    {
-        IDirectFBSurface *s;
-        if ( Check(m_ptr->GetSurface(m_ptr, &s)) )
-            return new wxIDirectFBSurface(s);
-        else
-            return NULL;
-    }
+    bool GetConfiguration(DFBDisplayLayerConfig *config)
+        { return Check(m_ptr->GetConfiguration(m_ptr, config)); }
+
+    wxVideoMode GetVideoMode();
 
     bool GetCursorPosition(int *x, int *y)
         { return Check(m_ptr->GetCursorPosition(m_ptr, x, y)); }