On 28 December 2013 19:09, Jens Kallup <jkal...@web.de> wrote: > Hello, > > I have following code, which blocks the system if it startet. >
I'm not a DFB developer but this question looks to me like one for the "users" mailing list. > What is wrong with this code? > First of all you don't check for error codes. This is the fundamentally what's "wrong with this code". Secondly, have you tried to debug it, at least with "print" statements to find out which call "blocks the system"? Have you tried `strace` it? Cheers, Kris > 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 > directfb-...@directfb.org > http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev >
_______________________________________________ directfb-users mailing list directfb-users@directfb.org http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users