#1 "/usr/include/directfb/directfb.h"
#1 "<built-in>"
#1 "<command line>"
#1 "/usr/include/directfb/directfb.h"
#31 "/usr/include/directfb/directfb.h"
#1 "/usr/include/directfb/dfb_types.h" 1



#1 "/usr/include/sys/types.h" 1 3 4
#27 "/usr/include/sys/types.h" 3 4
#1 "/usr/include/features.h" 1 3 4
#308 "/usr/include/features.h" 3 4
#1 "/usr/include/sys/cdefs.h" 1 3 4
#309 "/usr/include/features.h" 2 3 4
#331 "/usr/include/features.h" 3 4
#1 "/usr/include/gnu/stubs.h" 1 3 4
#332 "/usr/include/features.h" 2 3 4
#28 "/usr/include/sys/types.h" 2 3 4



#1 "/usr/include/bits/types.h" 1 3 4
#28 "/usr/include/bits/types.h" 3 4
#1 "/usr/include/bits/wordsize.h" 1 3 4
#29 "/usr/include/bits/types.h" 2 3 4


#1 "/usr/lib/gcc/i486-linux-gnu/4.0.3/include/stddef.h" 1 3 4
#214 "/usr/lib/gcc/i486-linux-gnu/4.0.3/include/stddef.h" 3 4
typedef unsigned int                           size_t;
#32 "/usr/include/bits/types.h" 2 3 4


typedef unsigned char                          __u_char;
typedef unsigned short int                     __u_short;
typedef unsigned int                           __u_int;
typedef unsigned long int                      __u_long;


typedef signed char                            __int8_t;
typedef unsigned char                          __uint8_t;
typedef signed short int                       __int16_t;
typedef unsigned short int                     __uint16_t;
typedef signed int                             __int32_t;
typedef unsigned int                           __uint32_t;



__extension__ typedef signed long long int     __int64_t;
__extension__ typedef unsigned long long int   __uint64_t;



__extension__ typedef long long int            __quad_t;
__extension__ typedef unsigned long long int   __u_quad_t;
#129 "/usr/include/bits/types.h" 3 4
#1 "/usr/include/bits/typesizes.h" 1 3 4
#130 "/usr/include/bits/types.h" 2 3 4



__extension__ typedef __u_quad_t          __dev_t;
__extension__ typedef unsigned int        __uid_t;
__extension__ typedef unsigned int        __gid_t;
__extension__ typedef unsigned long int   __ino_t;
__extension__ typedef __u_quad_t          __ino64_t;
__extension__ typedef unsigned int        __mode_t;
__extension__ typedef unsigned int        __nlink_t;
__extension__ typedef long int            __off_t;
__extension__ typedef __quad_t            __off64_t;
__extension__ typedef int                 __pid_t;
__extension__ typedef struct
{
   int __val[2];
} __fsid_t;
__extension__ typedef long int            __clock_t;
__extension__ typedef unsigned long int   __rlim_t;
__extension__ typedef __u_quad_t          __rlim64_t;
__extension__ typedef unsigned int        __id_t;
__extension__ typedef long int            __time_t;
__extension__ typedef unsigned int        __useconds_t;
__extension__ typedef long int            __suseconds_t;

__extension__ typedef int                 __daddr_t;
__extension__ typedef long int            __swblk_t;
__extension__ typedef int                 __key_t;


__extension__ typedef int                 __clockid_t;


__extension__ typedef int                 __timer_t;


__extension__ typedef long int            __blksize_t;



__extension__ typedef long int            __blkcnt_t;
__extension__ typedef __quad_t            __blkcnt64_t;


__extension__ typedef unsigned long int   __fsblkcnt_t;
__extension__ typedef __u_quad_t          __fsblkcnt64_t;


__extension__ typedef unsigned long int   __fsfilcnt_t;
__extension__ typedef __u_quad_t          __fsfilcnt64_t;

__extension__ typedef int                 __ssize_t;



typedef __off64_t                         __loff_t;
typedef __quad_t *                        __qaddr_t;
typedef char *                            __caddr_t;


__extension__ typedef int                 __intptr_t;


__extension__ typedef unsigned int        __socklen_t;
#32 "/usr/include/sys/types.h" 2 3 4



typedef __u_char                          u_char;
typedef __u_short                         u_short;
typedef __u_int                           u_int;
typedef __u_long                          u_long;
typedef __quad_t                          quad_t;
typedef __u_quad_t                        u_quad_t;
typedef __fsid_t                          fsid_t;



typedef __loff_t                          loff_t;



typedef __ino_t                           ino_t;
#62 "/usr/include/sys/types.h" 3 4
typedef __dev_t                           dev_t;



typedef __gid_t                           gid_t;



typedef __mode_t                          mode_t;



typedef __nlink_t                         nlink_t;



typedef __uid_t                           uid_t;



typedef __off_t                           off_t;
#100 "/usr/include/sys/types.h" 3 4
typedef __pid_t                           pid_t;



typedef __id_t                            id_t;



typedef __ssize_t                         ssize_t;



typedef __daddr_t                         daddr_t;
typedef __caddr_t                         caddr_t;



typedef __key_t                           key_t;
#133 "/usr/include/sys/types.h" 3 4
#1 "/usr/include/time.h" 1 3 4
#74 "/usr/include/time.h" 3 4


typedef __time_t      time_t;



#92 "/usr/include/time.h" 3 4
typedef __clockid_t   clockid_t;
#104 "/usr/include/time.h" 3 4
typedef __timer_t     timer_t;
#134 "/usr/include/sys/types.h" 2 3 4
#147 "/usr/include/sys/types.h" 3 4
#1 "/usr/lib/gcc/i486-linux-gnu/4.0.3/include/stddef.h" 1 3 4
#148 "/usr/include/sys/types.h" 2 3 4



typedef unsigned long int    ulong;
typedef unsigned short int   ushort;
typedef unsigned int         uint;
#191 "/usr/include/sys/types.h" 3 4
typedef int                  int8_t __attribute__((__mode__(__QI__)));
typedef int                  int16_t __attribute__((__mode__(__HI__)));
typedef int                  int32_t __attribute__((__mode__(__SI__)));
typedef int                  int64_t __attribute__((__mode__(__DI__)));


typedef unsigned int         u_int8_t __attribute__((__mode__(__QI__)));
typedef unsigned int         u_int16_t __attribute__((__mode__(__HI__)));
typedef unsigned int         u_int32_t __attribute__((__mode__(__SI__)));
typedef unsigned int         u_int64_t __attribute__((__mode__(__DI__)));

typedef int                  register_t __attribute__((__mode__(__word__)));
#213 "/usr/include/sys/types.h" 3 4
#1 "/usr/include/endian.h" 1 3 4
#37 "/usr/include/endian.h" 3 4
#1 "/usr/include/bits/endian.h" 1 3 4
#38 "/usr/include/endian.h" 2 3 4
#214 "/usr/include/sys/types.h" 2 3 4


#1 "/usr/include/sys/select.h" 1 3 4
#31 "/usr/include/sys/select.h" 3 4
#1 "/usr/include/bits/select.h" 1 3 4
#32 "/usr/include/sys/select.h" 2 3 4


#1 "/usr/include/bits/sigset.h" 1 3 4
#23 "/usr/include/bits/sigset.h" 3 4
typedef int __sig_atomic_t;



typedef struct
{
   unsigned long int __val[(1024 / (8 * sizeof(unsigned long int)))];
} __sigset_t;
#35 "/usr/include/sys/select.h" 2 3 4



typedef __sigset_t sigset_t;



#1 "/usr/include/time.h" 1 3 4
#118 "/usr/include/time.h" 3 4
struct timespec
{
   __time_t tv_sec;
   long int tv_nsec;
};
#45 "/usr/include/sys/select.h" 2 3 4

#1 "/usr/include/bits/time.h" 1 3 4
#69 "/usr/include/bits/time.h" 3 4
struct timeval
{
   __time_t      tv_sec;
   __suseconds_t tv_usec;
};
#47 "/usr/include/sys/select.h" 2 3 4


typedef __suseconds_t suseconds_t;



typedef long int      __fd_mask;
#67 "/usr/include/sys/select.h" 3 4
typedef struct
{
   __fd_mask __fds_bits[1024 / (8 * sizeof(__fd_mask))];
} fd_set;



typedef __fd_mask fd_mask;
#99 "/usr/include/sys/select.h" 3 4

#109 "/usr/include/sys/select.h" 3 4
extern int select(int __nfds, fd_set *__restrict __readfds,
                  fd_set *__restrict __writefds,
                  fd_set *__restrict __exceptfds,
                  struct timeval *__restrict __timeout);

#128 "/usr/include/sys/select.h" 3 4

#217 "/usr/include/sys/types.h" 2 3 4


#1 "/usr/include/sys/sysmacros.h" 1 3 4
#29 "/usr/include/sys/sysmacros.h" 3 4
__extension__
extern __inline unsigned int gnu_dev_major(unsigned long long int __dev)
__attribute__((__nothrow__));
__extension__
extern __inline unsigned int gnu_dev_minor(unsigned long long int __dev)
__attribute__((__nothrow__));
__extension__
extern __inline unsigned long long int gnu_dev_makedev(unsigned int __major,
                                                       unsigned int __minor)
__attribute__((__nothrow__));


__extension__ extern __inline unsigned int
__attribute__((__nothrow__)) gnu_dev_major(unsigned long long int __dev)
{
   return(((__dev >> 8) & 0xfff) | ((unsigned int)(__dev >> 32) & ~0xfff));
}

__extension__ extern __inline unsigned int
__attribute__((__nothrow__)) gnu_dev_minor(unsigned long long int __dev)
{
   return((__dev & 0xff) | ((unsigned int)(__dev >> 12) & ~0xff));
}

__extension__ extern __inline unsigned long long int
__attribute__((__nothrow__)) gnu_dev_makedev(unsigned int __major, unsigned int __minor)
{
   return((__minor & 0xff) | ((__major & 0xfff) << 8)
          | (((unsigned long long int)(__minor & ~0xff)) << 12)
          | (((unsigned long long int)(__major & ~0xfff)) << 32));
}

#220 "/usr/include/sys/types.h" 2 3 4
#231 "/usr/include/sys/types.h" 3 4
typedef __blkcnt_t   blkcnt_t;



typedef __fsblkcnt_t fsblkcnt_t;



typedef __fsfilcnt_t fsfilcnt_t;
#266 "/usr/include/sys/types.h" 3 4
#1 "/usr/include/bits/pthreadtypes.h" 1 3 4
#23 "/usr/include/bits/pthreadtypes.h" 3 4
#1 "/usr/include/bits/sched.h" 1 3 4
#83 "/usr/include/bits/sched.h" 3 4
struct __sched_param
{
   int __sched_priority;
};
#24 "/usr/include/bits/pthreadtypes.h" 2 3 4

typedef int __atomic_lock_t;


struct _pthread_fastlock
{
   long int        __status;
   __atomic_lock_t __spinlock;
};



typedef struct _pthread_descr_struct *_pthread_descr;



typedef struct __pthread_attr_s
{
   int                  __detachstate;
   int                  __schedpolicy;
   struct __sched_param __schedparam;
   int                  __inheritsched;
   int                  __scope;
   size_t               __guardsize;
   int                  __stackaddr_set;
   void                 *__stackaddr;
   size_t               __stacksize;
} pthread_attr_t;



__extension__ typedef long long __pthread_cond_align_t;



typedef struct
{
   struct _pthread_fastlock __c_lock;
   _pthread_descr           __c_waiting;
   char                     __padding[48 - sizeof(struct _pthread_fastlock)
                                      - sizeof(_pthread_descr) - sizeof(__pthread_cond_align_t)];
   __pthread_cond_align_t   __align;
} pthread_cond_t;



typedef struct
{
   int __dummy;
} pthread_condattr_t;


typedef unsigned int pthread_key_t;



typedef struct
{
   int                      __m_reserved;
   int                      __m_count;
   _pthread_descr           __m_owner;
   int                      __m_kind;
   struct _pthread_fastlock __m_lock;
} pthread_mutex_t;



typedef struct
{
   int __mutexkind;
} pthread_mutexattr_t;



typedef int               pthread_once_t;
#152 "/usr/include/bits/pthreadtypes.h" 3 4
typedef unsigned long int pthread_t;
#267 "/usr/include/sys/types.h" 2 3 4



#5 "/usr/include/directfb/dfb_types.h" 2
#1 "/usr/include/linux/types.h" 1 3 4



#1 "/usr/include/linux/posix_types.h" 1 3 4



#1 "/usr/include/linux/stddef.h" 1 3 4
#5 "/usr/include/linux/posix_types.h" 2 3 4
#36 "/usr/include/linux/posix_types.h" 3 4
typedef struct
{
   unsigned long fds_bits [(1024 / (8 * sizeof(unsigned long)))];
} __kernel_fd_set;


typedef void (*__kernel_sighandler_t)(int);


typedef int __kernel_key_t;
typedef int __kernel_mqd_t;

#1 "/usr/lib/gcc/i486-linux-gnu/4.0.3/include/asm/posix_types.h" 1 3 4
#14 "/usr/lib/gcc/i486-linux-gnu/4.0.3/include/asm/posix_types.h" 3 4
#1 "/usr/include/asm/posix_types.h" 1 3 4
#11 "/usr/include/asm/posix_types.h" 3 4
#1 "/usr/include/asm-i386/posix_types.h" 1 3 4
#10 "/usr/include/asm-i386/posix_types.h" 3 4
typedef unsigned long  __kernel_ino_t;
typedef unsigned short __kernel_mode_t;
typedef unsigned short __kernel_nlink_t;
typedef long           __kernel_off_t;
typedef int            __kernel_pid_t;
typedef unsigned short __kernel_ipc_pid_t;
typedef unsigned short __kernel_uid_t;
typedef unsigned short __kernel_gid_t;
typedef unsigned int   __kernel_size_t;
typedef int            __kernel_ssize_t;
typedef int            __kernel_ptrdiff_t;
typedef long           __kernel_time_t;
typedef long           __kernel_suseconds_t;
typedef long           __kernel_clock_t;
typedef int            __kernel_timer_t;
typedef int            __kernel_clockid_t;
typedef int            __kernel_daddr_t;
typedef char *         __kernel_caddr_t;
typedef unsigned short __kernel_uid16_t;
typedef unsigned short __kernel_gid16_t;
typedef unsigned int   __kernel_uid32_t;
typedef unsigned int   __kernel_gid32_t;

