Commit Graph

55983 Commits

Author SHA1 Message Date
Derek Foreman 10b6383640 ecore_wl2: Synchronize state with surface commits
This is really several inseparable commits mashed together, as doing this
a piece at a time would introduce broken intermediate revisions.

Double buffer incoming "configure" state from the compositor so it's held
back during asynchronous render and processed at frame completion.

Hold off on certain requests if their API has been invoked during async
render.

This should fix a lot of races, cosmetic issues, issues where weston can
kill our clients for acking configure (or not) at bad times, etc.
2017-10-12 12:24:03 -05:00
Derek Foreman 9918a2c920 ecore_wl2: Don't overwrite saved geometry if switching fs to max
If we switch from fullscreen to maximized we need to keep the pre-fs
geometry around in case we ever unmaximize AND unfullscreen.
2017-10-12 12:24:03 -05:00
Derek Foreman 10de856ee9 ecore_wl2: Don't overwrite saved geometry if switching max to fs
If we switch from maximized to fullscreen we need to keep the pre-max
geometry around in case we ever unmaximize AND unfullscreen.
2017-10-12 12:24:03 -05:00
Derek Foreman 1d1d2d76aa ecore_wl2: Push out maximize set with a display flush
We want this request to get to the compositor as soon as possible.
2017-10-12 12:24:03 -05:00
Derek Foreman da85d1330d ecore_wl2: Push out fullscreen set with a display flush
We want this request to get to the compositor as soon as possible.
2017-10-12 12:24:03 -05:00
Derek Foreman 159a5beb27 wayland_dmabuf: Clean up unused variable
Pending is useless now that we use immediate buffer creation.
2017-10-12 12:24:03 -05:00
Derek Foreman b93319b10e wayland_dmabuf: Use create_immed
We've really always needed to do immediate creates.  On a surface resize
there's no place to wait for the round trip for the new buffers to exist.

We've gotten away with this until now by good luck because we dispatch
wayland events during asynchronous render.  However, with async render off
or if schedule happens in an unfortunate order, we can end up with
tearing.
2017-10-12 12:24:03 -05:00
Derek Foreman 8e3793c90b ecore_wl2: Bind dmabuf version 2
Version 2 allows for create_immed requets.  No new events are added until
version 3, so this is a trivial update.
2017-10-12 12:24:03 -05:00
Derek Foreman 4985dee49d ecore_wl2: Fix setting empty input regions
We should still update window->input_rect when the input region is empty.
2017-10-12 12:24:03 -05:00
Derek Foreman c4b19a77b6 ecore_wl2: Fix setting empty opaque regions
We should still update window->opaque when the opaque region is empty.
2017-10-12 12:24:03 -05:00
Derek Foreman 64b36c6767 ecore_evas_wayland: Use ecore_wl2_false_commit to trigger frame callbacks
This will allow us to receive a tick without changing any other state.
2017-10-12 12:24:03 -05:00
Derek Foreman f6bd73167a ecore_wl2: Add as partial commit function for setting off a tick
This adds the concept of a "false commit" that just sends a surface
commit without changing any other state.

This is intended to be used by ecore_evas to request a frame callback
from the compositor
2017-10-12 12:24:03 -05:00
Derek Foreman 0a185d3efd ecore_wl2: Add new API to latch window state for updates
Add an API to call at the beginning of render to latch state at
that moment, and use it for the wayland engine.
2017-10-12 12:24:03 -05:00
Derek Foreman 0badc0522b ecore_wl2: Split configurations into client set and compositor requested
This should lead to clearer and more maintainable code than having one
pile of state that's asynchronously fiddled with by both client and
compositor.
2017-10-12 12:24:03 -05:00
Derek Foreman 10b3a41ab0 ecore_wl2: Move some state into its own struct
These need to be double buffered, and that will be done in a follow up
patch.
2017-10-12 12:24:03 -05:00
Derek Foreman a3ac6043ab ecore_wayland: Use ecore_wl2_window_resizing_get() to get resizing
Use the getter instead of directly accessing the structs.
2017-10-12 12:24:03 -05:00
Derek Foreman 51e2514492 ecore_wl2: Add a getter for window->resizing 2017-10-12 12:24:03 -05:00
Derek Foreman 3fba59386b ecore_wl2: Fix some @since tags
Seems my brain missed the efl release and started tagging new API
incorrectly in the doxy.

This is all beta API that should probably only be used by other EFL
internals anyway, but I suppose it's a good idea to try to be somewhat
correct.
2017-10-12 12:24:03 -05:00
Derek Foreman 7f27237171 wayland_shm: Make some function static
Only used in this file.
2017-10-12 12:24:03 -05:00
Derek Foreman 46146caa43 wayland_shm: Kill stale comment
This comment doesn't make sense now, as all the frame callback stuff
is in ecore_wl2.
2017-10-12 12:24:03 -05:00
Derek Foreman 9bcc24dbb8 wayland_dmabuf: make dlsym queried symbols static
We only need these in this file.
2017-10-12 12:24:03 -05:00
Derek Foreman e207e05067 wayland_shm: Remove hidden from the outbuf
Outbuf shouldn't have to track its hidden status, that should be ecore_evas
problem.  Until now we were doing this because our kludgey wayland
ticking made things difficult, but I think it's safe to remove now.
2017-10-12 12:24:03 -05:00
Derek Foreman 656d892581 wayland_shm: Remove hidden from surface posting calls
Now that we tick based on frame callbacks it should be impossible to post
an update while hidden.
2017-10-12 12:24:03 -05:00
Derek Foreman c72b0b44ad wayland_shm: stop storing wl_display in dmabuf_surface
Query it through the engine info's ecore_wl2_display instead.
2017-10-12 12:24:03 -05:00
Derek Foreman ceb90779ff evas_shm: Remove wl_dmabuf and wl_shm from engine info
All queries for these are now on the ecore_wl2_display
2017-10-12 12:24:03 -05:00
Derek Foreman 4a23e69bcc wayland_shm: Remove surface_set function
Now that we use the display's shm and dmabuf pointers we don't need to
update them.
2017-10-12 12:24:03 -05:00
Derek Foreman 2b9a22e3a9 wayland_dmabuf: Query zwp_linux_dmabuf_v1 from display
Get it from the display instead of using our stored copy.
2017-10-12 12:24:03 -05:00
Derek Foreman f421521bed evas_shm: query wl_shm from ecore_wl2_display
Stop using the internally stored copy, always query from active display.

