[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [E-devel] Problems with Enlightenment on MAEMO / Nokia770



On Fri, 21 Jul 2006 17:31:17 +0200 "Seb Dev" <sebdev@gmail.com> babbled:

> Hello list,
> 
> I'm a MAEMO beginner and I try to run a binary on a nokia 770. I have two
> problems, maybe some of you can help me :-)
> 
> 1/
> My program initialises an evas (enlightenment) that uses the X11 software
> engine using this code :
> 
>    Window              win;
>    XSetWindowAttributes attr;
>    XClassHint          chint;
> 
>    disp = XOpenDisplay(NULL);
>    *if* (!disp)
>    {
>       printf("Error: cannot open display.\n");
>       exit(-1);
>    }
> 
>    attr.backing_store = NotUseful;
>    attr.colormap = DefaultColormap(disp, DefaultScreen(disp));
>    attr.border_pixel = 0;
>    attr.background_pixmap = None;
>    attr.event_mask = ExposureMask | ButtonPressMask |
> ButtonReleaseMask | PointerMotionMask |StructureNotifyMask
> |KeyPressMask;
>    attr.bit_gravity = ForgetGravity;
> 
> 
>   win = XCreateWindow(disp, DefaultRootWindow(disp), 0, 0, win_w, win_h, 0,
>       DefaultDepth(disp, DefaultScreen(disp)), InputOutput,
>       DefaultVisual(disp, DefaultScreen(disp)),
>       CWBackingStore | CWColormap |
>       CWBackPixmap | CWBorderPixel |
>       CWBitGravity | CWEventMask, &attr);
> 
>    XSetClassHint(disp, win, &chint);
> 
> #if 0
>    szhints.flags = PMinSize | PMaxSize | PSize | USSize;
>    szhints.min_width = szhints.max_width = win_w;
>    szhints.min_height = szhints.max_height = win_h;
>    XSetWMNormalHints(disp, win, &szhints);#endif
> 
>    XMapWindow(disp, win);
>    XSync(disp, False);
> 
>   **
>    evas_init();
> 
>    evas = evas_new();
>    evas_output_method_set(evas, evas_render_method_lookup("software_x11"));
>    evas_output_size_set(evas, win_w, win_h);
>    evas_output_viewport_set(evas, 0, 0, win_w, win_h);
> 
>  {
>       Evas_Engine_Info_Software_X11 *einfo;
> 
>       einfo = (Evas_Engine_Info_Software_X11 *) evas_engine_info_get(evas);
> **
>       einfo->info.display = disp;
>       einfo->info.visual = DefaultVisual(disp, DefaultScreen(disp));
>       einfo->info.colormap = DefaultColormap(disp, DefaultScreen(disp));
>       einfo->info.drawable = win;
>       einfo->info.depth = DefaultDepth(disp, DefaultScreen(disp));
>       einfo->info.rotation = 0;
>       einfo->info.debug = 0;
>       evas_engine_info_set(evas, (Evas_Engine_Info *) einfo);
>    }
> 
> 
> 
> This program works well in PC environment and in scratchbox MAEMO
> environment, but I have a segmentation fault when I launch it on Nokia 770
> on line
> einfo->info.display = display;

einfo will be NULL - thus the segv - it's probably because evas on the 770
either doesnt have the software_x11 engine compiled & installed or it's
installed weirdly/incorrectly and can't find the software_x11 engine as it is a
loadable module, not compiled-in :)

> I don't understand why, maybe because of the X11 software engine ?
> 
> (NB) Before launching the program, I have to make a
> export DISPLAY=:0
> 
> 2/  Second problem :
> 
>    imlib_context_set_image(buffer);
>    imlib_save_image("file.jpg");
> 
>    evas_object_del(tmp);
>    tmp = evas_object_image_add(evas);
>    evas_image_cache_reload (evas);**
>    evas_object_image_file_set(tmp, "file.jpg", NULL);
> 
> 
> The function imlib_save_image works well in PC environment and in scratchbox
> MAEMO environment, but on the Nokia770, no file.jpg is created and I don't
> have any error code in return.

might be the same problem- loaders are loadable modules loaded at runtime -
can't be found - maybe dlopen() is not working properly in both cases?

> That's why evas_object_image_file_set return a segmentation fault after.

this shouldn't be segving - it should silently fail- unless something deeper is
wrong - eg... dlopen... :(

> Any idea to explain why imlib_save_image("file.jpg") creates no file.jpg ? I
> execute the program in /home/username on nokia770.
> 
> Thanks a lot in advance for your response,
> 
> Seb Dev
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    raster@rasterman.com
裸好多
Tokyo, Japan (東京 日本)