typedef unsigned short __kernel_old_uid_t;
typedef unsigned short __kernel_old_gid_t;
typedef unsigned short __kernel_old_dev_t;


typedef long long      __kernel_loff_t;


typedef struct
{
   int __val[2];
} __kernel_fsid_t;
#12 "/usr/include/asm/posix_types.h" 2 3 4
#15 "/usr/lib/gcc/i486-linux-gnu/4.0.3/include/asm/posix_types.h" 2 3 4
#48 "/usr/include/linux/posix_types.h" 2 3 4
#6 "/usr/include/linux/types.h" 2 3 4
#1 "/usr/include/asm/types.h" 1 3 4
#11 "/usr/include/asm/types.h" 3 4
#1 "/usr/include/asm-i386/types.h" 1 3 4



typedef unsigned short       umode_t;



typedef __signed__ char      __s8;
typedef unsigned char        __u8;

typedef __signed__ short     __s16;
typedef unsigned short       __u16;

typedef __signed__ int       __s32;
typedef unsigned int         __u32;


typedef __signed__ long long __s64;
typedef unsigned long long   __u64;
#12 "/usr/include/asm/types.h" 2 3 4
#7 "/usr/include/linux/types.h" 2 3 4
#133 "/usr/include/linux/types.h" 3 4
typedef __u16                __le16;
typedef __u16                __be16;
typedef __u32                __le32;
typedef __u32                __be32;



typedef __u64                __le64;
typedef __u64                __be64;
#6 "/usr/include/directfb/dfb_types.h" 2
#32 "/usr/include/directfb/directfb.h" 2
#1 "/usr/include/sys/time.h" 1 3 4
#26 "/usr/include/sys/time.h" 3 4
#1 "/usr/include/time.h" 1 3 4
#27 "/usr/include/sys/time.h" 2 3 4

#1 "/usr/include/bits/time.h" 1 3 4
#29 "/usr/include/sys/time.h" 2 3 4
#38 "/usr/include/sys/time.h" 3 4

#56 "/usr/include/sys/time.h" 3 4
struct timezone
{
   int tz_minuteswest;
   int tz_dsttime;
};

typedef struct timezone *__restrict __timezone_ptr_t;
#72 "/usr/include/sys/time.h" 3 4
extern int gettimeofday(struct timeval *__restrict __tv,
                        __timezone_ptr_t __tz) __attribute__((__nothrow__));



extern int settimeofday(__const struct timeval *__tv,
                        __const struct timezone *__tz) __attribute__((__nothrow__));



extern int adjtime(__const struct timeval *__delta,
                   struct timeval *__olddelta) __attribute__((__nothrow__));



enum __itimer_which
{
   ITIMER_REAL    = 0,


   ITIMER_VIRTUAL = 1,



   ITIMER_PROF    = 2
};



struct itimerval
{
   struct timeval it_interval;

   struct timeval it_value;
};



typedef int __itimer_which_t;



extern int getitimer(__itimer_which_t __which,
                     struct itimerval *__value) __attribute__((__nothrow__));



extern int setitimer(__itimer_which_t __which,
                     __const struct itimerval *__restrict __new,
                     struct itimerval *__restrict __old) __attribute__((__nothrow__));



extern int utimes(__const char *__file, __const struct timeval __tvp[2])
__attribute__((__nothrow__));



extern int lutimes(__const char *__file, __const struct timeval __tvp[2])
__attribute__((__nothrow__));


extern int futimes(int __fd, __const struct timeval __tvp[2]) __attribute__((__nothrow__));

#181 "/usr/include/sys/time.h" 3 4

#33 "/usr/include/directfb/directfb.h" 2

#1 "/usr/include/directfb/directfb_keyboard.h" 1
#40 "/usr/include/directfb/directfb_keyboard.h"
typedef enum
{
   DIKT_UNICODE    = 0x0000,

   DIKT_SPECIAL    = 0xF000,
   DIKT_FUNCTION   = 0xF100,
   DIKT_MODIFIER   = 0xF200,
   DIKT_LOCK       = 0xF300,
   DIKT_DEAD       = 0xF400,
   DIKT_CUSTOM     = 0xF500,
   DIKT_IDENTIFIER = 0xF600
} DFBInputDeviceKeyType;
#71 "/usr/include/directfb/directfb_keyboard.h"
typedef enum
{
   DIMKI_SHIFT,
   DIMKI_CONTROL,
   DIMKI_ALT,
   DIMKI_ALTGR,
   DIMKI_META,
   DIMKI_SUPER,
   DIMKI_HYPER,

   DIMKI_FIRST = DIMKI_SHIFT,
   DIMKI_LAST  = DIMKI_HYPER
} DFBInputDeviceModifierKeyIdentifier;



typedef enum
{
   DIKI_UNKNOWN = ((DIKT_IDENTIFIER) | (0)),

   DIKI_A,
   DIKI_B,
   DIKI_C,
   DIKI_D,
   DIKI_E,
   DIKI_F,
   DIKI_G,
   DIKI_H,
   DIKI_I,
   DIKI_J,
   DIKI_K,
   DIKI_L,
   DIKI_M,
   DIKI_N,
   DIKI_O,
   DIKI_P,
   DIKI_Q,
   DIKI_R,
   DIKI_S,
   DIKI_T,
   DIKI_U,
   DIKI_V,
   DIKI_W,
   DIKI_X,
   DIKI_Y,
   DIKI_Z,

   DIKI_0,
   DIKI_1,
   DIKI_2,
   DIKI_3,
   DIKI_4,
   DIKI_5,
   DIKI_6,
   DIKI_7,
   DIKI_8,
   DIKI_9,

   DIKI_F1,
   DIKI_F2,
   DIKI_F3,
   DIKI_F4,
   DIKI_F5,
   DIKI_F6,
   DIKI_F7,
   DIKI_F8,
   DIKI_F9,
   DIKI_F10,
   DIKI_F11,
   DIKI_F12,

   DIKI_SHIFT_L,
   DIKI_SHIFT_R,
   DIKI_CONTROL_L,
   DIKI_CONTROL_R,
   DIKI_ALT_L,
   DIKI_ALT_R,
   DIKI_ALTGR,
   DIKI_META_L,
   DIKI_META_R,
   DIKI_SUPER_L,
   DIKI_SUPER_R,
   DIKI_HYPER_L,
   DIKI_HYPER_R,

   DIKI_CAPS_LOCK,
   DIKI_NUM_LOCK,
   DIKI_SCROLL_LOCK,

   DIKI_ESCAPE,
   DIKI_LEFT,
   DIKI_RIGHT,
   DIKI_UP,
   DIKI_DOWN,
   DIKI_TAB,
   DIKI_ENTER,
   DIKI_SPACE,
   DIKI_BACKSPACE,
   DIKI_INSERT,
   DIKI_DELETE,
   DIKI_HOME,
   DIKI_END,
   DIKI_PAGE_UP,
   DIKI_PAGE_DOWN,
   DIKI_PRINT,
   DIKI_PAUSE,



   DIKI_QUOTE_LEFT,
   DIKI_MINUS_SIGN,
   DIKI_EQUALS_SIGN,
   DIKI_BRACKET_LEFT,
   DIKI_BRACKET_RIGHT,
   DIKI_BACKSLASH,
   DIKI_SEMICOLON,
   DIKI_QUOTE_RIGHT,
   DIKI_COMMA,
   DIKI_PERIOD,
   DIKI_SLASH,

   DIKI_LESS_SIGN,

   DIKI_KP_DIV,
   DIKI_KP_MULT,
   DIKI_KP_MINUS,
   DIKI_KP_PLUS,
   DIKI_KP_ENTER,
   DIKI_KP_SPACE,
   DIKI_KP_TAB,
   DIKI_KP_F1,
   DIKI_KP_F2,
   DIKI_KP_F3,
   DIKI_KP_F4,
   DIKI_KP_EQUAL,
   DIKI_KP_SEPARATOR,

   DIKI_KP_DECIMAL,
   DIKI_KP_0,
   DIKI_KP_1,
   DIKI_KP_2,
   DIKI_KP_3,
   DIKI_KP_4,
   DIKI_KP_5,
   DIKI_KP_6,
   DIKI_KP_7,
   DIKI_KP_8,
   DIKI_KP_9,

   DIKI_KEYDEF_END,
   DIKI_NUMBER_OF_KEYS = DIKI_KEYDEF_END - ((DIKT_IDENTIFIER) | (0))
} DFBInputDeviceKeyIdentifier;



typedef enum
{
   DIKS_NULL                  = ((DIKT_UNICODE) | (0x00)),
   DIKS_BACKSPACE             = ((DIKT_UNICODE) | (0x08)),
   DIKS_TAB                   = ((DIKT_UNICODE) | (0x09)),
   DIKS_RETURN                = ((DIKT_UNICODE) | (0x0D)),
   DIKS_CANCEL                = ((DIKT_UNICODE) | (0x18)),
   DIKS_ESCAPE                = ((DIKT_UNICODE) | (0x1B)),
   DIKS_SPACE                 = ((DIKT_UNICODE) | (0x20)),
   DIKS_EXCLAMATION_MARK      = ((DIKT_UNICODE) | (0x21)),
   DIKS_QUOTATION             = ((DIKT_UNICODE) | (0x22)),
   DIKS_NUMBER_SIGN           = ((DIKT_UNICODE) | (0x23)),
   DIKS_DOLLAR_SIGN           = ((DIKT_UNICODE) | (0x24)),
   DIKS_PERCENT_SIGN          = ((DIKT_UNICODE) | (0x25)),
   DIKS_AMPERSAND             = ((DIKT_UNICODE) | (0x26)),
   DIKS_APOSTROPHE            = ((DIKT_UNICODE) | (0x27)),
   DIKS_PARENTHESIS_LEFT      = ((DIKT_UNICODE) | (0x28)),
   DIKS_PARENTHESIS_RIGHT     = ((DIKT_UNICODE) | (0x29)),
   DIKS_ASTERISK              = ((DIKT_UNICODE) | (0x2A)),
   DIKS_PLUS_SIGN             = ((DIKT_UNICODE) | (0x2B)),
   DIKS_COMMA                 = ((DIKT_UNICODE) | (0x2C)),
   DIKS_MINUS_SIGN            = ((DIKT_UNICODE) | (0x2D)),
   DIKS_PERIOD                = ((DIKT_UNICODE) | (0x2E)),
   DIKS_SLASH                 = ((DIKT_UNICODE) | (0x2F)),
   DIKS_0                     = ((DIKT_UNICODE) | (0x30)),
   DIKS_1                     = ((DIKT_UNICODE) | (0x31)),
   DIKS_2                     = ((DIKT_UNICODE) | (0x32)),
   DIKS_3                     = ((DIKT_UNICODE) | (0x33)),
   DIKS_4                     = ((DIKT_UNICODE) | (0x34)),
   DIKS_5                     = ((DIKT_UNICODE) | (0x35)),
   DIKS_6                     = ((DIKT_UNICODE) | (0x36)),
   DIKS_7                     = ((DIKT_UNICODE) | (0x37)),
   DIKS_8                     = ((DIKT_UNICODE) | (0x38)),
   DIKS_9                     = ((DIKT_UNICODE) | (0x39)),
   DIKS_COLON                 = ((DIKT_UNICODE) | (0x3A)),
   DIKS_SEMICOLON             = ((DIKT_UNICODE) | (0x3B)),
   DIKS_LESS_THAN_SIGN        = ((DIKT_UNICODE) | (0x3C)),
   DIKS_EQUALS_SIGN           = ((DIKT_UNICODE) | (0x3D)),
   DIKS_GREATER_THAN_SIGN     = ((DIKT_UNICODE) | (0x3E)),
   DIKS_QUESTION_MARK         = ((DIKT_UNICODE) | (0x3F)),
   DIKS_AT                    = ((DIKT_UNICODE) | (0x40)),
   DIKS_CAPITAL_A             = ((DIKT_UNICODE) | (0x41)),
   DIKS_CAPITAL_B             = ((DIKT_UNICODE) | (0x42)),
   DIKS_CAPITAL_C             = ((DIKT_UNICODE) | (0x43)),
   DIKS_CAPITAL_D             = ((DIKT_UNICODE) | (0x44)),
   DIKS_CAPITAL_E             = ((DIKT_UNICODE) | (0x45)),
   DIKS_CAPITAL_F             = ((DIKT_UNICODE) | (0x46)),
   DIKS_CAPITAL_G             = ((DIKT_UNICODE) | (0x47)),
   DIKS_CAPITAL_H             = ((DIKT_UNICODE) | (0x48)),
   DIKS_CAPITAL_I             = ((DIKT_UNICODE) | (0x49)),
   DIKS_CAPITAL_J             = ((DIKT_UNICODE) | (0x4A)),
   DIKS_CAPITAL_K             = ((DIKT_UNICODE) | (0x4B)),
   DIKS_CAPITAL_L             = ((DIKT_UNICODE) | (0x4C)),
   DIKS_CAPITAL_M             = ((DIKT_UNICODE) | (0x4D)),
   DIKS_CAPITAL_N             = ((DIKT_UNICODE) | (0x4E)),
   DIKS_CAPITAL_O             = ((DIKT_UNICODE) | (0x4F)),
   DIKS_CAPITAL_P             = ((DIKT_UNICODE) | (0x50)),
   DIKS_CAPITAL_Q             = ((DIKT_UNICODE) | (0x51)),
   DIKS_CAPITAL_R             = ((DIKT_UNICODE) | (0x52)),
   DIKS_CAPITAL_S             = ((DIKT_UNICODE) | (0x53)),
   DIKS_CAPITAL_T             = ((DIKT_UNICODE) | (0x54)),
   DIKS_CAPITAL_U             = ((DIKT_UNICODE) | (0x55)),
   DIKS_CAPITAL_V             = ((DIKT_UNICODE) | (0x56)),
   DIKS_CAPITAL_W             = ((DIKT_UNICODE) | (0x57)),
   DIKS_CAPITAL_X             = ((DIKT_UNICODE) | (0x58)),
   DIKS_CAPITAL_Y             = ((DIKT_UNICODE) | (0x59)),
   DIKS_CAPITAL_Z             = ((DIKT_UNICODE) | (0x5A)),
   DIKS_SQUARE_BRACKET_LEFT   = ((DIKT_UNICODE) | (0x5B)),
   DIKS_BACKSLASH             = ((DIKT_UNICODE) | (0x5C)),
   DIKS_SQUARE_BRACKET_RIGHT  = ((DIKT_UNICODE) | (0x5D)),
   DIKS_CIRCUMFLEX_ACCENT     = ((DIKT_UNICODE) | (0x5E)),
   DIKS_UNDERSCORE            = ((DIKT_UNICODE) | (0x5F)),
   DIKS_GRAVE_ACCENT          = ((DIKT_UNICODE) | (0x60)),
   DIKS_SMALL_A               = ((DIKT_UNICODE) | (0x61)),
   DIKS_SMALL_B               = ((DIKT_UNICODE) | (0x62)),
   DIKS_SMALL_C               = ((DIKT_UNICODE) | (0x63)),
   DIKS_SMALL_D               = ((DIKT_UNICODE) | (0x64)),
   DIKS_SMALL_E               = ((DIKT_UNICODE) | (0x65)),
   DIKS_SMALL_F               = ((DIKT_UNICODE) | (0x66)),
   DIKS_SMALL_G               = ((DIKT_UNICODE) | (0x67)),
   DIKS_SMALL_H               = ((DIKT_UNICODE) | (0x68)),
   DIKS_SMALL_I               = ((DIKT_UNICODE) | (0x69)),
   DIKS_SMALL_J               = ((DIKT_UNICODE) | (0x6A)),
   DIKS_SMALL_K               = ((DIKT_UNICODE) | (0x6B)),
   DIKS_SMALL_L               = ((DIKT_UNICODE) | (0x6C)),
   DIKS_SMALL_M               = ((DIKT_UNICODE) | (0x6D)),
   DIKS_SMALL_N               = ((DIKT_UNICODE) | (0x6E)),
   DIKS_SMALL_O               = ((DIKT_UNICODE) | (0x6F)),
   DIKS_SMALL_P               = ((DIKT_UNICODE) | (0x70)),
   DIKS_SMALL_Q               = ((DIKT_UNICODE) | (0x71)),
   DIKS_SMALL_R               = ((DIKT_UNICODE) | (0x72)),
   DIKS_SMALL_S               = ((DIKT_UNICODE) | (0x73)),
   DIKS_SMALL_T               = ((DIKT_UNICODE) | (0x74)),
   DIKS_SMALL_U               = ((DIKT_UNICODE) | (0x75)),
   DIKS_SMALL_V               = ((DIKT_UNICODE) | (0x76)),
   DIKS_SMALL_W               = ((DIKT_UNICODE) | (0x77)),
   DIKS_SMALL_X               = ((DIKT_UNICODE) | (0x78)),
   DIKS_SMALL_Y               = ((DIKT_UNICODE) | (0x79)),
   DIKS_SMALL_Z               = ((DIKT_UNICODE) | (0x7A)),
   DIKS_CURLY_BRACKET_LEFT    = ((DIKT_UNICODE) | (0x7B)),
   DIKS_VERTICAL_BAR          = ((DIKT_UNICODE) | (0x7C)),
   DIKS_CURLY_BRACKET_RIGHT   = ((DIKT_UNICODE) | (0x7D)),
   DIKS_TILDE                 = ((DIKT_UNICODE) | (0x7E)),
   DIKS_DELETE                = ((DIKT_UNICODE) | (0x7F)),

   DIKS_ENTER                 = DIKS_RETURN,



   DIKS_CURSOR_LEFT           = ((DIKT_SPECIAL) | (0x00)),
   DIKS_CURSOR_RIGHT          = ((DIKT_SPECIAL) | (0x01)),
   DIKS_CURSOR_UP             = ((DIKT_SPECIAL) | (0x02)),
   DIKS_CURSOR_DOWN           = ((DIKT_SPECIAL) | (0x03)),
   DIKS_INSERT                = ((DIKT_SPECIAL) | (0x04)),
   DIKS_HOME                  = ((DIKT_SPECIAL) | (0x05)),
   DIKS_END                   = ((DIKT_SPECIAL) | (0x06)),
   DIKS_PAGE_UP               = ((DIKT_SPECIAL) | (0x07)),
   DIKS_PAGE_DOWN             = ((DIKT_SPECIAL) | (0x08)),
   DIKS_PRINT                 = ((DIKT_SPECIAL) | (0x09)),
   DIKS_PAUSE                 = ((DIKT_SPECIAL) | (0x0A)),
   DIKS_OK                    = ((DIKT_SPECIAL) | (0x0B)),
   DIKS_SELECT                = ((DIKT_SPECIAL) | (0x0C)),
   DIKS_GOTO                  = ((DIKT_SPECIAL) | (0x0D)),
   DIKS_CLEAR                 = ((DIKT_SPECIAL) | (0x0E)),
   DIKS_POWER                 = ((DIKT_SPECIAL) | (0x0F)),
   DIKS_POWER2                = ((DIKT_SPECIAL) | (0x10)),
   DIKS_OPTION                = ((DIKT_SPECIAL) | (0x11)),
   DIKS_MENU                  = ((DIKT_SPECIAL) | (0x12)),
   DIKS_HELP                  = ((DIKT_SPECIAL) | (0x13)),
   DIKS_INFO                  = ((DIKT_SPECIAL) | (0x14)),
   DIKS_TIME                  = ((DIKT_SPECIAL) | (0x15)),
   DIKS_VENDOR                = ((DIKT_SPECIAL) | (0x16)),

   DIKS_ARCHIVE               = ((DIKT_SPECIAL) | (0x17)),
   DIKS_PROGRAM               = ((DIKT_SPECIAL) | (0x18)),
   DIKS_CHANNEL               = ((DIKT_SPECIAL) | (0x19)),
   DIKS_FAVORITES             = ((DIKT_SPECIAL) | (0x1A)),
   DIKS_EPG                   = ((DIKT_SPECIAL) | (0x1B)),
   DIKS_PVR                   = ((DIKT_SPECIAL) | (0x1C)),
   DIKS_MHP                   = ((DIKT_SPECIAL) | (0x1D)),
   DIKS_LANGUAGE              = ((DIKT_SPECIAL) | (0x1E)),
   DIKS_TITLE                 = ((DIKT_SPECIAL) | (0x1F)),
   DIKS_SUBTITLE              = ((DIKT_SPECIAL) | (0x20)),
   DIKS_ANGLE                 = ((DIKT_SPECIAL) | (0x21)),
   DIKS_ZOOM                  = ((DIKT_SPECIAL) | (0x22)),
   DIKS_MODE                  = ((DIKT_SPECIAL) | (0x23)),
   DIKS_KEYBOARD              = ((DIKT_SPECIAL) | (0x24)),
   DIKS_PC                    = ((DIKT_SPECIAL) | (0x25)),
   DIKS_SCREEN                = ((DIKT_SPECIAL) | (0x26)),

   DIKS_TV                    = ((DIKT_SPECIAL) | (0x27)),
   DIKS_TV2                   = ((DIKT_SPECIAL) | (0x28)),
   DIKS_VCR                   = ((DIKT_SPECIAL) | (0x29)),
   DIKS_VCR2                  = ((DIKT_SPECIAL) | (0x2A)),
   DIKS_SAT                   = ((DIKT_SPECIAL) | (0x2B)),
   DIKS_SAT2                  = ((DIKT_SPECIAL) | (0x2C)),
   DIKS_CD                    = ((DIKT_SPECIAL) | (0x2D)),
   DIKS_TAPE                  = ((DIKT_SPECIAL) | (0x2E)),
   DIKS_RADIO                 = ((DIKT_SPECIAL) | (0x2F)),
   DIKS_TUNER                 = ((DIKT_SPECIAL) | (0x30)),
   DIKS_PLAYER                = ((DIKT_SPECIAL) | (0x31)),
   DIKS_TEXT                  = ((DIKT_SPECIAL) | (0x32)),
   DIKS_DVD                   = ((DIKT_SPECIAL) | (0x33)),
   DIKS_AUX                   = ((DIKT_SPECIAL) | (0x34)),
   DIKS_MP3                   = ((DIKT_SPECIAL) | (0x35)),
   DIKS_PHONE                 = ((DIKT_SPECIAL) | (0x36)),
   DIKS_AUDIO                 = ((DIKT_SPECIAL) | (0x37)),
   DIKS_VIDEO                 = ((DIKT_SPECIAL) | (0x38)),

   DIKS_INTERNET              = ((DIKT_SPECIAL) | (0x39)),
   DIKS_MAIL                  = ((DIKT_SPECIAL) | (0x3A)),
   DIKS_NEWS                  = ((DIKT_SPECIAL) | (0x3B)),
   DIKS_DIRECTORY             = ((DIKT_SPECIAL) | (0x3C)),
   DIKS_LIST                  = ((DIKT_SPECIAL) | (0x3D)),
   DIKS_CALCULATOR            = ((DIKT_SPECIAL) | (0x3E)),
   DIKS_MEMO                  = ((DIKT_SPECIAL) | (0x3F)),
   DIKS_CALENDAR              = ((DIKT_SPECIAL) | (0x40)),
   DIKS_EDITOR                = ((DIKT_SPECIAL) | (0x41)),

   DIKS_RED                   = ((DIKT_SPECIAL) | (0x42)),
   DIKS_GREEN                 = ((DIKT_SPECIAL) | (0x43)),
   DIKS_YELLOW                = ((DIKT_SPECIAL) | (0x44)),
   DIKS_BLUE                  = ((DIKT_SPECIAL) | (0x45)),

   DIKS_CHANNEL_UP            = ((DIKT_SPECIAL) | (0x46)),
   DIKS_CHANNEL_DOWN          = ((DIKT_SPECIAL) | (0x47)),
   DIKS_BACK                  = ((DIKT_SPECIAL) | (0x48)),
   DIKS_FORWARD               = ((DIKT_SPECIAL) | (0x49)),
   DIKS_FIRST                 = ((DIKT_SPECIAL) | (0x4A)),
   DIKS_LAST                  = ((DIKT_SPECIAL) | (0x4B)),
   DIKS_VOLUME_UP             = ((DIKT_SPECIAL) | (0x4C)),
   DIKS_VOLUME_DOWN           = ((DIKT_SPECIAL) | (0x4D)),
   DIKS_MUTE                  = ((DIKT_SPECIAL) | (0x4E)),
   DIKS_AB                    = ((DIKT_SPECIAL) | (0x4F)),
   DIKS_PLAYPAUSE             = ((DIKT_SPECIAL) | (0x50)),
   DIKS_PLAY                  = ((DIKT_SPECIAL) | (0x51)),
   DIKS_STOP                  = ((DIKT_SPECIAL) | (0x52)),
   DIKS_RESTART               = ((DIKT_SPECIAL) | (0x53)),
   DIKS_SLOW                  = ((DIKT_SPECIAL) | (0x54)),
   DIKS_FAST                  = ((DIKT_SPECIAL) | (0x55)),
   DIKS_RECORD                = ((DIKT_SPECIAL) | (0x56)),
   DIKS_EJECT                 = ((DIKT_SPECIAL) | (0x57)),
   DIKS_SHUFFLE               = ((DIKT_SPECIAL) | (0x58)),
   DIKS_REWIND                = ((DIKT_SPECIAL) | (0x59)),
   DIKS_FASTFORWARD           = ((DIKT_SPECIAL) | (0x5A)),
   DIKS_PREVIOUS              = ((DIKT_SPECIAL) | (0x5B)),
   DIKS_NEXT                  = ((DIKT_SPECIAL) | (0x5C)),
   DIKS_BEGIN                 = ((DIKT_SPECIAL) | (0x5D)),

   DIKS_DIGITS                = ((DIKT_SPECIAL) | (0x5E)),
   DIKS_TEEN                  = ((DIKT_SPECIAL) | (0x5F)),
   DIKS_TWEN                  = ((DIKT_SPECIAL) | (0x60)),

   DIKS_BREAK                 = ((DIKT_SPECIAL) | (0x61)),
   DIKS_EXIT                  = ((DIKT_SPECIAL) | (0x62)),
   DIKS_SETUP                 = ((DIKT_SPECIAL) | (0x63)),

   DIKS_CURSOR_LEFT_UP        = ((DIKT_SPECIAL) | (0x64)),
   DIKS_CURSOR_LEFT_DOWN      = ((DIKT_SPECIAL) | (0x65)),
   DIKS_CURSOR_UP_RIGHT       = ((DIKT_SPECIAL) | (0x66)),
   DIKS_CURSOR_DOWN_RIGHT     = ((DIKT_SPECIAL) | (0x67)),



   DIKS_F1                    = (((DIKT_FUNCTION) | (1))),
   DIKS_F2                    = (((DIKT_FUNCTION) | (2))),
   DIKS_F3                    = (((DIKT_FUNCTION) | (3))),
   DIKS_F4                    = (((DIKT_FUNCTION) | (4))),
   DIKS_F5                    = (((DIKT_FUNCTION) | (5))),
   DIKS_F6                    = (((DIKT_FUNCTION) | (6))),
   DIKS_F7                    = (((DIKT_FUNCTION) | (7))),
   DIKS_F8                    = (((DIKT_FUNCTION) | (8))),
   DIKS_F9                    = (((DIKT_FUNCTION) | (9))),
   DIKS_F10                   = (((DIKT_FUNCTION) | (10))),
   DIKS_F11                   = (((DIKT_FUNCTION) | (11))),
   DIKS_F12                   = (((DIKT_FUNCTION) | (12))),



   DIKS_SHIFT                 = (((DIKT_MODIFIER) | ((1 << DIMKI_SHIFT)))),
   DIKS_CONTROL               = (((DIKT_MODIFIER) | ((1 << DIMKI_CONTROL)))),
   DIKS_ALT                   = (((DIKT_MODIFIER) | ((1 << DIMKI_ALT)))),
   DIKS_ALTGR                 = (((DIKT_MODIFIER) | ((1 << DIMKI_ALTGR)))),
   DIKS_META                  = (((DIKT_MODIFIER) | ((1 << DIMKI_META)))),
   DIKS_SUPER                 = (((DIKT_MODIFIER) | ((1 << DIMKI_SUPER)))),
   DIKS_HYPER                 = (((DIKT_MODIFIER) | ((1 << DIMKI_HYPER)))),



   DIKS_CAPS_LOCK             = ((DIKT_LOCK) | (0x00)),
   DIKS_NUM_LOCK              = ((DIKT_LOCK) | (0x01)),
   DIKS_SCROLL_LOCK           = ((DIKT_LOCK) | (0x02)),



   DIKS_DEAD_ABOVEDOT         = ((DIKT_DEAD) | (0x00)),
   DIKS_DEAD_ABOVERING        = ((DIKT_DEAD) | (0x01)),
   DIKS_DEAD_ACUTE            = ((DIKT_DEAD) | (0x02)),
   DIKS_DEAD_BREVE            = ((DIKT_DEAD) | (0x03)),
   DIKS_DEAD_CARON            = ((DIKT_DEAD) | (0x04)),
   DIKS_DEAD_CEDILLA          = ((DIKT_DEAD) | (0x05)),
   DIKS_DEAD_CIRCUMFLEX       = ((DIKT_DEAD) | (0x06)),
   DIKS_DEAD_DIAERESIS        = ((DIKT_DEAD) | (0x07)),
   DIKS_DEAD_DOUBLEACUTE      = ((DIKT_DEAD) | (0x08)),
   DIKS_DEAD_GRAVE            = ((DIKT_DEAD) | (0x09)),
   DIKS_DEAD_IOTA             = ((DIKT_DEAD) | (0x0A)),
   DIKS_DEAD_MACRON           = ((DIKT_DEAD) | (0x0B)),
   DIKS_DEAD_OGONEK           = ((DIKT_DEAD) | (0x0C)),
   DIKS_DEAD_SEMIVOICED_SOUND = ((DIKT_DEAD) | (0x0D)),
   DIKS_DEAD_TILDE            = ((DIKT_DEAD) | (0x0E)),
   DIKS_DEAD_VOICED_SOUND     = ((DIKT_DEAD) | (0x0F)),



   DIKS_CUSTOM0               = (((DIKT_CUSTOM) | (0))),
   DIKS_CUSTOM1               = (((DIKT_CUSTOM) | (1))),
   DIKS_CUSTOM2               = (((DIKT_CUSTOM) | (2))),
   DIKS_CUSTOM3               = (((DIKT_CUSTOM) | (3))),
   DIKS_CUSTOM4               = (((DIKT_CUSTOM) | (4))),
   DIKS_CUSTOM5               = (((DIKT_CUSTOM) | (5))),
   DIKS_CUSTOM6               = (((DIKT_CUSTOM) | (6))),
   DIKS_CUSTOM7               = (((DIKT_CUSTOM) | (7))),
   DIKS_CUSTOM8               = (((DIKT_CUSTOM) | (8))),
   DIKS_CUSTOM9               = (((DIKT_CUSTOM) | (9)))
} DFBInputDeviceKeySymbol;



