X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6a613ad62508cde5aa9b9dca9204a82cd41d8831..049e9de730f0399eb4c0ea13456d8ddff5b7100a:/include/wx/dfb/wrapdfb.h diff --git a/include/wx/dfb/wrapdfb.h b/include/wx/dfb/wrapdfb.h index 970c6ebf96..d4b5467a5e 100644 --- a/include/wx/dfb/wrapdfb.h +++ b/include/wx/dfb/wrapdfb.h @@ -231,10 +231,11 @@ struct wxIDirectFBSurface : public wxDfbWrapper (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 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 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 return NULL; } + /// Returns primary surface + wxIDirectFBSurfacePtr GetPrimarySurface(); + private: wxIDirectFB(IDirectFB *ptr) { Init(ptr); }