[evidence-CVS] evidence/src gevas_bind.c,1.4,1.5 gevas_light.c,1.1,1.2 gevas_light.h,1.1,1.2 options
Status: Alpha
Brought to you by:
azundris
From: <azu...@us...> - 2003-10-30 13:21:14
|
Update of /cvsroot/evidence/evidence/src In directory sc8-pr-cvs1:/tmp/cvs-serv21097/src Modified Files: gevas_bind.c gevas_light.c gevas_light.h options.c session_private.h tree_view.c Log Message: * minor fixes: tree-view compiles again * evas GL engine supported (crashes here, but so does evas_gl_x11_test) Index: gevas_bind.c =================================================================== RCS file: /cvsroot/evidence/evidence/src/gevas_bind.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** gevas_bind.c 29 Oct 2003 23:23:37 -0000 1.4 --- gevas_bind.c 30 Oct 2003 13:21:09 -0000 1.5 *************** *** 825,829 **** Evas *evas; ! wtoy=gevas=gevas_new(); if(!gevas||!wtoy||!(il=icon_list_new(name,(void *)ns->theme,(void *)gevas,wpad,hpad,flags))) --- 825,829 ---- Evas *evas; ! wtoy=gevas=gevas_new(ns->evas_engine); if(!gevas||!wtoy||!(il=icon_list_new(name,(void *)ns->theme,(void *)gevas,wpad,hpad,flags))) Index: gevas_light.c =================================================================== RCS file: /cvsroot/evidence/evidence/src/gevas_light.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** gevas_light.c 6 Oct 2003 15:13:47 -0000 1.1 --- gevas_light.c 30 Oct 2003 13:21:10 -0000 1.2 *************** *** 28,41 **** */ ! #include <Evas.h> ! #include <Evas_Engine_Software_X11.h> #include "gevas_light.h" #include "evas2.h" - #include "keysyms.h" #include <gdk/gdkx.h> #include <gtk/gtk.h> --- 28,49 ---- */ ! #include <string.h> /* strdup(), strcmp() */ ! #include <stdio.h> /* fprintf(), stderr */ ! #include <stdlib.h> /* exit() */ ! ! #include "debug.h" /* E() */ #include "gevas_light.h" #include "evas2.h" #include <gdk/gdkx.h> #include <gtk/gtk.h> + #include <Evas.h> + #include <Evas_Engine_Software_X11.h> + #ifdef HAVE_EVAS_GL + # include <Evas_Engine_GL_X11.h> + #endif + *************** *** 46,49 **** --- 54,58 ---- ARG_0, /* Skip 0, an invalid argument ID */ ARG_DEFAULT_BG, + ARG_EVAS_ENGINE, ARG_SIZE_REQUEST_X, ARG_SIZE_REQUEST_Y, *************** *** 95,106 **** GTK_WIDGET_SET_FLAGS(GTK_WIDGET(ev),GTK_CAN_FOCUS); ! ev->evas=evas_new(); ev->show_default_bg=0; ! ev->default_bg=NULL; ! ev->size_request_x=100; ! ev->size_request_y=100; ! ev->gevasobjlist=NULL; ! ! evas_output_method_set(ev->evas,evas_render_method_lookup("software_x11")); } --- 104,113 ---- GTK_WIDGET_SET_FLAGS(GTK_WIDGET(ev),GTK_CAN_FOCUS); ! ev->evas =evas_new(); ev->show_default_bg=0; ! ev->default_bg =NULL; ! ev->size_request_x =100; ! ev->size_request_y =100; ! ev->gevasobjlist =NULL; } *************** *** 114,118 **** sizeof(GtkgEvas), sizeof(GtkgEvasClass), ! (GtkClassInitFunc) gevas_class_init, (GtkObjectInitFunc) gevas_init, NULL, --- 121,125 ---- sizeof(GtkgEvas), sizeof(GtkgEvasClass), ! (GtkClassInitFunc) gevas_class_init, (GtkObjectInitFunc) gevas_init, NULL, *************** *** 126,137 **** ! GtkWidget *gevas_new(void) { GtkgEvas *ev; ! ev=gtk_type_new(gevas_get_type()); gevas_set_size_request_x(ev,200); gevas_set_size_request_y(ev,200); return GTK_WIDGET(ev); } --- 133,156 ---- ! GtkWidget *gevas_new(char *engine) { GtkgEvas *ev; + char *dflt_engine="software_x11"; ! if(!(ev=gtk_type_new(gevas_get_type()))) ! return NULL; gevas_set_size_request_x(ev,200); gevas_set_size_request_y(ev,200); + if(!engine) + engine=dflt_engine; + else if(!evas_render_method_lookup(engine)) { + E(0,"gevas_new: engine \"%s\" not available, defaulting to \"%s\"...\n", + engine,dflt_engine); + engine=dflt_engine; } + ev->evas_engine=strdup(engine); + evas_output_method_set(ev->evas,evas_render_method_lookup(ev->evas_engine)); + E(3,"gevas_new: render-method %d\n",evas_output_method_get(ev->evas)); + return GTK_WIDGET(ev); } *************** *** 204,208 **** gdk_window_set_back_pixmap(widget->window,NULL,FALSE); ! evas_output_method_set(evas,evas_render_method_lookup("software_x11")); evas_output_size_set(evas,widget->allocation.width, widget->allocation.height); --- 223,228 ---- gdk_window_set_back_pixmap(widget->window,NULL,FALSE); ! /* evas_output_method_set(evas,evas_render_method_lookup("software_x11")); */ ! evas_output_size_set(evas,widget->allocation.width, widget->allocation.height); *************** *** 210,223 **** widget->allocation.height); ! { Evas_Engine_Info_Software_X11 *einfo; ! GdkVisual *rootvis=gdk_visual_get_system(); ! einfo=(Evas_Engine_Info_Software_X11*)evas_engine_info_get(evas); /* the following is specific to the engine */ einfo->info.display=GDK_WINDOW_XDISPLAY(widget->window); einfo->info.visual=GDK_VISUAL_XVISUAL(gtk_widget_get_visual(widget)); ! einfo->info. ! colormap=GDK_COLORMAP_XCOLORMAP(gtk_widget_get_colormap(widget)); einfo->info.drawable=GDK_WINDOW_XWINDOW(widget->window); einfo->info.depth=rootvis->depth; --- 230,245 ---- widget->allocation.height); ! if(!strcmp(ev->evas_engine,"software_x11")) { ! Evas_Engine_Info_Software_X11 *einfo=(Evas_Engine_Info_Software_X11*)evas_engine_info_get(evas); ! GdkVisual *rootvis=gdk_visual_get_system(); ! if(!einfo) { ! E(0,"gevas_light: could not initialize evas with engine \"%s\"\n",ev->evas_engine); ! exit(EXIT_FAILURE); } /* the following is specific to the engine */ einfo->info.display=GDK_WINDOW_XDISPLAY(widget->window); einfo->info.visual=GDK_VISUAL_XVISUAL(gtk_widget_get_visual(widget)); ! einfo->info.colormap=GDK_COLORMAP_XCOLORMAP(gtk_widget_get_colormap(widget)); einfo->info.drawable=GDK_WINDOW_XWINDOW(widget->window); einfo->info.depth=rootvis->depth; *************** *** 225,229 **** einfo->info.debug=0; ! evas_engine_info_set(evas,(Evas_Engine_Info*)einfo); } /* only shows if the user has requested it */ --- 247,275 ---- einfo->info.debug=0; ! evas_engine_info_set(evas,(Evas_Engine_Info *)einfo); } ! ! #ifdef HAVE_EVAS_GL ! else if(!strcmp(ev->evas_engine,"gl_x11")) { ! Display *disp=GDK_WINDOW_XDISPLAY(widget->window); ! Evas_Engine_Info_GL_X11 *einfo=(Evas_Engine_Info_GL_X11 *)evas_engine_info_get(evas); ! ! if(!einfo) { ! E(0,"gevas_light: could not initialize evas with engine \"%s\"\n",ev->evas_engine); ! exit(-1); } ! ! einfo->info.display=disp; ! einfo->info.visual =einfo->func.best_visual_get(disp,DefaultScreen(disp)); ! einfo->info.drawable=GDK_WINDOW_XWINDOW(widget->window); ! einfo->info.colormap=einfo->func.best_colormap_get(disp,DefaultScreen(disp)); ! einfo->info.depth =einfo->func.best_depth_get(disp,DefaultScreen(disp)); ! ! evas_engine_info_set(evas,(Evas_Engine_Info *)einfo); } ! #endif ! ! else { ! E(0,"gevas_light: could not initialize evas, built without engine \"%s\"\n",ev->evas_engine); ! exit(EXIT_FAILURE); } ! ! /* only shows if the user has requested it */ *************** *** 422,425 **** --- 468,475 ---- break; + case ARG_EVAS_ENGINE: + E(0,"gevas_light: evas engine-type may only be set at creation time!\n"); + break; + case ARG_SIZE_REQUEST_X: ev->size_request_x=GTK_VALUE_INT(*arg); *************** *** 443,446 **** --- 493,499 ---- case ARG_DEFAULT_BG: GTK_VALUE_BOOL(*arg)=ev->show_default_bg; + break; + case ARG_EVAS_ENGINE: + GTK_VALUE_STRING(*arg)=ev->evas_engine; break; case ARG_SIZE_REQUEST_X: Index: gevas_light.h =================================================================== RCS file: /cvsroot/evidence/evidence/src/gevas_light.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** gevas_light.h 6 Oct 2003 15:13:48 -0000 1.1 --- gevas_light.h 30 Oct 2003 13:21:10 -0000 1.2 *************** *** 41,44 **** --- 41,45 ---- #define GTK_GEVAS_SIZE_REQUEST_Y "GtkgEvas::size_request_y" #define GTK_GEVAS_DEFAULT_BG "GtkgEvas::default_bg" + #define GTK_GEVAS_EVAS_ENGINE "GtkgEvas::evas_engine" *************** *** 67,81 **** Evas *evas; ! GdkRectangle evas_r; /* cache of the expose event's size.*/ gboolean show_default_bg; ! Evas_Object *default_bg; /* Object for the bg.*/ gint size_request_x; gint size_request_y; ! guint current_idle; /* handles queue render callback*/ ! GdkEvent *current_event; /* so that evas callbacks can get the gdk event.*/ gboolean updating; --- 68,84 ---- Evas *evas; ! GdkRectangle evas_r; /* cache of the expose event's size.*/ gboolean show_default_bg; ! Evas_Object *default_bg; /* Object for the bg.*/ gint size_request_x; gint size_request_y; ! gchar *evas_engine; /* x11 or OpenGL? */ ! guint current_idle; /* handles queue render callback*/ ! ! GdkEvent *current_event; /* so that evas callbacks can get the gdk event.*/ gboolean updating; *************** *** 104,108 **** void gevas_queue_redraw(GtkgEvas *); gint gevas_view_redraw(gpointer data); ! GtkWidget *gevas_new(void); ! #endif /* __GTK_GEVAS_H__ */ --- 107,111 ---- void gevas_queue_redraw(GtkgEvas *); gint gevas_view_redraw(gpointer data); ! GtkWidget *gevas_new(char *); ! #endif /* __GTK_GEVAS_H__ */ Index: options.c =================================================================== RCS file: /cvsroot/evidence/evidence/src/options.c,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** options.c 6 Oct 2003 15:13:48 -0000 1.38 --- options.c 30 Oct 2003 13:21:10 -0000 1.39 *************** *** 59,62 **** --- 59,66 ---- printf("-W, --with-tooltips\twhen mouse rests on a file-icon, open info box without\n\t \t \twaiting for a click of the middle mouse-button\n"); puts(""); + #ifdef HAVE_EVAS_GL + printf("-E \t \tset evas rendering engine (software_x11, gl_x11)\n"); + #endif + puts(""); printf("-x \t \tDon't create thumbnails for icon-view\n"); printf("-y \t \tDon't create thumbnails for shelf\n"); *************** *** 186,189 **** --- 190,195 ---- {"config", 1, 0, 'c'}, + {"engine", 1, 0, 'E'}, + *************** *** 221,225 **** for(;;) { ! if((c=getopt_long(argc,argv,"MqwWmfFenNsISatibT:P:hHqvVc:d:D:g:Z:",longopts,&longopt_idx))==-1) break; --- 227,231 ---- for(;;) { ! if((c=getopt_long(argc,argv,"MqwWmfFenNsISatibT:P:hHqvVc:d:D:g:Z:E:",longopts,&longopt_idx))==-1) break; *************** *** 333,336 **** --- 339,350 ---- + + case 'E': + #ifdef HAVE_EVAS2 + ns->evas_engine=optarg; + #else + E(0,"cannot set engine unless compiled with the evas canvas\n"); + #endif + break; case 't': Index: session_private.h =================================================================== RCS file: /cvsroot/evidence/evidence/src/session_private.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** session_private.h 6 Oct 2003 15:13:48 -0000 1.1 --- session_private.h 30 Oct 2003 13:21:10 -0000 1.2 *************** *** 50,53 **** --- 50,54 ---- char *pcre, + *evas_engine, /* use OpenGL rather than straight X? */ *geometry, /* geometry string */ *cwd,*pwd,*gdb, /* current work-dir, get-dir base */ Index: tree_view.c =================================================================== RCS file: /cvsroot/evidence/evidence/src/tree_view.c,v retrieving revision 1.82 retrieving revision 1.83 diff -C2 -d -r1.82 -r1.83 *** tree_view.c 6 Oct 2003 15:13:48 -0000 1.82 --- tree_view.c 30 Oct 2003 13:21:10 -0000 1.83 *************** *** 4,7 **** --- 4,8 ---- #include "config.h" + #include "session_private.h" #include <gtk/gtk.h> *************** *** 804,808 **** memset(tv,0,sizeof(noir_treeview)); ! free(tv); } --- 805,811 ---- memset(tv,0,sizeof(noir_treeview)); ! free(tv); ! ! return NOIR_SUCC; } |