X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/20671963efabd70a208b415c4734ee813b9eb439..89fad939ec0d423961d8e93b2a0927f5b77bf256:/src/dfb/wrapdfb.cpp diff --git a/src/dfb/wrapdfb.cpp b/src/dfb/wrapdfb.cpp index c237966963..afd6ee064b 100644 --- a/src/dfb/wrapdfb.cpp +++ b/src/dfb/wrapdfb.cpp @@ -116,7 +116,8 @@ int wxIDirectFBSurface::GetDepth() return DFB_BITS_PER_PIXEL(format); } -wxIDirectFBSurfacePtr wxIDirectFBSurface::CreateCompatible(const wxSize& sz) +wxIDirectFBSurfacePtr +wxIDirectFBSurface::CreateCompatible(const wxSize& sz, int flags) { wxSize size(sz); if ( size == wxDefaultSize ) @@ -135,6 +136,17 @@ wxIDirectFBSurfacePtr wxIDirectFBSurface::CreateCompatible(const wxSize& sz) desc.width = size.x; desc.height = size.y; + // filter out caps that don't make sense for a new compatible surface: + int caps = desc.caps; + caps &= ~DSCAPS_PRIMARY; + caps &= ~DSCAPS_SUBSURFACE; + if ( flags & CreateCompatible_NoBackBuffer ) + { + caps &= ~DSCAPS_DOUBLE; + caps &= ~DSCAPS_TRIPLE; + } + desc.caps = (DFBSurfaceCapabilities)caps; + wxIDirectFBSurfacePtr snew(wxIDirectFB::Get()->CreateSurface(&desc)); if ( !snew ) return NULL;