У меня задача создать графический интерфейс для Linux для консоли. У меня не получается создать объект Window графической библиотеки DirectFB. На официальном сайте http://directfb.org вроде написано что он создается на объекте DisplayLayer, но все попытки это реализовать окончились неудачей, так как там еще в добавок вся документация на английском.
Если кто может помогите, или может у кого есть док на русском.
При компиляции ошибок нет, а вот после запуска прога вылитает. Вот кусок кода программы:
Код: Выделить всё
static IDirectFB *dfb = NULL;
static IDirectFBSurface *primary = NULL;
static IDirectFBWindow *wind = NULL;
static IDirectFBSurface *wind_sur = NULL;
DFBWindowDescription wind_dsc;
static IDirectFBDisplayLayer *layer = NULL;
DFBDisplayLayerDescription layer_dsc;
DFBSurfaceDescription dsc;
static int screen_width = 0;
static int screen_height = 0;
static IDirectFBFont *font = NULL;
DFBFontDescription font_dsc;
#define DFBCHECK(x...) \
{ \
DFBResult err = x; \
\
if (err != DFB_OK) \
{ \
fprintf( stderr, "%s <%d>:\n\t", __FILE__, __LINE__ ); \
DirectFBErrorFatal( #x, err ); \
} \
}
int InitGraph(int argc, char **argv)
{
DFBCHECK (DirectFBInit (&argc, &argv));
DFBCHECK (DirectFBCreate (&dfb));
DFBCHECK (dfb->SetCooperativeLevel (dfb, DFSCL_FULLSCREEN));
dsc.flags = DSDESC_CAPS;
dsc.caps = (DFBSurfaceCapabilities) (DSCAPS_FLIPPING | DSCAPS_PRIMARY);
DFBCHECK (dfb->CreateSurface( dfb, &dsc, &primary ));
DFBCHECK (primary->GetSize (primary, &screen_width, &screen_height));
font_dsc.flags = DFDESC_HEIGHT;
font_dsc.height = 23;
DFBCHECK (dfb->CreateFont (dfb, "decker.ttf", &font_dsc, &font));
DFBCHECK (primary->SetFont (primary, font));
wind_dsc.caps = (DFBWindowCapabilities)DWCAPS_DOUBLEBUFFER;
wind_dsc.width = 600;
wind_dsc.height = 400;
wind_dsc.posx = 50;
wind_dsc.posy = 50;
wind_dsc.surface_caps = (DFBSurfaceCapabilities) (DSCAPS_FLIPPING | DSCAPS_PRIMARY);
DFBDisplayLayerConfig layer_conf;
layer_conf.width = 600;
layer_conf.height = 400;
layer_conf.surface_caps = (DFBSurfaceCapabilities) (DSCAPS_FLIPPING | DSCAPS_PRIMARY);
DFBCHECK (layer->SetConfiguration(layer,&layer_conf));
DFBCHECK (layer->CreateWindow(layer,&wind_dsc,&wind));
}вот что выводится на экран после запуска приложения
