Peter Wehrfritz wrote:
> Graham Gower schrieb:
>> Peter Wehrfritz wrote:
>>> I committed it without the @EVAS_LIBS@, because Vincent told me that 
>>> it is not needed. Can you check please if it works now? Since I don't 
>>> have ecore_fb installed, I cannot test it myself.
>>
>> Yes, this works fine.
> 
> Nice :)
>>
>> One other issue which may require attention is
>> ewl/src/engines/evas_fb/ewl_engine_evas_fb.c: ee_canvas_setup(), line 190
>>
>> ewl_object_geometry_request(EWL_OBJECT(win), 0, 0, 240, 320);
>>
>> This hardcoded size 240x320 is a problem on our 480x272 framebuffer. It
>> causes evas to try to access mmap()ed framebuffer memory outside the
>> size that is actually mmap()ed. Hardcoding the geometry request to 
>> 480x272
>> made the problem go away.
>>
>> Perhaps this value can be obtained from the size of the framebuffer
>> instead? I didn't see a 'struct fb_var_screeninfo' lying around, or I'd
>> have used that and sent a patch.
> 
> Indeed, hardcoding the value is very bad. As I said before I've never 
> used the evas_fb engine, so I have no experience with it. Maybe it is 
> possible to query the size with ecore_fb_size_get().

Cool, I tested this and it works for me (with ewl_simple_test).

--- /home/ggower/ewl_engine_fb.c        2008-12-15 09:06:40.000000000 +1030
+++ ewl/src/engines/evas_fb/ewl_engine_evas_fb.c        2008-12-15 
09:06:25.000000000 +1030
@@ -165,6 +165,7 @@
         Evas_Engine_Info *info = NULL;
         Evas_Engine_Info_FB *fbinfo;
         Ewl_Object *o;
+        int w, h;
 
         DENTER_FUNCTION(DLEVEL_STABLE);
         DCHECK_PARAM_PTR(win);
@@ -187,7 +188,9 @@
         fbinfo->info.refresh = 0;
         fbinfo->info.rotation = 0;
         evas_engine_info_set(evas, (Evas_Engine_Info *)fbinfo);
-        ewl_object_geometry_request(EWL_OBJECT(win), 0, 0, 240, 320);
+
+        ecore_fb_size_get(&w, &h);
+        ewl_object_geometry_request(EWL_OBJECT(win), 0, 0, w, h);
 
         o = EWL_OBJECT(win);
         evas_engine_info_set(evas, info);


ewl_test, on the other hand, still tries to write past the end of the
framebuffer (it did with a hardcoded value too).
Something is adding 4 pixels to the x and y dimensions.

Core was generated by `ewl_test'.
Program terminated with signal 11, Segmentation fault.
[New process 560]
#0  evas_common_convert_rgba2_to_16bpp_rgb_565_dith (src=0x2cebe120, 
    dst=<value optimized out>, src_jump=<value optimized out>, 
    dst_jump=<value optimized out>, w=484, h=276, dith_x=0, dith_y=0, pal=0x0)
    at evas_convert_rgb_16.c:111
111     evas_convert_rgb_16.c: No such file or directory.
        in evas_convert_rgb_16.c
(gdb) bt
#0  evas_common_convert_rgba2_to_16bpp_rgb_565_dith (src=0x2cebe120, 
    dst=<value optimized out>, src_jump=<value optimized out>, 
    dst_jump=<value optimized out>, w=484, h=276, dith_x=0, dith_y=0, pal=0x0)
    at evas_convert_rgb_16.c:111
#1  0x2ccbfd08 in evas_fb_outbuf_fb_push_updated_region (buf=0x4aea00, 
    update=0x4f1070, x=0, y=0, w=484, h=276) at evas_outbuf.c:319
#2  0x2ccbd8b4 in eng_output_redraws_next_update_push (data=0x4ae9e8, 
    surface=0x4f1070, x=0, y=0, w=484, h=276) at evas_engine.c:223
#3  0x2abf9060 in evas_render_updates_internal (e=0x4a3bc0, 
    make_updates=0 '\0', do_draw=1 '\001') at evas_render.c:522
#4  0x2bb06dcc in ee_canvas_render (embed=0x48a4f0) at ewl_engine_evas.c:140
#5  0x2b044fd8 in ewl_engine_canvas_render (embed=0x48a4f0)
    at ewl_engines.c:1043
#6  0x2b0b29b4 in ewl_idle_render (data=<value optimized out>)
    at ewl_misc.c:541
#7  0x2ad309c0 in _ecore_idle_enterer_call () at ecore_idle_enterer.c:101
#8  0x2ad358b0 in _ecore_main_loop_iterate_internal (once_only=0)
    at ecore_main.c:653
#9  0x2ad35d78 in ecore_main_loop_begin () at ecore_main.c:88
#10 0x2b0b06b0 in ewl_main () at ewl_misc.c:416
#11 0x00402dfc in main (argc=1, argv=0x7fccfa94) at ewl_test.c:236

> 
> Another known issues with the fb engine is that it only supports one 
> window, so menu, popups and other windows most probably don't work. 
> There is already a bug report for that 
> http://bugs.enlightenment.org/show_bug.cgi?id=79. I must admit that I 
> haven't cared much about it yet, but it is on our TODO list :). Help is, 
> of course, appreciated :).

Although popups would be very useful, multiple windows aren't really an
issue for me at this point. Touchscreen input is far more important.

I'll keep chipping away at things as time allows.

> 
> Sorry for the delay
> 
> Peter

-Graham

------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to