1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/dfb/private.h
3 // Purpose: private helpers for wxDFB implementation
4 // Author: Vaclav Slavik
7 // Copyright: (c) 2006 REA Elektronik GmbH
8 // Licence: wxWindows licence
9 /////////////////////////////////////////////////////////////////////////////
11 #ifndef _WX_DFB_PRIVATE_H_
12 #define _WX_DFB_PRIVATE_H_
17 #include "wx/dfb/wrapdfb.h"
18 #include <directfb_version.h>
20 //-----------------------------------------------------------------------------
22 //-----------------------------------------------------------------------------
24 // convert string from wxString to UTF-8 encoded const char*
26 #define wxSTR_TO_DFB(s) (s).mb_str(wxConvUTF8)
28 #define wxSTR_TO_DFB(s) wxConvUTF8.cWC2MB((s).wc_str(*wxConvUI))
31 //-----------------------------------------------------------------------------
32 // surface manipulation helpers
33 //-----------------------------------------------------------------------------
35 /// Mode of wxDfbCloneSurface() call
36 enum wxDfbCloneSurfaceMode
38 /// Don't copy surface pixels, just clone surface size and attributes
39 wxDfbCloneSurface_NoPixels
= 0,
40 /// Make exact copy, including the pixels
41 wxDfbCloneSurface_CopyPixels
45 Creates surface that is compatible with given @a surface (i.e. has same
46 capabilities, pixel format etc.) and has given @a size.
48 wxIDirectFBSurfacePtr
wxDfbCreateCompatibleSurface(
49 const wxIDirectFBSurfacePtr
& surface
,
53 Creates a new surface by cloning existing one. Depending on @a mode,
54 either makes exact copy (wxDfbCloneSurface_CopyPixels) or only creates a
55 new surface with the same size and attributes (wxDfbCloneSurface_NoPixels).
57 wxIDirectFBSurfacePtr
wxDfbCloneSurface(const wxIDirectFBSurfacePtr
& s
,
58 wxDfbCloneSurfaceMode mode
);
60 /// Returns bit depth used by the surface
61 int wxDfbGetSurfaceDepth(const wxIDirectFBSurfacePtr
& s
);
63 /// Returns interface to the primary display layer:
64 wxIDirectFBDisplayLayerPtr
wxDfbGetDisplayLayer();
66 /// Returns interface to the primary surface:
67 wxIDirectFBSurfacePtr
wxDfbGetPrimarySurface();
69 //-----------------------------------------------------------------------------
71 //-----------------------------------------------------------------------------
73 /// Convert DirectFB timestamp to wxEvent one:
74 #define wxDFB_EVENT_TIMESTAMP(event) \
75 ((event).timestamp.tv_sec * 1000 + (event).timestamp.tv_usec / 1000)
78 Check if DirectFB library version is at least @a major.@a minor.@a release.
82 #define wxCHECK_DFB_VERSION(major,minor,release) \
83 (DIRECTFB_MAJOR_VERSION > (major) || \
84 (DIRECTFB_MAJOR_VERSION == (major) && \
85 DIRECTFB_MINOR_VERSION > (minor)) || \
86 (DIRECTFB_MAJOR_VERSION == (major) && \
87 DIRECTFB_MINOR_VERSION == (minor) && \
88 DIRECTFB_MICRO_VERSION >= (release)))
90 #endif // _WX_DFB_PRIVATE_H_