move misc surface helpers to wxIDirectFBSurface class

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41154 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2006-09-11 09:08:57 +00:00
parent 914f515762
commit a5b31f4e11
11 changed files with 115 additions and 138 deletions

View File

@@ -28,44 +28,6 @@
#define wxSTR_TO_DFB(s) wxConvUTF8.cWC2MB((s).wc_str(*wxConvUI))
#endif
//-----------------------------------------------------------------------------
// surface manipulation helpers
//-----------------------------------------------------------------------------
/// Mode of wxDfbCloneSurface() call
enum wxDfbCloneSurfaceMode
{
/// Don't copy surface pixels, just clone surface size and attributes
wxDfbCloneSurface_NoPixels = 0,
/// Make exact copy, including the pixels
wxDfbCloneSurface_CopyPixels
};
/**
Creates surface that is compatible with given @a surface (i.e. has same
capabilities, pixel format etc.) and has given @a size.
*/
wxIDirectFBSurfacePtr wxDfbCreateCompatibleSurface(
const wxIDirectFBSurfacePtr& surface,
const wxSize& size);
/**
Creates a new surface by cloning existing one. Depending on @a mode,
either makes exact copy (wxDfbCloneSurface_CopyPixels) or only creates a
new surface with the same size and attributes (wxDfbCloneSurface_NoPixels).
*/
wxIDirectFBSurfacePtr wxDfbCloneSurface(const wxIDirectFBSurfacePtr& s,
wxDfbCloneSurfaceMode mode);
/// Returns bit depth used by the surface
int wxDfbGetSurfaceDepth(const wxIDirectFBSurfacePtr& s);
/// Returns interface to the primary display layer:
wxIDirectFBDisplayLayerPtr wxDfbGetDisplayLayer();
/// Returns interface to the primary surface:
wxIDirectFBSurfacePtr wxDfbGetPrimarySurface();
//-----------------------------------------------------------------------------
// misc helpers
//-----------------------------------------------------------------------------

View File

@@ -266,10 +266,33 @@ struct wxIDirectFBSurface : public wxDfbWrapper<IDirectFBSurface>
bool Blit(const wxIDirectFBSurfacePtr& source,
const DFBRectangle *source_rect,
int x, int y)
{
return Check(
m_ptr->Blit(m_ptr, source->GetRaw(), source_rect, x, 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)); }
/// 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();
/**
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.
*/
wxIDirectFBSurfacePtr CreateCompatible(const wxSize& size = wxDefaultSize);
};
@@ -446,7 +469,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 +479,9 @@ struct wxIDirectFB : public wxDfbWrapper<IDirectFB>
return NULL;
}
/// Returns primary surface
wxIDirectFBSurfacePtr GetPrimarySurface();
private:
wxIDirectFB(IDirectFB *ptr) { Init(ptr); }