Commit Graph

443 Commits

Author SHA1 Message Date
Chris Michael d3c79b813e Fix engine_info_get function call being in the wrong place.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-29 12:56:08 +01:00
Chris Michael 25f1706fa8 Fix variable usage in framespace get. Thanks Seb ;)
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-26 07:41:17 +01:00
Chris Michael 8235272ec0 Reenable ability for async render of shm engine.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-26 07:14:58 +01:00
Rafael Antognolli 6890a0e452 evas/wayland_shm: Fix resize to the left or top when rotated. 2013-04-25 19:58:05 -03:00
Rafael Antognolli 1ec6dd5fbc evas/wayland_egl: Fix resize to the left or top when rotated. 2013-04-25 19:58:03 -03:00
Rafael Antognolli f18174f302 ecore_evas/wayland: Fix rotation when going back to 0 or 180 degrees. 2013-04-24 17:43:10 -03:00
Rafael Antognolli 0745e46d12 ecore_evas/wayland: Add support for rotation on wayland_egl backend.
Also move the common code for rotation_set from the shm engine to
wayland_common.
2013-04-24 15:24:37 -03:00
Rafael Antognolli 8ef6568ea7 ecore/evas wayland_shm: Add support for window rotation. 2013-04-23 18:52:54 -03:00
Rafael Antognolli dba2fc5aa5 ecore_evas/wayland: Change the default frame smart object.
Add 4 rectangles to be used as border of the window, instead of a single
rectangle under the framespace. This allows to move the frame object to
the top layer, instead of staying on the lowest layer. With the frame
over the other objects, there's no need of framespace clipper object,
which causes several bugs.
2013-04-23 18:52:35 -03:00
Rafael Antognolli 34d4352055 ecore_evas/wayland: Actually, the frame object should be on LAYER_MIN.
Also set the layer on the wayland_egl backend.
2013-04-18 19:39:46 -03:00
Rafael Antognolli 89960340d7 ecore_evas/wayland: Put the default frame object in a lower layer.
The frame should not stay in the same layer as the other objects. If the
application wants to allow it to be on top of the content, then it must
provide a custom frame object and set it to that layer.

NOTE: Should we make Elementary's be on a lower layer too?
2013-04-18 19:04:07 -03:00
Rafael Antognolli b73786814c ecore_evas/wayland: Ecore_Evas geometry should report the client size.
The real canvas size contains enough space for rendering the frame, but
ecore_evas_geometry_get() should be consistent accross all the engines
and report only the client area.
2013-04-02 14:39:59 -03:00
Cedric BAIL d583d08814 evas: no need for a callback per async call.
Let's not multiply our callback infrastructure without any serious need. We
already have to many of them.
2013-03-26 11:59:27 +09:00
Rafael Antognolli f9fbafae58 ecore_evas/wayland: Don't need to show and hide children of the frame.
The frame smart object inherits from clipped smart object now, so it
doesn't need to show and hide its children, as the clipper takes care of
that.
2013-03-22 15:31:21 -03:00
Rafael Antognolli 048c8f0b25 ecore_evas/wayland: Use clipped smart object for window decorations.
When creating windows directly with Ecore_Evas, instead of using
Elementary, a default smart object is provided for the frame (client
side window decorations).

Now this smart object inherits from the clipped smart object, which
means that all its member objects will be clipped to its main clipper,
being skipped when the framespace clipper checks for objects without a
clipper.

Fix a ticket, which I don't remember the number because trac doesn't
work.
2013-03-21 20:45:44 -03:00
Rafael Antognolli 7a01acd60d ecore_evas/wayland_shm: Check if the Ecore_Evas is visible on render.
Without this check, the code tries to access win->surface, which will be
NULL, causing a segfault.

Fix ticket #2304.
2013-03-20 18:06:26 -03:00
Chris Michael 873c18cc15 Force shm engine to do sync render for now.
There are stalling issues with async render that I need to look in to.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-03-12 12:52:25 +00:00
Christopher Michael 31ec0c4d7b Add Async support for Wayland Shm Engine.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
2013-03-12 12:52:25 +00:00
Christopher Michael 91a83b8cda Add Async support for wayland_shm engine.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
2013-03-12 12:52:25 +00:00
Cedric Bail 32661a5ac4 ecore_evas: re-order inclusion of header to fix compilation on Windows.
It is a very tricky things to get header order right on windows. Having that
order only in .c files simplify the work a lot. So let's try to do it with
Ecore_Evas after it rewrite and split into modules.
2013-03-12 15:58:43 +09:00
Rafael Antognolli e92bafb141 ecore_evas/wayland: Call _ecore_evas_wayland_resize on window configure.
This will update the edges info inside the Evas_Engine_Info, and make it
correctly resize to the top/left if needed.