typedef enum
{
   DILS_SCROLL = 0x00000001,
   DILS_NUM    = 0x00000002,
   DILS_CAPS   = 0x00000004
} DFBInputDeviceLockState;



typedef enum
{
   DIKSI_BASE       = 0x00,

   DIKSI_BASE_SHIFT = 0x01,

   DIKSI_ALT        = 0x02,

   DIKSI_ALT_SHIFT  = 0x03,


   DIKSI_LAST       = DIKSI_ALT_SHIFT
} DFBInputDeviceKeymapSymbolIndex;



typedef struct
{
   int                         code;

   DFBInputDeviceLockState     locks;

   DFBInputDeviceKeyIdentifier identifier;
   DFBInputDeviceKeySymbol     symbols[DIKSI_LAST + 1];
} DFBInputDeviceKeymapEntry;
#35 "/usr/include/directfb/directfb.h" 2
#68 "/usr/include/directfb/directfb.h"
extern const unsigned int directfb_major_version;
extern const unsigned int directfb_minor_version;
extern const unsigned int directfb_micro_version;
extern const unsigned int directfb_binary_age;
extern const unsigned int directfb_interface_age;



const char *DirectFBCheckVersion(unsigned int required_major,
                                 unsigned int required_minor,
                                 unsigned int required_micro);



typedef struct _IDirectFB              IDirectFB;



typedef struct _IDirectFBScreen        IDirectFBScreen;



typedef struct _IDirectFBDisplayLayer  IDirectFBDisplayLayer;



typedef struct _IDirectFBSurface       IDirectFBSurface;



typedef struct _IDirectFBPalette       IDirectFBPalette;



typedef struct _IDirectFBWindow        IDirectFBWindow;



typedef struct _IDirectFBInputDevice   IDirectFBInputDevice;



typedef struct _IDirectFBEventBuffer   IDirectFBEventBuffer;



typedef struct _IDirectFBFont          IDirectFBFont;



typedef struct _IDirectFBImageProvider IDirectFBImageProvider;



typedef struct _IDirectFBVideoProvider IDirectFBVideoProvider;



typedef struct _IDirectFBDataBuffer    IDirectFBDataBuffer;



typedef struct _IDirectFBGL            IDirectFBGL;



typedef enum
{
   DFB_OK,
   DFB_FAILURE,
   DFB_INIT,
   DFB_BUG,
   DFB_DEAD,
   DFB_UNSUPPORTED,
   DFB_UNIMPLEMENTED,
   DFB_ACCESSDENIED,
   DFB_INVARG,
   DFB_NOSYSTEMMEMORY,
   DFB_NOVIDEOMEMORY,
   DFB_LOCKED,
   DFB_BUFFEREMPTY,
   DFB_FILENOTFOUND,
   DFB_IO,
   DFB_BUSY,
   DFB_NOIMPL,
   DFB_MISSINGFONT,
   DFB_TIMEOUT,
   DFB_MISSINGIMAGE,
   DFB_THIZNULL,
   DFB_IDNOTFOUND,
   DFB_INVAREA,
   DFB_DESTROYED,
   DFB_FUSION,
   DFB_BUFFERTOOLARGE,
   DFB_INTERRUPTED,
   DFB_NOCONTEXT,
   DFB_TEMPUNAVAIL,
   DFB_LIMITEXCEEDED,
   DFB_NOSUCHMETHOD,
   DFB_NOSUCHINSTANCE,
   DFB_ITEMNOTFOUND,
   DFB_VERSIONMISMATCH,
   DFB_NOSHAREDMEMORY
} DFBResult;



typedef enum
{
   DFB_FALSE = 0,
   DFB_TRUE  = !DFB_FALSE
} DFBBoolean;



typedef struct
{
   int x;
   int y;
} DFBPoint;



typedef struct
{
   int x;
   int w;
} DFBSpan;



typedef struct
{
   int w;
   int h;
} DFBDimension;



typedef struct
{
   int x;
   int y;
   int w;
   int h;
} DFBRectangle;



typedef struct
{
   float x;
   float y;
   float w;
   float h;
} DFBLocation;



typedef struct
{
   int x1;
   int y1;
   int x2;
   int y2;
} DFBRegion;



typedef struct
{
   int l;
   int t;
   int r;
   int b;
} DFBInsets;



typedef struct
{
   int x1;
   int y1;
   int x2;
   int y2;
   int x3;
   int y3;
} DFBTriangle;



typedef struct
{
   __u8 a;
   __u8 r;
   __u8 g;
   __u8 b;
} DFBColor;
#335 "/usr/include/directfb/directfb.h"
DFBResult DirectFBError(
   const char *msg,
   DFBResult result
   );



DFBResult DirectFBErrorFatal(
   const char *msg,
   DFBResult result
   );



const char *DirectFBErrorString(
   DFBResult result
   );



const char *DirectFBUsageString(void);



DFBResult DirectFBInit(
   int *argc,
   char **argv[]
   );



DFBResult DirectFBSetOption(
   const char *name,
   const char *value
   );



DFBResult DirectFBCreate(
   IDirectFB **interface

   );


typedef unsigned int DFBScreenID;
typedef unsigned int DFBDisplayLayerID;
typedef unsigned int DFBDisplayLayerSourceID;
typedef unsigned int DFBWindowID;
typedef unsigned int DFBInputDeviceID;

typedef __u32        DFBDisplayLayerIDs;
#428 "/usr/include/directfb/directfb.h"
typedef enum
{
   DFSCL_NORMAL = 0x00000000,



   DFSCL_FULLSCREEN,



   DFSCL_EXCLUSIVE
} DFBCooperativeLevel;



typedef enum
{
   DLCAPS_NONE              = 0x00000000,

   DLCAPS_SURFACE           = 0x00000001,



   DLCAPS_OPACITY           = 0x00000002,

   DLCAPS_ALPHACHANNEL      = 0x00000004,

   DLCAPS_SCREEN_LOCATION   = 0x00000008,


   DLCAPS_FLICKER_FILTERING = 0x00000010,

   DLCAPS_DEINTERLACING     = 0x00000020,


   DLCAPS_SRC_COLORKEY      = 0x00000040,
   DLCAPS_DST_COLORKEY      = 0x00000080,


   DLCAPS_BRIGHTNESS        = 0x00000100,
   DLCAPS_CONTRAST          = 0x00000200,
   DLCAPS_HUE               = 0x00000400,
   DLCAPS_SATURATION        = 0x00000800,
   DLCAPS_LEVELS            = 0x00001000,

   DLCAPS_FIELD_PARITY      = 0x00002000,
   DLCAPS_WINDOWS           = 0x00004000,
   DLCAPS_SOURCES           = 0x00008000,
   DLCAPS_ALPHA_RAMP        = 0x00010000,



   DLCAPS_PREMULTIPLIED     = 0x00020000,

   DLCAPS_SCREEN_POSITION   = 0x00100000,
   DLCAPS_SCREEN_SIZE       = 0x00200000,

   DLCAPS_ALL               = 0x0033FFFF
} DFBDisplayLayerCapabilities;



typedef enum
{
   DSCCAPS_NONE             = 0x00000000,

   DSCCAPS_VSYNC            = 0x00000001,

   DSCCAPS_POWER_MANAGEMENT = 0x00000002,

   DSCCAPS_MIXERS           = 0x00000010,
   DSCCAPS_ENCODERS         = 0x00000020,
   DSCCAPS_OUTPUTS          = 0x00000040,

   DSCCAPS_ALL              = 0x00000073
} DFBScreenCapabilities;



typedef enum
{
   DLOP_NONE              = 0x00000000,
   DLOP_ALPHACHANNEL      = 0x00000001,


   DLOP_FLICKER_FILTERING = 0x00000002,
   DLOP_DEINTERLACING     = 0x00000004,

   DLOP_SRC_COLORKEY      = 0x00000008,
   DLOP_DST_COLORKEY      = 0x00000010,
   DLOP_OPACITY           = 0x00000020,

   DLOP_FIELD_PARITY      = 0x00000040
} DFBDisplayLayerOptions;



typedef enum
{
   DLBM_UNKNOWN    = 0x00000000,

   DLBM_FRONTONLY  = 0x00000001,
   DLBM_BACKVIDEO  = 0x00000002,
   DLBM_BACKSYSTEM = 0x00000004,
   DLBM_TRIPLE     = 0x00000008,
   DLBM_WINDOWS    = 0x00000010
} DFBDisplayLayerBufferMode;



typedef enum
{
   DSDESC_CAPS         = 0x00000001,
   DSDESC_WIDTH        = 0x00000002,
   DSDESC_HEIGHT       = 0x00000004,
   DSDESC_PIXELFORMAT  = 0x00000008,
   DSDESC_PREALLOCATED = 0x00000010,



   DSDESC_PALETTE      = 0x00000020
} DFBSurfaceDescriptionFlags;



typedef enum
{
   DPDESC_CAPS    = 0x00000001,
   DPDESC_SIZE    = 0x00000002,
   DPDESC_ENTRIES = 0x00000004
} DFBPaletteDescriptionFlags;



typedef enum
{
   DSCAPS_NONE          = 0x00000000,

   DSCAPS_PRIMARY       = 0x00000001,
   DSCAPS_SYSTEMONLY    = 0x00000002,

   DSCAPS_VIDEOONLY     = 0x00000004,

   DSCAPS_DOUBLE        = 0x00000010,
   DSCAPS_SUBSURFACE    = 0x00000020,

   DSCAPS_INTERLACED    = 0x00000040,



   DSCAPS_SEPARATED     = 0x00000080,



   DSCAPS_STATIC_ALLOC  = 0x00000100,



   DSCAPS_TRIPLE        = 0x00000200,

   DSCAPS_PREMULTIPLIED = 0x00001000,

   DSCAPS_DEPTH         = 0x00010000,

   DSCAPS_ALL           = 0x000113F7,


   DSCAPS_FLIPPING      = DSCAPS_DOUBLE | DSCAPS_TRIPLE
} DFBSurfaceCapabilities;



typedef enum
{
   DPCAPS_NONE = 0x00000000
} DFBPaletteCapabilities;



typedef enum
{
   DSDRAW_NOFX            = 0x00000000,
   DSDRAW_BLEND           = 0x00000001,
   DSDRAW_DST_COLORKEY    = 0x00000002,

   DSDRAW_SRC_PREMULTIPLY = 0x00000004,

   DSDRAW_DST_PREMULTIPLY = 0x00000008,
   DSDRAW_DEMULTIPLY      = 0x00000010,

   DSDRAW_XOR             = 0x00000020
} DFBSurfaceDrawingFlags;



typedef enum
{
   DSBLIT_NOFX               = 0x00000000,
   DSBLIT_BLEND_ALPHACHANNEL = 0x00000001,

   DSBLIT_BLEND_COLORALPHA   = 0x00000002,

   DSBLIT_COLORIZE           = 0x00000004,

   DSBLIT_SRC_COLORKEY       = 0x00000008,
   DSBLIT_DST_COLORKEY       = 0x00000010,

   DSBLIT_SRC_PREMULTIPLY    = 0x00000020,

   DSBLIT_DST_PREMULTIPLY    = 0x00000040,
   DSBLIT_DEMULTIPLY         = 0x00000080,

   DSBLIT_DEINTERLACE        = 0x00000100
} DFBSurfaceBlittingFlags;



typedef enum
{
   DFXL_NONE          = 0x00000000,

   DFXL_FILLRECTANGLE = 0x00000001,
   DFXL_DRAWRECTANGLE = 0x00000002,
   DFXL_DRAWLINE      = 0x00000004,
   DFXL_FILLTRIANGLE  = 0x00000008,

   DFXL_BLIT          = 0x00010000,
   DFXL_STRETCHBLIT   = 0x00020000,
   DFXL_TEXTRIANGLES  = 0x00040000,

   DFXL_DRAWSTRING    = 0x01000000,

   DFXL_ALL           = 0x0107000F
} DFBAccelerationMask;
#699 "/usr/include/directfb/directfb.h"
typedef struct
{
   DFBAccelerationMask     acceleration_mask;
   DFBSurfaceDrawingFlags  drawing_flags;
   DFBSurfaceBlittingFlags blitting_flags;
   unsigned int            video_memory;
} DFBCardCapabilities;



