Hello,

i just try to unterstand how to create an window. I started with comparing 
different examples, which included windows.
After that i started to write this code. When i try to start the application, 
it always shows me an "Caught signal 11"-error, so i 
tried to debug. Then i found out, that the 
printf("=================================================");  still works,
but at DFBCHECK(window->GetSurface( window, &window_surface) ); // PROBLEM it 
shows me the "Caught signal 11"-error.
I hope you can help ne.

Greetings from Dresden : )

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <math.h>
#include <time.h>
#include <directfb.h>
static     IDirectFB              *dfb;
static     IDirectFBDisplayLayer  *layer;
static     IDirectFBImageProvider *provider;
static     IDirectFBSurface       *primary;
static     IDirectFBWindow        *window;
static     IDirectFBSurface       *window_surface;
/* macro for a safe call to DirectFB functions */
#define DFBCHECK(x...) \
     {                                                                \
          err = x;                                                    \
          if (err != DFB_OK) {                                        \
               fprintf( stderr, "%s <%d>:\n\t", __FILE__, __LINE__ ); \
               DirectFBErrorFatal( #x, err );                         \
          }                                                           \
     }
int main( int argc, char *argv[] )
{
//      IDirectFBEventBuffer   *buffer;
        DFBDisplayLayerConfig         layer_config;
//      DFBWindowID                   id1;
        int err;
//      int quit = 0;
        DFBCHECK(DirectFBInit( &argc, &argv ));
        DFBCHECK(DirectFBCreate( &dfb ));
        DFBCHECK(dfb->GetDisplayLayer( dfb, DLID_PRIMARY, &layer ));
//      layer->SetCooperativeLevel( layer, DLSCL_ADMINISTRATIVE );
        layer->GetConfiguration( layer, &layer_config );
//      layer->EnableCursor ( layer, 1 );
        DFBSurfaceDescription dsc;
        DFBCHECK(dfb->CreateImageProvider( dfb,"desktop.png",&provider ));
        dsc.flags  = DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_CAPS;
        dsc.width  = layer_config.width;
        dsc.height = layer_config.height;
        dsc.caps   = DSCAPS_SHARED;
        DFBCHECK(dfb->CreateSurface( dfb, &dsc, &primary ) );
        provider->RenderTo( provider, primary, NULL );
        layer->SetBackgroundImage( layer, primary );    
        layer->SetBackgroundMode( layer, DLBM_IMAGE );
        DFBSurfaceDescription sdsc;
        DFBWindowDescription  desc;
        sdsc.flags = (DSDESC_WIDTH | DSDESC_HEIGHT );
        sdsc.width  = 300;
        sdsc.height = 200;

        desc.caps = DWCAPS_ALPHACHANNEL;
        desc.flags = ( DWDESC_POSX | DWDESC_POSY | DWDESC_WIDTH | DWDESC_HEIGHT 
| DWDESC_CAPS);

        desc.posx   = 20;
        desc.posy   = 120;
        desc.width  = sdsc.width;
        desc.height = sdsc.height;

        DFBCHECK(dfb->CreateSurface( dfb, &sdsc, &window_surface ) );
printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");     
        DFBCHECK(dfb->CreateImageProvider( dfb,"dfblogo.png",&provider ));
printf("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");     
        provider->RenderTo( provider, window_surface, NULL );       
        DFBCHECK(layer->CreateWindow( layer, &desc, &window ) );
printf("=================================================");     
        DFBCHECK(window->GetSurface( window, &window_surface) ); // PROBLEM
printf(".......................................................................");
     
        window_surface->Flip( window_surface, NULL, 0 );  
        provider->Release( provider );

        sleep (100);
//      buffer->Release( buffer );
        window_surface->Release( window_surface );
        window->Release( window );
        layer->Release( layer );
        primary->Release( primary );
        dfb->Release( dfb );
        return 42;
}


THE TERMINAL-OUTPUT

(*) Direct/Interface: Loaded 'PNG' implementation of 'IDirectFBImageProvider'.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$=================================================(!)
 [31424:    0.000] --> Caught signal 11 (sent by the kernel) <--
 (!!!)  *** WARNING [still objects in 'Window Pool'] *** [object.c:241 in 
fusion_object_pool_destroy()]
 (!!!)  *** WARNING [still objects in 'Layer Region Pool'] *** [object.c:241 in 
fusion_object_pool_destroy()]
 (!!!)  *** WARNING [still objects in 'Layer Context Pool'] *** [object.c:241 
in fusion_object_pool_destroy()]
 (!!!)  *** WARNING [still objects in 'Surface Pool'] *** [object.c:241 in 
fusion_object_pool_destroy()]
Aborted

____________________________________________________________________
Psssst! Schon vom neuen WEB.DE MultiMessenger gehört? 
Der kann`s mit allen: http://www.produkte.web.de/messenger/?did=3123

_______________________________________________
directfb-users mailing list
directfb-users@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users

Reply via email to