Am Sun, 3 Feb 2013 14:54:29 +0900 schrieb Cedric BAIL:

> Cedric Bail
> On Feb 2, 2013 11:56 PM, "Andreas Volz" <[email protected]> wrote:
> >
> > Hello together,
> >
> > I'm currently trying to port some EFL libs to android.
> >
> > Most of EFL 1.7.5 compiles no with a lot of --disable-* flags.
> 
> You know that we won't take patch that add feature to efl stable
> branch. So starting on 1.7 could lead to a frustrating result. I
> would recommend to work on trunk instead.

Reason to work on 1.7 was that I know the package structure well and it
was easier to port one library after the other. I'm a little confused
by the new efl all-in-one lib and need to find first out how to
configure and compile single efl libs.

For sure I know patches aren't accepted. But I'll switch to trunk very
soon. Was just for my first experiments.

> > I like to try the buffer engine at first because it seems to be the
> > easiest.
> 
> You could also try sdl and sdl-gl.

After buffer is working that would be the next as there's an sdl port
for android.

> > After days of work I ported all the shared object loading horror to
> > android specific path handling. It seems to load the buffer engine
> > successful and I could run the evas code.
> >
> > After I solved many problems I'm at some part of the code where I
> > don't understand why it fails. Maybe someone with deeper knowledge
> > of evas could answer it.
> >
> > In evas_main.c / evas_engine_info_get() function there are some
> > checks:
> 
> Likely your canvas wasn't initialized. What does your test do?

I just do the plain buffer example from docs:

           Evas *canvas;
           Evas_Object *bg, *r1, *r2, *r3;

           ecore_evas_init();

           ALOG("evas initialize %d", __LINE__);

           ee = ecore_evas_buffer_new(WIDTH, HEIGHT);

           ALOG("evas initialize %d", __LINE__);
           if (!ee) goto error;

           ALOG("evas initialize %d", __LINE__);

           canvas = ecore_evas_get(ee);

           ALOG("evas initialize %d", __LINE__);

           bg = evas_object_rectangle_add(canvas);
           evas_object_color_set(bg, 255, 255, 255, 255); /* white bg */
           evas_object_move(bg, 0, 0); /* at origin */
           evas_object_resize(bg, WIDTH, HEIGHT); /* covers full canvas */
           evas_object_show(bg);

           r1 = evas_object_rectangle_add(canvas);
           evas_object_color_set(r1, 255, 0, 0, 255); /* 100% opaque red */
           evas_object_move(r1, 10, 10);
           evas_object_resize(r1, 100, 100);
           evas_object_show(r1);

           r2 = evas_object_rectangle_add(canvas);
           evas_object_color_set(r2, 0, 128, 0, 128); /* 50% opaque green */
           evas_object_move(r2, 10, 10);
           evas_object_resize(r2, 50, 50);
           evas_object_show(r2);

           r3 = evas_object_rectangle_add(canvas);
           evas_object_color_set(r3, 0, 128, 0, 255); /* 100% opaque dark green 
*/
           evas_object_move(r3, 60, 60);
           evas_object_resize(r3, 50, 50);
           evas_object_show(r3);

           ALOG("evas initialize %d", __LINE__);
           ecore_evas_manual_render(ee);
           ALOG("evas initialize %d", __LINE__);
           _scene_save(canvas, "/sdcard/evas-buffer-simple-render.ppm");
           ALOG("evas initialize %d", __LINE__);
           ecore_evas_free(ee);
           ecore_evas_shutdown();

           return 0;

        error:
                ALOG("You got to have at least one Evas engine built"
                           " and linked up to ecore-evas for this example to 
run"
                           " properly %d", __LINE__);

           ecore_evas_shutdown();
           return -1;

And I always jump on error label as ee is NULL. And as I showed below I traced 
it back
to the engine.info == NULL problem. I modified only the module loader to find 
engines 
not in subfolders, but in a flat directory structure. And from former checks I 
believe 
the buffer engine is found and loaded. Seems I need more debugging. I'm sure 
earlier or
later I'll find the problem... :-)

> > EAPI Evas_Engine_Info *
> > evas_engine_info_get(const Evas *e)
> > {
> >    Evas_Engine_Info *info;
> >
> >    MAGIC_CHECK(e, Evas, MAGIC_EVAS);
> >    return NULL;
> >    MAGIC_CHECK_END();
> >
> >    if (!e->engine.info) return NULL; ===> this returns NULL!!!
> >
> >    info = e->engine.info;
> >    ((Evas *)e)->engine.info_magic = info->magic;
> >
> >    return info;
> > }
> >
> > All initialization checks before looks good. So I don't understand
> > what is wrong at this point. After this NULL return the
> > initialization fails complete. :-(
> >
> > Could one please help me?
> 
> It's good to share your attempt.I guess a lot of people will be
> interested by your effort. I saw your attempt of discussion on irc,
> sadly I was always sleeping at that time. On what time zone are you?

CET - which time zone is yours?

regards
        Andreas


-- 
Technical Blog <http://andreasvolz.wordpress.com/>

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_jan
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to