typedef enum
{
   DLTF_NONE          = 0x00000000,

   DLTF_GRAPHICS      = 0x00000001,
   DLTF_VIDEO         = 0x00000002,
   DLTF_STILL_PICTURE = 0x00000004,
   DLTF_BACKGROUND    = 0x00000008,

   DLTF_ALL           = 0x0000000F
} DFBDisplayLayerTypeFlags;



typedef enum
{
   DIDTF_NONE     = 0x00000000,

   DIDTF_KEYBOARD = 0x00000001,
   DIDTF_MOUSE    = 0x00000002,
   DIDTF_JOYSTICK = 0x00000004,
   DIDTF_REMOTE   = 0x00000008,
   DIDTF_VIRTUAL  = 0x00000010,

   DIDTF_ALL      = 0x0000001F
} DFBInputDeviceTypeFlags;



typedef enum
{
   DICAPS_KEYS    = 0x00000001,
   DICAPS_AXES    = 0x00000002,
   DICAPS_BUTTONS = 0x00000004,

   DICAPS_ALL     = 0x00000007
} DFBInputDeviceCapabilities;



typedef enum
{
   DIBI_LEFT   = 0x00000000,
   DIBI_RIGHT  = 0x00000001,
   DIBI_MIDDLE = 0x00000002,

   DIBI_FIRST  = DIBI_LEFT,

   DIBI_LAST   = 0x0000001F
} DFBInputDeviceButtonIdentifier;
#768 "/usr/include/directfb/directfb.h"
typedef enum
{
   DIAI_X     = 0x00000000,
   DIAI_Y     = 0x00000001,
   DIAI_Z     = 0x00000002,

   DIAI_FIRST = DIAI_X,

   DIAI_LAST  = 0x0000001F
} DFBInputDeviceAxisIdentifier;



typedef enum
{
   DWDESC_CAPS         = 0x00000001,
   DWDESC_WIDTH        = 0x00000002,
   DWDESC_HEIGHT       = 0x00000004,
   DWDESC_PIXELFORMAT  = 0x00000008,
   DWDESC_POSX         = 0x00000010,
   DWDESC_POSY         = 0x00000020,
   DWDESC_SURFACE_CAPS = 0x00000040
} DFBWindowDescriptionFlags;



typedef enum
{
   DBDESC_FILE   = 0x00000001,

   DBDESC_MEMORY = 0x00000002
} DFBDataBufferDescriptionFlags;



typedef enum
{
   DWCAPS_NONE         = 0x00000000,
   DWCAPS_ALPHACHANNEL = 0x00000001,

   DWCAPS_DOUBLEBUFFER = 0x00000002,



   DWCAPS_INPUTONLY    = 0x00000004,


   DWCAPS_NODECORATION = 0x00000008,
   DWCAPS_ALL          = 0x0000000F
} DFBWindowCapabilities;
#834 "/usr/include/directfb/directfb.h"
typedef enum
{
   DFFA_NONE       = 0x00000000,
   DFFA_NOKERNING  = 0x00000001,
   DFFA_NOHINTING  = 0x00000002,
   DFFA_MONOCHROME = 0x00000004,
   DFFA_NOCHARMAP  = 0x00000008
} DFBFontAttributes;