This fixes session recovery.
2017-10-12 12:24:03 -05:00
Derek Foreman 3f576e8436 wayland_shm: Add Outbuf to Surface struct
We're going to need that soon.
2017-10-12 12:24:03 -05:00
Derek Foreman 5fa7263440 wayland_shm: Pass Surface instead of Shm_Surface
Surface has some variables we'll need later.
2017-10-12 12:24:03 -05:00
Derek Foreman 7faa20f3c8 wayland_shm: Handle dirty bit outside of the backends
We don't have to query that deeply to know whether we need to redraw the
buffer or not, we can make that decision in more generic code.
2017-10-12 12:24:03 -05:00
Derek Foreman 2a15d7b730 wayland_shm: Store the ecore_wl2_display in the Outbuf
We'll need it soon.
2017-10-12 12:24:03 -05:00
Stephen Houston 280ba424e4 Luncher theme: Handle space to the left, right, and bottom in the active preview better. 2017-10-12 11:37:58 -05:00
Jaehyun Cho 39cc542d7f efl_animation: Add interpolator property
Interpolator property is added to apply interpolation function.
2017-10-12 21:03:49 +09:00
Jaehyun Cho 2ae42b00ab ecore: Add Efl.Interpolator class
Efl.Interpolator class is to interpolate a value.
Efl.Interpolator class has the following interpolation function classes
as its subclasses.

Efl.Interpolator.Linear
Efl.Interpolator.Accelerate
Efl.Interpolator.Decelerate
Efl.Interpolator.Sinusoidal
Efl.Interpolator.Divisor
Efl.Interpolator.Bounce
Efl.Interpolator.Spring
Efl.Interpolator.Cubic_Bezier
2017-10-12 21:03:49 +09:00
Jaehyun Cho e83facfb37 efl_animation: Add repeat_mode property
To not display original state when the reverse repeat starts, the
animators in group parallel and group sequential are deleted.
2017-10-12 21:03:49 +09:00
Jaehyun Cho 595f47e202 efl_animation: Add start_delay property
Add start_delay property to delay the given amount of time in seconds
from when the animation starts until the animation is animated.
2017-10-12 21:03:49 +09:00
Jaehyun Cho 108994d383 efl_animation: Add repeat_count property 2017-10-12 21:03:49 +09:00
Jaehyun Cho 87a14507b2 efl_animation: Add pause and resume methods
Add target_map_reset method to fix flicking issue when animation is
paused and resumed.
2017-10-12 21:03:49 +09:00
Jaehyun Cho a6e03da5f0 efl_animation: Support event animation
Register an animation for an event.
Start the animation when the event happens.
2017-10-12 21:03:49 +09:00
Jaehyun Cho 4112a68e32 efl_animation: Add sequential group animation and object
Efl.Animation.Group.Sequential is a class for animations started in
sequence.
Efl.Animation.Object.Group.Sequential is a class which provides
methods for an object of Efl.Animation.Group.Sequential.
The objects added into the sequential group animation object start
in sequence.
2017-10-12 21:03:49 +09:00
Jaehyun Cho 923a5b02eb efl_animation: Add parallel group animation and object
Efl.Animation.Group.Parallel is a class for animations started in
parallel.
Efl.Animation.Object.Group.Parallel is a class which provides methods
for an object of Efl.Animation.Group.Parallel.
The objects added into the parallel group animation object start in
parallel.
2017-10-12 21:03:49 +09:00
Jaehyun Cho 861a90415c efl_animation: Add group animation object 2017-10-12 21:03:49 +09:00
Jaehyun Cho e1a73fffb9 efl_animation: Add group animation
Efl.Animation.Group is an abstract class which provides methods for
group animations such as parallel and sequential group animations.
2017-10-12 21:03:49 +09:00
Jaehyun Cho 5a1147d643 efl_animation: Add translate animation object 2017-10-12 21:03:49 +09:00
Jaehyun Cho f01c96e542 efl_animation: Add translate animation 2017-10-12 21:03:49 +09:00
Jaehyun Cho 5540520846 efl_animation: Add scale animation object 2017-10-12 21:03:49 +09:00
Jaehyun Cho c3865609c9 efl_animation: Add scale animation 2017-10-12 21:03:49 +09:00
Jaehyun Cho 29917e4e91 efl_animation: Add rotate animation object 2017-10-12 21:03:49 +09:00
Jaehyun Cho d4f96f9728 efl_animation: Add rotate animation 2017-10-12 21:03:49 +09:00