ubuntu 9.10
К компьютеру подключены два монитора. Видеокарточка nvidia gt260.
Рабочий стол gnome нормально расширяется на второй монитор.
Использую libdirectfb-dev 1.2.7-2ubuntu1, установленную через менеджер пакетов.
При попытке получить список мониторов с помощью приведенного ниже кода обнаруживается только один.
Устройство /dev/fb0 есть, но устройство /dev/fb1 отсутствует.
Есть ли возможность использовать оба монитора для вывода графики с помощью directfb?
Насколько понял, прежде всего необходимо добиться появления в системе фреймбуфера для второго монитора (/dev/fb1),
гугление пока не принесло успеха.
#include <stdio.h>
#include <unistd.h>
#include <directfb.h>
static IDirectFB *dfb = NULL;
static IDirectFBSurface *primary = NULL;
static int screen_width = 0;
static int screen_height = 0;
#define DFBCHECK(x...) \
{ \
DFBResult err = x; \
\
if (err != DFB_OK) \
{ \
fprintf( stderr, "%s <%d>:\n\t", __FILE__, __LINE__ ); \
DirectFBErrorFatal( #x, err ); \
} \
}
DFBEnumerationResult ScreenCallBack( DFBScreenID screen_id, DFBScreenDescription desc, void *callbackdata )
{
printf( "[ScreenCallBack]\n" );
printf( "\tname\t%s\n", desc.name );
}
DFBEnumerationResult DisplayLayerCallback( DFBDisplayLayerID layer_id, DFBDisplayLayerDescription desc, void *callbackdata )
{
printf( "[DisplayLayerCallback]\n" );
}
int main (int argc, char **argv)
{
DFBSurfaceDescription dsc;
DFBCHECK (DirectFBInit (&argc, &argv));
DFBCHECK (DirectFBCreate (&dfb));
DFBCHECK (dfb->EnumScreens( dfb, ScreenCallBack, NULL ) );
DFBCHECK (dfb->EnumDisplayLayers( dfb, DisplayLayerCallback, NULL ) );
primary->Release( primary );
dfb->Release( dfb );
return 0;
}