(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)
{
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);
};
return NULL;
}
- wxIDirectFBDisplayLayerPtr GetDisplayLayer(DFBDisplayLayerID id)
+ wxIDirectFBDisplayLayerPtr
+ GetDisplayLayer(DFBDisplayLayerID id = DLID_PRIMARY)
{
IDirectFBDisplayLayer *l;
if ( Check(m_ptr->GetDisplayLayer(m_ptr, id, &l)) )
return NULL;
}
+ /// Returns primary surface
+ wxIDirectFBSurfacePtr GetPrimarySurface();
+
private:
wxIDirectFB(IDirectFB *ptr) { Init(ptr); }