typedef enum
{
   DFDESC_ATTRIBUTES   = 0x00000001,
   DFDESC_HEIGHT       = 0x00000002,
   DFDESC_WIDTH        = 0x00000004,
   DFDESC_INDEX        = 0x00000008,
   DFDESC_FIXEDADVANCE = 0x00000010
} DFBFontDescriptionFlags;
#869 "/usr/include/directfb/directfb.h"
typedef struct
{
   DFBFontDescriptionFlags flags;

   DFBFontAttributes       attributes;
   int                     height;
   int                     width;
   unsigned int            index;
   int                     fixed_advance;
} DFBFontDescription;
#916 "/usr/include/directfb/directfb.h"
typedef enum
{
   DSPF_UNKNOWN  = 0x00000000,


   DSPF_ARGB1555 = ((((0) & 0x7F)) | (((15) & 0x1F) << 7) | (((1) & 0x0F) << 12) | (((1) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((2) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),


   DSPF_RGB16    = ((((1) & 0x7F)) | (((16) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((2) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),


   DSPF_RGB24    = ((((2) & 0x7F)) | (((24) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((3) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),


   DSPF_RGB32    = ((((3) & 0x7F)) | (((24) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((4) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),


   DSPF_ARGB     = ((((4) & 0x7F)) | (((24) & 0x1F) << 7) | (((8) & 0x0F) << 12) | (((1) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((4) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),


   DSPF_A8       = ((((5) & 0x7F)) | (((0) & 0x1F) << 7) | (((8) & 0x0F) << 12) | (((1) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((1) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),


   DSPF_YUY2     = ((((6) & 0x7F)) | (((16) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((2) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),


   DSPF_RGB332   = ((((7) & 0x7F)) | (((8) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((1) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),


   DSPF_UYVY     = ((((8) & 0x7F)) | (((16) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((2) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),


   DSPF_I420     = ((((9) & 0x7F)) | (((12) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((1) & 0x07) << 20) | (((0) & 0x07) << 23) | (((2) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),


   DSPF_YV12     = ((((10) & 0x7F)) | (((12) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((1) & 0x07) << 20) | (((0) & 0x07) << 23) | (((2) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),


   DSPF_LUT8     = ((((11) & 0x7F)) | (((8) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((1) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((1) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((1) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),


   DSPF_ALUT44   = ((((12) & 0x7F)) | (((4) & 0x1F) << 7) | (((4) & 0x0F) << 12) | (((1) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((1) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((1) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),


   DSPF_AiRGB    = ((((13) & 0x7F)) | (((24) & 0x1F) << 7) | (((8) & 0x0F) << 12) | (((1) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((4) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((1) ? 1 : 0) << 31)),


   DSPF_A1       = ((((14) & 0x7F)) | (((0) & 0x1F) << 7) | (((1) & 0x0F) << 12) | (((1) ? 1 : 0) << 16) | (((1) & 0x07) << 17) | (((0) & 0x07) << 20) | (((7) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),


   DSPF_NV12     = ((((15) & 0x7F)) | (((12) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((1) & 0x07) << 20) | (((0) & 0x07) << 23) | (((2) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),


   DSPF_NV16     = ((((16) & 0x7F)) | (((24) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((1) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((2) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),


   DSPF_ARGB2554 = ((((17) & 0x7F)) | (((14) & 0x1F) << 7) | (((2) & 0x0F) << 12) | (((1) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((2) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),


   DSPF_ARGB4444 = ((((18) & 0x7F)) | (((12) & 0x1F) << 7) | (((4) & 0x0F) << 12) | (((1) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((2) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),


   DSPF_NV21     = ((((19) & 0x7F)) | (((12) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((1) & 0x07) << 20) | (((0) & 0x07) << 23) | (((2) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31))
} DFBSurfacePixelFormat;
#1012 "/usr/include/directfb/directfb.h"
typedef struct
{
   DFBSurfaceDescriptionFlags flags;

   DFBSurfaceCapabilities     caps;
   int                        width;
   int                        height;
   DFBSurfacePixelFormat      pixelformat;

   struct
   {
      void *data;
      int  pitch;
   }                          preallocated[2];

   struct
   {
      DFBColor     *entries;
      unsigned int size;
   }                          palette;
} DFBSurfaceDescription;



typedef struct
{
   DFBPaletteDescriptionFlags flags;

   DFBPaletteCapabilities     caps;
   unsigned int               size;
   DFBColor                   *entries;
} DFBPaletteDescription;



typedef struct
{
   DFBDisplayLayerTypeFlags    type;

   DFBDisplayLayerCapabilities caps;


   char                        name[32];

   int                         level;
   int                         regions;



   int                         sources;
} DFBDisplayLayerDescription;



typedef struct
{
   DFBDisplayLayerSourceID source_id;

   char                    name[24];
} DFBDisplayLayerSourceDescription;



typedef struct
{
   DFBScreenCapabilities caps;


   char                  name[32];

   int                   mixers;

   int                   encoders;

   int                   outputs;
} DFBScreenDescription;
#1104 "/usr/include/directfb/directfb.h"
typedef struct
{
   DFBInputDeviceTypeFlags        type;

   DFBInputDeviceCapabilities     caps;



   int                            min_keycode;



   int                            max_keycode;



   DFBInputDeviceAxisIdentifier   max_axis;

   DFBInputDeviceButtonIdentifier max_button;


   char                           name[32];

   char                           vendor[40];
} DFBInputDeviceDescription;



typedef struct
{
   DFBWindowDescriptionFlags flags;

   DFBWindowCapabilities     caps;
   int                       width;
   int                       height;
   DFBSurfacePixelFormat     pixelformat;
   int                       posx;
   int                       posy;
   DFBSurfaceCapabilities    surface_caps;
} DFBWindowDescription;



typedef struct
{
   DFBDataBufferDescriptionFlags flags;

   const char                    *file;

   struct
   {
      const void   *data;
      unsigned int length;
   }                             memory;
} DFBDataBufferDescription;



typedef enum
{
   DFENUM_OK     = 0x00000000,
   DFENUM_CANCEL = 0x00000001
} DFBEnumerationResult;



typedef DFBEnumerationResult (*DFBVideoModeCallback)(
   int width,
   int height,
   int bpp,
   void *callbackdata
   );



typedef DFBEnumerationResult (*DFBScreenCallback)(
   DFBScreenID screen_id,
   DFBScreenDescription desc,
   void *callbackdata
   );



typedef DFBEnumerationResult (*DFBDisplayLayerCallback)(
   DFBDisplayLayerID layer_id,
   DFBDisplayLayerDescription desc,
   void *callbackdata
   );



typedef DFBEnumerationResult (*DFBInputDeviceCallback)(
   DFBInputDeviceID device_id,
   DFBInputDeviceDescription desc,
   void *callbackdata
   );



typedef int (*DFBGetDataCallback)(
   void *buffer,
   unsigned int length,
   void *callbackdata
   );



typedef enum
{
   DVCAPS_BASIC      = 0x00000000,
   DVCAPS_SEEK       = 0x00000001,
   DVCAPS_SCALE      = 0x00000002,
   DVCAPS_INTERLACED = 0x00000004,
   DVCAPS_BRIGHTNESS = 0x00000010,
   DVCAPS_CONTRAST   = 0x00000020,
   DVCAPS_HUE        = 0x00000040,
   DVCAPS_SATURATION = 0x00000080
} DFBVideoProviderCapabilities;



typedef enum
{
   DCAF_NONE       = 0x00000000,
   DCAF_BRIGHTNESS = 0x00000001,
   DCAF_CONTRAST   = 0x00000002,
   DCAF_HUE        = 0x00000004,
   DCAF_SATURATION = 0x00000008
} DFBColorAdjustmentFlags;



typedef struct
{
   DFBColorAdjustmentFlags flags;

   __u16                   brightness;
   __u16                   contrast;
   __u16                   hue;
   __u16                   saturation;
} DFBColorAdjustment;
#1319 "/usr/include/directfb/directfb.h"
struct _IDirectFB
{
   void      *priv;
   int       magic;
   DFBResult (*AddRef)(IDirectFB *thiz);
   DFBResult (*Release)(IDirectFB *thiz);
   DFBResult (*SetCooperativeLevel)(IDirectFB *thiz, DFBCooperativeLevel level);
   DFBResult (*SetVideoMode)(IDirectFB *thiz, int width, int height, int bpp);
   DFBResult (*GetCardCapabilities)(IDirectFB *thiz, DFBCardCapabilities *ret_caps);
   DFBResult (*EnumVideoModes)(IDirectFB *thiz, DFBVideoModeCallback callback, void *callbackdata);
   DFBResult (*CreateSurface)(IDirectFB *thiz, const DFBSurfaceDescription *desc, IDirectFBSurface **ret_interface);
   DFBResult (*CreatePalette)(IDirectFB *thiz, const DFBPaletteDescription *desc, IDirectFBPalette **ret_interface);
   DFBResult (*EnumScreens)(IDirectFB *thiz, DFBScreenCallback callback, void *callbackdata);
   DFBResult (*GetScreen)(IDirectFB *thiz, DFBScreenID screen_id, IDirectFBScreen **ret_interface);
   DFBResult (*EnumDisplayLayers)(IDirectFB *thiz, DFBDisplayLayerCallback callback, void *callbackdata);
   DFBResult (*GetDisplayLayer)(IDirectFB *thiz, DFBDisplayLayerID layer_id, IDirectFBDisplayLayer **ret_interface);
   DFBResult (*EnumInputDevices)(IDirectFB *thiz, DFBInputDeviceCallback callback, void *callbackdata);
   DFBResult (*GetInputDevice)(IDirectFB *thiz, DFBInputDeviceID device_id, IDirectFBInputDevice **ret_interface);
   DFBResult (*CreateEventBuffer)(IDirectFB *thiz, IDirectFBEventBuffer **ret_buffer);
   DFBResult (*CreateInputEventBuffer)(IDirectFB *thiz, DFBInputDeviceCapabilities caps, DFBBoolean global, IDirectFBEventBuffer **ret_buffer);
   DFBResult (*CreateImageProvider)(IDirectFB *thiz, const char *filename, IDirectFBImageProvider **ret_interface);
   DFBResult (*CreateVideoProvider)(IDirectFB *thiz, const char *filename, IDirectFBVideoProvider **ret_interface);
   DFBResult (*CreateFont)(IDirectFB *thiz, const char *filename, const DFBFontDescription *desc, IDirectFBFont **ret_interface);
   DFBResult (*CreateDataBuffer)(IDirectFB *thiz, const DFBDataBufferDescription *desc, IDirectFBDataBuffer **ret_interface);
   DFBResult (*SetClipboardData)(IDirectFB *thiz, const char *mime_type, const void *data, unsigned int size, struct timeval *ret_timestamp);
   DFBResult (*GetClipboardData)(IDirectFB *thiz, char **ret_mimetype, void **ret_data, unsigned int *ret_size);
   DFBResult (*GetClipboardTimeStamp)(IDirectFB *thiz, struct timeval *ret_timestamp);
   DFBResult (*Suspend)(IDirectFB *thiz);
   DFBResult (*Resume)(IDirectFB *thiz);
   DFBResult (*WaitIdle)(IDirectFB *thiz);
   DFBResult (*WaitForSync)(IDirectFB *thiz);
   DFBResult (*GetInterface)(IDirectFB *thiz, const char *type, const char *implementation, void *arg, void **ret_interface);
};
#1681 "/usr/include/directfb/directfb.h"
typedef enum
{
   DLSCL_SHARED = 0,
   DLSCL_EXCLUSIVE,

   DLSCL_ADMINISTRATIVE
} DFBDisplayLayerCooperativeLevel;



typedef enum
{
   DLBM_DONTCARE = 0,

   DLBM_COLOR,

   DLBM_IMAGE,
   DLBM_TILE
} DFBDisplayLayerBackgroundMode;



typedef enum
{
   DLCONF_NONE         = 0x00000000,

   DLCONF_WIDTH        = 0x00000001,
   DLCONF_HEIGHT       = 0x00000002,
   DLCONF_PIXELFORMAT  = 0x00000004,
   DLCONF_BUFFERMODE   = 0x00000008,
   DLCONF_OPTIONS      = 0x00000010,
   DLCONF_SOURCE       = 0x00000020,
   DLCONF_SURFACE_CAPS = 0x00000040,

   DLCONF_ALL          = 0x0000007F
} DFBDisplayLayerConfigFlags;



typedef struct
{
   DFBDisplayLayerConfigFlags flags;

   int                        width;
   int                        height;
   DFBSurfacePixelFormat      pixelformat;
   DFBDisplayLayerBufferMode  buffermode;
   DFBDisplayLayerOptions     options;
   DFBDisplayLayerSourceID    source;

   DFBSurfaceCapabilities     surface_caps;
} DFBDisplayLayerConfig;



typedef enum
{
   DSPM_ON = 0,
   DSPM_STANDBY,
   DSPM_SUSPEND,
   DSPM_OFF
} DFBScreenPowerMode;



typedef enum
{
   DSMCAPS_NONE       = 0x00000000,

   DSMCAPS_FULL       = 0x00000001,
   DSMCAPS_SUB_LEVEL  = 0x00000002,

   DSMCAPS_SUB_LAYERS = 0x00000004,

   DSMCAPS_BACKGROUND = 0x00000008
} DFBScreenMixerCapabilities;



typedef struct
{
   DFBScreenMixerCapabilities caps;

   DFBDisplayLayerIDs         layers;


   int                        sub_num;

   DFBDisplayLayerIDs         sub_layers;


   char                       name[24];
} DFBScreenMixerDescription;



typedef enum
{
   DSMCONF_NONE       = 0x00000000,

   DSMCONF_TREE       = 0x00000001,
   DSMCONF_LEVEL      = 0x00000002,
   DSMCONF_LAYERS     = 0x00000004,

   DSMCONF_BACKGROUND = 0x00000010,

   DSMCONF_ALL        = 0x00000017
} DFBScreenMixerConfigFlags;



typedef enum
{
   DSMT_UNKNOWN    = 0x00000000,

   DSMT_FULL       = 0x00000001,
   DSMT_SUB_LEVEL  = 0x00000002,
   DSMT_SUB_LAYERS = 0x00000003
} DFBScreenMixerTree;



typedef struct
{
   DFBScreenMixerConfigFlags flags;

   DFBScreenMixerTree        tree;

   int                       level;
   DFBDisplayLayerIDs        layers;

   DFBColor                  background;
} DFBScreenMixerConfig;



typedef enum
{
   DSOCAPS_NONE          = 0x00000000,

   DSOCAPS_CONNECTORS    = 0x00000001,

   DSOCAPS_ENCODER_SEL   = 0x00000010,
   DSOCAPS_SIGNAL_SEL    = 0x00000020,
   DSOCAPS_CONNECTOR_SEL = 0x00000040,

   DSOCAPS_ALL           = 0x00000071
} DFBScreenOutputCapabilities;



typedef enum
{
   DSOC_UNKNOWN = 0x00000000,

   DSOC_VGA     = 0x00000001,
   DSOC_SCART   = 0x00000002,
   DSOC_YC      = 0x00000004,
   DSOC_CVBS    = 0x00000008
} DFBScreenOutputConnectors;



typedef enum
{
   DSOS_NONE  = 0x00000000,

   DSOS_VGA   = 0x00000001,
   DSOS_YC    = 0x00000002,
   DSOS_CVBS  = 0x00000004,
   DSOS_RGB   = 0x00000008,
   DSOS_YCBCR = 0x00000010
} DFBScreenOutputSignals;



typedef struct
{
   DFBScreenOutputCapabilities caps;

   DFBScreenOutputConnectors   all_connectors;
   DFBScreenOutputSignals      all_signals;

   char                        name[24];
} DFBScreenOutputDescription;



typedef enum
{
   DSOCONF_NONE       = 0x00000000,

   DSOCONF_ENCODER    = 0x00000001,
   DSOCONF_SIGNALS    = 0x00000002,
   DSOCONF_CONNECTORS = 0x00000004,

   DSOCONF_ALL        = 0x00000007
} DFBScreenOutputConfigFlags;



typedef struct
{
   DFBScreenOutputConfigFlags flags;

   int                        encoder;
   DFBScreenOutputSignals     out_signals;
   DFBScreenOutputConnectors  out_connectors;
} DFBScreenOutputConfig;



typedef enum
{
   DSECAPS_NONE         = 0x00000000,

   DSECAPS_TV_STANDARDS = 0x00000001,
   DSECAPS_TEST_PICTURE = 0x00000002,
   DSECAPS_MIXER_SEL    = 0x00000004,
   DSECAPS_OUT_SIGNALS  = 0x00000008,
   DSECAPS_SCANMODE     = 0x00000010,

   DSECAPS_BRIGHTNESS   = 0x00000100,
   DSECAPS_CONTRAST     = 0x00000200,
   DSECAPS_HUE          = 0x00000400,
   DSECAPS_SATURATION   = 0x00000800,

   DSECAPS_ALL          = 0x00000f1f
} DFBScreenEncoderCapabilities;



typedef enum
{
   DSET_UNKNOWN = 0x00000000,

   DSET_CRTC    = 0x00000001,
   DSET_TV      = 0x00000002
} DFBScreenEncoderType;



typedef enum
{
   DSETV_UNKNOWN = 0x00000000,

   DSETV_PAL     = 0x00000001,
   DSETV_NTSC    = 0x00000002,
   DSETV_SECAM   = 0x00000004
} DFBScreenEncoderTVStandards;



typedef enum
{
   DSESM_UNKNOWN     = 0x00000000,

   DSESM_INTERLACED  = 0x00000001,
   DSESM_PROGRESSIVE = 0x00000002
} DFBScreenEncoderScanMode;



typedef struct
{
   DFBScreenEncoderCapabilities caps;
   DFBScreenEncoderType         type;

   DFBScreenEncoderTVStandards  tv_standards;
   DFBScreenOutputSignals       out_signals;

   char                         name[24];
} DFBScreenEncoderDescription;



typedef enum
{
   DSECONF_NONE         = 0x00000000,

   DSECONF_TV_STANDARD  = 0x00000001,
   DSECONF_TEST_PICTURE = 0x00000002,
   DSECONF_MIXER        = 0x00000004,
   DSECONF_OUT_SIGNALS  = 0x00000008,
   DSECONF_SCANMODE     = 0x00000010,
   DSECONF_TEST_COLOR   = 0x00000020,
   DSECONF_ADJUSTMENT   = 0x00000040,

   DSECONF_ALL          = 0x0000007F
} DFBScreenEncoderConfigFlags;



typedef enum
{
   DSETP_OFF     = 0x00000000,

   DSETP_MULTI   = 0x00000001,
   DSETP_SINGLE  = 0x00000002,

   DSETP_WHITE   = 0x00000010,
   DSETP_YELLOW  = 0x00000020,
   DSETP_CYAN    = 0x00000030,
   DSETP_GREEN   = 0x00000040,
   DSETP_MAGENTA = 0x00000050,
   DSETP_RED     = 0x00000060,
   DSETP_BLUE    = 0x00000070,
   DSETP_BLACK   = 0x00000080
} DFBScreenEncoderTestPicture;



typedef struct
{
   DFBScreenEncoderConfigFlags flags;

   DFBScreenEncoderTVStandards tv_standard;
   DFBScreenEncoderTestPicture test_picture;
   int                         mixer;
   DFBScreenOutputSignals      out_signals;
   DFBScreenEncoderScanMode    scanmode;

   DFBColor                    test_color;

   DFBColorAdjustment          adjustment;
} DFBScreenEncoderConfig;
#2030 "/usr/include/directfb/directfb.h"
struct _IDirectFBScreen
{
   void      *priv;
   int       magic;
   DFBResult (*AddRef)(IDirectFBScreen *thiz);
   DFBResult (*Release)(IDirectFBScreen *thiz);
   DFBResult (*GetID)(IDirectFBScreen *thiz, DFBScreenID *ret_screen_id);
   DFBResult (*GetDescription)(IDirectFBScreen *thiz, DFBScreenDescription *ret_desc);
   DFBResult (*EnumDisplayLayers)(IDirectFBScreen *thiz, DFBDisplayLayerCallback callback, void *callbackdata);
   DFBResult (*SetPowerMode)(IDirectFBScreen *thiz, DFBScreenPowerMode mode);
   DFBResult (*WaitForSync)(IDirectFBScreen *thiz);
   DFBResult (*GetMixerDescriptions)(IDirectFBScreen *thiz, DFBScreenMixerDescription *ret_descriptions);
   DFBResult (*GetMixerConfiguration)(IDirectFBScreen *thiz, int mixer, DFBScreenMixerConfig *ret_config);
   DFBResult (*TestMixerConfiguration)(IDirectFBScreen *thiz, int mixer, const DFBScreenMixerConfig *config, DFBScreenMixerConfigFlags *ret_failed);
   DFBResult (*SetMixerConfiguration)(IDirectFBScreen *thiz, int mixer, const DFBScreenMixerConfig *config);
   DFBResult (*GetEncoderDescriptions)(IDirectFBScreen *thiz, DFBScreenEncoderDescription *ret_descriptions);
   DFBResult (*GetEncoderConfiguration)(IDirectFBScreen *thiz, int encoder, DFBScreenEncoderConfig *ret_config);
   DFBResult (*TestEncoderConfiguration)(IDirectFBScreen *thiz, int encoder, const DFBScreenEncoderConfig *config, DFBScreenEncoderConfigFlags *ret_failed);
   DFBResult (*SetEncoderConfiguration)(IDirectFBScreen *thiz, int encoder, const DFBScreenEncoderConfig *config);
   DFBResult (*GetOutputDescriptions)(IDirectFBScreen *thiz, DFBScreenOutputDescription *ret_descriptions);
   DFBResult (*GetOutputConfiguration)(IDirectFBScreen *thiz, int output, DFBScreenOutputConfig *ret_config);
   DFBResult (*TestOutputConfiguration)(IDirectFBScreen *thiz, int output, const DFBScreenOutputConfig *config, DFBScreenOutputConfigFlags *ret_failed);
   DFBResult (*SetOutputConfiguration)(IDirectFBScreen *thiz, int output, const DFBScreenOutputConfig *config);
};
#2236 "/usr/include/directfb/directfb.h"
struct _IDirectFBDisplayLayer
{
   void      *priv;
   int       magic;
   DFBResult (*AddRef)(IDirectFBDisplayLayer *thiz);
   DFBResult (*Release)(IDirectFBDisplayLayer *thiz);
   DFBResult (*GetID)(IDirectFBDisplayLayer *thiz, DFBDisplayLayerID *ret_layer_id);
   DFBResult (*GetDescription)(IDirectFBDisplayLayer *thiz, DFBDisplayLayerDescription *ret_desc);
   DFBResult (*GetSourceDescriptions)(IDirectFBDisplayLayer *thiz, DFBDisplayLayerSourceDescription *ret_descriptions);
   DFBResult (*GetCurrentOutputField)(IDirectFBDisplayLayer *thiz, int *ret_field);
   DFBResult (*GetSurface)(IDirectFBDisplayLayer *thiz, IDirectFBSurface **ret_interface);
   DFBResult (*GetScreen)(IDirectFBDisplayLayer *thiz, IDirectFBScreen **ret_interface);
   DFBResult (*SetCooperativeLevel)(IDirectFBDisplayLayer *thiz, DFBDisplayLayerCooperativeLevel level);
   DFBResult (*GetConfiguration)(IDirectFBDisplayLayer *thiz, DFBDisplayLayerConfig *ret_config);
   DFBResult (*TestConfiguration)(IDirectFBDisplayLayer *thiz, const DFBDisplayLayerConfig *config, DFBDisplayLayerConfigFlags *ret_failed);
   DFBResult (*SetConfiguration)(IDirectFBDisplayLayer *thiz, const DFBDisplayLayerConfig *config);
   DFBResult (*SetScreenLocation)(IDirectFBDisplayLayer *thiz, float x, float y, float width, float height);
   DFBResult (*SetScreenPosition)(IDirectFBDisplayLayer *thiz, int x, int y);
   DFBResult (*SetScreenRectangle)(IDirectFBDisplayLayer *thiz, int x, int y, int width, int height);
   DFBResult (*SetOpacity)(IDirectFBDisplayLayer *thiz, __u8 opacity);
   DFBResult (*SetSourceRectangle)(IDirectFBDisplayLayer *thiz, int x, int y, int width, int height);
   DFBResult (*SetFieldParity)(IDirectFBDisplayLayer *thiz, int field);
   DFBResult (*SetSrcColorKey)(IDirectFBDisplayLayer *thiz, __u8 r, __u8 g, __u8 b);
   DFBResult (*SetDstColorKey)(IDirectFBDisplayLayer *thiz, __u8 r, __u8 g, __u8 b);
   DFBResult (*GetLevel)(IDirectFBDisplayLayer *thiz, int *ret_level);
   DFBResult (*SetLevel)(IDirectFBDisplayLayer *thiz, int level);
   DFBResult (*SetBackgroundMode)(IDirectFBDisplayLayer *thiz, DFBDisplayLayerBackgroundMode mode);
   DFBResult (*SetBackgroundImage)(IDirectFBDisplayLayer *thiz, IDirectFBSurface *surface);
   DFBResult (*SetBackgroundColor)(IDirectFBDisplayLayer *thiz, __u8 r, __u8 g, __u8 b, __u8 a);
   DFBResult (*GetColorAdjustment)(IDirectFBDisplayLayer *thiz, DFBColorAdjustment *ret_adj);
   DFBResult (*SetColorAdjustment)(IDirectFBDisplayLayer *thiz, const DFBColorAdjustment *adj);
   DFBResult (*CreateWindow)(IDirectFBDisplayLayer *thiz, const DFBWindowDescription *desc, IDirectFBWindow **ret_interface);
   DFBResult (*GetWindow)(IDirectFBDisplayLayer *thiz, DFBWindowID window_id, IDirectFBWindow **ret_interface);
   DFBResult (*EnableCursor)(IDirectFBDisplayLayer *thiz, int enable);
   DFBResult (*GetCursorPosition)(IDirectFBDisplayLayer *thiz, int *ret_x, int *ret_y);
   DFBResult (*WarpCursor)(IDirectFBDisplayLayer *thiz, int x, int y);
   DFBResult (*SetCursorAcceleration)(IDirectFBDisplayLayer *thiz, int numerator, int denominator, int threshold);
   DFBResult (*SetCursorShape)(IDirectFBDisplayLayer *thiz, IDirectFBSurface *shape, int hot_x, int hot_y);
   DFBResult (*SetCursorOpacity)(IDirectFBDisplayLayer *thiz, __u8 opacity);
   DFBResult (*WaitForSync)(IDirectFBDisplayLayer *thiz);
};
#2649 "/usr/include/directfb/directfb.h"
typedef enum
{
   DSFLIP_NONE        = 0x00000000,

   DSFLIP_WAIT        = 0x00000001,

   DSFLIP_BLIT        = 0x00000002,



   DSFLIP_ONSYNC      = 0x00000004,



   DSFLIP_PIPELINE    = 0x00000008,

   DSFLIP_WAITFORSYNC = DSFLIP_WAIT | DSFLIP_ONSYNC
} DFBSurfaceFlipFlags;



typedef enum
{
   DSTF_LEFT         = 0x00000000,
   DSTF_CENTER       = 0x00000001,
   DSTF_RIGHT        = 0x00000002,

   DSTF_TOP          = 0x00000004,

   DSTF_BOTTOM       = 0x00000008,


   DSTF_TOPLEFT      = DSTF_TOP | DSTF_LEFT,
   DSTF_TOPCENTER    = DSTF_TOP | DSTF_CENTER,
   DSTF_TOPRIGHT     = DSTF_TOP | DSTF_RIGHT,

   DSTF_BOTTOMLEFT   = DSTF_BOTTOM | DSTF_LEFT,
   DSTF_BOTTOMCENTER = DSTF_BOTTOM | DSTF_CENTER,
   DSTF_BOTTOMRIGHT  = DSTF_BOTTOM | DSTF_RIGHT
} DFBSurfaceTextFlags;



typedef enum
{
   DSLF_READ  = 0x00000001,

   DSLF_WRITE = 0x00000002
} DFBSurfaceLockFlags;



typedef enum
{
   DSPD_NONE     = 0,
   DSPD_CLEAR    = 1,
   DSPD_SRC      = 2,
   DSPD_SRC_OVER = 3,
   DSPD_DST_OVER = 4,
   DSPD_SRC_IN   = 5,
   DSPD_DST_IN   = 6,
   DSPD_SRC_OUT  = 7,
   DSPD_DST_OUT  = 8
} DFBSurfacePorterDuffRule;



typedef enum
{
   DSBF_ZERO         = 1,
   DSBF_ONE          = 2,
   DSBF_SRCCOLOR     = 3,
   DSBF_INVSRCCOLOR  = 4,
   DSBF_SRCALPHA     = 5,
   DSBF_INVSRCALPHA  = 6,
   DSBF_DESTALPHA    = 7,
   DSBF_INVDESTALPHA = 8,
   DSBF_DESTCOLOR    = 9,
   DSBF_INVDESTCOLOR = 10,
   DSBF_SRCALPHASAT  = 11
} DFBSurfaceBlendFunction;



typedef struct
{
   float x;
   float y;
   float z;
   float w;

   float s;
   float t;
} DFBVertex;



typedef enum
{
   DTTF_LIST,
   DTTF_STRIP,
   DTTF_FAN
} DFBTriangleFormation;
#2763 "/usr/include/directfb/directfb.h"
struct _IDirectFBSurface
{
   void      *priv;
   int       magic;
   DFBResult (*AddRef)(IDirectFBSurface *thiz);
   DFBResult (*Release)(IDirectFBSurface *thiz);
   DFBResult (*GetCapabilities)(IDirectFBSurface *thiz, DFBSurfaceCapabilities *ret_caps);
   DFBResult (*GetSize)(IDirectFBSurface *thiz, int *ret_width, int *ret_height);
   DFBResult (*GetVisibleRectangle)(IDirectFBSurface *thiz, DFBRectangle *ret_rect);
   DFBResult (*GetPixelFormat)(IDirectFBSurface *thiz, DFBSurfacePixelFormat *ret_format);
   DFBResult (*GetAccelerationMask)(IDirectFBSurface *thiz, IDirectFBSurface *source, DFBAccelerationMask *ret_mask);
   DFBResult (*GetPalette)(IDirectFBSurface *thiz, IDirectFBPalette **ret_interface);
   DFBResult (*SetPalette)(IDirectFBSurface *thiz, IDirectFBPalette *palette);
   DFBResult (*SetAlphaRamp)(IDirectFBSurface *thiz, __u8 a0, __u8 a1, __u8 a2, __u8 a3);
   DFBResult (*Lock)(IDirectFBSurface *thiz, DFBSurfaceLockFlags flags, void **ret_ptr, int *ret_pitch);
   DFBResult (*Unlock)(IDirectFBSurface *thiz);
   DFBResult (*Flip)(IDirectFBSurface *thiz, const DFBRegion *region, DFBSurfaceFlipFlags flags);
   DFBResult (*SetField)(IDirectFBSurface *thiz, int field);
   DFBResult (*Clear)(IDirectFBSurface *thiz, __u8 r, __u8 g, __u8 b, __u8 a);
   DFBResult (*SetClip)(IDirectFBSurface *thiz, const DFBRegion *clip);
   DFBResult (*SetColor)(IDirectFBSurface *thiz, __u8 r, __u8 g, __u8 b, __u8 a);
   DFBResult (*SetColorIndex)(IDirectFBSurface *thiz, unsigned int index);
   DFBResult (*SetSrcBlendFunction)(IDirectFBSurface *thiz, DFBSurfaceBlendFunction function);
   DFBResult (*SetDstBlendFunction)(IDirectFBSurface *thiz, DFBSurfaceBlendFunction function);
   DFBResult (*SetPorterDuff)(IDirectFBSurface *thiz, DFBSurfacePorterDuffRule rule);
   DFBResult (*SetSrcColorKey)(IDirectFBSurface *thiz, __u8 r, __u8 g, __u8 b);
   DFBResult (*SetSrcColorKeyIndex)(IDirectFBSurface *thiz, unsigned int index);
   DFBResult (*SetDstColorKey)(IDirectFBSurface *thiz, __u8 r, __u8 g, __u8 b);
   DFBResult (*SetDstColorKeyIndex)(IDirectFBSurface *thiz, unsigned int index);
   DFBResult (*SetBlittingFlags)(IDirectFBSurface *thiz, DFBSurfaceBlittingFlags flags);
   DFBResult (*Blit)(IDirectFBSurface *thiz, IDirectFBSurface *source, const DFBRectangle *source_rect, int x, int y);
   DFBResult (*TileBlit)(IDirectFBSurface *thiz, IDirectFBSurface *source, const DFBRectangle *source_rect, int x, int y);
   DFBResult (*BatchBlit)(IDirectFBSurface *thiz, IDirectFBSurface *source, const DFBRectangle *source_rects, const DFBPoint *dest_points, int num);
   DFBResult (*StretchBlit)(IDirectFBSurface *thiz, IDirectFBSurface *source, const DFBRectangle *source_rect, const DFBRectangle *destination_rect);
   DFBResult (*TextureTriangles)(IDirectFBSurface *thiz, IDirectFBSurface *texture, const DFBVertex *vertices, const int *indices, int num, DFBTriangleFormation formation);
   DFBResult (*SetDrawingFlags)(IDirectFBSurface *thiz, DFBSurfaceDrawingFlags flags);
   DFBResult (*FillRectangle)(IDirectFBSurface *thiz, int x, int y, int w, int h);
   DFBResult (*DrawRectangle)(IDirectFBSurface *thiz, int x, int y, int w, int h);
   DFBResult (*DrawLine)(IDirectFBSurface *thiz, int x1, int y1, int x2, int y2);
   DFBResult (*DrawLines)(IDirectFBSurface *thiz, const DFBRegion *lines, unsigned int num_lines);
   DFBResult (*FillTriangle)(IDirectFBSurface *thiz, int x1, int y1, int x2, int y2, int x3, int y3);
   DFBResult (*FillRectangles)(IDirectFBSurface *thiz, const DFBRectangle *rects, unsigned int num);
   DFBResult (*FillSpans)(IDirectFBSurface *thiz, int y, const DFBSpan *spans, unsigned int num);
   DFBResult (*SetFont)(IDirectFBSurface *thiz, IDirectFBFont *font);
   DFBResult (*GetFont)(IDirectFBSurface *thiz, IDirectFBFont **ret_font);
   DFBResult (*DrawString)(IDirectFBSurface *thiz, const char *text, int bytes, int x, int y, DFBSurfaceTextFlags flags);
   DFBResult (*DrawGlyph)(IDirectFBSurface *thiz, unsigned int index, int x, int y, DFBSurfaceTextFlags flags);
   DFBResult (*GetSubSurface)(IDirectFBSurface *thiz, const DFBRectangle *rect, IDirectFBSurface **ret_interface);
   DFBResult (*GetGL)(IDirectFBSurface *thiz, IDirectFBGL **ret_interface);
   DFBResult (*Dump)(IDirectFBSurface *thiz, const char *directory, const char *prefix);
};
#3354 "/usr/include/directfb/directfb.h"
struct _IDirectFBPalette
{
   void      *priv;
   int       magic;
   DFBResult (*AddRef)(IDirectFBPalette *thiz);
   DFBResult (*Release)(IDirectFBPalette *thiz);
   DFBResult (*GetCapabilities)(IDirectFBPalette *thiz, DFBPaletteCapabilities *ret_caps);
   DFBResult (*GetSize)(IDirectFBPalette *thiz, unsigned int *ret_size);
   DFBResult (*SetEntries)(IDirectFBPalette *thiz, const DFBColor *entries, unsigned int num_entries, unsigned int offset);
   DFBResult (*GetEntries)(IDirectFBPalette *thiz, DFBColor *ret_entries, unsigned int num_entries, unsigned int offset);
   DFBResult (*FindBestMatch)(IDirectFBPalette *thiz, __u8 r, __u8 g, __u8 b, __u8 a, unsigned int *ret_index);
   DFBResult (*CreateCopy)(IDirectFBPalette *thiz, IDirectFBPalette **ret_interface);
};
#3433 "/usr/include/directfb/directfb.h"
typedef enum
{
   DIKS_UP   = 0x00000000,
   DIKS_DOWN = 0x00000001
} DFBInputDeviceKeyState;



typedef enum
{
   DIBS_UP   = 0x00000000,
   DIBS_DOWN = 0x00000001
} DFBInputDeviceButtonState;



typedef enum
{
   DIBM_LEFT   = 0x00000001,
   DIBM_RIGHT  = 0x00000002,
   DIBM_MIDDLE = 0x00000004
} DFBInputDeviceButtonMask;



typedef enum
{
   DIMM_SHIFT   = (1 << DIMKI_SHIFT),
   DIMM_CONTROL = (1 << DIMKI_CONTROL),
   DIMM_ALT     = (1 << DIMKI_ALT),
   DIMM_ALTGR   = (1 << DIMKI_ALTGR),
   DIMM_META    = (1 << DIMKI_META),
   DIMM_SUPER   = (1 << DIMKI_SUPER),
   DIMM_HYPER   = (1 << DIMKI_HYPER)
} DFBInputDeviceModifierMask;
#3476 "/usr/include/directfb/directfb.h"
struct _IDirectFBInputDevice
{
   void      *priv;
   int       magic;
   DFBResult (*AddRef)(IDirectFBInputDevice *thiz);
   DFBResult (*Release)(IDirectFBInputDevice *thiz);
   DFBResult (*GetID)(IDirectFBInputDevice *thiz, DFBInputDeviceID *ret_device_id);
   DFBResult (*GetDescription)(IDirectFBInputDevice *thiz, DFBInputDeviceDescription *ret_desc);
   DFBResult (*GetKeymapEntry)(IDirectFBInputDevice *thiz, int keycode, DFBInputDeviceKeymapEntry *ret_entry);
   DFBResult (*CreateEventBuffer)(IDirectFBInputDevice *thiz, IDirectFBEventBuffer **ret_buffer);
   DFBResult (*AttachEventBuffer)(IDirectFBInputDevice *thiz, IDirectFBEventBuffer *buffer);
   DFBResult (*GetKeyState)(IDirectFBInputDevice *thiz, DFBInputDeviceKeyIdentifier key_id, DFBInputDeviceKeyState *ret_state);
   DFBResult (*GetModifiers)(IDirectFBInputDevice *thiz, DFBInputDeviceModifierMask *ret_modifiers);
   DFBResult (*GetLockState)(IDirectFBInputDevice *thiz, DFBInputDeviceLockState *ret_locks);
   DFBResult (*GetButtons)(IDirectFBInputDevice *thiz, DFBInputDeviceButtonMask *ret_buttons);
   DFBResult (*GetButtonState)(IDirectFBInputDevice *thiz, DFBInputDeviceButtonIdentifier button, DFBInputDeviceButtonState *ret_state);
   DFBResult (*GetAxis)(IDirectFBInputDevice *thiz, DFBInputDeviceAxisIdentifier axis, int *ret_pos);
   DFBResult (*GetXY)(IDirectFBInputDevice *thiz, int *ret_x, int *ret_y);
};
#3605 "/usr/include/directfb/directfb.h"
typedef enum
{
   DFEC_NONE   = 0x00,
   DFEC_INPUT  = 0x01,
   DFEC_WINDOW = 0x02,
   DFEC_USER   = 0x03
} DFBEventClass;



typedef enum
{
   DIET_UNKNOWN = 0,
   DIET_KEYPRESS,
   DIET_KEYRELEASE,
   DIET_BUTTONPRESS,
   DIET_BUTTONRELEASE,
   DIET_AXISMOTION
} DFBInputEventType;



typedef enum
{
   DIEF_NONE      = 0x000,
   DIEF_TIMESTAMP = 0x001,
   DIEF_AXISABS   = 0x002,
   DIEF_AXISREL   = 0x004,

   DIEF_KEYCODE   = 0x008,

   DIEF_KEYID     = 0x010,

   DIEF_KEYSYMBOL = 0x020,

   DIEF_MODIFIERS = 0x040,

   DIEF_LOCKS     = 0x080,

   DIEF_BUTTONS   = 0x100,

   DIEF_GLOBAL    = 0x200
} DFBInputEventFlags;



typedef struct
{
   DFBEventClass                  clazz;

   DFBInputEventType              type;
   DFBInputDeviceID               device_id;
   DFBInputEventFlags             flags;



   struct timeval                 timestamp;


   int                            key_code;



   DFBInputDeviceKeyIdentifier    key_id;

   DFBInputDeviceKeySymbol        key_symbol;



   DFBInputDeviceModifierMask     modifiers;

   DFBInputDeviceLockState        locks;



   DFBInputDeviceButtonIdentifier button;

   DFBInputDeviceButtonMask       buttons;



   DFBInputDeviceAxisIdentifier   axis;


   int                            axisabs;

   int                            axisrel;
} DFBInputEvent;



typedef enum
{
   DWET_NONE          = 0x00000000,

   DWET_POSITION      = 0x00000001,


   DWET_SIZE          = 0x00000002,


   DWET_CLOSE         = 0x00000004,

   DWET_DESTROYED     = 0x00000008,


   DWET_GOTFOCUS      = 0x00000010,
   DWET_LOSTFOCUS     = 0x00000020,

   DWET_KEYDOWN       = 0x00000100,

   DWET_KEYUP         = 0x00000200,


   DWET_BUTTONDOWN    = 0x00010000,

   DWET_BUTTONUP      = 0x00020000,

   DWET_MOTION        = 0x00040000,

   DWET_ENTER         = 0x00080000,

   DWET_LEAVE         = 0x00100000,

   DWET_WHEEL         = 0x00200000,


   DWET_POSITION_SIZE = DWET_POSITION | DWET_SIZE,



   DWET_ALL           = 0x003F033F
} DFBWindowEventType;



typedef struct
{
   DFBEventClass                  clazz;

   DFBWindowEventType             type;
   DFBWindowID                    window_id;



   int                            x;


   int                            y;



   int                            cx;
   int                            cy;


   int                            step;


   int                            w;
   int                            h;


   int                            key_code;



   DFBInputDeviceKeyIdentifier    key_id;

   DFBInputDeviceKeySymbol        key_symbol;


   DFBInputDeviceModifierMask     modifiers;
   DFBInputDeviceLockState        locks;


   DFBInputDeviceButtonIdentifier button;


   DFBInputDeviceButtonMask       buttons;


   struct timeval                 timestamp;
} DFBWindowEvent;



typedef struct
{
   DFBEventClass clazz;

   unsigned int  type;
   void          *data;
} DFBUserEvent;



typedef union
{
   DFBEventClass  clazz;
   DFBInputEvent  input;
   DFBWindowEvent window;
   DFBUserEvent   user;
} DFBEvent;
#3827 "/usr/include/directfb/directfb.h"
struct _IDirectFBEventBuffer
{
   void      *priv;
   int       magic;
   DFBResult (*AddRef)(IDirectFBEventBuffer *thiz);
   DFBResult (*Release)(IDirectFBEventBuffer *thiz);
   DFBResult (*Reset)(IDirectFBEventBuffer *thiz);
   DFBResult (*WaitForEvent)(IDirectFBEventBuffer *thiz);
   DFBResult (*WaitForEventWithTimeout)(IDirectFBEventBuffer *thiz, unsigned int seconds, unsigned int milli_seconds);
   DFBResult (*GetEvent)(IDirectFBEventBuffer *thiz, DFBEvent *ret_event);
   DFBResult (*PeekEvent)(IDirectFBEventBuffer *thiz, DFBEvent *ret_event);
   DFBResult (*HasEvent)(IDirectFBEventBuffer *thiz);
   DFBResult (*PostEvent)(IDirectFBEventBuffer *thiz, const DFBEvent *event);
   DFBResult (*WakeUp)(IDirectFBEventBuffer *thiz);
   DFBResult (*CreateFileDescriptor)(IDirectFBEventBuffer *thiz, int *ret_fd);
};
#3939 "/usr/include/directfb/directfb.h"
typedef enum
{
   DWOP_NONE           = 0x00000000,
   DWOP_COLORKEYING    = 0x00000001,
   DWOP_ALPHACHANNEL   = 0x00000002,

   DWOP_OPAQUE_REGION  = 0x00000004,

   DWOP_SHAPED         = 0x00000008,


   DWOP_KEEP_POSITION  = 0x00000010,

   DWOP_KEEP_SIZE      = 0x00000020,

   DWOP_KEEP_STACKING  = 0x00000040,

   DWOP_GHOST          = 0x00001000,


   DWOP_INDESTRUCTIBLE = 0x00002000,

   DWOP_ALL            = 0x0000307F
} DFBWindowOptions;



typedef enum
{
   DWSC_MIDDLE = 0x00000000,

   DWSC_UPPER  = 0x00000001,



   DWSC_LOWER  = 0x00000002
} DFBWindowStackingClass;
#3988 "/usr/include/directfb/directfb.h"
struct _IDirectFBWindow
{
   void      *priv;
   int       magic;
   DFBResult (*AddRef)(IDirectFBWindow *thiz);
   DFBResult (*Release)(IDirectFBWindow *thiz);
   DFBResult (*GetID)(IDirectFBWindow *thiz, DFBWindowID *ret_window_id);
   DFBResult (*GetPosition)(IDirectFBWindow *thiz, int *ret_x, int *ret_y);
   DFBResult (*GetSize)(IDirectFBWindow *thiz, int *ret_width, int *ret_height);
   DFBResult (*CreateEventBuffer)(IDirectFBWindow *thiz, IDirectFBEventBuffer **ret_buffer);
   DFBResult (*AttachEventBuffer)(IDirectFBWindow *thiz, IDirectFBEventBuffer *buffer);
   DFBResult (*EnableEvents)(IDirectFBWindow *thiz, DFBWindowEventType mask);
   DFBResult (*DisableEvents)(IDirectFBWindow *thiz, DFBWindowEventType mask);
   DFBResult (*GetSurface)(IDirectFBWindow *thiz, IDirectFBSurface **ret_surface);
   DFBResult (*SetOptions)(IDirectFBWindow *thiz, DFBWindowOptions options);
   DFBResult (*GetOptions)(IDirectFBWindow *thiz, DFBWindowOptions *ret_options);
   DFBResult (*SetColorKey)(IDirectFBWindow *thiz, __u8 r, __u8 g, __u8 b);
   DFBResult (*SetColorKeyIndex)(IDirectFBWindow *thiz, unsigned int index);
   DFBResult (*SetOpacity)(IDirectFBWindow *thiz, __u8 opacity);
   DFBResult (*SetOpaqueRegion)(IDirectFBWindow *thiz, int x1, int y1, int x2, int y2);
   DFBResult (*GetOpacity)(IDirectFBWindow *thiz, __u8 *ret_opacity);
   DFBResult (*SetCursorShape)(IDirectFBWindow *thiz, IDirectFBSurface *shape, int hot_x, int hot_y);
   DFBResult (*RequestFocus)(IDirectFBWindow *thiz);
   DFBResult (*GrabKeyboard)(IDirectFBWindow *thiz);
   DFBResult (*UngrabKeyboard)(IDirectFBWindow *thiz);
   DFBResult (*GrabPointer)(IDirectFBWindow *thiz);
   DFBResult (*UngrabPointer)(IDirectFBWindow *thiz);
   DFBResult (*GrabKey)(IDirectFBWindow *thiz, DFBInputDeviceKeySymbol symbol, DFBInputDeviceModifierMask modifiers);
   DFBResult (*UngrabKey)(IDirectFBWindow *thiz, DFBInputDeviceKeySymbol symbol, DFBInputDeviceModifierMask modifiers);
   DFBResult (*Move)(IDirectFBWindow *thiz, int dx, int dy);
   DFBResult (*MoveTo)(IDirectFBWindow *thiz, int x, int y);
   DFBResult (*Resize)(IDirectFBWindow *thiz, int width, int height);
   DFBResult (*SetStackingClass)(IDirectFBWindow *thiz, DFBWindowStackingClass stacking_class);
   DFBResult (*Raise)(IDirectFBWindow *thiz);
   DFBResult (*Lower)(IDirectFBWindow *thiz);
   DFBResult (*RaiseToTop)(IDirectFBWindow *thiz);
   DFBResult (*LowerToBottom)(IDirectFBWindow *thiz);
   DFBResult (*PutAtop)(IDirectFBWindow *thiz, IDirectFBWindow *lower);
   DFBResult (*PutBelow)(IDirectFBWindow *thiz, IDirectFBWindow *upper);
   DFBResult (*Close)(IDirectFBWindow *thiz);
   DFBResult (*Destroy)(IDirectFBWindow *thiz);
};
#4356 "/usr/include/directfb/directfb.h"
struct _IDirectFBFont
{
   void      *priv;
   int       magic;
   DFBResult (*AddRef)(IDirectFBFont *thiz);
   DFBResult (*Release)(IDirectFBFont *thiz);
   DFBResult (*GetAscender)(IDirectFBFont *thiz, int *ret_ascender);
   DFBResult (*GetDescender)(IDirectFBFont *thiz, int *ret_descender);
   DFBResult (*GetHeight)(IDirectFBFont *thiz, int *ret_height);
   DFBResult (*GetMaxAdvance)(IDirectFBFont *thiz, int *ret_maxadvance);
   DFBResult (*GetKerning)(IDirectFBFont *thiz, unsigned int prev_index, unsigned int current_index, int *ret_kern_x, int *ret_kern_y);
   DFBResult (*GetStringWidth)(IDirectFBFont *thiz, const char *text, int bytes, int *ret_width);
   DFBResult (*GetStringExtents)(IDirectFBFont *thiz, const char *text, int bytes, DFBRectangle *ret_logical_rect, DFBRectangle *ret_ink_rect);
   DFBResult (*GetGlyphExtents)(IDirectFBFont *thiz, unsigned int index, DFBRectangle *ret_rect, int *ret_advance);
};
#4492 "/usr/include/directfb/directfb.h"
typedef enum
{
   DICAPS_NONE         = 0x00000000,
   DICAPS_ALPHACHANNEL = 0x00000001,

   DICAPS_COLORKEY     = 0x00000002
} DFBImageCapabilities;



typedef struct
{
   DFBImageCapabilities caps;

   __u8                 colorkey_r;
   __u8                 colorkey_g;
   __u8                 colorkey_b;
} DFBImageDescription;



typedef void (*DIRenderCallback)(DFBRectangle *rect, void *ctx);
#4526 "/usr/include/directfb/directfb.h"
struct _IDirectFBImageProvider
{
   void      *priv;
   int       magic;
   DFBResult (*AddRef)(IDirectFBImageProvider *thiz);
   DFBResult (*Release)(IDirectFBImageProvider *thiz);
   DFBResult (*GetSurfaceDescription)(IDirectFBImageProvider *thiz, DFBSurfaceDescription *ret_dsc);
   DFBResult (*GetImageDescription)(IDirectFBImageProvider *thiz, DFBImageDescription *ret_dsc);
   DFBResult (*RenderTo)(IDirectFBImageProvider *thiz, IDirectFBSurface *destination, const DFBRectangle *destination_rect);
   DFBResult (*SetRenderCallback)(IDirectFBImageProvider *thiz, DIRenderCallback callback, void *callback_data);
};
#4592 "/usr/include/directfb/directfb.h"
typedef int (*DVFrameCallback)(void *ctx);
#4602 "/usr/include/directfb/directfb.h"
struct _IDirectFBVideoProvider
{
   void      *priv;
   int       magic;
   DFBResult (*AddRef)(IDirectFBVideoProvider *thiz);
   DFBResult (*Release)(IDirectFBVideoProvider *thiz);
   DFBResult (*GetCapabilities)(IDirectFBVideoProvider *thiz, DFBVideoProviderCapabilities *ret_caps);
   DFBResult (*GetSurfaceDescription)(IDirectFBVideoProvider *thiz, DFBSurfaceDescription *ret_dsc);
   DFBResult (*PlayTo)(IDirectFBVideoProvider *thiz, IDirectFBSurface *destination, const DFBRectangle *destination_rect, DVFrameCallback callback, void *ctx);
   DFBResult (*Stop)(IDirectFBVideoProvider *thiz);
   DFBResult (*SeekTo)(IDirectFBVideoProvider *thiz, double seconds);
   DFBResult (*GetPos)(IDirectFBVideoProvider *thiz, double *ret_seconds);
   DFBResult (*GetLength)(IDirectFBVideoProvider *thiz, double *ret_seconds);
   DFBResult (*GetColorAdjustment)(IDirectFBVideoProvider *thiz, DFBColorAdjustment *ret_adj);
   DFBResult (*SetColorAdjustment)(IDirectFBVideoProvider *thiz, const DFBColorAdjustment *adj);
};
#4708 "/usr/include/directfb/directfb.h"
struct _IDirectFBDataBuffer
{
   void      *priv;
   int       magic;
   DFBResult (*AddRef)(IDirectFBDataBuffer *thiz);
   DFBResult (*Release)(IDirectFBDataBuffer *thiz);
   DFBResult (*Flush)(IDirectFBDataBuffer *thiz);
   DFBResult (*SeekTo)(IDirectFBDataBuffer *thiz, unsigned int offset);
   DFBResult (*GetPosition)(IDirectFBDataBuffer *thiz, unsigned int *ret_offset);
   DFBResult (*GetLength)(IDirectFBDataBuffer *thiz, unsigned int *ret_length);
   DFBResult (*WaitForData)(IDirectFBDataBuffer *thiz, unsigned int length);
   DFBResult (*WaitForDataWithTimeout)(IDirectFBDataBuffer *thiz, unsigned int length, unsigned int seconds, unsigned int milli_seconds);
   DFBResult (*GetData)(IDirectFBDataBuffer *thiz, unsigned int length, void *ret_data, unsigned int *ret_read);
   DFBResult (*PeekData)(IDirectFBDataBuffer *thiz, unsigned int length, int offset, void *ret_data, unsigned int *ret_read);
   DFBResult (*HasData)(IDirectFBDataBuffer *thiz);
   DFBResult (*PutData)(IDirectFBDataBuffer *thiz, const void *data, unsigned int length);
   DFBResult (*CreateImageProvider)(IDirectFBDataBuffer *thiz, IDirectFBImageProvider **interface);
};