Also call ecore_wl_window_buffer_attach() on the egl engine, since it's
needed after the ecore_wl_window_update_size().
2013-02-28 12:48:42 -03:00
Rafael Antognolli 5e507cf3d6 ecore_evas/wayland: Update window size when receiving compositor event.
This will force the window to correctly update its size when the event
is received by the compositor, rather than just after an
ecore_evas_resize().

It fixes the window resizing of non-elementary applications, since
the elementary window already deals with such resize by calling
ecore_evas_resize.
2013-02-28 12:48:42 -03:00
Rafael Antognolli dc0d88df9c ecore_evas/wayland_shm: Fixed window resize.
Using the server_allocation/allocation to determine the resize offset
was not completely precise, and causing the window to not always resize
correctly.

Additionally, calling evas_engine_info_set() on every resize step caused
the window content to blink and resize very slow, because the swap
buffer, swapper, and everything were being destroyed and recreated. Now
only the swapbuf_reconfigure is being called during the resize, which is
way faster.
2013-02-19 10:18:03 -03:00
Christopher Michael b717e948af Fix new shm engine to take resize edges into account.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
2013-02-19 10:18:02 -03:00
Christopher Michael ef76f3caab Remove blank line.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
2013-02-19 10:18:02 -03:00
Christopher Michael 886768b1e1 Remove old shm information from the private data structure.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
2013-02-19 10:18:02 -03:00
Christopher Michael 9e6b41e629 Fix formatting.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
2013-02-19 10:18:02 -03:00
Christopher Michael 5526a29417 Remove extra whitespace.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
2013-02-19 10:18:01 -03:00
Jiyoun Park c5a8a6b5ff Add infrastructure to handle message between ecore and parent ecore in Ecore_Evas
I add new example related with this. (ecore_evas_extn_socket & plug example)
ecore extn use this infrasturcture, server app and client app can communicate each other
later, this can be used to contorl access message


SVN revision: 83942
2013-02-15 09:32:40 +00:00
Rafael Antognolli 74cb944f25 ecore/wayland: Add window state changed callback to Ecore_Wl_Window.
This will allow it to report to Ecore_Evas that the window has changed
its state. Elementary uses this to update its maximized/fullscreen/other
window states internal information.

The code that uses this callback is also added to Ecore_Evas.

SVN revision: 83625
2013-02-05 12:19:40 +00:00
Rafael Antognolli cc2b953b65 ecore_evas/wayland_egl: Fix window resize when using meta+middle click.
It's needed to set the edge where the middle click is being done in
order to allow Evas know which direction the resize should take.

SVN revision: 83610
2013-02-04 18:40:14 +00:00
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 f75b01b545 ecore_evas/wayland: Add _ecore_evas_wl_common_render_updates back.
It shouldn't be removed, since it's still being used.

SVN revision: 83388
2013-01-28 19:45:41 +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
Christopher Michael 40dec84b3e Set the engine's wl_shm reference during creation.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83278
2013-01-24 09:21:04 +00:00
Christopher Michael b5c4759f1d Rename 'time' parameter in function prototype.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83275
2013-01-24 09:20:55 +00:00
Christopher Michael 0d8e6279c5 Rename 'time' parameter.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83274
2013-01-24 09:20:45 +00:00
Christopher Michael 4203a3afbc Remove unused variable.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83273
2013-01-24 09:20:40 +00:00
Christopher Michael c329317711 Modify ecore_evas_wayland_shm to handle passing the wl_shm and
wl_surface to the new double-buffer engine.

Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83270
2013-01-24 09:20:29 +00:00
Christopher Michael 7ebc5523bb Remove old line which did a wl buffer attach.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83269
2013-01-24 09:19:51 +00:00
Christopher Michael 269ce8364f Remove all old code from ecore_evas that involved creating the wayland
buffer and shm pool.

Signed-off-by: Christopher Michael <cp.michael@samsung.com>

SVN revision: 83268
2013-01-24 09:18:34 +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