From: kaka <sha...@gm...> - 2007-12-17 08:31:10
|
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__); gdk_flush (); } printf("\n%s :: %d\n",__FILE__,__LINE__); if (quit_functions) { GList *reinvoke_list = NULL; GtkQuitFunction *quitf; Given below is the src code for test example of GTK: #include <gtk/gtk.h> int main( int argc, char *argv[] ) { GtkWidget *window; GtkWidget *pMainWidget; GdkPixbuf *image; gboolean ret = 0; gtk_init (&argc, &argv); printf("\n\n\ngtk_init (&argc, &argv);\n\n\n"); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); //gtk_container_set_border_width (GTK_CONTAINER (window), 10); image = gdk_pixbuf_new_from_file ("test.gif", NULL); if (!image) return FALSE; pMainWidget = gtk_image_new_from_pixbuf(image); printf("\n\n\npMainWidget = gtk_image_new_from_pixbuf(image);\n\n\n"); gtk_widget_show (pMainWidget); 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; } Can anybody Plz throw some light on it? Thanks in advcance -- Thanks & Regards, kaka |
From: Denis O. K. <do...@di...> - 2007-12-17 17:27:03
|
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/ | "------------------------------------------" |
From: kaka <sha...@gm...> - 2007-12-17 18:40:07
|
Hi Denis, Thanks for the reply. I am running same example on X86 and it is running successfully and displaying image. On the other hand when i am running the same example on MIPS(GTK over DirecTFB) image is not being displayed. Could u plz provide some clue on it. Thanks. Kaka On 12/17/07, Denis Oliver Kropp <do...@di...> 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 |
From: kaka <sha...@gm...> - 2007-12-20 18:08:57
|
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 <do...@di...> 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 |
From: Mike E. <mik...@gm...> - 2007-12-20 19:09:58
|
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 <sha...@gm...> 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 <do...@di...> 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 > dir...@di... > http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev > > |