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

Reply via email to