Support
Contribute
Contact
Tracker
Navigation
Personal tools
 

Soc2008/Enlightenment win32 port


Contents

Intro

Synopsis:

Currently Enlightenment project is ported to a large number of platforms, but support of win32 is still not completed. This hinders Enlightenment from being used by a large amount of Windows users. The aim of the porting project is to make Ewl and Etk Enlightenment toolkits work on win32 platform.

Benefits:

Finishing of porting core libraries to win32 platform will help to open a way for new Enlightenment users and developers in the biggest pc sector.

project application



Timeline

Pre-phase May

Tasks:

 1. Provide MSVC projects for building Efl.
 2. Complete the list of requirements.

Provide MSVC projects for building Efl

The plan for building MSVC projects:

 1. Evil 
 2. Eet 
 3. Embryo
 4. Evas
   4.1. libevas
   4.2. engines (buffer, software_generic, ddraw, direct3d, gl_glew)
   4.3. loaders (eet, gif, jpeg, pmaps, png, tiff, xpm)
   4.4. savers (eet, png, tiff)
 5. Expedite
 6. Ecore (ecore, ecore_txt, ecore_job, ecore_win32, ecore_evas, ecore_file)
 7. Edje
 8. Efreet

Single project layout (for example Evil):

 e17/
   proto/
     evil/                        library directory
       win32/                     win32 building
         vs8/                     VS8 projects
           evil.sln               
           libevil.vcproj
           libdlfcn.vcproj 
           libmman.vcproj 
           out/                   destination directory (for *.lib, *.dll, *.exe)

In this way all of the necessary libraries will be built.

Current state:

'08.05.05 Evil and Eet projects are ready, necessary to do some reorganization for them and move ahead with other libraries.

'08.05.06 Evil, Eet, Embryo, libevas (cache, canvas, data) ready

'08.05.21 Libevas, buffer, software_generic, direct3d ready

'08.05.25 Evas engine ddraw, loaders/savers (except png), Expedite ready

'08.05.27 Ecore, Edje, Efreet ready

'08.05.29 Building notes (requested changes to Efl code) are ready

...Verification...

Phase.1 (current) June

Tasks:

 1. Move direct3d and gl_glew engine initializations from Ecore to Evas modules.
 2. Improve direct3d engine (that is, doing something like the open gl one, but with direct3d). 
 3. Add shape and dnd to ecore_win32.
 4. Try to compile ewl and test it, and fix problems in the other efl when seeing one.

Move direct3d and gl_glew engine initializations

Ecore should not have specific initialization of engines, this codes can be easily moved to proper engine modules of Evas. Thus working with these modules will be simplified.

Projects to update: Ecore_win32, Ecore_evas, Evas_engine_direct3d, Evas_engine_gl_glew, Expedite.

Current state:

'08.06.07 Complete

...Waiting for submit...

Improve direct3d engine

Currently, the engine is exactly the same as the directdraw one, and does not use all the power of the GPU. It's codes should be reviewed in this way. OpenGL engine supports the following functions that should be implemented for direct3d also (seems such;)):

  ORD(context_cutout_add);
  ORD(context_cutout_clear);
  ORD(rectangle_draw);
  ORD(line_draw);
  ORD(polygon_point_add);
  ORD(polygon_points_clear);
  ORD(polygon_draw);
  ORD(gradient_new);
  ORD(gradient_free);
  ORD(gradient_color_stop_add);
  ORD(gradient_alpha_stop_add);
  ORD(gradient_color_data_set);
  ORD(gradient_alpha_data_set);
  ORD(gradient_clear);
  ORD(gradient_fill_set);
  ORD(gradient_fill_angle_set);
  ORD(gradient_fill_spread_set);
  ORD(gradient_angle_set);
  ORD(gradient_offset_set);
  ORD(gradient_direction_set);
  ORD(gradient_type_set);
  ORD(gradient_is_opaque);
  ORD(gradient_is_visible);
  ORD(gradient_render_pre);
  ORD(gradient_render_post);
  ORD(gradient_draw);
  ORD(image_load);
  ORD(image_new_from_data);
  ORD(image_new_from_copied_data);
  ORD(image_free);
  ORD(image_size_get);
  ORD(image_size_set);
  ORD(image_dirty_region);
  ORD(image_data_get);
  ORD(image_data_put);
  ORD(image_alpha_set);
  ORD(image_alpha_get);
  ORD(image_border_set);
  ORD(image_border_get);
  ORD(image_draw);
  ORD(image_comment_get);
  ORD(image_format_get);
  ORD(image_colorspace_set);
  ORD(image_colorspace_get);
  ORD(image_native_set);
  ORD(image_native_get);
  ORD(font_draw);

Projects to change: Evas_engine_direct3d

Current state:

'08.06.17 line_draw, rectangle_draw, image_load, image_free, image_draw are ready

'08.07.06 font_draw, font_free are ready, necessary optimization however :\

...Moving ahead and testing...