Reference Manual - 1.8.0
DirectFB Reference   Type Definitions

DFBBoolean

A boolean.

  DFB_FALSE   0  
  DFB_TRUE   !DFB_FALSE  


DFBPoint

A point specified by x/y coordinates.

  int   x   X coordinate of it
  int   y   Y coordinate of it


DFBSpan

A horizontal line specified by x and width.

  int   x   X coordinate
  int   w   width of span


DFBDimension

A dimension specified by width and height.

  int   w   width of it
  int   h   height of it


DFBBox

A rectangle specified by two points.

  int   x1   X coordinate of top-left point (inclusive)
  int   y1   Y coordinate of top-left point (inclusive)
  int   x2   X coordinate of lower-right point (exclusive)
  int   y2   Y coordinate of lower-right point (exclusive)

The defined rectangle includes the top left but not the bottom right endpoint.


DFBRectangle

A rectangle specified by a point and a dimension.

  int   x   X coordinate of its top-left point
  int   y   Y coordinate of its top-left point
  int   w   width of it
  int   h   height of it


DFBLocation

A rectangle specified by normalized coordinates.

  float   x   normalized X coordinate
  float   y   normalized Y coordinate
  float   w   normalized width
  float   h   normalized height

E.g. using 0.0, 0.0, 1.0, 1.0 would specify the whole screen.


DFBRegion

A region specified by two points.

  int   x1   X coordinate of top-left point
  int   y1   Y coordinate of top-left point
  int   x2   X coordinate of lower-right point
  int   y2   Y coordinate of lower-right point

The defined region includes both endpoints.


DFBInsets

Insets specify a distance from each edge of a rectangle.

  int   l   distance from left edge
  int   t   distance from top edge
  int   r   distance from right edge
  int   b   distance from bottom edge

Positive values always mean 'outside'.


DFBTriangle

A triangle specified by three points.

  int   x1   X coordinate of first edge
  int   y1   Y coordinate of first edge
  int   x2   X coordinate of second edge
  int   y2   Y coordinate of second edge
  int   x3   X coordinate of third edge
  int   y3   Y coordinate of third edge


DFBTrapezoid

A trapezoid specified by two points with a width each.

  int   x1   X coordinate of first span
  int   y1   Y coordinate of first span
  int   w1   width of first span
  int   x2   X coordinate of second span
  int   y2   Y coordinate of second span
  int   w2   width of second span


DFBColor

A color defined by channels with 8bit each.

  u8   a   alpha channel
  u8   r   red channel
  u8   g   green channel
  u8   b   blue channel


DFBColorKey

A color key defined by R,G,B and eventually a color index.

  u8   index   color index
  u8   r   red channel
  u8   g   green channel
  u8   b   blue channel


DFBColorYUV

A color defined by channels with 8bit each.

  u8   a   alpha channel
  u8   y   luma channel
  u8   u   chroma channel
  u8   v   chroma channel


DFB_POINT_EQUAL (a,b)

Macro to compare two points.

