Commit Graph

4 Commits

Author SHA1 Message Date
Rafael Antognolli c46b096c78 ecore_evas/wayland: Merge code from egl and shm engines into common.
Since the render code on both engines is using the frame callback, let's
merge it to avoid code duplication.

SVN revision: 83390
2013-01-28 20:28:19 +00:00
Rafael Antognolli 1210067fbe ecore_evas/wayland_egl: Only render if last frame has been presented.
This avoids blocking in eglSwapBuffers and has the side effect of
avoiding doing unnecessary work - painting where a frame won't be
presented.

We do this by using the event that the wayland compositor will send us
to tell us that the frame has been presented. Due to the fact that
evas_render_updates() could do no work and not cause a eglSwapBuffers we
must always have a frame callback listener setup.

Original patch by: Rob Bradford <rob@linux.intel.com>

(I just adjusted the patch to the single efl tree)

SVN revision: 83387
2013-01-28 19:13:46 +00:00
Rafael Antognolli 43894851a7 efl/ecore_evas/wayland: Report the requested window width x height.
Before this commit, when using any of the wayland backends, if the user
requested an ecore_evas window of width x height, the reported size of
the window would include the frames width and height.

Now the requested size is stored on the ecore_evas and reported when
ecore_evas_geometry_get() is used, although the ecore_evas is still
created with additional space for the frame area.

This is one of the reasons causing bug #1673.

SVN revision: 83042
2013-01-21 16:05:12 +00:00
Flavio Vinicius Alvares Ceolin ad7579c129 ecore_evas: Make the engines loadable modules
Implementing support for loadables modules. It makes the engines been
loaded when they are needed. It not breakes the api, so each engine
still has its own api.

The implementation basically is:

* Functions that creates Ecore_Evas, for example
  ecore_evas_software_x11_new, request to load its module and then get
  the module's function to create the Ecore_Evas.
* The other functions such as \(.*\)_window_get from the Ecore_Evas
  its interface and then call the appropriate method.
* As there is no unified interface to communicate with the engines
  (not break api problem), all interfaces were declared in
  ecore_evas_private.h
* Now the data necessary for each module is not declared in the
  Ecore_Evas_Engine structure, instead of this, the struct has a void
  pointer that is used by the modules.
* In this first moment engines as software_x11 and gl_x11 were put
  together in the same module, but obviously exporting all the things
  necessary.


SVN revision: 80280
2012-12-05 21:15:42 +00:00