Reference Manual - 1.4.14
DirectFB Interfaces   IDirectFB

IDirectFB is the main interface. It can be retrieved by a call to DirectFBCreate. It's the only interface with a global creation facility. Other interfaces are created by this interface or interfaces created by it. Hardware capabilities such as the amount of video memory or a list of supported drawing/blitting functions and flags can be retrieved. It also provides enumeration of all supported video modes.

Input devices and display layers that are present can be enumerated via a callback mechanism. The callback is given the capabilities and the device or layer ID. An interface to specific input devices or display layers can be retrieved by passing the device or layer ID to the corresponding method.

Surfaces for general purpose use can be created via CreateSurface. These surfaces are so called "offscreen surfaces" and could be used for sprites or icons.

The primary surface is an abstraction and API shortcut for getting a surface for visual output. Fullscreen games for example have the whole screen as their primary surface. Alternatively fullscreen applications can be forced to run in a window. The primary surface is also created via CreateSurface but with the special capability DSCAPS_PRIMARY.

The cooperative level selects the type of the primary surface. With a call to SetCooperativeLevel the application can choose between the surface of an implicitly created window and the surface of the primary layer (deactivating the window stack). The application doesn't need to have any extra functionality to run in a window. If the application is forced to run in a window the call to SetCooperativeLevel fails with DFB_ACCESSDENIED. Applications that want to be "window aware" shouldn't exit on this error.

The video mode can be changed via SetVideoMode and is the size and depth of the primary surface, i.e. the screen when in exclusive cooperative level. Without exclusive access SetVideoMode sets the size of the implicitly created window.

Event buffers can be created with an option to automatically attach input devices matching the specified capabilities. If DICAPS_NONE is passed an event buffer with nothing attached to is created. An event buffer can be attached to input devices and windows.

Fonts, images and videos are created by this interface. There are different implementations for different content types. On creation a suitable implementation is automatically chosen.

Methods of IDirectFB
Cooperative level, video mode SetCooperativeLevel Puts the interface into the specified cooperative level.
SetVideoMode Switch the current video mode (primary layer).
Hardware capabilities GetDeviceDescription Get a description of the graphics device.
EnumVideoModes Enumerate supported video modes.
Surfaces & Palettes CreateSurface Create a surface matching the specified description.
CreatePalette Create a palette matching the specified description.
Screens EnumScreens Enumerate all existing screen.
GetScreen Retrieve an interface to a specific screen.
Display Layers EnumDisplayLayers Enumerate all existing display layers.
GetDisplayLayer Retrieve an interface to a specific display layer.
Input Devices EnumInputDevices Enumerate all existing input devices.
GetInputDevice Retrieve an interface to a specific input device.
CreateEventBuffer Create a buffer for events.
CreateInputEventBuffer Create a buffer for events with input devices connected.
Media CreateImageProvider Create an image provider for the specified file.
CreateVideoProvider Create a video provider.
CreateFont Load a font from the specified file given a description of how to load the glyphs.
CreateDataBuffer Create a data buffer.
Clipboard SetClipboardData Set clipboard content.
GetClipboardData Get clipboard content.
GetClipboardTimeStamp Get time stamp of last SetClipboardData call.
Misc Suspend Suspend DirectFB, no other calls to DirectFB are allowed until Resume has been called.
Resume Resume DirectFB, only to be called after Suspend.
WaitIdle Wait until graphics card is idle, i.e. finish all drawing/blitting functions.
WaitForSync Wait for next vertical retrace.
Extensions GetInterface Load an implementation of a specific interface type.

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