Hello,
I have following code, which blocks the system if it startet.
What is wrong with this code?
Thanks for reply
Jens
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <math.h>
#include <time.h>
#include <directfb.h>
#include <directfb_util.h>
#include <directfb_version.h>
#include <direct/util.h>
static IDirectFBInputDevice *keyboard = NULL;
int main( int argc, char *argv[] )
{
IDirectFB *dfb;
IDirectFBDisplayLayer *layer;
IDirectFBImageProvider *provider;
IDirectFBVideoProvider *video_provider;
IDirectFBWindow *window1;
IDirectFBSurface *window_surface1;
IDirectFBEventBuffer *buffer;
DFBDisplayLayerConfig layer_config;
DFBGraphicsDeviceDescription gdesc;
IDirectFBWindow* upper;
DFBWindowID id1;
int quit = 0;
IDirectFBWindow* active = NULL;
int grabbed = 0;
DirectFBInit( &argc, &argv );
DirectFBCreate( &dfb );
dfb->GetDeviceDescription( dfb, &gdesc );
dfb->GetDisplayLayer( dfb, DLID_PRIMARY, &layer );
layer->SetCooperativeLevel( layer, DLSCL_ADMINISTRATIVE );
layer->GetConfiguration( layer, &layer_config );
layer->EnableCursor ( layer, 1 );
DFBWindowDescription desc;
desc.flags = ( DWDESC_POSX | DWDESC_POSY |
DWDESC_WIDTH | DWDESC_HEIGHT |
DWDESC_CAPS |
DWDESC_STACKING | DWDESC_SURFACE_CAPS );
desc.posx = 200;
desc.posy = 200;
desc.width = 512;
desc.height = 145;
desc.caps = DWCAPS_ALPHACHANNEL;
desc.surface_caps = DSCAPS_PREMULTIPLIED;
layer->CreateWindow( layer, &desc, &window1 );
window1->GetSurface( window1, &window_surface1 );
dfb->GetInputDevice (dfb, DIDID_KEYBOARD, &keyboard);
keyboard->CreateEventBuffer (keyboard, &buffer);
// window1->CreateEventBuffer( window1, &buffer );
window_surface1->Clear( window_surface1,
0xff,0xff,0xff,0xff); ////0xc0, 0xb0, 0x90, 0xFF );
window_surface1->SetDrawingFlags( window_surface1,
DSDRAW_SRC_PREMULTIPLY );
window_surface1->SetColor( window_surface1, 0xFF, 0x20, 0x20,
0x90 );
window_surface1->DrawRectangle( window_surface1,
0, 0, desc.width,
desc.height );
window1->SetOpacity( window1, 0xFF );
window1->GetID( window1, &id1 );
upper = window1;
while (!quit)
{
DFBInputEvent event;
buffer->WaitForEvent (buffer);
while (buffer->GetEvent (buffer, DFB_EVENT(&event)) == DFB_OK)
{
if (event.type == DIET_KEYPRESS)
{
if (event.key_id == DIKI_ESCAPE)
quit = 1;
}
}
}
ende:
//return 42;
buffer->Release( buffer );
window_surface1->Release( window_surface1 );
window1->Release( window1 );
// layer->Release( layer );
dfb->Release( dfb );
return 42;
}
_______________________________________________
directfb-dev mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev