]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/dfb/wrapdfb.h
rename the ID parameter
[wxWidgets.git] / include / wx / dfb / wrapdfb.h
index 970c6ebf96d9fe82f461639778e49f6a3b8cc4d2..d4b5467a5e06c03c989d6f3b54ef5f9f990d565e 100644 (file)
@@ -231,10 +231,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)
     {
@@ -266,10 +267,54 @@ struct wxIDirectFBSurface : public wxDfbWrapper<IDirectFBSurface>
     bool Blit(const wxIDirectFBSurfacePtr& source,
               const DFBRectangle *source_rect,
               int x, int y)
+        { return Blit(source->GetRaw(), source_rect, x, y); }
+
+    bool Blit(IDirectFBSurface *source,
+              const DFBRectangle *source_rect,
+              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->Blit(m_ptr, source->GetRaw(), source_rect, x, y));
+        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();
+
+    /**
+        Creates a new surface by cloning this one. New surface will have same
+        capabilities, pixel format and pixel data as the existing one.
+
+        @see CreateCompatible
+     */
+    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 flags Or-combination of CreateCompatibleFlags values
+     */
+    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);
 };
 
 
@@ -446,7 +491,8 @@ struct wxIDirectFB : public wxDfbWrapper<IDirectFB>
             return NULL;
     }
 
-    wxIDirectFBDisplayLayerPtr GetDisplayLayer(DFBDisplayLayerID id)
+    wxIDirectFBDisplayLayerPtr
+    GetDisplayLayer(DFBDisplayLayerID id = DLID_PRIMARY)
     {
         IDirectFBDisplayLayer *l;
         if ( Check(m_ptr->GetDisplayLayer(m_ptr, id, &l)) )
@@ -455,6 +501,9 @@ struct wxIDirectFB : public wxDfbWrapper<IDirectFB>
             return NULL;
     }
 
+    /// Returns primary surface
+    wxIDirectFBSurfacePtr GetPrimarySurface();
+
 private:
     wxIDirectFB(IDirectFB *ptr) { Init(ptr); }