X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7e2baeb41321aedca928608f816f03c13afdeff9..0bbe61b8c18a1795189f0cf73cc61c14a0fb846d:/src/dfb/wrapdfb.cpp diff --git a/src/dfb/wrapdfb.cpp b/src/dfb/wrapdfb.cpp index afd6ee064b..e05ad09541 100644 --- a/src/dfb/wrapdfb.cpp +++ b/src/dfb/wrapdfb.cpp @@ -15,6 +15,11 @@ #pragma hdrstop #endif +#ifndef WX_PRECOMP + #include "wx/intl.h" + #include "wx/log.h" +#endif + #include "wx/dfb/wrapdfb.h" //----------------------------------------------------------------------------- @@ -31,7 +36,7 @@ bool wxDfbCheckReturn(DFBResult code) // these are programming errors, assert: #define DFB_ASSERT(code) \ case code: \ - wxFAIL_MSG( _T("DirectFB error: ") _T(#code) ); \ + wxFAIL_MSG( "DirectFB error: " _T(#code) ); \ return false \ DFB_ASSERT(DFB_DEAD); @@ -98,14 +103,23 @@ void wxIDirectFB::CleanUp() wxIDirectFBSurfacePtr wxIDirectFB::GetPrimarySurface() { - wxIDirectFBDisplayLayerPtr layer(GetDisplayLayer()); - return layer ? layer->GetSurface() : NULL; + DFBSurfaceDescription desc; + desc.flags = DSDESC_CAPS; + desc.caps = DSCAPS_PRIMARY; + return CreateSurface(&desc); } //----------------------------------------------------------------------------- // wxIDirectFBSurface //----------------------------------------------------------------------------- +DFBSurfacePixelFormat wxIDirectFBSurface::GetPixelFormat() +{ + DFBSurfacePixelFormat format = DSPF_UNKNOWN; + GetPixelFormat(&format); + return format; +} + int wxIDirectFBSurface::GetDepth() { DFBSurfacePixelFormat format = DSPF_UNKNOWN; @@ -126,7 +140,7 @@ wxIDirectFBSurface::CreateCompatible(const wxSize& sz, int flags) return NULL; } - wxCHECK_MSG( size.x > 0 && size.y > 0, NULL, _T("invalid size") ); + wxCHECK_MSG( size.x > 0 && size.y > 0, NULL, "invalid size" ); DFBSurfaceDescription desc; desc.flags = (DFBSurfaceDescriptionFlags)( @@ -192,3 +206,26 @@ bool wxIDirectFBSurface::FlipToFront(const DFBRegion *region) // drawings: return Flip(region, DSFLIP_BLIT); } + +//----------------------------------------------------------------------------- +// wxIDirectFBDisplayLayer +//----------------------------------------------------------------------------- + +wxVideoMode wxIDirectFBDisplayLayer::GetVideoMode() +{ + DFBDisplayLayerConfig cfg; + if ( !GetConfiguration(&cfg) ) + return wxVideoMode(); // invalid + + if ( !((cfg.flags & DLCONF_WIDTH) && + (cfg.flags & DLCONF_HEIGHT) && + (cfg.flags & DLCONF_PIXELFORMAT)) ) + return wxVideoMode(); // invalid + + return wxVideoMode + ( + cfg.width, + cfg.height, + DFB_BITS_PER_PIXEL(cfg.pixelformat) + ); +}