((a).x == (b).x && \


DFB_RECTANGLE_EQUAL (a,b)

Macro to compare two rectangles.

((a).x == (b).x && \


DFB_LOCATION_EQUAL (a,b)

Macro to compare two locations.

((a).x == (b).x && \


DFB_REGION_EQUAL (a,b)

Macro to compare two regions.

((a).x1 == (b).x1 && \


DFB_COLOR_EQUAL (x,y)

Macro to compare two colors.

((x).a == (y).a && \


DFB_COLORKEY_EQUAL (x,y)

Macro to compare two color keys.

((x).index == (y).index && \


DCID_PRIMARY

Predefined color IDs.

0


DFB_COLOR_IDS_MAX

Maximum number of color ids.

8


DFB_DISPLAYLAYER_IDS_MAX

Maximum number of layer ids.

32


DFB_DISPLAYLAYER_IDS_ADD (ids,id)

Adds the id to the bitmask of layer ids.

(ids) |= (1 << (id))


DFB_DISPLAYLAYER_IDS_REMOVE (ids,id)

Removes the id from the bitmask of layer ids.

(ids) &= ~(1 << (id))


DFB_DISPLAYLAYER_IDS_HAVE (ids,id)

Checks if the bitmask of layer ids contains the id.

((ids) & (1 << (id)))


DFB_DISPLAYLAYER_IDS_EMPTY (ids)

Empties (clears) the bitmask of layer ids.

(ids) = 0


DTEID_UTF8

Predefined text encoding IDs.

0


DFBCooperativeLevel

The cooperative level controls the super interface's behaviour in functions like SetVideoMode or CreateSurface for the primary.

  DFSCL_NORMAL   0x00000000   Normal shared access, primary surface will be the buffer of an implicitly created window at the resolution given by SetVideoMode().
  DFSCL_FULLSCREEN     Application grabs the primary layer, SetVideoMode automates layer control. Primary surface is the primary layer surface.
  DFSCL_EXCLUSIVE     All but the primary layer will be disabled, the application has full control over layers if desired, other applications have no input/output/control. Primary surface is the primary layer surface.


DFBDisplayLayerCapabilities

Capabilities of a display layer.

  DLCAPS_NONE   0x00000000  
  DLCAPS_SURFACE   0x00000001   The layer has a surface that can be drawn to. This may not be provided by layers that display realtime data, e.g. from an MPEG decoder chip. Playback control may be provided by an external API.
  DLCAPS_OPACITY   0x00000002   The layer supports blending with layer(s) below based on a global alpha factor.
  DLCAPS_ALPHACHANNEL   0x00000004   The layer supports blending with layer(s) below based on each pixel's alpha value.
  DLCAPS_SCREEN_LOCATION   0x00000008   The layer location on the screen can be changed, this includes position and size as normalized values. The default is 0.0f, 0.0f, 1.0f, 1.0f. Supports IDirectFBDisplayLayer::SetScreenLocation() and IDirectFBDisplayLayer::SetScreenRectangle(). This implies DLCAPS_SCREEN_POSITION and _SIZE.
  DLCAPS_FLICKER_FILTERING   0x00000010   Flicker filtering can be enabled for smooth output on interlaced display devices.
  DLCAPS_DEINTERLACING   0x00000020   The layer provides optional deinterlacing for displaying interlaced video data on progressive display devices.
  DLCAPS_SRC_COLORKEY   0x00000040   A specific color can be declared as transparent.
  DLCAPS_DST_COLORKEY   0x00000080   A specific color of layers below can be specified as the color of the only locations where the layer is visible.
  DLCAPS_BRIGHTNESS   0x00000100   Adjustment of brightness is supported.
  DLCAPS_CONTRAST   0x00000200   Adjustment of contrast is supported.
  DLCAPS_HUE   0x00000400   Adjustment of hue is supported.
  DLCAPS_SATURATION   0x00000800   Adjustment of saturation is supported.
  DLCAPS_LEVELS   0x00001000   Adjustment of the layer's level (z position) is supported.
  DLCAPS_FIELD_PARITY   0x00002000   Field parity can be selected
  DLCAPS_WINDOWS   0x00004000   Hardware window support.
  DLCAPS_SOURCES   0x00008000   Sources can be selected.
  DLCAPS_ALPHA_RAMP   0x00010000   Alpha values for formats with one or two alpha bits can be chosen, i.e. using ARGB1555 or ARGB2554 the user can define the meaning of the two or four possibilities. In short, this feature provides a lookup table for the alpha bits of these formats. See also IDirectFBSurface::SetAlphaRamp().
  DLCAPS_PREMULTIPLIED   0x00020000   Surfaces with premultiplied alpha are supported.
  DLCAPS_SCREEN_POSITION   0x00100000   The layer position on the screen can be changed. Supports IDirectFBDisplayLayer::SetScreenPosition().
  DLCAPS_SCREEN_SIZE   0x00200000   The layer size (defined by its source rectangle) can be scaled to a different size on the screen (defined by its screen/destination rectangle or its normalized size) and does not have to be 1:1 with it.
  DLCAPS_CLIP_REGIONS   0x00400000   Supports IDirectFBDisplayLayer::SetClipRegions().
  DLCAPS_LR_MONO   0x01000000   Supports L/R mono stereoscopic display.
  DLCAPS_STEREO   0x02000000   Supports independent L/R stereoscopic display.
  DLCAPS_ALL   0x0373FFFF  


DIRenderFlags

Flags used by image providers

  DIRENDER_NONE   0x00000000  
  DIRENDER_FAST   0x00000001   Select fast rendering method
  DIRENDER_ALL   0x00000001  


DFBScreenCapabilities

Capabilities of a screen.

  DSCCAPS_NONE   0x00000000  
  DSCCAPS_VSYNC   0x00000001   Synchronization with the vertical retrace supported.
  DSCCAPS_POWER_MANAGEMENT   0x00000002   Power management supported.
  DSCCAPS_MIXERS   0x00000010   Has mixers.
  DSCCAPS_ENCODERS   0x00000020   Has encoders.
  DSCCAPS_OUTPUTS   0x00000040   Has outputs.
  DSCCAPS_ALL   0x00000073  


DFBDisplayLayerOptions

Used to enable some capabilities like flicker filtering or colorkeying.

  DLOP_NONE   0x00000000   None of these.
  DLOP_ALPHACHANNEL   0x00000001   Make usage of alpha channel for blending on a pixel per pixel basis.
  DLOP_FLICKER_FILTERING   0x00000002   Enable flicker filtering.
  DLOP_DEINTERLACING   0x00000004   Enable deinterlacing of an interlaced (video) source.
  DLOP_SRC_COLORKEY   0x00000008   Enable source color key.
  DLOP_DST_COLORKEY   0x00000010   Enable dest. color key.
  DLOP_OPACITY   0x00000020   Make usage of the global alpha factor set by SetOpacity.
  DLOP_FIELD_PARITY   0x00000040   Set field parity
  DLOP_LR_MONO   0x00000100   Layer has a single set of surface buffers and a stereo depth. The number of buffers in each set is deteremined by DSCAPS_DOUBLE, DSCAPS_TRIPLE, etc as usual. If they exist, the windows on this layer must not be stereo or L/R mono, otherwise window information will be lost when they are composited to the layer. The layer contents (composited windows if they exist) will be shifted horizontally left and right by the stereo depth value when the layer is composited on the display screen.
  DLOP_STEREO   0x00000200   Layer has 2 independent sets of surface buffers (left eye & right eye buffers), each with unique content. The number of buffers in each set is deteremined by DSCAPS_DOUBLE, DSCAPS_TRIPLE, etc as usual. This option is required if any of the windows on this layer have DWCAPS_STEREO or DWCAPS_LR_MONO set, otherwise the stereo or L/R depth content of the windows cannot be preserved when compositing to the layer.
  DLOP_ALL   0x000003FF  


DFBDisplayLayerBufferMode

Layer Buffer Mode.

  DLBM_UNKNOWN   0x00000000  
  DLBM_FRONTONLY   0x00000001   no backbuffer
  DLBM_BACKVIDEO   0x00000002   backbuffer in video memory
  DLBM_BACKSYSTEM   0x00000004   backbuffer in system memory
  DLBM_TRIPLE   0x00000008   triple buffering
  DLBM_WINDOWS   0x00000010   no layer buffers at all, using buffer of each window


DFBSurfaceDescriptionFlags

Flags defining which fields of a DFBSurfaceDescription are valid.

  DSDESC_NONE   0x00000000   none of these
  DSDESC_CAPS   0x00000001   caps field is valid
  DSDESC_WIDTH   0x00000002   width field is valid
  DSDESC_HEIGHT   0x00000004   height field is valid
  DSDESC_PIXELFORMAT   0x00000008   pixelformat field is valid
  DSDESC_PREALLOCATED   0x00000010   Surface uses data that has been preallocated by the application. The field array 'preallocated' has to be set using the first element for the front buffer and eventually the second one for the back buffer.
  DSDESC_PALETTE   0x00000020   Initialize the surfaces palette with the entries specified in the description.
  DSDESC_COLORSPACE   0x00000040   colorspace field is valid
  DSDESC_RESOURCE_ID   0x00000100   user defined resource id for general purpose surfaces is specified, or resource id of window, layer, user is returned
  DSDESC_HINTS   0x00000200   Flags for optimized allocation and pixel format selection are set. See also DFBSurfaceHintFlags.
  DSDESC_ALL   0x0000037F   all of these


DFBPaletteDescriptionFlags

Flags defining which fields of a DFBPaletteDescription are valid.

  DPDESC_CAPS   0x00000001   Specify palette capabilities.
  DPDESC_SIZE   0x00000002   Specify number of entries.
  DPDESC_ENTRIES   0x00000004   Initialize the palette with the entries specified in the description.


DFBSurfaceCapabilities

The surface capabilities.

  DSCAPS_NONE   0x00000000   None of these.
  DSCAPS_PRIMARY   0x00000001   It's the primary surface.
  DSCAPS_SYSTEMONLY   0x00000002   Surface data is permanently stored in system memory.
There's no video memory allocation/storage.
  DSCAPS_VIDEOONLY   0x00000004   Surface data is permanently stored in video memory.
There's no system memory allocation/storage.
  DSCAPS_GL   0x00000008   Surface data is stored in memory that can be accessed by a GL accelerator.
  DSCAPS_DOUBLE   0x00000010   Surface is double buffered
  DSCAPS_SUBSURFACE   0x00000020   Surface is just a sub area of another one sharing the surface data.
  DSCAPS_INTERLACED   0x00000040   Each buffer contains interlaced video (or graphics) data consisting of two fields.
Their lines are stored interleaved. One field's height is a half of the surface's height.
  DSCAPS_SEPARATED   0x00000080   For usage with DSCAPS_INTERLACED.
DSCAPS_SEPARATED specifies that the fields are NOT interleaved line by line in the buffer.
The first field is followed by the second one.
  DSCAPS_STATIC_ALLOC   0x00000100   The amount of video or system memory allocated for the surface is never less than its initial value. This way a surface can be resized (smaller and bigger up to the initial size) without reallocation of the buffers. It's useful for surfaces that need a guaranteed space in video memory after resizing.
  DSCAPS_TRIPLE   0x00000200   Surface is triple buffered.
  DSCAPS_PREMULTIPLIED   0x00001000   Surface stores data with premultiplied alpha.
  DSCAPS_DEPTH   0x00010000   A depth buffer is allocated.
  DSCAPS_STEREO   0x00020000   Both left & right buffers are allocated. Only valid with windows and layers with the DLOP_STEREO or DWCAPS_STEREO flags set.
  DSCAPS_SHARED   0x00100000   The surface will be accessible among processes.
  DSCAPS_ROTATED   0x01000000   The back buffers are allocated with swapped width/height (unimplemented!).
  DSCAPS_ALL   0x011113FF   All of these.
  DSCAPS_FLIPPING   DSCAPS_DOUBLE | DSCAPS_TRIPLE   Surface needs Flip() calls to make updates/changes visible/usable.


DFBPaletteCapabilities

The palette capabilities.

  DPCAPS_NONE   0x00000000   None of these.


DFBSurfaceDrawingFlags

Flags controlling drawing commands.

  DSDRAW_NOFX   0x00000000   uses none of the effects
  DSDRAW_BLEND   0x00000001   uses alpha from color
  DSDRAW_DST_COLORKEY   0x00000002   write to destination only if the destination pixel matches the destination color key
  DSDRAW_SRC_PREMULTIPLY   0x00000004   multiplies the color's rgb channels by the alpha channel before drawing
  DSDRAW_DST_PREMULTIPLY   0x00000008   modulates the dest. color with the dest. alpha
  DSDRAW_DEMULTIPLY   0x00000010   divides the color by the alpha before writing the data to the destination
  DSDRAW_XOR   0x00000020   bitwise xor the destination pixels with the specified color after premultiplication


DFBSurfaceBlittingFlags

Flags controlling blitting commands.

  DSBLIT_NOFX   0x00000000   uses none of the effects
  DSBLIT_BLEND_ALPHACHANNEL   0x00000001   enables blending and uses alphachannel from source
  DSBLIT_BLEND_COLORALPHA   0x00000002   enables blending and uses alpha value from color
  DSBLIT_COLORIZE   0x00000004   modulates source color with the color's r/g/b values
  DSBLIT_SRC_COLORKEY   0x00000008   don't blit pixels matching the source color key
  DSBLIT_DST_COLORKEY   0x00000010   write to destination only if the destination pixel matches the destination color key
  DSBLIT_SRC_PREMULTIPLY   0x00000020   modulates the source color with the (modulated) source alpha
  DSBLIT_DST_PREMULTIPLY   0x00000040   modulates the dest. color with the dest. alpha
  DSBLIT_DEMULTIPLY   0x00000080   divides the color by the alpha before writing the data to the destination
  DSBLIT_DEINTERLACE   0x00000100   deinterlaces the source during blitting by reading only one field (every second line of full image) scaling it vertically by factor two
  DSBLIT_SRC_PREMULTCOLOR   0x00000200   modulates the source color with the color alpha
  DSBLIT_XOR   0x00000400   bitwise xor the destination pixels with the source pixels after premultiplication
  DSBLIT_INDEX_TRANSLATION   0x00000800   do fast indexed to indexed translation, this flag is mutual exclusive with all others
  DSBLIT_ROTATE90   0x00002000   rotate the image by 90 degree
  DSBLIT_ROTATE180   0x00001000   rotate the image by 180 degree
  DSBLIT_ROTATE270   0x00004000   rotate the image by 270 degree
  DSBLIT_COLORKEY_PROTECT   0x00010000   make sure written pixels don't match color key (internal only ATM)
  DSBLIT_SRC_COLORKEY_EXTENDED   0x00020000   use extended source color key
  DSBLIT_DST_COLORKEY_EXTENDED   0x00040000   use extended destination color key
  DSBLIT_SRC_MASK_ALPHA   0x00100000   modulate source alpha channel with alpha channel from source mask, see also IDirectFBSurface::SetSourceMask()
  DSBLIT_SRC_MASK_COLOR   0x00200000   modulate source color channels with color channels from source mask, see also IDirectFBSurface::SetSourceMask()
  DSBLIT_FLIP_HORIZONTAL   0x01000000   flip the image horizontally
  DSBLIT_FLIP_VERTICAL   0x02000000   flip the image vertically
  DSBLIT_ROP   0x04000000   use rop setting
  DSBLIT_SRC_COLORMATRIX   0x08000000   use source color matrix setting
  DSBLIT_SRC_CONVOLUTION   0x10000000   use source convolution filter


DFBSurfaceRenderOptions

Options for drawing and blitting operations. Not mandatory for acceleration.

  DSRO_NONE   0x00000000   None of these.
  DSRO_SMOOTH_UPSCALE   0x00000001   Use interpolation for upscale StretchBlit().
  DSRO_SMOOTH_DOWNSCALE   0x00000002   Use interpolation for downscale StretchBlit().
  DSRO_MATRIX   0x00000004   Use the transformation matrix set via IDirectFBSurface::SetMatrix().
  DSRO_ANTIALIAS   0x00000008   Enable anti-aliasing for edges (alphablend must be enabled).
  DSRO_WRITE_MASK_BITS   0x00000010   Enable usage of write mask bits setting.
  DSRO_ALL   0x0000001F   All of these.


DFBAccelerationMask

Mask of accelerated functions.

  DFXL_NONE   0x00000000   None of these.
  DFXL_FILLRECTANGLE   0x00000001   FillRectangle() is accelerated.
  DFXL_DRAWRECTANGLE   0x00000002   DrawRectangle() is accelerated.
  DFXL_DRAWLINE   0x00000004   DrawLine() is accelerated.
  DFXL_FILLTRIANGLE   0x00000008   FillTriangle() is accelerated.
  DFXL_FILLTRAPEZOID   0x00000010   FillTrapezoid() is accelerated.
  DFXL_FILLQUADRANGLE   0x00000020   FillQuadrangle() is accelerated.
  DFXL_FILLSPAN   0x00000040   FillSpan() is accelerated.
  DFXL_DRAWMONOGLYPH   0x00001000   DrawMonoGlyphs() is accelerated.
  DFXL_BLIT   0x00010000   Blit() and TileBlit() are accelerated.
  DFXL_STRETCHBLIT   0x00020000   StretchBlit() is accelerated.
  DFXL_TEXTRIANGLES   0x00040000   TextureTriangles() is accelerated.
  DFXL_BLIT2   0x00080000   BatchBlit2() is accelerated.
  DFXL_TILEBLIT   0x00100000   TileBlit() is accelerated.
  DFXL_DRAWSTRING   0x01000000   DrawString() and DrawGlyph() are accelerated.
  DFXL_ALL   0x011F007F   All drawing/blitting functions.
  DFXL_ALL_DRAW   0x0000107F   All drawing functions.
  DFXL_ALL_BLIT   0x011F0000   All blitting functions.


DFB_MASK_BYTE0

0x000000ff


DFB_MASK_BYTE2

0x00ff0000


DFBDisplayLayerTypeFlags

Type of display layer for basic classification. Values may be or'ed together.

  DLTF_NONE   0x00000000   Unclassified, no specific type.
  DLTF_GRAPHICS   0x00000001   Can be used for graphics output.
  DLTF_VIDEO   0x00000002   Can be used for live video output.
  DLTF_STILL_PICTURE   0x00000004   Can be used for single frames.
  DLTF_BACKGROUND   0x00000008   Can be used as a background layer.
  DLTF_ALL   0x0000000F   All type flags set.


DFBInputDeviceTypeFlags

Type of input device for basic classification. Values may be or'ed together.

  DIDTF_NONE   0x00000000   Unclassified, no specific type.
  DIDTF_KEYBOARD   0x00000001   Can act as a keyboard.
  DIDTF_MOUSE   0x00000002   Can be used as a mouse.
  DIDTF_JOYSTICK   0x00000004   Can be used as a joystick.
  DIDTF_REMOTE   0x00000008   Is a remote control.
  DIDTF_VIRTUAL   0x00000010   Is a virtual input device.
  DIDTF_ALL   0x0000001F   All type flags set.


DFBInputDeviceCapabilities

Basic input device features.

  DICAPS_KEYS   0x00000001   device supports key events
  DICAPS_AXES   0x00000002   device supports axis events
  DICAPS_BUTTONS   0x00000004   device supports button events
  DICAPS_ALL   0x00000007   all capabilities
  DIDCAPS_NONE   0x00000000   device supports no events
  DIDCAPS_KEYS   0x00000001   device supports key events
  DIDCAPS_AXES   0x00000002   device supports axis events
  DIDCAPS_BUTTONS   0x00000004   device supports button events
  DIDCAPS_ALL   0x00000007   all capabilities


DFBInputDeviceButtonIdentifier

Identifier (index) for e.g. mouse or joystick buttons.

  DIBI_LEFT   0x00000000   left mouse button
  DIBI_RIGHT   0x00000001   right mouse button
  DIBI_MIDDLE   0x00000002   middle mouse button
  DIBI_FIRST   DIBI_LEFT   other buttons: DIBI_FIRST + zero based index
  DIBI_LAST   0x0000001F   32 buttons maximum


DFBInputDeviceAxisIdentifier

Axis identifier (index) for e.g. mouse or joystick.

  DIAI_X   0x00000000   X axis
  DIAI_Y   0x00000001   Y axis
  DIAI_Z   0x00000002   Z axis
  DIAI_FIRST   DIAI_X   other axis: DIAI_FIRST + zero based index
  DIAI_LAST   0x0000001F   32 axes maximum

The X, Y and Z axis are predefined. To access other axes, use DIAI_FIRST plus a zero based index, e.g. the 4th axis would be (DIAI_FIRST + 3).


DFBWindowDescriptionFlags

Flags defining which fields of a DFBWindowDescription are valid.

  DWDESC_CAPS   0x00000001   caps field is valid
  DWDESC_WIDTH   0x00000002   width field is valid
  DWDESC_HEIGHT   0x00000004   height field is valid
  DWDESC_PIXELFORMAT   0x00000008   pixelformat field is valid
  DWDESC_POSX   0x00000010   posx field is valid
  DWDESC_POSY   0x00000020   posy field is valid
  DWDESC_SURFACE_CAPS   0x00000040   Create the window surface with special capabilities.
  DWDESC_PARENT   0x00000080   This window has a parent according to parent_id field.
  DWDESC_OPTIONS   0x00000100   Initial window options have been set.
  DWDESC_STACKING   0x00000200   Initial stacking class has been set.
  DWDESC_TOPLEVEL_ID   0x00000400   The top level window is set in toplevel_id field.
  DWDESC_COLORSPACE   0x00000800   colorspace field is valid
  DWDESC_RESOURCE_ID   0x00001000   Resource id for window surface creation has been set.


DFBDataBufferDescriptionFlags

Flags defining which fields of a DFBDataBufferDescription are valid.

  DBDESC_FILE   0x00000001   Create a static buffer for the specified filename.
  DBDESC_MEMORY   0x00000002   Create a static buffer for the specified memory area.


DFBWindowCapabilities

Capabilities a window can have.

  DWCAPS_NONE   0x00000000   None of these.
  DWCAPS_ALPHACHANNEL   0x00000001   The window has an alphachannel for pixel-per-pixel blending.
  DWCAPS_DOUBLEBUFFER   0x00000002   The window's surface is double buffered. This is very useful to avoid visibility of content that is still in preparation. Normally a window's content can get visible before an update if there is another reason causing a window stack repaint.
  DWCAPS_INPUTONLY   0x00000004   The window has no surface. You can not draw to it but it receives events
  DWCAPS_NODECORATION   0x00000008   The window won't be decorated.
  DWCAPS_SUBWINDOW   0x00000010   Not a top level window.
  DWCAPS_COLOR   0x00000020   The window has no buffer; it consumes no backing store. It is filled with a constant color and it receives events. The color is never specified premultiplied.
  DWCAPS_NOFOCUS   0x00000100   Window will never get focus or receive key events, unless it grabs them.
  DWCAPS_LR_MONO   0x00001000   Window has a single set of surface buffers and a stereo depth. The number of buffers in each set is deteremined by DSCAPS_DOUBLE, DSCAPS_TRIPLE, etc as usual. Selecting this option requires the underlying layer to have DLOP_STEREO set, otherwise the stereo depth for the left and right eye cannot be preserved when compositing to the underlying layer. The buffer is composited to both the left and right eye buffers of the layer with an x-axis right and left shift of depth pixels, respectively.
  DWCAPS_STEREO   0x00002000   Window has 2 independent sets of surface buffers (left eye & right eye buffers), each with unique content. The number of buffers in each set is deteremined by DSCAPS_DOUBLE, DSCAPS_TRIPLE, etc as usual. Selecting this option requires the underlying layer to have DLOP_STEREO set, otherwise the independent content of the left and right eye cannot be preserved when compositing to the layer.
  DWCAPS_ALL   0x0000313F   All of these.


DFBWindowOptions

Flags controlling the appearance and behaviour of the window.

  DWOP_NONE   0x00000000   none of these
  DWOP_COLORKEYING   0x00000001   enable color key
  DWOP_ALPHACHANNEL   0x00000002   enable alpha blending using the window's alpha channel
  DWOP_OPAQUE_REGION   0x00000004   overrides DWOP_ALPHACHANNEL for the region set by SetOpaqueRegion()
  DWOP_SHAPED   0x00000008   window doesn't receive mouse events for invisible regions, must be used with DWOP_ALPHACHANNEL or DWOP_COLORKEYING
  DWOP_KEEP_POSITION   0x00000010   window can't be moved with the mouse
  DWOP_KEEP_SIZE   0x00000020   window can't be resized with the mouse
  DWOP_KEEP_STACKING   0x00000040   window can't be raised or lowered with the mouse
  DWOP_GHOST   0x00001000   never get focus or input, clicks will go through, implies DWOP_KEEP...
  DWOP_INDESTRUCTIBLE   0x00002000   window can't be destroyed by internal shortcut
  DWOP_INPUTONLY   0x00004000   The window will be input only. It will receive events but is not shown. Note that toggling this bit will not free/assign the window surface.
  DWOP_STEREO_SIDE_BY_SIDE_HALF   0x00008000   Treat single buffer as combined left/right buffers, side by side.
  DWOP_SCALE   0x00010000   Surface won't be changed if window size on screen changes. The surface can be resized separately using IDirectFBWindow::ResizeSurface().
  DWOP_KEEP_ABOVE   0x00100000   Keep window above parent window.
  DWOP_KEEP_UNDER   0x00200000   Keep window under parent window.
  DWOP_FOLLOW_BOUNDS   0x00400000   Follow window bounds from parent.
  DWOP_ALL   0x0071F07F   all possible options


DFBWindowStackingClass

The stacking class restricts the stacking order of windows.

  DWSC_MIDDLE   0x00000000   This is the default stacking class of new windows.
  DWSC_UPPER   0x00000001   Window is always above windows in the middle stacking class. Only windows that are also in the upper stacking class can get above them.
  DWSC_LOWER   0x00000002   Window is always below windows in the middle stacking class. Only windows that are also in the lower stacking class can get below them.


DFBWindowTypeHint

These are hints for the window manager that indicate what type of function the window has. The window manager can use this when determining decoration and behaviour of the window. The hint must be set before mapping the window.

  DWTH_NORMAL   0x00000000   Normal toplevel window.
  DWTH_DIALOG   0x00000001   Dialog window.
  DWTH_MENU   0x00000002   Window used to implement a menu; GTK+ uses this hint only for torn-off menus, see #GtkTearoffMenuItem.
  DWTH_TOOLBAR   0x00000003   Window used to implement toolbars.
  DWTH_SPLASHSCREEN   0x00000004   Window used to display a splash screen during application startup.
  DWTH_UTLIITY   0x00000005   Utility windows which are not detached toolbars or dialogs.
  DWTH_DOCK   0x00000006   Used for creating dock or panel windows.
  DWTH_DESKTOP   0x00000007   Used for creating the desktop background window.
  DWTH_DROPDOWN_MENU   0x00000008   A menu that belongs to a menubar.
  DWTH_POPUP_MENU   0x00000009   A menu that does not belong to a menubar, e.g. a context menu.
  DWTH_TOOLTIP   0x0000000A   A tooltip.
  DWTH_NOTIFICATION   0x0000000B   A notification - typically a bubble that belongs to a status icon.
  DWTH_COMBO   0x0000000C   A popup from a combo box.
  DWTH_DND   0x0000000D   A window that is used to implement a DND cursor.

See the [Extended Window Manager Hints](http://www.freedesktop.org/Standards/wm-spec) specification for more details about window types.


DFBWindowHintFlags

These are hints for the window manager that indicate what type of function the window has. The window manager can use this when determining decoration and behaviour of the window. The hint must be set before mapping the window.

  DWHF_NONE   0x00000000   None of these.
  DWHF_MODAL   0x00000001   Set modal hint.
  DWHF_SKIP_TASKBAR   0x00000002   Set skip taskbar hint.
  DWHF_SKIP_PAGER   0x00000004   Set skip pager hint.
  DWHF_URGENCY   0x00000008   Set urgency hint.
  DWHF_ALL   0x0000000F   All of these.

See the [Extended Window Manager Hints](http://www.freedesktop.org/Standards/wm-spec) specification for more details about window types.


DFBFontAttributes

Flags describing how to load a font.

  DFFA_NONE   0x00000000   none of these flags
  DFFA_NOKERNING   0x00000001   don't use kerning
  DFFA_NOHINTING   0x00000002   don't use hinting
  DFFA_MONOCHROME   0x00000004   don't use anti-aliasing
  DFFA_NOCHARMAP   0x00000008   no char map, glyph indices are specified directly
  DFFA_FIXEDCLIP   0x00000010   width fixed advance, clip to it
  DFFA_NOBITMAP   0x00000020   ignore bitmap strikes; for bitmap-only fonts this flag is ignored
  DFFA_OUTLINED   0x00000040  
  DFFA_AUTOHINTING   0x00000080   prefer auto-hinter over the font's native hinter
  DFFA_SOFTHINTING   0x00000100   use a lighter hinting algorithm that produces glyphs that are more fuzzy but better resemble the original shape
  DFFA_STYLE_ITALIC   0x00000200   load italic style
  DFFA_VERTICAL_LAYOUT   0x00000400   load vertical layout
  DFFA_STYLE_BOLD   0x00000800   load bold style

These flags describe how a font is loaded and affect how the glyphs are drawn. There is no way to change this after the font has been loaded. If you need to render a font with different attributes, you have to create multiple FontProviders of the same font file.


DFBFontDescriptionFlags

Flags defining which fields of a DFBFontDescription are valid.

  DFDESC_ATTRIBUTES   0x00000001   attributes field is valid
  DFDESC_HEIGHT   0x00000002   height is specified
  DFDESC_WIDTH   0x00000004   width is specified
  DFDESC_INDEX   0x00000008   index is specified
  DFDESC_FIXEDADVANCE   0x00000010   specify a fixed advance overriding any character advance of fixed or proportional fonts
  DFDESC_FRACT_HEIGHT   0x00000020   fractional height is set
  DFDESC_FRACT_WIDTH   0x00000040   fractional width is set
  DFDESC_OUTLINE_WIDTH   0x00000080   outline width is set
  DFDESC_OUTLINE_OPACITY   0x00000100   outline opacity is set
  DFDESC_ROTATION   0x00000200   rotation is set


DFBFontDescription

Description of how to load glyphs from a font file.

  DFBFontDescriptionFlags   flags  
  DFBFontAttributes   attributes  
  int   height  
  int   width  
  unsigned int   index  
  int   fixed_advance  
  int   fract_height  
  int   fract_width  
  int   outline_width   Outline width as 16.16 fixed point integer
  int   outline_opacity   Outline opacity as 16.16 fixed point integer
  int   rotation  

The attributes control how the glyphs are rendered. Width and height can be used to specify the desired face size in pixels. If you are loading a non-scalable font, you shouldn't specify a font size.

Please note that the height value in the DFBFontDescription doesn't correspond to the height returned by IDirectFBFont::GetHeight().

The index field controls which face is loaded from a font file that provides a collection of faces. This is rarely needed.

Fractional sizes (fract_height and fract_width) are 26.6 fixed point integers and override the pixel sizes if both are specified.

Outline parameters are ignored if DFFA_OUTLINED is not used (see DFBFontAttributes). To change the default values of 1.0 each use DFDESC_OUTLINE_WIDTH and/or DFDESC_OUTLINE_OPACITY.

The rotation value is a 0.24 fixed point number of rotations. Use the macros DFB_DEGREES and DFB_RADIANS to convert from those units.


DFB_DEGREES (deg)

((int)((deg)/360.0*(1<<24)))


DFBSurfacePixelFormat

Pixel format of a surface.

  DSPF_UNKNOWN   0x00000000   unknown or unspecified format
  DSPF_ARGB1555   DFB_SURFACE_PIXELFORMAT( 0, 15, 1, 1, 0, 2, 0, 0, 0, 0, 0 )   16 bit ARGB (2 byte, alpha 1@15, red 5@10, green 5@5, blue 5@0)
  DSPF_RGB16   DFB_SURFACE_PIXELFORMAT( 1, 16, 0, 0, 0, 2, 0, 0, 0, 0, 0 )   16 bit RGB (2 byte, red 5@11, green 6@5, blue 5@0)
  DSPF_RGB24   DFB_SURFACE_PIXELFORMAT( 2, 24, 0, 0, 0, 3, 0, 0, 0, 0, 0 )   24 bit RGB (3 byte, red 8@16, green 8@8, blue 8@0)
  DSPF_RGB32   DFB_SURFACE_PIXELFORMAT( 3, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0 )   24 bit RGB (4 byte, nothing@24, red 8@16, green 8@8, blue 8@0)
  DSPF_ARGB   DFB_SURFACE_PIXELFORMAT( 4, 24, 8, 1, 0, 4, 0, 0, 0, 0, 0 )   32 bit ARGB (4 byte, alpha 8@24, red 8@16, green 8@8, blue 8@0)
  DSPF_A8   DFB_SURFACE_PIXELFORMAT( 5, 0, 8, 1, 0, 1, 0, 0, 0, 0, 0 )   8 bit alpha (1 byte, alpha 8@0), e.g. anti-aliased glyphs
  DSPF_YUY2   DFB_SURFACE_PIXELFORMAT( 6, 16, 0, 0, 0, 2, 0, 0, 0, 0, 0 )   16 bit YUV (4 byte/ 2 pixel, macropixel contains CbYCrY [31:0])
  DSPF_RGB332   DFB_SURFACE_PIXELFORMAT( 7, 8, 0, 0, 0, 1, 0, 0, 0, 0, 0 )   8 bit RGB (1 byte, red 3@5, green 3@2, blue 2@0)
  DSPF_UYVY   DFB_SURFACE_PIXELFORMAT( 8, 16, 0, 0, 0, 2, 0, 0, 0, 0, 0 )   16 bit YUV (4 byte/ 2 pixel, macropixel contains YCbYCr [31:0])
  DSPF_I420   DFB_SURFACE_PIXELFORMAT( 9, 12, 0, 0, 0, 1, 0, 2, 0, 0, 0 )   12 bit YUV (8 bit Y plane followed by 8 bit quarter size U/V planes)
  DSPF_YV12   DFB_SURFACE_PIXELFORMAT( 10, 12, 0, 0, 0, 1, 0, 2, 0, 0, 0 )   12 bit YUV (8 bit Y plane followed by 8 bit quarter size V/U planes)
  DSPF_LUT8   DFB_SURFACE_PIXELFORMAT( 11, 8, 0, 1, 0, 1, 0, 0, 0, 1, 0 )   8 bit LUT (8 bit color and alpha lookup from palette)
  DSPF_ALUT44   DFB_SURFACE_PIXELFORMAT( 12, 4, 4, 1, 0, 1, 0, 0, 0, 1, 0 )   8 bit ALUT (1 byte, alpha 4@4, color lookup 4@0)
  DSPF_AiRGB   DFB_SURFACE_PIXELFORMAT( 13, 24, 8, 1, 0, 4, 0, 0, 0, 0, 1 )   32 bit ARGB (4 byte, inv. alpha 8@24, red 8@16, green 8@8, blue 8@0)
  DSPF_A1   DFB_SURFACE_PIXELFORMAT( 14, 0, 1, 1, 1, 0, 7, 0, 0, 0, 0 )   1 bit alpha (1 byte/ 8 pixel, most significant bit used first)
  DSPF_NV12   DFB_SURFACE_PIXELFORMAT( 15, 12, 0, 0, 0, 1, 0, 2, 0, 0, 0 )   12 bit YUV (8 bit Y plane followed by one 16 bit quarter size Cb|Cr [7:0|7:0] plane)
  DSPF_NV16   DFB_SURFACE_PIXELFORMAT( 16, 16, 0, 0, 0, 1, 0, 0, 1, 0, 0 )   16 bit YUV (8 bit Y plane followed by one 16 bit half width Cb|Cr [7:0|7:0] plane)
  DSPF_ARGB2554   DFB_SURFACE_PIXELFORMAT( 17, 14, 2, 1, 0, 2, 0, 0, 0, 0, 0 )   16 bit ARGB (2 byte, alpha 2@14, red 5@9, green 5@4, blue 4@0)
  DSPF_ARGB4444   DFB_SURFACE_PIXELFORMAT( 18, 12, 4, 1, 0, 2, 0, 0, 0, 0, 0 )   16 bit ARGB (2 byte, alpha 4@12, red 4@8, green 4@4, blue 4@0)
  DSPF_RGBA4444   DFB_SURFACE_PIXELFORMAT( 19, 12, 4, 1, 0, 2, 0, 0, 0, 0, 0 )   16 bit RGBA (2 byte, red 4@12, green 4@8, blue 4@4, alpha 4@0)
  DSPF_NV21   DFB_SURFACE_PIXELFORMAT( 20, 12, 0, 0, 0, 1, 0, 2, 0, 0, 0 )   12 bit YUV (8 bit Y plane followed by one 16 bit quarter size Cr|Cb [7:0|7:0] plane)
  DSPF_AYUV   DFB_SURFACE_PIXELFORMAT( 21, 24, 8, 1, 0, 4, 0, 0, 0, 0, 0 )   32 bit AYUV (4 byte, alpha 8@24, Y 8@16, Cb 8@8, Cr 8@0)
  DSPF_A4   DFB_SURFACE_PIXELFORMAT( 22, 0, 4, 1, 4, 0, 1, 0, 0, 0, 0 )   4 bit alpha (1 byte/ 2 pixel, more significant nibble used first)
  DSPF_ARGB1666   DFB_SURFACE_PIXELFORMAT( 23, 18, 1, 1, 0, 3, 0, 0, 0, 0, 0 )   1 bit alpha (3 byte/ alpha 1@18, red 6@12, green 6@6, blue 6@0)
  DSPF_ARGB6666   DFB_SURFACE_PIXELFORMAT( 24, 18, 6, 1, 0, 3, 0, 0, 0, 0, 0 )   6 bit alpha (3 byte/ alpha 6@18, red 6@12, green 6@6, blue 6@0)
  DSPF_RGB18   DFB_SURFACE_PIXELFORMAT( 25, 18, 0, 0, 0, 3, 0, 0, 0, 0, 0 )   6 bit RGB (3 byte/ red 6@12, green 6@6, blue 6@0)
  DSPF_LUT2   DFB_SURFACE_PIXELFORMAT( 26, 2, 0, 1, 2, 0, 3, 0, 0, 1, 0 )   2 bit LUT (1 byte/ 4 pixel, 2 bit color and alpha lookup from palette)
  DSPF_RGB444   DFB_SURFACE_PIXELFORMAT( 27, 12, 0, 0, 0, 2, 0, 0, 0, 0, 0 )   16 bit RGB (2 byte, nothing @12, red 4@8, green 4@4, blue 4@0)
  DSPF_RGB555   DFB_SURFACE_PIXELFORMAT( 28, 15, 0, 0, 0, 2, 0, 0, 0, 0, 0 )   16 bit RGB (2 byte, nothing @15, red 5@10, green 5@5, blue 5@0)
  DSPF_BGR555   DFB_SURFACE_PIXELFORMAT( 29, 15, 0, 0, 0, 2, 0, 0, 0, 0, 0 )   16 bit BGR (2 byte, nothing @15, blue 5@10, green 5@5, red 5@0)
  DSPF_RGBA5551   DFB_SURFACE_PIXELFORMAT( 30, 15, 1, 1, 0, 2, 0, 0, 0, 0, 0 )   16 bit RGBA (2 byte, red 5@11, green 5@6, blue 5@1, alpha 1@0)
  DSPF_YUV444P   DFB_SURFACE_PIXELFORMAT( 31, 24, 0, 0, 0, 1, 0, 0, 2, 0, 0 )   24 bit full YUV planar (8 bit Y plane followed by an 8 bit Cb and an 8 bit Cr plane)
  DSPF_ARGB8565   DFB_SURFACE_PIXELFORMAT( 32, 16, 8, 1, 0, 3, 0, 0, 0, 0, 0 )   24 bit ARGB (3 byte, alpha 8@16, red 5@11, green 6@5, blue 5@0)
  DSPF_AVYU   DFB_SURFACE_PIXELFORMAT( 33, 24, 8, 1, 0, 4, 0, 0, 0, 0, 0 )   32 bit AVYU 4:4:4 (4 byte, alpha 8@24, Cr 8@16, Y 8@8, Cb 8@0)
  DSPF_VYU   DFB_SURFACE_PIXELFORMAT( 34, 24, 0, 0, 0, 3, 0, 0, 0, 0, 0 )   24 bit VYU 4:4:4 (3 byte, Cr 8@16, Y 8@8, Cb 8@0)
  DSPF_A1_LSB   DFB_SURFACE_PIXELFORMAT( 35, 0, 1, 1, 1, 0, 7, 0, 0, 0, 0 )   1 bit alpha (1 byte/ 8 pixel, LEAST significant bit used first)
  DSPF_YV16   DFB_SURFACE_PIXELFORMAT( 36, 16, 0, 0, 0, 1, 0, 0, 1, 0, 0 )   16 bit YUV (8 bit Y plane followed by 8 bit 2x1 subsampled V/U planes)
  DSPF_ABGR   DFB_SURFACE_PIXELFORMAT( 37, 24, 8, 1, 0, 4, 0, 0, 0, 0, 0 )   32 bit ABGR (4 byte, alpha 8@24, blue 8@16, green 8@8, red 8@0)
  DSPF_RGBAF88871   DFB_SURFACE_PIXELFORMAT( 38, 24, 7, 1, 0, 4, 0, 0, 0, 0, 0 )   32 bit RGBAF (4 byte, red 8@24, green 8@16, blue 8@8, alpha 7@1, flash 1@0
  DSPF_LUT4   DFB_SURFACE_PIXELFORMAT( 39, 4, 0, 1, 4, 0, 1, 0, 0, 1, 0 )   4 bit LUT (1 byte/ 2 pixel, 4 bit color and alpha lookup from palette)
  DSPF_ALUT8   DFB_SURFACE_PIXELFORMAT( 40, 8, 8, 1, 0, 2, 0, 0, 0, 1, 0 )   16 bit LUT (1 byte alpha and 8 bit color lookup from palette)
  DSPF_LUT1   DFB_SURFACE_PIXELFORMAT( 41, 1, 0, 1, 1, 0, 7, 0, 0, 1, 0 )   1 bit LUT (1 byte/ 8 pixel, 1 bit color and alpha lookup from palette)


DFB_NUM_PIXELFORMATS

42


DFB_PIXELFORMAT_INDEX (fmt)

(((fmt) & 0x0000007F) )


DFB_COLOR_BITS_PER_PIXEL (fmt)

(((fmt) & 0x00000F80) >> 7)


DFB_ALPHA_BITS_PER_PIXEL (fmt)

(((fmt) & 0x0000F000) >> 12)


DFB_PIXELFORMAT_HAS_ALPHA (fmt)

(((fmt) & 0x00010000) != 0)


DFB_BITS_PER_PIXEL (fmt)

(((fmt) & 0x007E0000) >> 17)


DFB_BYTES_PER_PIXEL (fmt)

(((fmt) & 0x00700000) >> 20)


DFB_BYTES_PER_LINE (fmt,width)

(((((fmt) & 0x007E0000) >> 17) * (width) + 7) >> 3)


DFB_PIXELFORMAT_ALIGNMENT (fmt)

(((fmt) & 0x03800000) >> 23)


DFB_PLANE_MULTIPLY (fmt,height)

((((((fmt) & 0x3C000000) >> 26) + 4) * (height)) >> 2)


DFB_PIXELFORMAT_IS_INDEXED (fmt)

(((fmt) & 0x40000000) != 0)


DFB_PLANAR_PIXELFORMAT (fmt)

(((fmt) & 0x3C000000) != 0)


DFB_PIXELFORMAT_INV_ALPHA (fmt)

(((fmt) & 0x80000000) != 0)


DFB_COLOR_IS_RGB (fmt)


DFB_COLOR_IS_YUV (fmt)


DFBSurfaceColorSpace

Color space used by the colors in the surface.

  DSCS_UNKNOWN   0  
  DSCS_RGB   1   standard RGB
  DSCS_BT601   2   ITU BT.601
  DSCS_BT601_FULLRANGE   3   ITU BT.601 Full Range
  DSCS_BT709   4   ITU BT.709


DFB_NUM_COLORSPACES

5


DFB_COLORSPACE_IS_COMPATIBLE (cs, fmt)


DFB_COLORSPACE_DEFAULT (fmt)


DFBSurfaceHintFlags

Hint flags for optimized allocation, format selection etc.

  DSHF_NONE   0x00000000  
  DSHF_LAYER   0x00000001   Surface optimized for display layer usage
  DSHF_WINDOW   0x00000002   Surface optimized for being a window buffer
  DSHF_CURSOR   0x00000004   Surface optimized for usage as a cursor shape
  DSHF_FONT   0x00000008   Surface optimized for text rendering
  DSHF_ALL   0x0000000F  


DFBSurfaceAllocationOps

Flags for allocation management

  DSAO_NONE   0x00000000  
  DSAO_HANDLE   0x00000001   Validates handle (import)
  DSAO_NEW   0x00000002   Always creates new allocation and ignores the one given, otherwise when allocations exist it depends on the KEEP flag
  DSAO_KEEP   0x00000004   Always keep existing allocations when present (not updated), otherwise with NEW the existing allocation will be freed
  DSAO_EXISTING   0x00000008   Fails if no allocation is already existing
  DSAO_UPDATE   0x00000010   When creating a new allocation or updating an existing one, use this flag to fill it with the latest content
  DSAO_UPDATED   0x00000020   When creating a new allocation or updating an existing one, use this flag to indicate it's the latest content
  DSAO_ALL   0x0000003F  


DFBSurfaceDescription

Description of the surface that is to be created.

  DFBSurfaceDescriptionFlags   flags   field validation
  DFBSurfaceCapabilities   caps   capabilities
  int   width   pixel width
  int   height   pixel height
  DFBSurfacePixelFormat   pixelformat   pixel format
  void   * data   data pointer of existing buffer
  int   pitch   pitch of buffer
  const DFBColor   * entries  
  unsigned int   size  
  unsigned long   resource_id   universal resource id, either user specified for general purpose surfaces or id of layer or window
  DFBSurfaceHintFlags   hints   usage hints for optimized allocation, format selection etc.
  DFBSurfaceColorSpace   colorspace   color space


DFBPaletteDescription

Description of the palette that is to be created.

  DFBPaletteDescriptionFlags   flags   Validation of fields.
  DFBPaletteCapabilities   caps   Palette capabilities.
  unsigned int   size   Number of entries.
  const DFBColor   * entries   Preset palette entries.


DFB_DISPLAY_LAYER_DESC_NAME_LENGTH

32


DFBDisplayLayerDescription

Description of the display layer capabilities.

  DFBDisplayLayerTypeFlags   type   Classification of the display layer.
  DFBDisplayLayerCapabilities   caps   Capability flags of the display layer.
  char   name[DFB_DISPLAY_LAYER_DESC_NAME_LENGTH]   Display layer name.
  int   level   Default level.
  int   regions   Number of concurrent regions supported.
-1 = unlimited, 0 = unknown/one, >0 = actual number
  int   sources   Number of selectable sources.
  int   clip_regions   Number of clipping regions.
  DFBSurfaceCapabilities   surface_caps  
  unsigned int   surface_accessor  


DFBDisplayLayerSourceCaps

Capabilities of a display layer source.

  DDLSCAPS_NONE   0x00000000   none of these
  DDLSCAPS_SURFACE   0x00000001   source has an accessable surface
  DDLSCAPS_ALL   0x00000001   all of these


DFB_DISPLAY_LAYER_SOURCE_DESC_NAME_LENGTH

24


DFBDisplayLayerSourceDescription

Description of a display layer source.

  DFBDisplayLayerSourceID   source_id   ID of the source.
  char   name[DFB_DISPLAY_LAYER_SOURCE_DESC_NAME_LENGTH]   Name of the source.
  DFBDisplayLayerSourceCaps   caps   Capabilites of the source.


DFB_SCREEN_DESC_NAME_LENGTH

32


DFBScreenDescription

Description of the display encoder capabilities.

  DFBScreenCapabilities   caps   Capability flags of the screen.
  char   name[DFB_SCREEN_DESC_NAME_LENGTH]   Rough description.
  int   mixers   Number of mixers available.
  int   encoders   Number of display encoders available.
  int   outputs   Number of output connectors available.


DFB_INPUT_DEVICE_DESC_NAME_LENGTH

32


DFBInputDeviceDescription

Description of the input device capabilities.

  DFBInputDeviceTypeFlags   type   classification of input device
  DFBInputDeviceCapabilities   caps   capabilities, validates the following fields
  int   min_keycode   minimum hardware keycode or -1 if no differentiation between hardware keys is made
  int   max_keycode   maximum hardware keycode or -1 if no differentiation between hardware keys is made
  DFBInputDeviceAxisIdentifier   max_axis   highest axis identifier
  DFBInputDeviceButtonIdentifier   max_button   highest button identifier
  char   name[DFB_INPUT_DEVICE_DESC_NAME_LENGTH]   Device name
  char   vendor[DFB_INPUT_DEVICE_DESC_VENDOR_LENGTH]   Device vendor
  int   vendor_id   Vendor ID
  int   product_id   Product ID


DFBInputDeviceAxisInfoFlags

  DIAIF_NONE   0x00000000  
  DIAIF_ABS_MIN   0x00000001  
  DIAIF_ABS_MAX   0x00000002  
  DIAIF_ALL   0x00000003  


DFBInputDeviceAxisInfo

  DFBInputDeviceAxisInfoFlags   flags  
  int   abs_min  
  int   abs_max  


DFB_GRAPHICS_DRIVER_INFO_NAME_LENGTH

40


DFBGraphicsDriverInfo

  int   major   Major version
  int   minor   Minor version
  char   name[DFB_GRAPHICS_DRIVER_INFO_NAME_LENGTH]   Driver name
  char   vendor[DFB_GRAPHICS_DRIVER_INFO_VENDOR_LENGTH]   Driver vendor


DFB_GRAPHICS_DEVICE_DESC_NAME_LENGTH

48


DFBGraphicsDeviceDescription

Description of the graphics device capabilities.

  DFBAccelerationMask   acceleration_mask   Accelerated functions
  DFBSurfaceBlittingFlags   blitting_flags   Supported blitting flags
  DFBSurfaceDrawingFlags   drawing_flags   Supported drawing flags
  unsigned int   video_memory   Amount of video memory in bytes
  char   name[DFB_GRAPHICS_DEVICE_DESC_NAME_LENGTH]   Device/Chipset name
  char   vendor[DFB_GRAPHICS_DEVICE_DESC_VENDOR_LENGTH]   Device vendor
  DFBGraphicsDriverInfo   driver  


DFBWindowDescription

Description of the window that is to be created.

  DFBWindowDescriptionFlags   flags   field validation
  DFBWindowCapabilities   caps   capabilities
  int   width   pixel width
  int   height   pixel height
  DFBSurfacePixelFormat   pixelformat   pixel format
  int   posx   distance from left layer border
  int   posy   distance from upper layer border
  DFBSurfaceCapabilities   surface_caps   surface capabilities
  DFBWindowID   parent_id   window id of parent window
  DFBWindowOptions   options   initial window options
  DFBWindowStackingClass   stacking   initial stacking class
  unsigned long   resource_id   resource id used to create the window surface
  DFBWindowID   toplevel_id   top level window, if != 0 window will be a sub window
  DFBSurfaceColorSpace   colorspace   color space


DFBDataBufferDescription

Description of a data buffer that is to be created.

  DFBDataBufferDescriptionFlags   flags   field validation
  const char   * file   for file based data buffers
  const void   * data   static data pointer
  unsigned int   length   length of buffer


DFBEnumerationResult

Return value of callback function of enumerations.

  DFENUM_OK   0x00000000   Proceed with enumeration
  DFENUM_CANCEL   0x00000001   Cancel enumeration


DFBVideoModeCallback

Called for each supported video mode.

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


DFBScreenCallback

Called for each existing screen. "screen_id" can be used to get an interface to the screen.

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


DFBDisplayLayerCallback

Called for each existing display layer. "layer_id" can be used to get an interface to the layer.

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


DFBInputDeviceCallback

Called for each existing input device. "device_id" can be used to get an interface to the device.

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


DFBGetDataCallback

Called for each block of continous data requested, e.g. by a Video Provider. Write as many data as you can but not more than specified by length. Return the number of bytes written or 'EOF' if no data is available anymore.

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


DFBVideoProviderCapabilities

Information about an IDirectFBVideoProvider.

  DVCAPS_BASIC   0x00000000   basic ops (PlayTo, Stop)
  DVCAPS_SEEK   0x00000001   supports SeekTo
  DVCAPS_SCALE   0x00000002   can scale the video
  DVCAPS_INTERLACED   0x00000004   supports interlaced surfaces
  DVCAPS_SPEED   0x00000008   supports changing playback speed
  DVCAPS_BRIGHTNESS   0x00000010   supports Brightness adjustment
  DVCAPS_CONTRAST   0x00000020   supports Contrast adjustment
  DVCAPS_HUE   0x00000040   supports Hue adjustment
  DVCAPS_SATURATION   0x00000080   supports Saturation adjustment
  DVCAPS_INTERACTIVE   0x00000100   supports SendEvent
  DVCAPS_VOLUME   0x00000200   supports Volume adjustment
  DVCAPS_EVENT   0x00000400   supports the sending of events as video/audio data changes.
  DVCAPS_ATTRIBUTES   0x00000800   supports dynamic changing of atrributes.
  DVCAPS_AUDIO_SEL   0x00001000   Supportes chosing audio outputs.


DFBVideoProviderStatus

Information about the status of an IDirectFBVideoProvider.

  DVSTATE_UNKNOWN   0x00000000   unknown status
  DVSTATE_PLAY   0x00000001   video provider is playing
  DVSTATE_STOP   0x00000002   playback was stopped
  DVSTATE_FINISHED   0x00000003   playback is finished
  DVSTATE_BUFFERING   0x00000004   video provider is buffering, playback is running


DFBVideoProviderPlaybackFlags

Flags controlling playback mode of a IDirectFBVideoProvider.

  DVPLAY_NOFX   0x00000000   normal playback
  DVPLAY_REWIND   0x00000001   reverse playback
  DVPLAY_LOOPING   0x00000002   automatically restart playback when end-of-stream is reached (gapless).


DFBVideoProviderAudioUnits

Flags to allow Audio Unit selection.

  DVAUDIOUNIT_NONE   0x00000000   No Audio Unit
  DVAUDIOUNIT_ONE   0x00000001   Audio Unit One
  DVAUDIOUNIT_TWO   0x00000002   Audio Unit Two
  DVAUDIOUNIT_THREE   0x00000004   Audio Unit Three
  DVAUDIOUNIT_FOUR   0x00000008   Audio Unit Four
  DVAUDIOUNIT_ALL   0x0000000F   Audio Unit One


DFBColorAdjustmentFlags

Flags defining which fields of a DFBColorAdjustment are valid.

  DCAF_NONE   0x00000000   none of these
  DCAF_BRIGHTNESS   0x00000001   brightness field is valid
  DCAF_CONTRAST   0x00000002   contrast field is valid
  DCAF_HUE   0x00000004   hue field is valid
  DCAF_SATURATION   0x00000008   saturation field is valid
  DCAF_ALL   0x0000000F   all of these


DFBColorAdjustment

Color Adjustment used to adjust video colors.

  DFBColorAdjustmentFlags   flags  
  u16   brightness  
  u16   contrast  
  u16   hue  
  u16   saturation  

All fields are in the range 0x0 to 0xFFFF with 0x8000 as the default value (no adjustment).


DLID_PRIMARY

0x0000


DLSID_SURFACE

0x0000


DSCID_PRIMARY

0x0000


DIDID_KEYBOARD

0x0000 /* primary keyboard */


DIDID_JOYSTICK

0x0002 /* primary joystick */


DIDID_ANY

0x0010 /* no primary device */


DFBDisplayLayerCooperativeLevel

Cooperative level handling the access permissions.

  DLSCL_SHARED   0   shared access
  DLSCL_EXCLUSIVE     exclusive access, fullscreen/mode switching
  DLSCL_ADMINISTRATIVE     administrative access, enumerate windows, control them


DFBDisplayLayerBackgroundMode

Background mode defining how to erase/initialize the area for a windowstack repaint

  DLBM_DONTCARE   0   do not clear the layer before repainting the windowstack
  DLBM_COLOR     fill with solid color (SetBackgroundColor)
  DLBM_IMAGE     use an image (SetBackgroundImage)
  DLBM_TILE     use a tiled image (SetBackgroundImage)


DFBDisplayLayerConfigFlags

Layer configuration flags

  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_COLORSPACE   0x00000080  
  DLCONF_ALL   0x000000FF  


DFBDisplayLayerConfig

Layer configuration

  DFBDisplayLayerConfigFlags   flags   Which fields of the configuration are set
  int   width   Pixel width
  int   height   Pixel height
  DFBSurfacePixelFormat   pixelformat   Pixel format
  DFBSurfaceColorSpace   colorspace   Color space
  DFBDisplayLayerBufferMode   buffermode   Buffer mode
  DFBDisplayLayerOptions   options   Enable capabilities
  DFBDisplayLayerSourceID   source   Selected layer source
  DFBSurfaceCapabilities   surface_caps   Choose surface capabilities, available: INTERLACED, SEPARATED, PREMULTIPLIED.


DLSO_FIXED_LIMIT

0x7f /* Stereo fixed depth value must be between +DLSO_FIXED_LIMIT


DFBScreenPowerMode

Screen Power Mode.

  DSPM_ON   0  
  DSPM_STANDBY    
  DSPM_SUSPEND    
  DSPM_OFF    


DFBScreenMixerCapabilities

Capabilities of a mixer.

  DSMCAPS_NONE   0x00000000   None of these.
  DSMCAPS_FULL   0x00000001   Can mix full tree as specified in the description.
  DSMCAPS_SUB_LEVEL   0x00000002   Can set a maximum layer level, e.g. to exclude an OSD from VCR output.
  DSMCAPS_SUB_LAYERS   0x00000004   Can select a number of layers individually as specified in the description.
  DSMCAPS_BACKGROUND   0x00000008   Background color is configurable.


DFB_SCREEN_MIXER_DESC_NAME_LENGTH

24


DFBScreenMixerDescription

Description of a mixer.

  DFBScreenMixerCapabilities   caps  
  DFBDisplayLayerIDs   layers   Visible layers if the full tree is selected.
  int   sub_num   Number of layers that can be selected in sub mode.
  DFBDisplayLayerIDs   sub_layers   Layers available for sub mode with layer selection.
  char   name[DFB_SCREEN_MIXER_DESC_NAME_LENGTH]   Mixer name


DFBScreenMixerConfigFlags

Flags for mixer configuration.

  DSMCONF_NONE   0x00000000   None of these.
  DSMCONF_TREE   0x00000001   (Sub) tree is selected.
  DSMCONF_LEVEL   0x00000002   Level is specified.
  DSMCONF_LAYERS   0x00000004   Layer selection is set.
  DSMCONF_BACKGROUND   0x00000010   Background color is set.
  DSMCONF_ALL   0x00000017  


DFBScreenMixerTree

(Sub) tree selection.

  DSMT_UNKNOWN   0x00000000   Unknown mode
  DSMT_FULL   0x00000001   Full tree.
  DSMT_SUB_LEVEL   0x00000002   Sub tree via maximum level.
  DSMT_SUB_LAYERS   0x00000003   Sub tree via layer selection.


DFBScreenMixerConfig

Configuration of a mixer.

  DFBScreenMixerConfigFlags   flags   Validates struct members.
  DFBScreenMixerTree   tree   Selected (sub) tree.
  int   level   Max. level of sub level mode.
  DFBDisplayLayerIDs   layers   Layers for sub layers mode.
  DFBColor   background   Background color.


DFBScreenOutputCapabilities

Capabilities of an output.

  DSOCAPS_NONE   0x00000000   None of these.
  DSOCAPS_CONNECTORS   0x00000001   Output connectors are available.
  DSOCAPS_ENCODER_SEL   0x00000010   Encoder can be selected.
  DSOCAPS_SIGNAL_SEL   0x00000020   Signal(s) can be selected.
  DSOCAPS_CONNECTOR_SEL   0x00000040   Connector(s) can be selected.
  DSOCAPS_SLOW_BLANKING   0x00000080   Slow Blanking on outputs is supported.
  DSOCAPS_RESOLUTION   0x00000100   Output Resolution can be changed. (global screen size)
  DSOCAPS_ALL   0x000001F1  


DFBScreenOutputConnectors

Type of output connector.

  DSOC_UNKNOWN   0x00000000   Unknown type
  DSOC_VGA   0x00000001   VGA connector
  DSOC_SCART   0x00000002   SCART connector
  DSOC_YC   0x00000004   Y/C connector
  DSOC_CVBS   0x00000008   CVBS connector
  DSOC_SCART2   0x00000010   2nd SCART connector
  DSOC_COMPONENT   0x00000020   Component video connector
  DSOC_HDMI   0x00000040   HDMI connector
  DSOC_656   0x00000080   DVO connector


DFBScreenOutputSignals

Type of output signal.

  DSOS_NONE   0x00000000   No signal
  DSOS_VGA   0x00000001   VGA signal
  DSOS_YC   0x00000002   Y/C signal
  DSOS_CVBS   0x00000004   CVBS signal
  DSOS_RGB   0x00000008   R/G/B signal
  DSOS_YCBCR   0x00000010   Y/Cb/Cr signal
  DSOS_HDMI   0x00000020   HDMI signal
  DSOS_656   0x00000040   656 Digital output signal


DFBScreenOutputSlowBlankingSignals

Type of slow blanking signalling.

  DSOSB_OFF   0x00000000   No signal
  DSOSB_16x9   0x00000001   16*9 Widescreen signalling
  DSOSB_4x3   0x00000002   4*3 widescreen signalling
  DSOSB_FOLLOW   0x00000004   Follow signalling
  DSOSB_MONITOR   0x00000008   Monitor


DFBScreenOutputResolution

  DSOR_UNKNOWN   0x00000000   Unknown Resolution
  DSOR_640_480   0x00000001   640x480 Resolution
  DSOR_720_480   0x00000002   720x480 Resolution
  DSOR_720_576   0x00000004   720x576 Resolution
  DSOR_800_600   0x00000008   800x600 Resolution
  DSOR_1024_768   0x00000010   1024x768 Resolution
  DSOR_1152_864   0x00000020   1152x864 Resolution
  DSOR_1280_720   0x00000040   1280x720 Resolution
  DSOR_1280_768   0x00000080   1280x768 Resolution
  DSOR_1280_960   0x00000100   1280x960 Resolution
  DSOR_1280_1024   0x00000200   1280x1024 Resolution
  DSOR_1400_1050   0x00000400   1400x1050 Resolution
  DSOR_1600_1200   0x00000800   1600x1200 Resolution
  DSOR_1920_1080   0x00001000   1920x1080 Resolution
  DSOR_960_540   0x00002000   960x540 Resolution
  DSOR_1440_540   0x00004000   1440x540 Resolution
  DSOR_800_480   0x00008000   800x480 Resolution
  DSOR_1024_600   0x00010000   1024x600 Resolution
  DSOR_1366_768   0x00020000   1366x768 Resolution
  DSOR_1920_1200   0x00040000   1920x1200 Resolution
  DSOR_2560_1440   0x00080000   2560x1440 Resolution
  DSOR_2560_1600   0x00100000   2650x1600 Resolution
  DSOR_3840_2160   0x00200000   3840x2160 Resolution
  DSOR_4096_2160   0x00400000   4096x2160 Resolution
  DSOR_ALL   0x004FFFFF   All Resolutions


DFB_SCREEN_OUTPUT_DESC_NAME_LENGTH

24


DFBScreenOutputDescription

Description of a screen output.

  DFBScreenOutputCapabilities   caps   Screen capabilities.
  DFBScreenOutputConnectors   all_connectors   Output connectors.
  DFBScreenOutputSignals   all_signals   Output signals.
  DFBScreenOutputResolution   all_resolutions   Output Resolutions
  char   name[DFB_SCREEN_OUTPUT_DESC_NAME_LENGTH]   Output name


DFBScreenOutputConfigFlags

Flags for screen output configuration.

  DSOCONF_NONE   0x00000000   None of these.
  DSOCONF_ENCODER   0x00000001   Set encoder the signal(s) comes from.
  DSOCONF_SIGNALS   0x00000002   Select signal(s) from encoder.
  DSOCONF_CONNECTORS   0x00000004   Select output connector(s).
  DSOCONF_SLOW_BLANKING   0x00000008   Can select slow blanking support.
  DSOCONF_RESOLUTION   0x00000010   Can change output resolution
  DSOCONF_ALL   0x0000001F  


DFBScreenOutputConfig

Configuration of an output.

  DFBScreenOutputConfigFlags   flags   Validates struct members.
  int   encoder   Chosen encoder.
  DFBScreenOutputSignals   out_signals   Selected encoder signal(s).
  DFBScreenOutputConnectors   out_connectors   Selected output connector(s).
  DFBScreenOutputSlowBlankingSignals   slow_blanking   Slow Blanking signals.
  DFBScreenOutputResolution   resolution   Output Resolution


DFBScreenEncoderCapabilities

Capabilities of a display encoder.

  DSECAPS_NONE   0x00000000   None of these.
  DSECAPS_TV_STANDARDS   0x00000001   TV standards can be selected.
  DSECAPS_TEST_PICTURE   0x00000002   Test picture generation supported.
  DSECAPS_MIXER_SEL   0x00000004   Mixer can be selected.
  DSECAPS_OUT_SIGNALS   0x00000008   Different output signals are supported.
  DSECAPS_SCANMODE   0x00000010   Can switch between interlaced and progressive output.
  DSECAPS_FREQUENCY   0x00000020   Can switch between different frequencies.
  DSECAPS_BRIGHTNESS   0x00000100   Adjustment of brightness is supported.
  DSECAPS_CONTRAST   0x00000200   Adjustment of contrast is supported.
  DSECAPS_HUE   0x00000400   Adjustment of hue is supported.
  DSECAPS_SATURATION   0x00000800   Adjustment of saturation is supported.
  DSECAPS_CONNECTORS   0x00001000   Select output connector(s).
  DSECAPS_SLOW_BLANKING   0x00002000   Slow Blanking on outputs is supported.
  DSECAPS_RESOLUTION   0x00004000   Different encoder resolutions supported
  DSECAPS_FRAMING   0x00008000   Can select picture framing mode for stereo
  DSECAPS_ASPECT_RATIO   0x00010000   Can specify display aspect ratio
  DSECAPS_ALL   0x0001FF3F  


DFBScreenEncoderType

Type of display encoder.

  DSET_UNKNOWN   0x00000000   Unknown type
  DSET_CRTC   0x00000001   Encoder is a CRTC.
  DSET_TV   0x00000002   TV output encoder.
  DSET_DIGITAL   0x00000004   Support signals other than SD TV standards.


DFBScreenEncoderTVStandards

TV standards.

  DSETV_UNKNOWN   0x00000000   Unknown standard
  DSETV_PAL   0x00000001   PAL
  DSETV_NTSC   0x00000002   NTSC
  DSETV_SECAM   0x00000004   SECAM
  DSETV_PAL_60   0x00000008   PAL-60
  DSETV_PAL_BG   0x00000010   PAL BG support (specific)
  DSETV_PAL_I   0x00000020   PAL I support (specific)
  DSETV_PAL_M   0x00000040   PAL M support (specific)
  DSETV_PAL_N   0x00000080   PAL N support (specific)
  DSETV_PAL_NC   0x00000100   PAL NC support (specific)
  DSETV_NTSC_M_JPN   0x00000200   NTSC_JPN support
  DSETV_DIGITAL   0x00000400   TV standards from the digital domain. specify resolution, scantype, frequency.
  DSETV_NTSC_443   0x00000800   NTSC with 4.43MHz colour carrier
  DSETV_ALL   0x00000FFF   All TV Standards


DFBScreenEncoderScanMode

Scan modes.

  DSESM_UNKNOWN   0x00000000   Unknown mode
  DSESM_INTERLACED   0x00000001   Interlaced scan mode
  DSESM_PROGRESSIVE   0x00000002   Progressive scan mode


DFBScreenEncoderFrequency

Frequency of output signal.

  DSEF_UNKNOWN   0x00000000   Unknown Frequency
  DSEF_25HZ   0x00000001   25 Hz Output.
  DSEF_29_97HZ   0x00000002   29.97 Hz Output.
  DSEF_50HZ   0x00000004   50 Hz Output.
  DSEF_59_94HZ   0x00000008   59.94 Hz Output.
  DSEF_60HZ   0x00000010   60 Hz Output.
  DSEF_75HZ   0x00000020   75 Hz Output.
  DSEF_30HZ   0x00000040   30 Hz Output.
  DSEF_24HZ   0x00000080   24 Hz Output.
  DSEF_23_976HZ   0x00000100   23.976 Hz Output.


DFBScreenEncoderPictureFraming

Encoder picture delivery method. See HDMI Specification 1.4a - Extraction of 3D signaling portion for more details

  DSEPF_UNKNOWN   0  
  DSEPF_MONO   0x00000001   Normal output to non-stereoscopic (3D) TV. No L/R content provided to TV. Frame is output on each vsync.
  DSEPF_STEREO_SIDE_BY_SIDE_HALF   0x00000002   L/R frames are downscaled horizontally by 2 and packed side-by-side into a single frame, left on left half of frame. The packed frame is output on each vsync. Some stereoscopic TV's support this mode using HDMI v1.3 and a special menu configuration.
  DSEPF_STEREO_TOP_AND_BOTTOM   0x00000004   L/R frames are downscaled vertically by 2 and packed into a single frame, left on top. The packed frame is output on each vsync. Some stereoscopic TV's support this mode using HDMI v1.3 and a special menu configuration.
  DSEPF_STEREO_FRAME_PACKING   0x00000008   Full resolution L/R frames or fields are delivered sequentially to the TV, alternating left & right with an active space between each video frame. Vsync occurs after each sequence of: vblank, left eye video frame, active space, right eye video frame. Requires HDMI v1.4a.
  DSEPF_STEREO_SIDE_BY_SIDE_FULL   0x00000010   L/R frames are packed side-by-side into a double width single frame, left on left half of frame. The packed frame is output on each vsync. Requires HDMI v1.4a.
  DSEPF_ALL   0x0000001f  


DSEPF_STEREO_PACKED_HORIZ

DSEPF_STEREO_SIDE_BY_SIDE_HALF


DSEPF_STEREO_SEQUENTIAL

DSEPF_STEREO_FRAME_PACKING


DFBDisplayAspectRatio

  DFB_ASPECT_RATIO_eAuto     4x3 for SD and 480p, 16x9 for HD (including 720p, 1080i, etc.)
  DFB_ASPECT_RATIO_e4x3    
  DFB_ASPECT_RATIO_e16x9    


DFB_SCREEN_ENCODER_DESC_NAME_LENGTH

24


DFBScreenEncoderDescription

Description of a display encoder.

  DFBScreenEncoderCapabilities   caps   Encoder capabilities.
  DFBScreenEncoderType   type   Type of encoder.
  DFBScreenEncoderTVStandards   tv_standards   Supported TV standards.
  DFBScreenOutputSignals   out_signals   Supported output signals.
  DFBScreenOutputConnectors   all_connectors   Supported output connectors
  DFBScreenOutputResolution   all_resolutions   Supported Resolutions
  char   name[DFB_SCREEN_ENCODER_DESC_NAME_LENGTH]   Encoder name
  DFBScreenEncoderPictureFraming   all_framing   Supported HDMI signaling modes
  DFBDisplayAspectRatio   all_aspect_ratio   Supported display aspect ratios


DFBScreenEncoderConfigFlags

Flags for display encoder configuration.

  DSECONF_NONE   0x00000000   None of these.
  DSECONF_TV_STANDARD   0x00000001   Set TV standard.
  DSECONF_TEST_PICTURE   0x00000002   Set test picture mode.
  DSECONF_MIXER   0x00000004   Select mixer.
  DSECONF_OUT_SIGNALS   0x00000008   Select generated output signal(s).
  DSECONF_SCANMODE   0x00000010   Select interlaced or progressive output.
  DSECONF_TEST_COLOR   0x00000020   Set color for DSETP_SINGLE.
  DSECONF_ADJUSTMENT   0x00000040   Set color adjustment.
  DSECONF_FREQUENCY   0x00000080   Set Output Frequency
  DSECONF_CONNECTORS   0x00000100   Select output connector(s).
  DSECONF_SLOW_BLANKING   0x00000200   Can select slow blanking support.
  DSECONF_RESOLUTION   0x00000400   Can change resolution of the encoder.
  DSECONF_FRAMING   0x00000800   Set method for delivering pictures to display.
  DSECONF_ASPECT_RATIO   0x00001000   Set display aspect ratio.
  DSECONF_ALL   0x00001FFF  


DFBScreenEncoderTestPicture

Test picture mode.

  DSETP_OFF   0x00000000   Disable test picture.
  DSETP_MULTI   0x00000001   Show color bars.
  DSETP_SINGLE   0x00000002   Whole screen as defined in configuration.
  DSETP_WHITE   0x00000010   Whole screen (ff, ff, ff).
  DSETP_YELLOW   0x00000020   Whole screen (ff, ff, 00).
  DSETP_CYAN   0x00000030   Whole screen (00, ff, ff).
  DSETP_GREEN   0x00000040   Whole screen (00, ff, 00).
  DSETP_MAGENTA   0x00000050   Whole screen (ff, 00, ff).
  DSETP_RED   0x00000060   Whole screen (ff, 00, 00).
  DSETP_BLUE   0x00000070   Whole screen (00, 00, ff).
  DSETP_BLACK   0x00000080   Whole screen (00, 00, 00).


DFBScreenEncoderConfig

Configuration of a display encoder.

  DFBScreenEncoderConfigFlags   flags   Validates struct members.
  DFBScreenEncoderTVStandards   tv_standard   TV standard.
  DFBScreenEncoderTestPicture   test_picture   Test picture mode.
  int   mixer   Selected mixer.
  DFBScreenOutputSignals   out_signals   Generated output signals.
  DFBScreenOutputConnectors   out_connectors   Selected output connector(s).
  DFBScreenOutputSlowBlankingSignals   slow_blanking   Slow Blanking signals.
  DFBScreenEncoderScanMode   scanmode   Interlaced or progressive output.
  DFBColor   test_color   Color for DSETP_SINGLE.
  DFBColorAdjustment   adjustment   Color adjustment.
  DFBScreenEncoderFrequency   frequency   Selected Output Frequency
  DFBScreenOutputResolution   resolution   Selected Output resolution
  DFBScreenEncoderPictureFraming   framing   Selected picture delivery method.
  DFBDisplayAspectRatio   aspect_ratio   screen aspect ratio


DFBSurfaceFlipFlags

Flipping flags controlling the behaviour of IDirectFBSurface::Flip().

  DSFLIP_NONE   0x00000000   None of these.
  DSFLIP_WAIT   0x00000001   Flip() returns upon vertical sync. Flipping is still done immediately unless DSFLIP_ONSYNC is specified, too.
  DSFLIP_BLIT   0x00000002   Copy from back buffer to front buffer rather than just swapping these buffers. This behaviour is enforced if the region passed to Flip() is not NULL or if the surface being flipped is a sub surface.
  DSFLIP_ONSYNC   0x00000004   Do the actual flipping upon the next vertical sync. The Flip() method will still return immediately unless DSFLIP_WAIT is specified, too.
  DSFLIP_PIPELINE   0x00000008  
  DSFLIP_ONCE   0x00000010  
  DSFLIP_QUEUE   0x00000100  
  DSFLIP_FLUSH   0x00000200  
  DSFLIP_SWAP   0x00000400   Causes real flip even though region was specified. Does not make sense in combination with DSFLIP_BLIT!
  DSFLIP_UPDATE   0x00000800   Update from front only, no swapping
  DSFLIP_NOWAIT   0x00001000  
  DSFLIP_WAITFORSYNC   DSFLIP_WAIT | DSFLIP_ONSYNC  


DFBSurfaceTextFlags

Flags controlling the text layout.

  DSTF_NONE   0x00000000   no flags
  DSTF_LEFT   0x00000000   left aligned
  DSTF_CENTER   0x00000001   horizontally centered
  DSTF_RIGHT   0x00000002   right aligned
  DSTF_TOP   0x00000004   y specifies the top instead of the baseline
  DSTF_BOTTOM   0x00000008   y specifies the bottom instead of the baseline
  DSTF_OUTLINE   0x00000010   enables outline rendering if loaded font supports it
  DSTF_BLEND_FUNCS   0x00000020   keeps src/dst blend functions as set on destination
  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  


DFBSurfaceLockFlags

Flags defining the type of data access. These are important for surface swapping management.

  DSLF_READ   0x00000001   Request read access while surface is locked.
  DSLF_WRITE   0x00000002   Request write access. If specified and surface has a back buffer, it will be used. Otherwise, the front buffer is used.


DFBSurfaceStereoEye

Stereo eye buffer.

  DSSE_NONE   0x00000000   None
  DSSE_LEFT   0x00000001   Left eye buffers to be used for all future operations on this surface.
  DSSE_RIGHT   0x00000002   Right eye buffers to be used for all future operations on this surface.


DFBSurfacePorterDuffRule

Available Porter/Duff rules.

  DSPD_NONE   0   fs: sa fd: 1.0-sa (defaults)
  DSPD_CLEAR   1   fs: 0.0 fd: 0.0
  DSPD_SRC   2   fs: 1.0 fd: 0.0
  DSPD_SRC_OVER   3   fs: 1.0 fd: 1.0-sa
  DSPD_DST_OVER   4   fs: 1.0-da fd: 1.0
  DSPD_SRC_IN   5   fs: da fd: 0.0
  DSPD_DST_IN   6   fs: 0.0 fd: sa
  DSPD_SRC_OUT   7   fs: 1.0-da fd: 0.0
  DSPD_DST_OUT   8   fs: 0.0 fd: 1.0-sa
  DSPD_SRC_ATOP   9   fs: da fd: 1.0-sa
  DSPD_DST_ATOP   10   fs: 1.0-da fd: sa
  DSPD_ADD   11   fs: 1.0 fd: 1.0
  DSPD_XOR   12   fs: 1.0-da fd: 1.0-sa
  DSPD_DST   13   fs: 0.0 fd: 1.0

pixel = (source * fs + destination * fd), sa = source alpha, da = destination alpha


DFBSurfaceBlendFunction

Blend functions to use for source and destination blending

  DSBF_UNKNOWN   0  
  DSBF_ZERO   1   cf: 0 af: 0
  DSBF_ONE   2   cf: 1 af: 1
  DSBF_SRCCOLOR   3   cf: sc af: sa
  DSBF_INVSRCCOLOR   4   cf: 1-sc af: 1-sa
  DSBF_SRCALPHA   5   cf: sa af: sa
  DSBF_INVSRCALPHA   6   cf: 1-sa af: 1-sa
  DSBF_DESTALPHA   7   cf: da af: da
  DSBF_INVDESTALPHA   8   cf: 1-da af: 1-da
  DSBF_DESTCOLOR   9   cf: dc af: da
  DSBF_INVDESTCOLOR   10   cf: 1-dc af: 1-da
  DSBF_SRCALPHASAT   11   cf: min(sa, 1-da) af: 1


DFBVertex

Transformed vertex of a textured triangle.

  float   x   Destination X coordinate (in pixels)
  float   y   Destination Y coordinate (in pixels)
  float   z   Z coordinate
  float   w   W coordinate
  float   s   Texture S coordinate
  float   t   Texture T coordinate


DFBVertex1616

Transformed vertex of a textured triangle using fixed 16.16 values.

  int   x   Destination X coordinate (in pixels)
  int   y   Destination Y coordinate (in pixels)
  int   z   Z coordinate
  int   w   W coordinate
  int   s   Texture S coordinate
  int   t   Texture T coordinate


DFBTriangleFormation

Way of building triangles from the list of vertices.

  DTTF_LIST     0/1/2 3/4/5 6/7/8 ...
  DTTF_STRIP     0/1/2 1/2/3 2/3/4 ...
  DTTF_FAN     0/1/2 0/2/3 0/3/4 ...


DFBSurfaceMaskFlags

Flags controlling surface masks set via IDirectFBSurface::SetSourceMask().

  DSMF_NONE   0x00000000   None of these.
  DSMF_STENCIL   0x00000001   Take x and y as fixed start coordinates in the mask.
  DSMF_ALL   0x00000001   All of these.


DFBSurfaceRopCode

Available Rop codes.

  DSROP_CLEAR   0x00  
  DSROP_XOR   0x96  
  DSROP_SRC_COPY   0xCC  


DFBSurfacePatternMode

Available pattern mode

  DSPM_8_8_MONO   0  
  DSPM_32_32_MONO   1  


DFBColorKeyPolarity

Color key polarity

  DCKP_DEFAULT   0  
  DCKP_OTHER   1  


DFBColorKeyExtended

Extended color key definition

  DFBColorKeyPolarity   polarity  
  DFBColor   lower  
  DFBColor   upper  


DFBMonoGlyphAttributes

Attributes for DrawMonoGlyphs

  int   width   glyph width
  int   height   glyph height
  int   rowbyte   glyph rowbyte
  int   bitoffset   glyph bitoffset
  int   fgcolor   foreground color
  int   bgcolor   background color
  int   hzoom   horizontal zoom factor
  int   vzoom   vertical zoom factor


DFBConvolutionFilter

Convolution filter

  s32   kernel[9]  
  s32   scale  
  s32   bias  

The kernel consists of 3x3 fixed point 16.16 values. Additionally there are scale and bias, also fixed point 16.16 values.


DFBFrameTimeConfigFlags

  DFTCF_NONE   0x00000000   None of these
  DFTCF_INTERVAL   0x00000001   Interval is specified, otherwise the interval is set automatically depending on screen refresh
  DFTCF_MAX_ADVANCE   0x00000002   Maximum time to render in advance, GetFrameTime will block to keep the limit
  DFTCF_ALL   0x00000003   All of these


DFBFrameTimeConfig

  DFBFrameTimeConfigFlags   flags  
  long long   interval  
  long long   max_advance  


DFBSurfaceBufferRole

  DSBR_FRONT   0  
  DSBR_BACK   1  
  DSBR_IDLE   2  


DFBSurfaceAccessFlags

  DSAF_NONE   0x00000000  
  DSAF_READ   0x00000001   accessor may read
  DSAF_WRITE   0x00000002   accessor may write
  DSAF_SHARED   0x00000010   other processes can read/write at the same time (shared mapping)
  DSAF_CACHE_INVALIDATE   0x00000100   accessor should invalidate its cache before reading/writing
  DSAF_CACHE_FLUSH   0x00000200   accessor should flush its cache after writing
  DSAF_ALL   0x00000313  


DFBSurfaceFlushFlags

  DSFF_NONE   0x00000000  
  DSFF_WAIT   0x00000001   wait for commands being processed
  DSFF_ALL   0x00000001  


DFBInputDeviceKeyState

Specifies whether a key is currently down.

  DIKS_UP   0x00000000   key is not pressed
  DIKS_DOWN   0x00000001   key is pressed


DFBInputDeviceButtonState

Specifies whether a button is currently pressed.

  DIBS_UP   0x00000000   button is not pressed
  DIBS_DOWN   0x00000001   button is pressed


DFBInputDeviceButtonMask

Flags specifying which buttons are currently down.

  DIBM_LEFT   0x00000001   left mouse button
  DIBM_RIGHT   0x00000002   right mouse button
  DIBM_MIDDLE   0x00000004   middle mouse button


DFBInputDeviceConfigFlags

Input device configuration flags

  DIDCONF_NONE   0x00000000  
  DIDCONF_SENSITIVITY   0x00000001  
  DIDCONF_ALL   0x00000001  


DFBInputDeviceConfig

Input device configuration

  DFBInputDeviceConfigFlags   flags  
  int   sensitivity   Sensitivity value for X/Y axes (8.8 fixed point), default 0x100


DFBEventClass

Event class.

  DFEC_NONE   0x00   none of these
  DFEC_INPUT   0x01   raw input event
  DFEC_WINDOW   0x02   windowing event
  DFEC_USER   0x03   custom event for the user of this library
  DFEC_UNIVERSAL   0x04   universal event for custom usage with variable size
  DFEC_VIDEOPROVIDER   0x05   video provider event
  DFEC_SURFACE   0x06   surface event


DFBInputEventType

The type of an input event.

  DIET_UNKNOWN   0   unknown event
  DIET_KEYPRESS     a key is been pressed
  DIET_KEYRELEASE     a key is been released
  DIET_BUTTONPRESS     a (mouse) button is been pressed
  DIET_BUTTONRELEASE     a (mouse) button is been released
  DIET_AXISMOTION     mouse/joystick movement


DFBInputEventFlags

Flags defining which additional (optional) event fields are valid.

  DIEF_NONE   0x0000   no additional fields
  DIEF_TIMESTAMP   0x0001   timestamp is valid
  DIEF_AXISABS   0x0002   axis and axisabs are valid
  DIEF_AXISREL   0x0004   axis and axisrel are valid
  DIEF_KEYCODE   0x0008   used internally by the input core, always set at application level
  DIEF_KEYID   0x0010   used internally by the input core, always set at application level
  DIEF_KEYSYMBOL   0x0020   used internally by the input core, always set at application level
  DIEF_MODIFIERS   0x0040   used internally by the input core, always set at application level
  DIEF_LOCKS   0x0080   used internally by the input core, always set at application level
  DIEF_BUTTONS   0x0100   used internally by the input core, always set at application level
  DIEF_GLOBAL   0x0200   Only for event buffers creates by IDirectFB::CreateInputEventBuffer() with global events enabled. Indicates that the event would have been filtered if the buffer hadn't been global.
  DIEF_REPEAT   0x0400   repeated event, e.g. key or button press
  DIEF_FOLLOW   0x0800   another event will follow immediately, e.g. x/y axis
  DIEF_MIN   0x1000   minimum value is set, e.g. for absolute axis motion
  DIEF_MAX   0x2000   maximum value is set, e.g. for absolute axis motion


DFBInputEvent

An input event, item of an input buffer.

  DFBEventClass   clazz   clazz of event
  DFBInputEventType   type   type of event
  DFBInputDeviceID   device_id   source of event
  DFBInputEventFlags   flags   which optional fields are valid?
  struct timeval   timestamp   time of event creation
  int   key_code   hardware keycode, no mapping, -1 if device doesn't differentiate between several keys
  DFBInputDeviceKeyIdentifier   key_id   basic mapping, modifier independent
  DFBInputDeviceKeySymbol   key_symbol   advanced mapping, unicode compatible, modifier dependent
  DFBInputDeviceModifierMask   modifiers   pressed modifiers (optional)
  DFBInputDeviceLockState   locks   active locks (optional)
  DFBInputDeviceButtonIdentifier   button   in case of a button event
  DFBInputDeviceButtonMask   buttons   mask of currently pressed buttons
  DFBInputDeviceAxisIdentifier   axis   in case of an axis event
  int   axisabs   absolute mouse/ joystick coordinate
  int   axisrel   relative mouse/ joystick movement
  int   min   minimum possible value
  int   max   maximum possible value


DFBWindowEventType

Window Event Types - can also be used as flags for event filters.

  DWET_NONE   0x00000000  
  DWET_POSITION   0x00000001   window has been moved by window manager or the application itself
  DWET_SIZE   0x00000002   window has been resized by window manager or the application itself
  DWET_CLOSE   0x00000004   closing this window has been requested only
  DWET_DESTROYED   0x00000008   window got destroyed by global deinitialization function or the application itself
  DWET_GOTFOCUS   0x00000010   window got focus
  DWET_LOSTFOCUS   0x00000020   window lost focus
  DWET_KEYDOWN   0x00000100   a key has gone down while window has focus
  DWET_KEYUP   0x00000200   a key has gone up while window has focus
  DWET_BUTTONDOWN   0x00010000   mouse button went down in the window
  DWET_BUTTONUP   0x00020000   mouse button went up in the window
  DWET_MOTION   0x00040000   mouse cursor changed its position in window
  DWET_ENTER   0x00080000   mouse cursor entered the window
  DWET_LEAVE   0x00100000   mouse cursor left the window
  DWET_WHEEL   0x00200000   mouse wheel was moved while window has focus
  DWET_POSITION_SIZE   DWET_POSITION | DWET_SIZE   initially sent to window when it's created
  DWET_UPDATE   0x01000000  
  DWET_ALL   0x013F033F   all event types


DFBWindowEventFlags

Flags for a window event.

  DWEF_NONE   0x00000000   none of these
  DWEF_RETURNED   0x00000001   This is a returned event, e.g. unconsumed key.
  DWEF_RELATIVE   0x00000002   This is a relative motion event (using DWCF_RELATIVE)
  DWEF_REPEAT   0x00000010   repeat event, e.g. repeating key
  DWEF_DEVICE_ID   0x00000020   device_id field of DFBInputEvent is valid
  DWEF_ALL   0x00000033   all of these


DFBVideoProviderEventType

Video Provider Event Types - can also be used as flags for event filters.

  DVPET_NONE   0x00000000  
  DVPET_STARTED   0x00000001   The video provider has started the playback
  DVPET_STOPPED   0x00000002   The video provider has stopped the playback
  DVPET_SPEEDCHANGE   0x00000004   A speed change has occured
  DVPET_STREAMCHANGE   0x00000008   A stream description change has occured
  DVPET_FATALERROR   0x00000010   A fatal error has occured: restart must be done
  DVPET_FINISHED   0x00000020   The video provider has finished the playback
  DVPET_SURFACECHANGE   0x00000040   A surface description change has occured
  DVPET_FRAMEDECODED   0x00000080   A frame has been decoded by the decoder
  DVPET_FRAMEDISPLAYED   0x00000100   A frame has been rendered to the output
  DVPET_DATAEXHAUSTED   0x00000200   There is no more data available for consumption
  DVPET_VIDEOACTION   0x00000400   An action is required on the video provider
  DVPET_DATALOW   0x00000800   The stream buffer is running low in data (threshold defined by implementation).
  DVPET_DATAHIGH   0x00001000   The stream buffer is high.
  DVPET_BUFFERTIMELOW   0x00002000   The stream buffer has less than requested playout time buffered.
  DVPET_BUFFERTIMEHIGH   0x00004000   The stream buffer has more than requested playout time buffered.
  DVPET_ALL   0x00007FFF   All event types


DFBSurfaceEventType

Surface Event Types - can also be used as flags for event filters.

  DSEVT_NONE   0x00000000  
  DSEVT_DESTROYED   0x00000001   surface got destroyed by global deinitialization function or the application itself
  DSEVT_UPDATE   0x00000002  
  DSEVT_DISPLAY   0x00000004  
  DSEVT_CONFIG   0x00000008  
  DSEVT_FRAME   0x00000010  
  DSEVT_ALL   0x0000001F   All event types


DFBWindowEvent

Event from the windowing system.

  DFBEventClass   clazz   clazz of event
  DFBWindowEventType   type   type of event
  DFBWindowEventFlags   flags   event flags
  DFBWindowID   window_id   source of event
  int   x   x position of window or coordinate within window
  int   y   y position of window or coordinate within window
  int   cx   x cursor position
  int   cy   y cursor position
  int   step   wheel step
  int   w   width of window
  int   h   height of window
  int   key_code   hardware keycode, no mapping, -1 if device doesn't differentiate between several keys
  DFBInputDeviceKeyIdentifier   key_id   basic mapping, modifier independent
  DFBInputDeviceKeySymbol   key_symbol   advanced mapping, unicode compatible, modifier dependent
  DFBInputDeviceModifierMask   modifiers   pressed modifiers
  DFBInputDeviceLockState   locks   active locks
  DFBInputDeviceButtonIdentifier   button   button being pressed or released
  DFBInputDeviceButtonMask   buttons   mask of currently pressed buttons
  struct timeval   timestamp   always set
  DFBInputDeviceID   device_id  


DFBVideoProviderEventDataSubType

Video Provider Event Types - can also be used as flags for event filters.

  DVPEDST_UNKNOWN   0x00000000   Event is valid for unknown Data
  DVPEDST_AUDIO   0x00000001   Event is valid for Audio Data
  DVPEDST_VIDEO   0x00000002   Event is valid for Video Data
  DVPEDST_DATA   0x00000004   Event is valid for Data types
  DVPEDST_ALL   0x00000007   Event is valid for all Data types


DFBVideoProviderEvent

Event from the video provider

  DFBEventClass   clazz   clazz of event
  DFBVideoProviderEventType   type   type of event
  DFBVideoProviderEventDataSubType   data_type   data type that this event is applicable for.
  int   data[4]   custom data - large enough for 4 ints so that in most cases memory allocation will not be needed


DFBSurfaceEvent

Event from surface

  DFBEventClass   clazz   clazz of event
  DFBSurfaceEventType   type   type of event
  DFBSurfaceID   surface_id   source of event
  long long   time_stamp   Micro seconds from DIRECT_CLOCK_MONOTONIC
  DFBRegion   update  
  DFBRegion   update_right  
  unsigned int   flip_count   Serial number of frame, modulo number of buffers = buffer index
  DFBSurfaceFlipFlags   flip_flags  
  unsigned int   index   Serial number of frame, modulo number of buffers = buffer index
  DFBDimension   size   New size of surface
  DFBSurfaceBufferID   left_id   ID of surface buffer
  u32   left_serial  
  DFBSurfaceBufferID   right_id   ID of surface buffer
  u32   right_serial  


DFBUserEvent

Event for usage by the user of this library.

  DFBEventClass   clazz   clazz of event
  unsigned int   type   custom type
  void   * data   custom data


DFBUniversalEvent

Universal event for custom usage with variable size.

  DFBEventClass   clazz   clazz of event (DFEC_UNIVERSAL)
  unsigned int   size   size of this event, minimum is sizeof(DFBUniversalEvent), e.g. 8 bytes (on 32bit architectures)


DFBEvent

General container for a DirectFB Event.

  DFBEventClass   clazz   clazz of event
  DFBInputEvent   input   field for input events
  DFBWindowEvent   window   field for window events
  DFBUserEvent   user   field for user-defined events
  DFBUniversalEvent   universal   field for universal events
  DFBVideoProviderEvent   videoprovider   field for video provider
  DFBSurfaceEvent   surface   field for surface events


DFB_EVENT (e)

((DFBEvent *) (e))


DFBEventBufferStats

Statistics about event buffer queue.

  unsigned int   num_events   Total number of events in the queue.
  unsigned int   DFEC_INPUT   Number of input events.
  unsigned int   DFEC_WINDOW   Number of window events.
  unsigned int   DFEC_USER   Number of user events.
  unsigned int   DFEC_UNIVERSAL   Number of universal events.
  unsigned int   DFEC_VIDEOPROVIDER   Number of universal events.
  unsigned int   DIET_KEYPRESS  
  unsigned int   DIET_KEYRELEASE  
  unsigned int   DIET_BUTTONPRESS  
  unsigned int   DIET_BUTTONRELEASE  
  unsigned int   DIET_AXISMOTION  
  unsigned int   DWET_POSITION  
  unsigned int   DWET_SIZE  
  unsigned int   DWET_CLOSE  
  unsigned int   DWET_DESTROYED  
  unsigned int   DWET_GOTFOCUS  
  unsigned int   DWET_LOSTFOCUS  
  unsigned int   DWET_KEYDOWN  
  unsigned int   DWET_KEYUP  
  unsigned int   DWET_BUTTONDOWN  
  unsigned int   DWET_BUTTONUP  
  unsigned int   DWET_MOTION  
  unsigned int   DWET_ENTER  
  unsigned int   DWET_LEAVE  
  unsigned int   DWET_WHEEL  
  unsigned int   DWET_POSITION_SIZE  
  unsigned int   DVPET_STARTED  
  unsigned int   DVPET_STOPPED  
  unsigned int   DVPET_SPEEDCHANGE  
  unsigned int   DVPET_STREAMCHANGE  
  unsigned int   DVPET_FATALERROR  
  unsigned int   DVPET_FINISHED  
  unsigned int   DVPET_SURFACECHANGE  
  unsigned int   DVPET_FRAMEDECODED  
  unsigned int   DVPET_FRAMEDISPLAYED  
  unsigned int   DVPET_DATAEXHAUSTED  
  unsigned int   DVPET_DATALOW  
  unsigned int   DVPET_VIDEOACTION  
  unsigned int   DVPET_DATAHIGH  
  unsigned int   DVPET_BUFFERTIMELOW  
  unsigned int   DVPET_BUFFERTIMEHIGH  


DFBWindowKeySelection

The key selection defines a mode for filtering keys while the window is having the focus.

  DWKS_ALL   0x00000000   Select all keys (default).
  DWKS_NONE   0x00000001   Don't select any key.
  DWKS_LIST   0x00000002   Select a list of keys.


DFBWindowGeometryMode

  DWGM_DEFAULT   0x00000000   Use default values.
  DWGM_FOLLOW   0x00000001   Use values of parent window.
  DWGM_RECTANGLE   0x00000002   Use pixel values as defined.
  DWGM_LOCATION   0x00000003   Use relative values as defined.


DFBWindowGeometry

  DFBWindowGeometryMode   mode  
  DFBRectangle   rectangle  
  DFBLocation   location  


DFBWindowCursorFlags

  DWCF_NONE   0x00000000  
  DWCF_RELATIVE   0x00000001  
  DWCF_EXPLICIT   0x00000002  
  DWCF_UNCLIPPED   0x00000004  
  DWCF_TRAPPED   0x00000008  
  DWCF_FIXED   0x00000010  
  DWCF_INVISIBLE   0x00000020  
  DWCF_ALL   0x0000003F  


DWSO_FIXED_LIMIT

0x80 /* Fixed stereo depth value must be between +DWSO_FIXED_LIMIT


DFBTextEncodingCallback

Called for each provided text encoding.

DFBEnumerationResult (*DFBTextEncodingCallback) (
  DFBTextEncodingID   encoding_id  
  const char   * name  
  void   * context  
);


DFBImageCapabilities

Capabilities of an image.

  DICAPS_NONE   0x00000000   None of these.
  DICAPS_ALPHACHANNEL   0x00000001   The image data contains an alphachannel.
  DICAPS_COLORKEY   0x00000002   The image has a colorkey, e.g. the transparent color of a GIF image.


DFBImageDescription

Information about an image including capabilities and values belonging to available capabilities.

  DFBImageCapabilities   caps   capabilities
  u8   colorkey_r   colorkey red channel
  u8   colorkey_g   colorkey green channel
  u8   colorkey_b   colorkey blue channel


DIRenderCallbackResult

  DIRCR_OK    
  DIRCR_ABORT    


DFBStreamCapabilities

Capabilities of an audio/video stream.

  DVSCAPS_NONE   0x00000000   None of these.
  DVSCAPS_VIDEO   0x00000001   Stream contains video.
  DVSCAPS_AUDIO   0x00000002   Stream contains audio.


DFB_STREAM_DESC_ENCODING_LENGTH

30


DFB_STREAM_DESC_TITLE_LENGTH

255


DFB_STREAM_DESC_AUTHOR_LENGTH

255


DFB_STREAM_DESC_ALBUM_LENGTH

255


DFB_STREAM_DESC_GENRE_LENGTH

32


DFB_STREAM_DESC_COMMENT_LENGTH

255


DFBStreamDescription

Informations about an audio/video stream.

  DFBStreamCapabilities   caps   capabilities
  char   encoding[DFB_STREAM_DESC_ENCODING_LENGTH]   encoding (e.g. "AAC")
  double   framerate   number of frames per second
  double   aspect   frame aspect ratio
  int   bitrate   amount of bits per second
  int   afd   Active Format Descriptor
  int   width   Width as reported by Sequence Header
  int   height   Height as reported by Sequence Header
  char   encoding[DFB_STREAM_DESC_ENCODING_LENGTH]   encoding (e.g. "AAC")
  int   samplerate   number of samples per second
  int   channels   number of channels per sample
  int   bitrate   amount of bits per second
  char   title[DFB_STREAM_DESC_TITLE_LENGTH]   title
  char   author[DFB_STREAM_DESC_AUTHOR_LENGTH]   author
  char   album[DFB_STREAM_DESC_ALBUM_LENGTH]   album
  short   year   year
  char   genre[DFB_STREAM_DESC_GENRE_LENGTH]   genre
  char   comment[DFB_STREAM_DESC_COMMENT_LENGTH]   comment


DFBStreamFormat

Type of an audio stream.

  DSF_ES   0x00000000   ES.
  DSF_PES   0x00000001   PES.


DFBStreamAttributes

Stream attributes for an audio/video stream.

  char   encoding[DFB_STREAM_DESC_ENCODING_LENGTH]   encoding (e.g. "AAC")
  DFBStreamFormat   format   format of the audio stream
  char   encoding[DFB_STREAM_DESC_ENCODING_LENGTH]   encoding (e.g. "AAC")
  DFBStreamFormat   format   format of the audio stream


DFBBufferOccupancy

Buffer levels and occupancy for Audio/Video input buffers.

  DFBStreamCapabilities   valid   Which of the Audio / Video sections are valid.
  unsigned int   buffer_size   Size in bytes of the input buffer to audio decoder
  unsigned int   minimum_level   The level at which a DVPET_DATALOW event will be generated.
  unsigned int   maximum_level   The level at which a DVPET_DATAHIGH event will be generated.
  unsigned int   current_level   Current fill level of audio input buffer.
  unsigned int   buffer_size   Size in bytes of the input buffer to audio decoder
  unsigned int   minimum_level   The level at which a DVPET_DATALOW event will be generated.
  unsigned int   maximum_level   The level at which a DVPET_DATAHIGH event will be generated.
  unsigned int   current_level   Current fill level of audio input buffer.


DFBBufferThresholds

Buffer thresholds for Audio and Video.

  DFBStreamCapabilities   selection   Which of the Audio / Video are we setting?
  unsigned int   minimum_level   The level at which a DVPET_DATALOW event will be generated.
  unsigned int   maximum_level   The level at which a DVPET_DATAHIGH event will be generated.
  unsigned int   minimum_time   The level at which a DVPET_BUFFERTIMELOW event will be generated.
  unsigned int   maximum_time   The level at which a DVPET_BUFFERTIMEHIGH event will be generated.
  unsigned int   minimum_level   The level at which a DVPET_DATALOW event will be generated.
  unsigned int   maximum_level   The level at which a DVPET_DATAHIGH event will be generated.
  unsigned int   minimum_time   The level at which a DVPET_BUFFERTIMELOW event will be generated.
  unsigned int   maximum_time   The level at which a DVPET_BUFFERTIMEHIGH event will be generated.


DFBInputDeviceKeyType

DirectFB key types (for advanced mapping)

  DIKT_UNICODE   0x0000   Unicode 3.x character (compatible to Latin-1)
  DIKT_SPECIAL   0xF000   Special key (e.g. Cursor Up or Menu)
  DIKT_FUNCTION   0xF100   Function key (F1 - Fn)
  DIKT_MODIFIER   0xF200   Modifier key
  DIKT_LOCK   0xF300   Lock key (e.g. CapsLock)
  DIKT_DEAD   0xF400   Dead key (e.g. dead grave)
  DIKT_CUSTOM   0xF500   Custom key (vendor specific)
  DIKT_IDENTIFIER   0xF600   DirectFB key identifier


DFB_KEY (type,index)

((DIKT_##type) | (index))


DFB_KEY_TYPE (symbol)

((((symbol) & ~0xFFF) == 0xF000) ? (symbol) & 0xFF00 : DIKT_UNICODE)


DFB_KEY_IS_ASCII (symbol)

((symbol) < 128)


DFB_FUNCTION_KEY (n)

(DFB_KEY( FUNCTION, n ))


DFB_CUSTOM_KEY (n)

(DFB_KEY( CUSTOM, n ))


DFB_LOWER_CASE (symbol)

(((symbol) >= 'A' && (symbol) <= 'Z') ?\


DFB_UPPER_CASE (symbol)

(((symbol) >= 'a' && (symbol) <= 'z') ?\


DFBInputDeviceModifierKeyIdentifier

DirectFB modifier key identifiers (for advanced mapping)

  DIMKI_SHIFT     Shift modifier key
  DIMKI_CONTROL     Control modifier key
  DIMKI_ALT     Alt modifier key
  DIMKI_ALTGR     AltGr modifier key
  DIMKI_META     Meta modifier key
  DIMKI_SUPER     Super modifier key
  DIMKI_HYPER     Hyper modifier key
  DIMKI_FIRST   DIMKI_SHIFT  
  DIMKI_LAST   DIMKI_HYPER  


DFBInputDeviceKeyIdentifier

DirectFB key identifiers (for basic mapping)

  DIKI_UNKNOWN   DFB_KEY( 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_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     TLDE
  DIKI_MINUS_SIGN     AE11
  DIKI_EQUALS_SIGN     AE12
  DIKI_BRACKET_LEFT     AD11
  DIKI_BRACKET_RIGHT     AD12
  DIKI_BACKSLASH     BKSL
  DIKI_SEMICOLON     AC10
  DIKI_QUOTE_RIGHT     AC11
  DIKI_COMMA     AB08
  DIKI_PERIOD     AB09
  DIKI_SLASH     AB10
  DIKI_LESS_SIGN     103rd
  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    


DFBInputDeviceKeySymbol

DirectFB key symbols (for advanced mapping)

  DIKS_NULL   DFB_KEY( UNICODE, 0x00 )  
  DIKS_BACKSPACE   DFB_KEY( UNICODE, 0x08 )  
  DIKS_TAB   DFB_KEY( UNICODE, 0x09 )  
  DIKS_RETURN   DFB_KEY( UNICODE, 0x0D )  
  DIKS_CANCEL   DFB_KEY( UNICODE, 0x18 )  
  DIKS_ESCAPE   DFB_KEY( UNICODE, 0x1B )  
  DIKS_SPACE   DFB_KEY( UNICODE, 0x20 )  
  DIKS_EXCLAMATION_MARK   DFB_KEY( UNICODE, 0x21 )  
  DIKS_QUOTATION   DFB_KEY( UNICODE, 0x22 )  
  DIKS_NUMBER_SIGN   DFB_KEY( UNICODE, 0x23 )  
  DIKS_DOLLAR_SIGN   DFB_KEY( UNICODE, 0x24 )  
  DIKS_PERCENT_SIGN   DFB_KEY( UNICODE, 0x25 )  
  DIKS_AMPERSAND   DFB_KEY( UNICODE, 0x26 )  
  DIKS_APOSTROPHE   DFB_KEY( UNICODE, 0x27 )  
  DIKS_PARENTHESIS_LEFT   DFB_KEY( UNICODE, 0x28 )  
  DIKS_PARENTHESIS_RIGHT   DFB_KEY( UNICODE, 0x29 )  
  DIKS_ASTERISK   DFB_KEY( UNICODE, 0x2A )  
  DIKS_PLUS_SIGN   DFB_KEY( UNICODE, 0x2B )  
  DIKS_COMMA   DFB_KEY( UNICODE, 0x2C )  
  DIKS_MINUS_SIGN   DFB_KEY( UNICODE, 0x2D )  
  DIKS_PERIOD   DFB_KEY( UNICODE, 0x2E )  
  DIKS_SLASH   DFB_KEY( UNICODE, 0x2F )  
  DIKS_0   DFB_KEY( UNICODE, 0x30 )  
  DIKS_1   DFB_KEY( UNICODE, 0x31 )  
  DIKS_2   DFB_KEY( UNICODE, 0x32 )  
  DIKS_3   DFB_KEY( UNICODE, 0x33 )  
  DIKS_4   DFB_KEY( UNICODE, 0x34 )  
  DIKS_5   DFB_KEY( UNICODE, 0x35 )  
  DIKS_6   DFB_KEY( UNICODE, 0x36 )  
  DIKS_7   DFB_KEY( UNICODE, 0x37 )  
  DIKS_8   DFB_KEY( UNICODE, 0x38 )  
  DIKS_9   DFB_KEY( UNICODE, 0x39 )  
  DIKS_COLON   DFB_KEY( UNICODE, 0x3A )  
  DIKS_SEMICOLON   DFB_KEY( UNICODE, 0x3B )  
  DIKS_LESS_THAN_SIGN   DFB_KEY( UNICODE, 0x3C )  
  DIKS_EQUALS_SIGN   DFB_KEY( UNICODE, 0x3D )  
  DIKS_GREATER_THAN_SIGN   DFB_KEY( UNICODE, 0x3E )  
  DIKS_QUESTION_MARK   DFB_KEY( UNICODE, 0x3F )  
  DIKS_AT   DFB_KEY( UNICODE, 0x40 )  
  DIKS_CAPITAL_A   DFB_KEY( UNICODE, 0x41 )  
  DIKS_CAPITAL_B   DFB_KEY( UNICODE, 0x42 )  
  DIKS_CAPITAL_C   DFB_KEY( UNICODE, 0x43 )  
  DIKS_CAPITAL_D   DFB_KEY( UNICODE, 0x44 )  
  DIKS_CAPITAL_E   DFB_KEY( UNICODE, 0x45 )  
  DIKS_CAPITAL_F   DFB_KEY( UNICODE, 0x46 )  
  DIKS_CAPITAL_G   DFB_KEY( UNICODE, 0x47 )  
  DIKS_CAPITAL_H   DFB_KEY( UNICODE, 0x48 )  
  DIKS_CAPITAL_I   DFB_KEY( UNICODE, 0x49 )  
  DIKS_CAPITAL_J   DFB_KEY( UNICODE, 0x4A )  
  DIKS_CAPITAL_K   DFB_KEY( UNICODE, 0x4B )  
  DIKS_CAPITAL_L   DFB_KEY( UNICODE, 0x4C )  
  DIKS_CAPITAL_M   DFB_KEY( UNICODE, 0x4D )  
  DIKS_CAPITAL_N   DFB_KEY( UNICODE, 0x4E )  
  DIKS_CAPITAL_O   DFB_KEY( UNICODE, 0x4F )  
  DIKS_CAPITAL_P   DFB_KEY( UNICODE, 0x50 )  
  DIKS_CAPITAL_Q   DFB_KEY( UNICODE, 0x51 )  
  DIKS_CAPITAL_R   DFB_KEY( UNICODE, 0x52 )  
  DIKS_CAPITAL_S   DFB_KEY( UNICODE, 0x53 )  
  DIKS_CAPITAL_T   DFB_KEY( UNICODE, 0x54 )  
  DIKS_CAPITAL_U   DFB_KEY( UNICODE, 0x55 )  
  DIKS_CAPITAL_V   DFB_KEY( UNICODE, 0x56 )  
  DIKS_CAPITAL_W   DFB_KEY( UNICODE, 0x57 )  
  DIKS_CAPITAL_X   DFB_KEY( UNICODE, 0x58 )  
  DIKS_CAPITAL_Y   DFB_KEY( UNICODE, 0x59 )  
  DIKS_CAPITAL_Z   DFB_KEY( UNICODE, 0x5A )  
  DIKS_SQUARE_BRACKET_LEFT   DFB_KEY( UNICODE, 0x5B )  
  DIKS_BACKSLASH   DFB_KEY( UNICODE, 0x5C )  
  DIKS_SQUARE_BRACKET_RIGHT   DFB_KEY( UNICODE, 0x5D )  
  DIKS_CIRCUMFLEX_ACCENT   DFB_KEY( UNICODE, 0x5E )  
  DIKS_UNDERSCORE   DFB_KEY( UNICODE, 0x5F )  
  DIKS_GRAVE_ACCENT   DFB_KEY( UNICODE, 0x60 )  
  DIKS_SMALL_A   DFB_KEY( UNICODE, 0x61 )  
  DIKS_SMALL_B   DFB_KEY( UNICODE, 0x62 )  
  DIKS_SMALL_C   DFB_KEY( UNICODE, 0x63 )  
  DIKS_SMALL_D   DFB_KEY( UNICODE, 0x64 )  
  DIKS_SMALL_E   DFB_KEY( UNICODE, 0x65 )  
  DIKS_SMALL_F   DFB_KEY( UNICODE, 0x66 )  
  DIKS_SMALL_G   DFB_KEY( UNICODE, 0x67 )  
  DIKS_SMALL_H   DFB_KEY( UNICODE, 0x68 )  
  DIKS_SMALL_I   DFB_KEY( UNICODE, 0x69 )  
  DIKS_SMALL_J   DFB_KEY( UNICODE, 0x6A )  
  DIKS_SMALL_K   DFB_KEY( UNICODE, 0x6B )  
  DIKS_SMALL_L   DFB_KEY( UNICODE, 0x6C )  
  DIKS_SMALL_M   DFB_KEY( UNICODE, 0x6D )  
  DIKS_SMALL_N   DFB_KEY( UNICODE, 0x6E )  
  DIKS_SMALL_O   DFB_KEY( UNICODE, 0x6F )  
  DIKS_SMALL_P   DFB_KEY( UNICODE, 0x70 )  
  DIKS_SMALL_Q   DFB_KEY( UNICODE, 0x71 )  
  DIKS_SMALL_R   DFB_KEY( UNICODE, 0x72 )  
  DIKS_SMALL_S   DFB_KEY( UNICODE, 0x73 )  
  DIKS_SMALL_T   DFB_KEY( UNICODE, 0x74 )  
  DIKS_SMALL_U   DFB_KEY( UNICODE, 0x75 )  
  DIKS_SMALL_V   DFB_KEY( UNICODE, 0x76 )  
  DIKS_SMALL_W   DFB_KEY( UNICODE, 0x77 )  
  DIKS_SMALL_X   DFB_KEY( UNICODE, 0x78 )  
  DIKS_SMALL_Y   DFB_KEY( UNICODE, 0x79 )  
  DIKS_SMALL_Z   DFB_KEY( UNICODE, 0x7A )  
  DIKS_CURLY_BRACKET_LEFT   DFB_KEY( UNICODE, 0x7B )  
  DIKS_VERTICAL_BAR   DFB_KEY( UNICODE, 0x7C )  
  DIKS_CURLY_BRACKET_RIGHT   DFB_KEY( UNICODE, 0x7D )  
  DIKS_TILDE   DFB_KEY( UNICODE, 0x7E )  
  DIKS_DELETE   DFB_KEY( UNICODE, 0x7F )  
  DIKS_ENTER   DIKS_RETURN  
  DIKS_CURSOR_LEFT   DFB_KEY( SPECIAL, 0x00 )  
  DIKS_CURSOR_RIGHT   DFB_KEY( SPECIAL, 0x01 )  
  DIKS_CURSOR_UP   DFB_KEY( SPECIAL, 0x02 )  
  DIKS_CURSOR_DOWN   DFB_KEY( SPECIAL, 0x03 )  
  DIKS_INSERT   DFB_KEY( SPECIAL, 0x04 )  
  DIKS_HOME   DFB_KEY( SPECIAL, 0x05 )  
  DIKS_END   DFB_KEY( SPECIAL, 0x06 )  
  DIKS_PAGE_UP   DFB_KEY( SPECIAL, 0x07 )  
  DIKS_PAGE_DOWN   DFB_KEY( SPECIAL, 0x08 )  
  DIKS_PRINT   DFB_KEY( SPECIAL, 0x09 )  
  DIKS_PAUSE   DFB_KEY( SPECIAL, 0x0A )  
  DIKS_OK   DFB_KEY( SPECIAL, 0x0B )  
  DIKS_SELECT   DFB_KEY( SPECIAL, 0x0C )  
  DIKS_GOTO   DFB_KEY( SPECIAL, 0x0D )  
  DIKS_CLEAR   DFB_KEY( SPECIAL, 0x0E )  
  DIKS_POWER   DFB_KEY( SPECIAL, 0x0F )  
  DIKS_POWER2   DFB_KEY( SPECIAL, 0x10 )  
  DIKS_OPTION   DFB_KEY( SPECIAL, 0x11 )  
  DIKS_MENU   DFB_KEY( SPECIAL, 0x12 )  
  DIKS_HELP   DFB_KEY( SPECIAL, 0x13 )  
  DIKS_INFO   DFB_KEY( SPECIAL, 0x14 )  
  DIKS_TIME   DFB_KEY( SPECIAL, 0x15 )  
  DIKS_VENDOR   DFB_KEY( SPECIAL, 0x16 )  
  DIKS_ARCHIVE   DFB_KEY( SPECIAL, 0x17 )  
  DIKS_PROGRAM   DFB_KEY( SPECIAL, 0x18 )  
  DIKS_CHANNEL   DFB_KEY( SPECIAL, 0x19 )  
  DIKS_FAVORITES   DFB_KEY( SPECIAL, 0x1A )  
  DIKS_EPG   DFB_KEY( SPECIAL, 0x1B )  
  DIKS_PVR   DFB_KEY( SPECIAL, 0x1C )  
  DIKS_MHP   DFB_KEY( SPECIAL, 0x1D )  
  DIKS_LANGUAGE   DFB_KEY( SPECIAL, 0x1E )  
  DIKS_TITLE   DFB_KEY( SPECIAL, 0x1F )  
  DIKS_SUBTITLE   DFB_KEY( SPECIAL, 0x20 )  
  DIKS_ANGLE   DFB_KEY( SPECIAL, 0x21 )  
  DIKS_ZOOM   DFB_KEY( SPECIAL, 0x22 )  
  DIKS_MODE   DFB_KEY( SPECIAL, 0x23 )  
  DIKS_KEYBOARD   DFB_KEY( SPECIAL, 0x24 )  
  DIKS_PC   DFB_KEY( SPECIAL, 0x25 )  
  DIKS_SCREEN   DFB_KEY( SPECIAL, 0x26 )  
  DIKS_TV   DFB_KEY( SPECIAL, 0x27 )  
  DIKS_TV2   DFB_KEY( SPECIAL, 0x28 )  
  DIKS_VCR   DFB_KEY( SPECIAL, 0x29 )  
  DIKS_VCR2   DFB_KEY( SPECIAL, 0x2A )  
  DIKS_SAT   DFB_KEY( SPECIAL, 0x2B )  
  DIKS_SAT2   DFB_KEY( SPECIAL, 0x2C )  
  DIKS_CD   DFB_KEY( SPECIAL, 0x2D )  
  DIKS_TAPE   DFB_KEY( SPECIAL, 0x2E )  
  DIKS_RADIO   DFB_KEY( SPECIAL, 0x2F )  
  DIKS_TUNER   DFB_KEY( SPECIAL, 0x30 )  
  DIKS_PLAYER   DFB_KEY( SPECIAL, 0x31 )  
  DIKS_TEXT   DFB_KEY( SPECIAL, 0x32 )  
  DIKS_DVD   DFB_KEY( SPECIAL, 0x33 )  
  DIKS_AUX   DFB_KEY( SPECIAL, 0x34 )  
  DIKS_MP3   DFB_KEY( SPECIAL, 0x35 )  
  DIKS_PHONE   DFB_KEY( SPECIAL, 0x36 )  
  DIKS_AUDIO   DFB_KEY( SPECIAL, 0x37 )  
  DIKS_VIDEO   DFB_KEY( SPECIAL, 0x38 )  
  DIKS_INTERNET   DFB_KEY( SPECIAL, 0x39 )  
  DIKS_MAIL   DFB_KEY( SPECIAL, 0x3A )  
  DIKS_NEWS   DFB_KEY( SPECIAL, 0x3B )  
  DIKS_DIRECTORY   DFB_KEY( SPECIAL, 0x3C )  
  DIKS_LIST   DFB_KEY( SPECIAL, 0x3D )  
  DIKS_CALCULATOR   DFB_KEY( SPECIAL, 0x3E )  
  DIKS_MEMO   DFB_KEY( SPECIAL, 0x3F )  
  DIKS_CALENDAR   DFB_KEY( SPECIAL, 0x40 )  
  DIKS_EDITOR   DFB_KEY( SPECIAL, 0x41 )  
  DIKS_RED   DFB_KEY( SPECIAL, 0x42 )  
  DIKS_GREEN   DFB_KEY( SPECIAL, 0x43 )  
  DIKS_YELLOW   DFB_KEY( SPECIAL, 0x44 )  
  DIKS_BLUE   DFB_KEY( SPECIAL, 0x45 )  
  DIKS_CHANNEL_UP   DFB_KEY( SPECIAL, 0x46 )  
  DIKS_CHANNEL_DOWN   DFB_KEY( SPECIAL, 0x47 )  
  DIKS_BACK   DFB_KEY( SPECIAL, 0x48 )  
  DIKS_FORWARD   DFB_KEY( SPECIAL, 0x49 )  
  DIKS_FIRST   DFB_KEY( SPECIAL, 0x4A )  
  DIKS_LAST   DFB_KEY( SPECIAL, 0x4B )  
  DIKS_VOLUME_UP   DFB_KEY( SPECIAL, 0x4C )  
  DIKS_VOLUME_DOWN   DFB_KEY( SPECIAL, 0x4D )  
  DIKS_MUTE   DFB_KEY( SPECIAL, 0x4E )  
  DIKS_AB   DFB_KEY( SPECIAL, 0x4F )  
  DIKS_PLAYPAUSE   DFB_KEY( SPECIAL, 0x50 )  
  DIKS_PLAY   DFB_KEY( SPECIAL, 0x51 )  
  DIKS_STOP   DFB_KEY( SPECIAL, 0x52 )  
  DIKS_RESTART   DFB_KEY( SPECIAL, 0x53 )  
  DIKS_SLOW   DFB_KEY( SPECIAL, 0x54 )  
  DIKS_FAST   DFB_KEY( SPECIAL, 0x55 )  
  DIKS_RECORD   DFB_KEY( SPECIAL, 0x56 )  
  DIKS_EJECT   DFB_KEY( SPECIAL, 0x57 )  
  DIKS_SHUFFLE   DFB_KEY( SPECIAL, 0x58 )  
  DIKS_REWIND   DFB_KEY( SPECIAL, 0x59 )  
  DIKS_FASTFORWARD   DFB_KEY( SPECIAL, 0x5A )  
  DIKS_PREVIOUS   DFB_KEY( SPECIAL, 0x5B )  
  DIKS_NEXT   DFB_KEY( SPECIAL, 0x5C )  
  DIKS_BEGIN   DFB_KEY( SPECIAL, 0x5D )  
  DIKS_DIGITS   DFB_KEY( SPECIAL, 0x5E )  
  DIKS_TEEN   DFB_KEY( SPECIAL, 0x5F )  
  DIKS_TWEN   DFB_KEY( SPECIAL, 0x60 )  
  DIKS_BREAK   DFB_KEY( SPECIAL, 0x61 )  
  DIKS_EXIT   DFB_KEY( SPECIAL, 0x62 )  
  DIKS_SETUP   DFB_KEY( SPECIAL, 0x63 )  
  DIKS_CURSOR_LEFT_UP   DFB_KEY( SPECIAL, 0x64 )  
  DIKS_CURSOR_LEFT_DOWN   DFB_KEY( SPECIAL, 0x65 )  
  DIKS_CURSOR_UP_RIGHT   DFB_KEY( SPECIAL, 0x66 )  
  DIKS_CURSOR_DOWN_RIGHT   DFB_KEY( SPECIAL, 0x67 )  
  DIKS_PIP   DFB_KEY( SPECIAL, 0x68 )  
  DIKS_SWAP   DFB_KEY( SPECIAL, 0x69 )  
  DIKS_FREEZE   DFB_KEY( SPECIAL, 0x6A )  
  DIKS_MOVE   DFB_KEY( SPECIAL, 0x6B )  
  DIKS_CALL   DFB_KEY( SPECIAL, 0x6C )  
  DIKS_SPEAKER   DFB_KEY( SPECIAL, 0x6D )  
  DIKS_SAVE   DFB_KEY( SPECIAL, 0x6E )  
  DIKS_REDIAL   DFB_KEY( SPECIAL, 0x6F )  
  DIKS_FLASH   DFB_KEY( SPECIAL, 0x70 )  
  DIKS_HOLD   DFB_KEY( SPECIAL, 0x71 )  
  DIKS_F1   DFB_FUNCTION_KEY( 1 )  
  DIKS_F2   DFB_FUNCTION_KEY( 2 )  
  DIKS_F3   DFB_FUNCTION_KEY( 3 )  
  DIKS_F4   DFB_FUNCTION_KEY( 4 )  
  DIKS_F5   DFB_FUNCTION_KEY( 5 )  
  DIKS_F6   DFB_FUNCTION_KEY( 6 )  
  DIKS_F7   DFB_FUNCTION_KEY( 7 )  
  DIKS_F8   DFB_FUNCTION_KEY( 8 )  
  DIKS_F9   DFB_FUNCTION_KEY( 9 )  
  DIKS_F10   DFB_FUNCTION_KEY( 10 )  
  DIKS_F11   DFB_FUNCTION_KEY( 11 )  
  DIKS_F12   DFB_FUNCTION_KEY( 12 )  
  DIKS_SHIFT   DFB_MODIFIER_KEY( DIMKI_SHIFT )  
  DIKS_CONTROL   DFB_MODIFIER_KEY( DIMKI_CONTROL )  
  DIKS_ALT   DFB_MODIFIER_KEY( DIMKI_ALT )  
  DIKS_ALTGR   DFB_MODIFIER_KEY( DIMKI_ALTGR )  
  DIKS_META   DFB_MODIFIER_KEY( DIMKI_META )  
  DIKS_SUPER   DFB_MODIFIER_KEY( DIMKI_SUPER )  
  DIKS_HYPER   DFB_MODIFIER_KEY( DIMKI_HYPER )  
  DIKS_CAPS_LOCK   DFB_KEY( LOCK, 0x00 )  
  DIKS_NUM_LOCK   DFB_KEY( LOCK, 0x01 )  
  DIKS_SCROLL_LOCK   DFB_KEY( LOCK, 0x02 )  
  DIKS_DEAD_ABOVEDOT   DFB_KEY( DEAD, 0x00 )  
  DIKS_DEAD_ABOVERING   DFB_KEY( DEAD, 0x01 )  
  DIKS_DEAD_ACUTE   DFB_KEY( DEAD, 0x02 )  
  DIKS_DEAD_BREVE   DFB_KEY( DEAD, 0x03 )  
  DIKS_DEAD_CARON   DFB_KEY( DEAD, 0x04 )  
  DIKS_DEAD_CEDILLA   DFB_KEY( DEAD, 0x05 )  
  DIKS_DEAD_CIRCUMFLEX   DFB_KEY( DEAD, 0x06 )  
  DIKS_DEAD_DIAERESIS   DFB_KEY( DEAD, 0x07 )  
  DIKS_DEAD_DOUBLEACUTE   DFB_KEY( DEAD, 0x08 )  
  DIKS_DEAD_GRAVE   DFB_KEY( DEAD, 0x09 )  
  DIKS_DEAD_IOTA   DFB_KEY( DEAD, 0x0A )  
  DIKS_DEAD_MACRON   DFB_KEY( DEAD, 0x0B )  
  DIKS_DEAD_OGONEK   DFB_KEY( DEAD, 0x0C )  
  DIKS_DEAD_SEMIVOICED_SOUND   DFB_KEY( DEAD, 0x0D )  
  DIKS_DEAD_TILDE   DFB_KEY( DEAD, 0x0E )  
  DIKS_DEAD_VOICED_SOUND   DFB_KEY( DEAD, 0x0F )  
  DIKS_CUSTOM0   DFB_CUSTOM_KEY( 0 )  
  DIKS_CUSTOM1   DFB_CUSTOM_KEY( 1 )  
  DIKS_CUSTOM2   DFB_CUSTOM_KEY( 2 )  
  DIKS_CUSTOM3   DFB_CUSTOM_KEY( 3 )  
  DIKS_CUSTOM4   DFB_CUSTOM_KEY( 4 )  
  DIKS_CUSTOM5   DFB_CUSTOM_KEY( 5 )  
  DIKS_CUSTOM6   DFB_CUSTOM_KEY( 6 )  
  DIKS_CUSTOM7   DFB_CUSTOM_KEY( 7 )  
  DIKS_CUSTOM8   DFB_CUSTOM_KEY( 8 )  
  DIKS_CUSTOM9   DFB_CUSTOM_KEY( 9 )  
  DIKS_CUSTOM10   DFB_CUSTOM_KEY( 10 )  
  DIKS_CUSTOM11   DFB_CUSTOM_KEY( 11 )  
  DIKS_CUSTOM12   DFB_CUSTOM_KEY( 12 )  
  DIKS_CUSTOM13   DFB_CUSTOM_KEY( 13 )  
  DIKS_CUSTOM14   DFB_CUSTOM_KEY( 14 )  
  DIKS_CUSTOM15   DFB_CUSTOM_KEY( 15 )  
  DIKS_CUSTOM16   DFB_CUSTOM_KEY( 16 )  
  DIKS_CUSTOM17   DFB_CUSTOM_KEY( 17 )  
  DIKS_CUSTOM18   DFB_CUSTOM_KEY( 18 )  
  DIKS_CUSTOM19   DFB_CUSTOM_KEY( 19 )  
  DIKS_CUSTOM20   DFB_CUSTOM_KEY( 20 )  
  DIKS_CUSTOM21   DFB_CUSTOM_KEY( 21 )  
  DIKS_CUSTOM22   DFB_CUSTOM_KEY( 22 )  
  DIKS_CUSTOM23   DFB_CUSTOM_KEY( 23 )  
  DIKS_CUSTOM24   DFB_CUSTOM_KEY( 24 )  
  DIKS_CUSTOM25   DFB_CUSTOM_KEY( 25 )  
  DIKS_CUSTOM26   DFB_CUSTOM_KEY( 26 )  
  DIKS_CUSTOM27   DFB_CUSTOM_KEY( 27 )  
  DIKS_CUSTOM28   DFB_CUSTOM_KEY( 28 )  
  DIKS_CUSTOM29   DFB_CUSTOM_KEY( 29 )  
  DIKS_CUSTOM30   DFB_CUSTOM_KEY( 30 )  
  DIKS_CUSTOM31   DFB_CUSTOM_KEY( 31 )  
  DIKS_CUSTOM32   DFB_CUSTOM_KEY( 32 )  
  DIKS_CUSTOM33   DFB_CUSTOM_KEY( 33 )  
  DIKS_CUSTOM34   DFB_CUSTOM_KEY( 34 )  
  DIKS_CUSTOM35   DFB_CUSTOM_KEY( 35 )  
  DIKS_CUSTOM36   DFB_CUSTOM_KEY( 36 )  
  DIKS_CUSTOM37   DFB_CUSTOM_KEY( 37 )  
  DIKS_CUSTOM38   DFB_CUSTOM_KEY( 38 )  
  DIKS_CUSTOM39   DFB_CUSTOM_KEY( 39 )  
  DIKS_CUSTOM40   DFB_CUSTOM_KEY( 40 )  
  DIKS_CUSTOM41   DFB_CUSTOM_KEY( 41 )  
  DIKS_CUSTOM42   DFB_CUSTOM_KEY( 42 )  
  DIKS_CUSTOM43   DFB_CUSTOM_KEY( 43 )  
  DIKS_CUSTOM44   DFB_CUSTOM_KEY( 44 )  
  DIKS_CUSTOM45   DFB_CUSTOM_KEY( 45 )  
  DIKS_CUSTOM46   DFB_CUSTOM_KEY( 46 )  
  DIKS_CUSTOM47   DFB_CUSTOM_KEY( 47 )  
  DIKS_CUSTOM48   DFB_CUSTOM_KEY( 48 )  
  DIKS_CUSTOM49   DFB_CUSTOM_KEY( 49 )  
  DIKS_CUSTOM50   DFB_CUSTOM_KEY( 50 )  
  DIKS_CUSTOM51   DFB_CUSTOM_KEY( 51 )  
  DIKS_CUSTOM52   DFB_CUSTOM_KEY( 52 )  
  DIKS_CUSTOM53   DFB_CUSTOM_KEY( 53 )  
  DIKS_CUSTOM54   DFB_CUSTOM_KEY( 54 )  
  DIKS_CUSTOM55   DFB_CUSTOM_KEY( 55 )  
  DIKS_CUSTOM56   DFB_CUSTOM_KEY( 56 )  
  DIKS_CUSTOM57   DFB_CUSTOM_KEY( 57 )  
  DIKS_CUSTOM58   DFB_CUSTOM_KEY( 58 )  
  DIKS_CUSTOM59   DFB_CUSTOM_KEY( 59 )  
  DIKS_CUSTOM60   DFB_CUSTOM_KEY( 60 )  
  DIKS_CUSTOM61   DFB_CUSTOM_KEY( 61 )  
  DIKS_CUSTOM62   DFB_CUSTOM_KEY( 62 )  
  DIKS_CUSTOM63   DFB_CUSTOM_KEY( 63 )  
  DIKS_CUSTOM64   DFB_CUSTOM_KEY( 64 )  
  DIKS_CUSTOM65   DFB_CUSTOM_KEY( 65 )  
  DIKS_CUSTOM66   DFB_CUSTOM_KEY( 66 )  
  DIKS_CUSTOM67   DFB_CUSTOM_KEY( 67 )  
  DIKS_CUSTOM68   DFB_CUSTOM_KEY( 68 )  
  DIKS_CUSTOM69   DFB_CUSTOM_KEY( 69 )  
  DIKS_CUSTOM70   DFB_CUSTOM_KEY( 70 )  
  DIKS_CUSTOM71   DFB_CUSTOM_KEY( 71 )  
  DIKS_CUSTOM72   DFB_CUSTOM_KEY( 72 )  
  DIKS_CUSTOM73   DFB_CUSTOM_KEY( 73 )  
  DIKS_CUSTOM74   DFB_CUSTOM_KEY( 74 )  
  DIKS_CUSTOM75   DFB_CUSTOM_KEY( 75 )  
  DIKS_CUSTOM76   DFB_CUSTOM_KEY( 76 )  
  DIKS_CUSTOM77   DFB_CUSTOM_KEY( 77 )  
  DIKS_CUSTOM78   DFB_CUSTOM_KEY( 78 )  
  DIKS_CUSTOM79   DFB_CUSTOM_KEY( 79 )  
  DIKS_CUSTOM80   DFB_CUSTOM_KEY( 80 )  
  DIKS_CUSTOM81   DFB_CUSTOM_KEY( 81 )  
  DIKS_CUSTOM82   DFB_CUSTOM_KEY( 82 )  
  DIKS_CUSTOM83   DFB_CUSTOM_KEY( 83 )  
  DIKS_CUSTOM84   DFB_CUSTOM_KEY( 84 )  
  DIKS_CUSTOM85   DFB_CUSTOM_KEY( 85 )  
  DIKS_CUSTOM86   DFB_CUSTOM_KEY( 86 )  
  DIKS_CUSTOM87   DFB_CUSTOM_KEY( 87 )  
  DIKS_CUSTOM88   DFB_CUSTOM_KEY( 88 )  
  DIKS_CUSTOM89   DFB_CUSTOM_KEY( 89 )  
  DIKS_CUSTOM90   DFB_CUSTOM_KEY( 90 )  
  DIKS_CUSTOM91   DFB_CUSTOM_KEY( 91 )  
  DIKS_CUSTOM92   DFB_CUSTOM_KEY( 92 )  
  DIKS_CUSTOM93   DFB_CUSTOM_KEY( 93 )  
  DIKS_CUSTOM94   DFB_CUSTOM_KEY( 94 )  
  DIKS_CUSTOM95   DFB_CUSTOM_KEY( 95 )  
  DIKS_CUSTOM96   DFB_CUSTOM_KEY( 96 )  
  DIKS_CUSTOM97   DFB_CUSTOM_KEY( 97 )  
  DIKS_CUSTOM98   DFB_CUSTOM_KEY( 98 )  
  DIKS_CUSTOM99   DFB_CUSTOM_KEY( 99 )  
  DIKS_CUSTOM100   DFB_CUSTOM_KEY( 100 )  
  DIKS_CUSTOM101   DFB_CUSTOM_KEY( 101 )  
  DIKS_CUSTOM102   DFB_CUSTOM_KEY( 102 )  
  DIKS_CUSTOM103   DFB_CUSTOM_KEY( 103 )  
  DIKS_CUSTOM104   DFB_CUSTOM_KEY( 104 )  
  DIKS_CUSTOM105   DFB_CUSTOM_KEY( 105 )  
  DIKS_CUSTOM106   DFB_CUSTOM_KEY( 106 )  
  DIKS_CUSTOM107   DFB_CUSTOM_KEY( 107 )  
  DIKS_CUSTOM108   DFB_CUSTOM_KEY( 108 )  
  DIKS_CUSTOM109   DFB_CUSTOM_KEY( 109 )  
  DIKS_CUSTOM110   DFB_CUSTOM_KEY( 110 )  
  DIKS_CUSTOM111   DFB_CUSTOM_KEY( 111 )  
  DIKS_CUSTOM112   DFB_CUSTOM_KEY( 112 )  
  DIKS_CUSTOM113   DFB_CUSTOM_KEY( 113 )  
  DIKS_CUSTOM114   DFB_CUSTOM_KEY( 114 )  
  DIKS_CUSTOM115   DFB_CUSTOM_KEY( 115 )  
  DIKS_CUSTOM116   DFB_CUSTOM_KEY( 116 )  
  DIKS_CUSTOM117   DFB_CUSTOM_KEY( 117 )  
  DIKS_CUSTOM118   DFB_CUSTOM_KEY( 118 )  
  DIKS_CUSTOM119   DFB_CUSTOM_KEY( 119 )  
  DIKS_CUSTOM120   DFB_CUSTOM_KEY( 120 )  
  DIKS_CUSTOM121   DFB_CUSTOM_KEY( 121 )  
  DIKS_CUSTOM122   DFB_CUSTOM_KEY( 122 )  
  DIKS_CUSTOM123   DFB_CUSTOM_KEY( 123 )  
  DIKS_CUSTOM124   DFB_CUSTOM_KEY( 124 )  
  DIKS_CUSTOM125   DFB_CUSTOM_KEY( 125 )  
  DIKS_CUSTOM126   DFB_CUSTOM_KEY( 126 )  
  DIKS_CUSTOM127   DFB_CUSTOM_KEY( 127 )  
  DIKS_CUSTOM128   DFB_CUSTOM_KEY( 128 )  
  DIKS_CUSTOM129   DFB_CUSTOM_KEY( 129 )  
  DIKS_CUSTOM130   DFB_CUSTOM_KEY( 130 )  
  DIKS_CUSTOM131   DFB_CUSTOM_KEY( 131 )  
  DIKS_CUSTOM132   DFB_CUSTOM_KEY( 132 )  
  DIKS_CUSTOM133   DFB_CUSTOM_KEY( 133 )  
  DIKS_CUSTOM134   DFB_CUSTOM_KEY( 134 )  
  DIKS_CUSTOM135   DFB_CUSTOM_KEY( 135 )  
  DIKS_CUSTOM136   DFB_CUSTOM_KEY( 136 )  
  DIKS_CUSTOM137   DFB_CUSTOM_KEY( 137 )  
  DIKS_CUSTOM138   DFB_CUSTOM_KEY( 138 )  
  DIKS_CUSTOM139   DFB_CUSTOM_KEY( 139 )  
  DIKS_CUSTOM140   DFB_CUSTOM_KEY( 140 )  
  DIKS_CUSTOM141   DFB_CUSTOM_KEY( 141 )  
  DIKS_CUSTOM142   DFB_CUSTOM_KEY( 142 )  
  DIKS_CUSTOM143   DFB_CUSTOM_KEY( 143 )  
  DIKS_CUSTOM144   DFB_CUSTOM_KEY( 144 )  
  DIKS_CUSTOM145   DFB_CUSTOM_KEY( 145 )  
  DIKS_CUSTOM146   DFB_CUSTOM_KEY( 146 )  
  DIKS_CUSTOM147   DFB_CUSTOM_KEY( 147 )  
  DIKS_CUSTOM148   DFB_CUSTOM_KEY( 148 )  
  DIKS_CUSTOM149   DFB_CUSTOM_KEY( 149 )  
  DIKS_CUSTOM150   DFB_CUSTOM_KEY( 150 )  
  DIKS_CUSTOM151   DFB_CUSTOM_KEY( 151 )  
  DIKS_CUSTOM152   DFB_CUSTOM_KEY( 152 )  
  DIKS_CUSTOM153   DFB_CUSTOM_KEY( 153 )  
  DIKS_CUSTOM154   DFB_CUSTOM_KEY( 154 )  
  DIKS_CUSTOM155   DFB_CUSTOM_KEY( 155 )  
  DIKS_CUSTOM156   DFB_CUSTOM_KEY( 156 )  
  DIKS_CUSTOM157   DFB_CUSTOM_KEY( 157 )  
  DIKS_CUSTOM158   DFB_CUSTOM_KEY( 158 )  
  DIKS_CUSTOM159   DFB_CUSTOM_KEY( 159 )  
  DIKS_CUSTOM160   DFB_CUSTOM_KEY( 160 )  
  DIKS_CUSTOM161   DFB_CUSTOM_KEY( 161 )  
  DIKS_CUSTOM162   DFB_CUSTOM_KEY( 162 )  
  DIKS_CUSTOM163   DFB_CUSTOM_KEY( 163 )  
  DIKS_CUSTOM164   DFB_CUSTOM_KEY( 164 )  
  DIKS_CUSTOM165   DFB_CUSTOM_KEY( 165 )  
  DIKS_CUSTOM166   DFB_CUSTOM_KEY( 166 )  
  DIKS_CUSTOM167   DFB_CUSTOM_KEY( 167 )  
  DIKS_CUSTOM168   DFB_CUSTOM_KEY( 168 )  
  DIKS_CUSTOM169   DFB_CUSTOM_KEY( 169 )  
  DIKS_CUSTOM170   DFB_CUSTOM_KEY( 170 )  
  DIKS_CUSTOM171   DFB_CUSTOM_KEY( 171 )  
  DIKS_CUSTOM172   DFB_CUSTOM_KEY( 172 )  
  DIKS_CUSTOM173   DFB_CUSTOM_KEY( 173 )  
  DIKS_CUSTOM174   DFB_CUSTOM_KEY( 174 )  
  DIKS_CUSTOM175   DFB_CUSTOM_KEY( 175 )  
  DIKS_CUSTOM176   DFB_CUSTOM_KEY( 176 )  
  DIKS_CUSTOM177   DFB_CUSTOM_KEY( 177 )  
  DIKS_CUSTOM178   DFB_CUSTOM_KEY( 178 )  
  DIKS_CUSTOM179   DFB_CUSTOM_KEY( 179 )  
  DIKS_CUSTOM180   DFB_CUSTOM_KEY( 180 )  
  DIKS_CUSTOM181   DFB_CUSTOM_KEY( 181 )  
  DIKS_CUSTOM182   DFB_CUSTOM_KEY( 182 )  
  DIKS_CUSTOM183   DFB_CUSTOM_KEY( 183 )  
  DIKS_CUSTOM184   DFB_CUSTOM_KEY( 184 )  
  DIKS_CUSTOM185   DFB_CUSTOM_KEY( 185 )  
  DIKS_CUSTOM186   DFB_CUSTOM_KEY( 186 )  
  DIKS_CUSTOM187   DFB_CUSTOM_KEY( 187 )  
  DIKS_CUSTOM188   DFB_CUSTOM_KEY( 188 )  
  DIKS_CUSTOM189   DFB_CUSTOM_KEY( 189 )  
  DIKS_CUSTOM190   DFB_CUSTOM_KEY( 190 )  
  DIKS_CUSTOM191   DFB_CUSTOM_KEY( 191 )  
  DIKS_CUSTOM192   DFB_CUSTOM_KEY( 192 )  
  DIKS_CUSTOM193   DFB_CUSTOM_KEY( 193 )  
  DIKS_CUSTOM194   DFB_CUSTOM_KEY( 194 )  
  DIKS_CUSTOM195   DFB_CUSTOM_KEY( 195 )  
  DIKS_CUSTOM196   DFB_CUSTOM_KEY( 196 )  
  DIKS_CUSTOM197   DFB_CUSTOM_KEY( 197 )  
  DIKS_CUSTOM198   DFB_CUSTOM_KEY( 198 )  
  DIKS_CUSTOM199   DFB_CUSTOM_KEY( 199 )  
  DIKS_CUSTOM200   DFB_CUSTOM_KEY( 200 )  
  DIKS_CUSTOM201   DFB_CUSTOM_KEY( 201 )  
  DIKS_CUSTOM202   DFB_CUSTOM_KEY( 202 )  
  DIKS_CUSTOM203   DFB_CUSTOM_KEY( 203 )  
  DIKS_CUSTOM204   DFB_CUSTOM_KEY( 204 )  
  DIKS_CUSTOM205   DFB_CUSTOM_KEY( 205 )  
  DIKS_CUSTOM206   DFB_CUSTOM_KEY( 206 )  
  DIKS_CUSTOM207   DFB_CUSTOM_KEY( 207 )  
  DIKS_CUSTOM208   DFB_CUSTOM_KEY( 208 )  
  DIKS_CUSTOM209   DFB_CUSTOM_KEY( 209 )  
  DIKS_CUSTOM210   DFB_CUSTOM_KEY( 210 )  
  DIKS_CUSTOM211   DFB_CUSTOM_KEY( 211 )  
  DIKS_CUSTOM212   DFB_CUSTOM_KEY( 212 )  
  DIKS_CUSTOM213   DFB_CUSTOM_KEY( 213 )  
  DIKS_CUSTOM214   DFB_CUSTOM_KEY( 214 )  
  DIKS_CUSTOM215   DFB_CUSTOM_KEY( 215 )  
  DIKS_CUSTOM216   DFB_CUSTOM_KEY( 216 )  
  DIKS_CUSTOM217   DFB_CUSTOM_KEY( 217 )  
  DIKS_CUSTOM218   DFB_CUSTOM_KEY( 218 )  
  DIKS_CUSTOM219   DFB_CUSTOM_KEY( 219 )  
  DIKS_CUSTOM220   DFB_CUSTOM_KEY( 220 )  
  DIKS_CUSTOM221   DFB_CUSTOM_KEY( 221 )  
  DIKS_CUSTOM222   DFB_CUSTOM_KEY( 222 )  
  DIKS_CUSTOM223   DFB_CUSTOM_KEY( 223 )  
  DIKS_CUSTOM224   DFB_CUSTOM_KEY( 224 )  
  DIKS_CUSTOM225   DFB_CUSTOM_KEY( 225 )  
  DIKS_CUSTOM226   DFB_CUSTOM_KEY( 226 )  
  DIKS_CUSTOM227   DFB_CUSTOM_KEY( 227 )  
  DIKS_CUSTOM228   DFB_CUSTOM_KEY( 228 )  
  DIKS_CUSTOM229   DFB_CUSTOM_KEY( 229 )  
  DIKS_CUSTOM230   DFB_CUSTOM_KEY( 230 )  
  DIKS_CUSTOM231   DFB_CUSTOM_KEY( 231 )  
  DIKS_CUSTOM232   DFB_CUSTOM_KEY( 232 )  
  DIKS_CUSTOM233   DFB_CUSTOM_KEY( 233 )  
  DIKS_CUSTOM234   DFB_CUSTOM_KEY( 234 )  
  DIKS_CUSTOM235   DFB_CUSTOM_KEY( 235 )  
  DIKS_CUSTOM236   DFB_CUSTOM_KEY( 236 )  
  DIKS_CUSTOM237   DFB_CUSTOM_KEY( 237 )  
  DIKS_CUSTOM238   DFB_CUSTOM_KEY( 238 )  
  DIKS_CUSTOM239   DFB_CUSTOM_KEY( 239 )  
  DIKS_CUSTOM240   DFB_CUSTOM_KEY( 240 )  
  DIKS_CUSTOM241   DFB_CUSTOM_KEY( 241 )  
  DIKS_CUSTOM242   DFB_CUSTOM_KEY( 242 )  
  DIKS_CUSTOM243   DFB_CUSTOM_KEY( 243 )  
  DIKS_CUSTOM244   DFB_CUSTOM_KEY( 244 )  
  DIKS_CUSTOM245   DFB_CUSTOM_KEY( 245 )  
  DIKS_CUSTOM246   DFB_CUSTOM_KEY( 246 )  
  DIKS_CUSTOM247   DFB_CUSTOM_KEY( 247 )  
  DIKS_CUSTOM248   DFB_CUSTOM_KEY( 248 )  
  DIKS_CUSTOM249   DFB_CUSTOM_KEY( 249 )  
  DIKS_CUSTOM250   DFB_CUSTOM_KEY( 250 )  
  DIKS_CUSTOM251   DFB_CUSTOM_KEY( 251 )  
  DIKS_CUSTOM252   DFB_CUSTOM_KEY( 252 )  
  DIKS_CUSTOM253   DFB_CUSTOM_KEY( 253 )  
  DIKS_CUSTOM254   DFB_CUSTOM_KEY( 254 )  
  DIKS_CUSTOM255   DFB_CUSTOM_KEY( 255 )  


DFBInputDeviceLockState

Flags specifying the key locks that are currently active.

  DILS_SCROLL   0x00000001   scroll-lock active?
  DILS_NUM   0x00000002   num-lock active?
  DILS_CAPS   0x00000004   caps-lock active?


DFBInputDeviceKeymapSymbolIndex

Groups and levels as an index to the symbol array.

  DIKSI_BASE   0x00   base group, base level (no modifier pressed)
  DIKSI_BASE_SHIFT   0x01   base group, shifted level (with Shift pressed)
  DIKSI_ALT   0x02   alternative group, base level (with AltGr pressed)
  DIKSI_ALT_SHIFT   0x03   alternative group, shifted level (with AltGr and Shift pressed)
  DIKSI_LAST   DIKSI_ALT_SHIFT  


DFBInputDeviceKeymapEntry

One entry in the keymap of an input device.

  int   code   hardware key code
  DFBInputDeviceLockState   locks   locks activating shifted level
  DFBInputDeviceKeyIdentifier   identifier   basic mapping
  DFBInputDeviceKeySymbol   symbols[DIKSI_LAST+1]   advanced key mapping


DIRECTFBGL_INTERFACE_VERSION

The DirectFBGL interface version.

1


DFBGLAttributes

Attributes of an OpenGL context.

  int   buffer_size  
  int   depth_size  
  int   stencil_size  
  int   aux_buffers  
  int   red_size  
  int   green_size  
  int   blue_size  
  int   alpha_size  
  int   accum_red_size  
  int   accum_green_size  
  int   accum_blue_size  
  int   accum_alpha_size  
  DFBBoolean   double_buffer  
  DFBBoolean   stereo  


DIRECTFBGL2_INTERFACE_VERSION

The DirectFBGL2 interface version.

1


DFBGL2ContextDescriptionFlags

Flags for a context description

  DGL2CDF_NONE   0x00000000  
  DGL2CDF_CAPS   0x00000001  
  DGL2CDF_DEPTH_BITS   0x00000002  
  DGL2CDF_ALL   0x00000003  


DFBGL2ContextCapabilities

Capabilities of a context

  DGL2CC_NONE   0x00000000  
  DGL2CC_STEREO   0x00000001  
  DGL2CC_ALL   0x00000001  


DFBGL2ContextDescription

Description of an OpenGL context

  DFBGL2ContextDescriptionFlags   flags  
  DFBGL2ContextCapabilities   caps  
  int   depth_bits  


IWATER_INTERFACE_VERSION

The IWater interface version

1


WaterScalar

A single integer, fixed or floating point value (union)

  int   i   Ordinary or fixed point integer value
  float   f   Floating point value

See also WaterScalarType


WaterScalarType

Type of scalar [4]

  WST_UNKNOWN   0x0   Unknown/invalid scalar type
  WST_INTEGER   0x1   Ordinary (pure) integer value (32 bit)
  WST_FIXED_16_16   0x2   Fixed point with 16 sign+integral and 16 fractional bits
  WST_FIXED_24_8   0x3   Fixed point with 24 sign+integral and 8 fractional bits
  WST_FLOAT   0x4   Single precision floating point value (32 bit)

See also WaterScalar


WATER_SCALAR_TYPE_IS_INT (type)

Macro determines if scalar is an ordinary (pure) integer or fixed point integer

((type) >= 0x1 && (type) <= 0x3)


WATER_SCALAR_TYPE_IS_FLOAT (type)

Macro determines if scalar is a single precision float

((type) == WST_FLOAT)


WaterOperator

The way values are applied [4]

  WOP_SET   0x0   Set the value
  WOP_ADD   0x1   Add the value
  WOP_SUB   0x2   Subtract the value
  WOP_MUL   0x3   Multiply with the value
  WOP_DIV   0x4   Divide by the value


WaterTransformFlags

Flags choosing predefined or free transformation and other things [8]

  WTF_NONE   0x00   None of these
  WTF_TYPE   0x01   The type of the matrix has been set or determined
  WTF_MATRIX   0x02   The matrix is filled with all 3x3 values
  WTF_REPLACE   0x10   Replace previous transform completely, otherwise append to it
  WTF_ALL   0x13   All of these


WaterTransformType

Common types of transformations [16]

  WTT_IDENTITY   0x0000   No specific type, arbitrary transform
  WTT_UNKNOWN   0x0001  
  WTT_ZERO   0x0002  
  WTT_TRANSLATE_X   0x0004  
  WTT_TRANSLATE_Y   0x0008  
  WTT_TRANSLATE_MASK   0x000C  
  WTT_SCALE_X   0x0010  
  WTT_SCALE_Y   0x0020  
  WTT_SCALE_MASK   0x0030  
  WTT_FLIP_X   0x0040  
  WTT_FLIP_Y   0x0080  
  WTT_FLIP_MASK   0x00C0  
  WTT_SKEW_X   0x0100  
  WTT_SKEW_Y   0x0200  
  WTT_SKEW_MASK   0x0300  
  WTT_ROTATE_Q_90   0x1000  
  WTT_ROTATE_Q_180   0x2000  
  WTT_ROTATE_Q_270   0x4000  
  WTT_ROTATE_Q_MASK   0x7000  
  WTT_ROTATE_FREE   0x8000  
  WTT_ROTATE_MASK   0xF000  
  WTT_ALL   0xF3FF  


WaterTransform

Transform

  WaterTransformFlags   flags : 8   Transformation flags
  WaterScalarType   scalar : 4   Set scalar type for matrix entries
  unsigned int   _rsrv1 : 4   reserved bits
  WaterTransformType   type : 16   Predefined type of transformation (using none, one or two values in matrix)
  WaterScalar   matrix[9]   All nine entries of the 3x3 matrix from left to right, top to bottom


WaterRenderMode

Options generally applying to rendering or the destination [16]

  WRM_NONE   0x0000   None of these
  WRM_ANTIALIAS   0x0001   Use anti-aliasing
  WRM_COLORKEY   0x0002   Only write to pixels having a specific value
  WRM_KEYPROTECT   0x0004   Ensure that a certain pixel value is not written, e.g. by toggling the LSB when the protected value is to be written
  WRM_ALL   0x0007   All of these


WaterPaintOptions

Options regarding the source of drawing/filling operations [16]

  WPO_NONE   0x0000   None of these
  WPO_COLOR   0x0001   Use solid color, modulating RGB of pattern if used in conjunction
  WPO_GRADIENT   0x0002   Use color gradient, modulating RGB of pattern if used in conjunction
  WPO_PATTERN   0x0004   Use source pattern, surface containing ARGB values
  WPO_MASK   0x0008   Use source mask, surface containing A(RGB) values
  WPO_ALPHA   0x0010   Use alpha factor, modulating alpha of color|gradient|pattern|mask
  WPO_BLEND   0x0020   Use alpha blending, applying source/destination blend functions
  WPO_PREMULTIPLY   0x0040   Premultiply alpha values, modulating RGB when reading the pattern data
  WPO_COLORKEY   0x0080   Skip pixels having a specific value, not writing the pixel at all
  WPO_TILE_PATTERN   0x0100   Use tiling mode for pattern data, see WaterTileMode
  WPO_TILE_MASK   0x0200   Use tiling mode for mask data, see WaterTileMode
  WPO_ALL   0x03FF   All of these


WaterTileMode

Tiling mode for patterns and masks [4]

  WTM_NONE   0x0   Single tile, output bound by pattern/mask limits
  WTM_SCALE   0x1   Single tile, but scaled to cover all of the destination.
  WTM_COLOR   0x2   Single tile, but the area that is not covered is filled with a color, see also WaterAttributeType::WAT_DRAW_TILECOLOR, WaterAttributeType::WAT_FILL_TILECOLOR.
  WTM_REPEAT   0x3   Tiles are simply repeated
  WTM_FLIP_X   0x4   Tiles are repeated, but flipped horizontally each column
  WTM_FLIP_Y   0x5   Tiles are repeated, but flipped vertically each row
  WTM_FLIP_XY   0x6   Tiles are flipped horizontally/vertically each column/row

To apply any of these tile modes, WPO_TILE_PATTERN and/or WPO_TILE_MASK must be set. Otherwise the output will be bound by pattern/mask limits.

See also WaterPaintOptions::WPO_TILE_PATTERN and WaterPaintOptions::WPO_TILE_MASK


WaterQualityLevel

Quality levels [4]

  WQL_FAIR   0x0   Performance should be OK, quality still acceptable (use best possible and fast)
  WQL_FAST   0x1   Performance should be best, quality is secondary (use best possible at fastest)
  WQL_BEST   0x2   Quality should be best, no matter what performance will
  WQL_OFF   0x3   Disable setting, always using worst quality


WaterBlendMode

Blend modes [8]

  WBM_SRC   0x00   The source is copied to the destination. The destination is not used as input.
  WBM_DST   0x01   The destination is left untouched.
  WBM_SRCOVER   0x02   The source is composited over the destination.
  WBM_DSTOVER   0x03   The destination is composited over the source and the result replaces the destination.
  WBM_SRCIN   0x04   The part of the source lying inside of the destination replaces the destination.
  WBM_DSTIN   0x05   The part of the destination lying inside of the source replaces the destination.
  WBM_SRCOUT   0x06   The part of the source lying outside of the destination replaces the destination.
  WBM_DSTOUT   0x07   The part of the destination lying outside of the source replaces the destination.
  WBM_SRCATOP   0x08   The part of the source lying inside of the destination is composited onto the destination.
  WBM_DSTATOP   0x09   The part of the destination lying inside of the source is composited over the source and replaces the destination.
  WBM_CLEAR   0x0A   Both the color and the alpha of the destination are cleared.
  WBM_XOR   0x0B   The part of the source that lies outside of the destination is combined with the part of the destination that lies outside of the source.
  WBM_ADD   0x0C   The source is added to the destination and replaces the destination.
  WBM_SATURATE   0x0D   The source is added to the destination with saturation and replaces the destination.
  WBM_MULTIPLY   0x0E   The source is multiplied by the destination and replaces the destination.
  WBM_SCREEN   0x0F   The source and destination are complemented and then multiplied and then replace the destination.
  WBM_OVERLAY   0x10   Multiplies or screens the colors, dependent on the destination color.
  WBM_DARKEN   0x11   Selects the darker of the destination and source colors.
  WBM_LIGHTEN   0x12   Selects the lighter of the destination and source colors.
  WBM_COLORDODGE   0x13   Brightens the destination color to reflect the source color.
  WBM_COLORBURN   0x14   Darkens the destination color to reflect the source color.
  WBM_HARDLIGHT   0x15   Multiplies or screens the colors, dependent on the source color value.
  WBM_SOFTLIGHT   0x16   Darkens or lightens the colors, dependent on the source color value.
  WBM_DIFFERENCE   0x17   Subtracts the darker of the two constituent colors from the lighter.
  WBM_EXCLUSION   0x18   Produces an effect similar to that of 'difference', but appears as lower contrast.
  WBM_HSL_HUE   0x19  
  WBM_HSL_SATURATION   0x1A  
  WBM_HSL_COLOR   0x1B  
  WBM_HSL_LUMINOSITY   0x1C  


WaterFillRule

Fill rules [4]

  WFR_NONZERO   0x0   This rule determines the "insideness" of a point on the canvas by drawing a ray from that point to infinity in any direction and then examining the places where a segment of the shape crosses the ray.
  WFR_EVENODD   0x1   This rule determines the "insideness" of a point on the canvas by drawing a ray from that point to infinity in any direction and counting the number of path segments from the given shape that the ray crosses.


WaterLineCapStyle

Style of line end points [4]

  WLCS_BUTT   0x0   Cut the line perpendicular where the cut hits the end points
  WLCS_ROUND   0x1   WLCS_BUTT with half a circle being appended (radius is half of line width)
  WLCS_SQUARE   0x2   WLCS_BUTT cut off/after end point (longer by half of line width)

See also WaterAttributeType::WAT_LINE_STYLE and WaterAttributeType::WAT_LINE_CAP_STYLE


WaterLineJoinStyle

Style of line junctions [4]

  WLJS_MITER   0x0   Draw miter (sharp edge), see also WaterAttributeType::WAT_LINE_MITER_LIMIT and WaterAttributeType::WAT_LINE_STYLE
  WLJS_ROUND   0x1   Round corners with a circle around the junction point (half line width radius)
  WLJS_BEVEL   0x2   Cut off corner at half of the line width further than the junction point

See also WaterAttributeType::WAT_LINE_STYLE and WaterAttributeType::WAT_LINE_JOIN_STYLE


WaterColor

A simple color definition

  u8   a   Alpha channel value (0-255)
  u8   r   Red channel value (0-255)
  u8   g   Green channel value (0-255)
  u8   b   Blue channel value (0-255)

See also WaterAttributeType::WAT_DRAW_COLOR and WaterAttributeType::WAT_FILL_COLOR

API FIXME: Add more color definitions using better precision, example below.


WaterColor

  WaterScalarType   scalar  
  WaterScalar   a  
  WaterScalar   r  
  WaterScalar   g  
  WaterScalar   b  
  WaterScalar   a  
  WaterScalar   y  
  WaterScalar   u  
  WaterScalar   v  


WaterAttributeType

Attributes include all settings of a rendering context [8]

  WAT_UNKNOWN   0x00   Unknown/invalid attribute
  WAT_RENDER_MODE   0x01   Select anti-aliasing etc. see WaterRenderMode
  WAT_RENDER_OFFSET   0x02   Set/add an offset to apply, being independent from any transformation
  WAT_RENDER_CLIP   0x03   Set/add a clipping region, allowing 0-n rectangles being specified, using multiple passes if more rectangles are defined than hardware supports
  WAT_RENDER_TRANSFORM   0x04   Modify transformation of coordinates, see WaterTransform
  WAT_RENDER_QUALITY_AA   0x05   Select quality level for anti-aliased edges, see WaterQualityLevel
  WAT_RENDER_QUALITY_SCALE   0x06   Select quality level for scaling pattern/mask data, see WaterQualityLevel
  WAT_RENDER_QUALITY_DITHER   0x07   Select quality level for low accuracy pixel formats, see WaterQualityLevel
  WAT_DRAW_OPTIONS   0x10   Draw color, gradient, pattern, mask etc. see WaterPaintOptions
  WAT_DRAW_COLOR   0x11   Color for drawing, overridden by element colors (per group), see WaterColor
  WAT_DRAW_GRADIENT   0x12   Gradient for drawing, see WaterGradient
  WAT_DRAW_PATTERN   0x13   Select pattern surface for drawing
  WAT_DRAW_PATTERN_TILEMODE   0x14   Tiling mode for drawing with WaterPaintOptions::WPO_TILE_PATTERN
  WAT_DRAW_PATTERN_TILECOLOR   0x15   Border color for drawing with WaterPaintOptions::WPO_TILE_PATTERN and WaterTileMode::WTM_COLOR, see WaterColor
  WAT_DRAW_MASK   0x16   Select mask surface for drawing
  WAT_DRAW_MASK_TILEMODE   0x17   Tiling mode for drawing with WaterPaintOptions::WPO_TILE_MASK
  WAT_DRAW_MASK_TILECOLOR   0x18   Border color for drawing with WaterPaintOptions::WPO_TILE_MASK and WaterTileMode::WTM_COLOR, see WaterColor
  WAT_DRAW_ALPHA   0x19   Change alpha factor for drawing, see WaterScalar
  WAT_DRAW_BLEND   0x1A   Select a predefined set of blend functions for drawing, see WaterBlendMode
  WAT_DRAW_TRANSFORM   0x1B   Set the transformation from the source, see WaterTransform
  WAT_DRAW_COLORKEY   0x1C   Colorkey for drawing, see WaterColor
  WAT_FILL_OPTIONS   0x20   Fill color, gradient, pattern, mask etc. see WaterPaintOptions
  WAT_FILL_COLOR   0x21   Color for filling, overridden by element colors (per group), see WaterColor
  WAT_FILL_GRADIENT   0x22   Gradient for filling, see WaterGradient
  WAT_FILL_RULE   0x23   Choose the fill rule, see WaterFillRule and WaterShapeFlags
  WAT_FILL_PATTERN   0x24   Select pattern surface for filling, see WaterPattern
  WAT_FILL_PATTERN_TILEMODE   0x25   Tiling mode for filling with WaterPaintOptions::WPO_TILE_PATTERN
  WAT_FILL_PATTERN_TILECOLOR   0x26   Border color for filling with WaterPaintOptions::WPO_TILE_PATTERN and WaterTileMode::WTM_COLOR, see WaterColor
  WAT_FILL_MASK   0x27   Select mask surface for filling
  WAT_FILL_MASK_TILEMODE   0x28   Tiling mode for filling with WaterPaintOptions::WPO_TILE_MASK
  WAT_FILL_MASK_TILECOLOR   0x29   Border color for filling with WaterPaintOptions::WPO_TILE_MASK and WaterTileMode::WTM_COLOR, see WaterColor
  WAT_FILL_ALPHA   0x2A   Change alpha factor for filling, see WaterScalar
  WAT_FILL_BLEND   0x2B   Select a predefined set of blend functions for filling, see WaterBlendMode
  WAT_FILL_TRANSFORM   0x2C   Set the transformation from the source, see WaterTransform
  WAT_FILL_COLORKEY   0x2D   Colorkey for filling, see WaterColor
  WAT_LINE_WIDTH   0x30   Set line width for strokes, see WaterScalar
  WAT_LINE_CAPSTYLE   0x31   Change line cap style, see WaterLineCapStyle
  WAT_LINE_JOINSTYLE   0x32   Change line join style, see WaterLineJoinStyle
  WAT_LINE_MITER   0x33   Change miter limit, see WaterScalar
  WAT_LINE_DASHES   0x34   Change dashes

Each attribute can be changed, affecting rendering, e.g. in a network of attributes and elements.

There are different groups of attributes:


WaterAttributeFlags

Flags per attribute [8]

  WAF_NONE   0x00   None of these
  WAF_OPERATOR   0x01   Indicates that a WaterOperator is set in op
  WAF_ALL   0x01   All of these


WaterAttributeHeader

Header of an attribute in a stream or array

  WaterAttributeType   type : 8   Attribute type
  WaterAttributeFlags   flags : 8   Attribute flags
  WaterScalarType   scalar : 4   Set scalar type for values (if required)
  WaterOperator   operatOr : 4   Choose way of applying the value(s)


WaterAttribute

  WaterAttributeHeader   header  
  const void   * value  


WaterGradientType

Gradient Types [4]

  WGT_NONE   0x0  
  WGT_LINEAR   0x1   Linear gradient values: x1 y1 x2 y2 [x color]
  WGT_RADIAL   0x2   Radial gradient values: x1 y1 r1 x2 y2 r2 [x color]
  WGT_CONICAL   0x3   Conical gradient values: x y a [x color]


WaterGradientFlags

Gradient Flags [4]

  WGF_NONE   0x00  
  WGF_ALL   0x00  


WaterGradientHeader

Header of a gradient in a stream or array

  WaterGradientType   type : 4  
  WaterGradientFlags   flags : 4  
  WaterScalarType   scalar : 4   Set scalar type for values


WaterGradient

  WaterGradientHeader   header  
  u32   num_values   Number of values present in value array
  const WaterScalar   * values   Points to an array of values


WaterPatternType

Pattern Types [4]

  WPT_SURFACE   0x0   Surface pattern values: id


WaterPatternFlags

Pattern Flags [4]

  WPF_NONE    


WaterPatternHeader

Header of a pattern in a stream or array

  WaterPatternType   type : 4  
  WaterPatternFlags   flags : 4  
  WaterScalarType   scalar : 4   Set scalar type for values
  DFBPoint   offset  


WaterPatternSurface

  WaterPatternHeader   header  
  IDirectFBSurface   * surface  


WATER_ELEMENT_TYPE ( index, initial, additional )

Macro for generation of WaterElementType constants

        |----:----|----:----|bbbc:bbbb|aaaa:aaaa|
        

a) Element type index
b) Number of coordinate values for initial element
c) Number of coordinate values for additional elements, e.g. in a line strip

In case of a polygon the number of elements is always one, but the initial and additional count are chosen as three and one for generic validation of number of values.


WATER_ELEMENT_TYPE_INDEX ( type )

(((type) >> 0) & 0x7f)


WATER_ELEMENT_TYPE_VALUES_INITIAL ( type )

(((type) >> 13) & 0x0f)


WATER_ELEMENT_TYPE_VALUES_ADDITIONAL ( type )

(((type) >> 17) & 0x07)


WaterElementType

Compound type for basic and advanced elements with additional information [16]

  WET_UNKNOWN   0   Invalid or unknown / unspecified element type
  WET_POINT   WATER_ELEMENT_TYPE( 0, 2, 2 )   x y
  WET_SPAN   WATER_ELEMENT_TYPE( 1, 3, 3 )   x y l
  WET_LINE   WATER_ELEMENT_TYPE( 2, 4, 4 )   x1 y1 x2 y2
  WET_LINE_STRIP   WATER_ELEMENT_TYPE( 3, 4, 2 )   [x1 y1] x2 y2
  WET_LINE_LOOP   WATER_ELEMENT_TYPE( 4, 4, 2 )   [x1 y1] x2 y2
  WET_TRIANGLE   WATER_ELEMENT_TYPE( 5, 6, 6 )   x1 y1 x2 y2 x3 y3
  WET_TRIANGLE_FAN   WATER_ELEMENT_TYPE( 6, 6, 2 )   [x1 y1 x2 y2] x3 y3
  WET_TRIANGLE_STRIP   WATER_ELEMENT_TYPE( 7, 6, 2 )   [x1 y1 x2 y2] x3 y3
  WET_RECTANGLE   WATER_ELEMENT_TYPE( 8, 4, 4 )   x1 y1 x2 y2
  WET_RECTANGLE_STRIP   WATER_ELEMENT_TYPE( 9, 4, 2 )   [x1 y1] x2 y2
  WET_TRAPEZOID   WATER_ELEMENT_TYPE( 10, 6, 6 )   x1 y1 l1 x2 y2 l2
  WET_TRAPEZOID_STRIP   WATER_ELEMENT_TYPE( 11, 6, 3 )   [x1 y1 l1] x2 y2 l2
  WET_QUADRANGLE   WATER_ELEMENT_TYPE( 12, 8, 8 )   x1 y1 x2 y2 x3 y3 x4 y4
  WET_QUADRANGLE_STRIP   WATER_ELEMENT_TYPE( 13, 8, 4 )   [x1 y1 x2 y2] x3 y3 x4 y4
  WET_POLYGON   WATER_ELEMENT_TYPE( 14, 6, 2 )   [x1 y1 x2 y2] x3 y3
  WET_CIRCLE   WATER_ELEMENT_TYPE( 15, 3, 3 )   x y r
  WET_ELLIPSE   WATER_ELEMENT_TYPE( 16, 4, 4 )   x y rx ry
  WET_ARC_CIRCLE   WATER_ELEMENT_TYPE( 17, 4, 4 )   x y r a f
  WET_ARC_ELLIPSE   WATER_ELEMENT_TYPE( 18, 5, 5 )   x y rx ry a f
  WET_QUAD_CURVE   WATER_ELEMENT_TYPE( 19, 4, 4 )   x y x2 y2
  WET_QUAD_CURVE_STRIP   WATER_ELEMENT_TYPE( 20, 4, 2 )   x y [x2 y2]
  WET_CUBIC_CURVE   WATER_ELEMENT_TYPE( 21, 6, 6 )   x y x2 y2 x3 y3
  WET_CUBIC_CURVE_STRIP   WATER_ELEMENT_TYPE( 22, 6, 4 )   x y [x2 y2] x3 y3

The symbols in the descriptions declare the essential element values for each item, e.g. a line or a rectangle.

Values in brackets are non-essential for further items, e.g. in a line strip or smooth curve.


WATER_NUM_ELEMENT_TYPES

23


WaterElementFlags

Flags per element [12]

  WEF_NONE   0x000   None of these
  WEF_DRAW   0x001   Draw outline (low level flag), see also WaterShapeFlags
  WEF_FILL   0x002   Fill area (low level flag), see also WaterShapeFlags
  WEF_CONTINUE   0x010   Skip first x/y, using last x/y from previous element
  WEF_CLOSE   0x020  
  WEF_ARC_LARGE   0x100   Large arc flag
  WEF_ARC_SWEEP   0x200   Sweep flag
  WEF_ALL   0x333   All of these


WaterElementHeader

Base header of an element in a stream or array

  WaterElementType   type : 16   Element type
  WaterElementFlags   flags : 12   Element flags
  WaterScalarType   scalar : 4   Scalar type


WaterElement

  WaterElementHeader   header  
  const WaterScalar   * values   Points to an array of values
  u32   num_values   Number of values present in value array
  const u32   * indices   Points to an array of indices
  u32   num_indices   Number of indices present in indices array


WaterShapeFlags

Flags per shape [8]

  WSF_NONE   0x00   None of these
  WSF_STROKE   0x01   Draw along outlines of elements
  WSF_FILL   0x02   Fill area of shape according to fill rule, see WaterFillRule
  WSF_OPACITY   0x10   Apply opacity to the shape (all joints are lit)
  WSF_ALL   0x13   All of these


WaterShapeHeader

  WaterShapeFlags   flags : 8   Flags for this shape
  WaterScalarType   scalar : 4   Scalar type for opacity
  unsigned int   _rsrv1 : 20   reserved bits
  WaterScalar   opacity   Opacity of shape, applied only when WSF_OPACITY is set


WaterShape

  WaterShapeHeader   header  
  const WaterAttribute   * attributes  
  u32   num_attributes  
  const WaterElement   * elements  
  u32   num_elements  


DIRECTFB_WINDOWS_INTERFACE_VERSION

The DirectFB Windows interface version.

1


DFBWindowConfigFlags

  DWCONF_NONE   0x00000000  
  DWCONF_POSITION   0x00000001  
  DWCONF_SIZE   0x00000002  
  DWCONF_OPACITY   0x00000004  
  DWCONF_STACKING   0x00000008  
  DWCONF_OPTIONS   0x00000010  
  DWCONF_EVENTS   0x00000020  
  DWCONF_ASSOCIATION   0x00000040  
  DWCONF_COLOR_KEY   0x00000100  
  DWCONF_OPAQUE   0x00000200  
  DWCONF_COLOR   0x00000400  
  DWCONF_STEREO_DEPTH   0x00000800  
  DWCONF_KEY_SELECTION   0x00001000  
  DWCONF_CURSOR_FLAGS   0x00002000  
  DWCONF_CURSOR_RESOLUTION   0x00004000  
  DWCONF_SRC_GEOMETRY   0x00010000  
  DWCONF_DST_GEOMETRY   0x00020000  
  DWCONF_ROTATION   0x00040000  
  DWCONF_APPLICATION_ID   0x00080000  
  DWCONF_TYPE_HINT   0x00100000  
  DWCONF_HINT_FLAGS   0x00200000  
  DWCONF_ALL   0x003F7F7F  


DFBWindowConfig

  DFBRectangle   bounds   position and size
  int   opacity   global alpha factor
  DFBWindowStackingClass   stacking   level boundaries
  DFBWindowOptions   options   flags for appearance/behaviour
  DFBWindowEventType   events   mask of enabled events
  DFBWindowID   association   ID of window which this is associated to
  u32   color_key   transparent pixel
  DFBRegion   opaque   region of the window forced to be opaque
  DFBColor   color   constant color (no surface needed)
  DFBWindowCursorFlags   cursor_flags  
  DFBDimension   cursor_resolution  
  DFBWindowGeometry   src_geometry   advanced source geometry
  DFBWindowGeometry   dst_geometry   advanced destination geometry
  int   rotation  
  u64   application_id  
  int   stereo_depth  
  DFBWindowTypeHint   type_hint  


DFBWindowStateFlags

  DWSTATE_NONE   0x00000000  
  DWSTATE_INSERTED   0x00000001  
  DWSTATE_FOCUSED   0x00000002   only used for GetWindowInfo
  DWSTATE_ENTERED   0x00000004   only used for GetWindowInfo
  DWSTATE_UPDATING   0x00000010  
  DWSTATE_ALL   0x00000017  


DFBWindowState

  DFBWindowStateFlags   flags  


DFBWindowInfo

  DFBWindowID   window_id  
  DFBWindowCapabilities   caps  
  u64   resource_id  
  DFBWindowConfig   config  
  DFBWindowState   state  
  u32   process_id   Fusion ID or even pid, or something else identifying a process.
  u32   instance_id   ID of the instance of an application. Each process can host a number of applications/instances.


DFBWindowRelation

  DWREL_TOP    
  DWREL_BOTTOM    


Creative Commons License This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License