I suspect this is related to the creation of a top level ARGB surface when gtk is initialized. You probably should dig around a bit but it looks to me like its a issue with surface formats. Since your doing the driver you should try and make sure that you get a accelerated surface working for Gtk/Cairo this would need to be either RGB/ARGB because of limited pixel format support in Cairo. gdk_display_open in gdkdisplay-directfb.c See how it finally initializes and I suspect that if you do the same in a simple DirectFB app you get the black screen and can debug. On Dec 20, 2007 10:08 AM, kaka <share.kt@xxxxxxxxx> wrote: > Hi Denis, > > I am writing gfx driver for DirectFB on BroadCom chip. > Right now i am using FBdev system to display graphics on BCM chip(MIPS > platform) which should use software fallbacks from DirectFB.Later on i 'll > add hardware accelerartion also. > My framebuffer driver for BCM chip is working fine. I have checked it by > running a small example. Also the gfxdriver for directFB is working fine for > Video and Image. > The problem which i am facing right now is that i am running the fill > rectangle example. > IT is not filling any color in the rectangle. I am always getting the black > screen. > > Could you plz provide some clue on it ? > Also could you plz specify the file name and function in which directFB > library is writing into the framebuffer memory the color pixel information? > > Thanks in Advance. > kaka > > > > On 12/17/07, Denis Oliver Kropp <dok@xxxxxxxxxxxx> wrote: > > > kaka wrote: > > > HI ALL, > > > > > > We have successfully cross compiled GTK and DIRECTFB with all its > > > dependencies for MIPS board. > > > On running the basic test example of GTK, it is getting struck in the > thread > > > loop infinitely. > > > We had put the "debug printf" statement in the gtkmain.c and debugged > the > > > test example. > > > It is getting struck in the * g_main_loop_run (loop);* given below is > > > the code(code > > > snippet from gtkmain.c) > > > > > > void > > > gtk_main (void) > > > { > > > GList *tmp_list; > > > GList *functions; > > > GtkInitFunction *init; > > > GMainLoop *loop; > > > printf("\n%s :: %d\n",__FILE__,__LINE__); > > > gtk_main_loop_level++; > > > > > > loop = g_main_loop_new (NULL, TRUE); > > > main_loops = g_slist_prepend (main_loops, loop); > > > printf("\n%s :: %d\n",__FILE__,__LINE__); > > > tmp_list = functions = init_functions; > > > init_functions = NULL; > > > > > > while (tmp_list) > > > { > > > init = tmp_list->data; > > > tmp_list = tmp_list->next; > > > > > > (* init->function) (init->data); > > > g_free (init); > > > } > > > g_list_free (functions); > > > printf("\n%s :: %d\n",__FILE__,__LINE__); > > > if (g_main_loop_is_running (main_loops->data)) > > > { > > > * printf("\n%s :: %d\n",__FILE__,__LINE__); > > > GDK_THREADS_LEAVE (); > > > g_main_loop_run (loop); > > > GDK_THREADS_ENTER (); > > > * printf("\n%s :: %d\n",__FILE__,__LINE__); > > > > That's normal. If you want runtime you have to create a timer or register > idle or timeout functions. > > > > > gtk_container_add (GTK_CONTAINER (window), pMainWidget); > > > printf("\n\n\ngtk_container_add (GTK_CONTAINER (window), > > > pMainWidget);\n\n\n") ; > > > gtk_widget_show (window); > > > printf("\n\n\nABHISHEK START OF gtk_main\n\n\n"); > > > gtk_main (); > > > printf("\n\n\nABHISHEK END OF gtk_main\n\n\n"); > > > return 0; > > > > Simply/weakly put: it should not return before the application is quit. > > > > -- > > Best regards, > > Denis Oliver Kropp > > > > .------------------------------------------. > > | DirectFB - Hardware accelerated graphics | > > | http://www.directfb.org/ | > > "------------------------------------------" > > > > > > -- > Thanks & Regards, > kaka > _______________________________________________ > directfb-dev mailing list > directfb-dev@xxxxxxxxxxxx > http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev > >