On 11/16/17 4:04 PM, Harsha Manjula Mallikarjun (RBEI/ECF3) wrote:
Hi All,

we are developing a middleware frame work for a 3D window manager.
The window manager should be able to map the client buffers to
3D shapes (cube, cylinder and so on).

Our idea is that "3D window manager" uses libweston to get client
buffers and composites them on 3D shapes. Essentially, "3D window manager"
  acts as a compositor for the system by making use of libweston
(i.e. 3D window manager is a process with libweston loaded under it and
it is the ultimate compositor of the system).

Short summary of concept implementation:
To achieve this using libweston we exported eglImages from gl-renderer
  and give control of swapping display buffer to window manager. Backend and
renderer are changed to support different modes of operation so that control to
  swap display buffer can be with window manager whenever needed.

Window manager listens to surface_commit, surface_finalize_signal,
  subsurface_add/remove Signals. Using these signals window manager will get to
  know if  there is an update to the surface OR sub-surfaces under it, and 
queries
  the respective eglImages from gl-renderer. Gl-renderer will be put into a mode
where it will not do composition. Window manager takes total control of
  composition and swapping buffer to display.

Development was started on Weston 2.0. Following patches give the
  idea of changes:

1) Make additional library to reuse code for loading backend from main.c
https://github.com/HarshaMM/weston/commit/1b193d62db53b22cc195bfe694f6b4bde07d0fd3

I have to object strongly on this one. What is the needed feature here?
Not to mention you didn’t properly namespace all the functions.

Of course, it doesn’t force people to use it, but it is just yet another command line options and INI parsing library with a few wrappers around libweston. That does not sound like a good idea to me. Also, it’s more public API/ABI to support.

Please note that I want to add the concept of libweston plugins, but these should not need argc/argv. This is just in case you used mainly this part.


2) To export EGLImages of each of the client buffers to window manager
   (same process space). Implementation primarily involves gl-renderer.
https://github.com/HarshaMM/weston/commit/d43f42aa06715b52d37df3d5d0d7fa97638d1dfc

I don’t have enough knowledge to comment on this one about implementation.
I have no strong objection to put gl-renderer in a public plugin, but it should be done with extra care, regarding making sure it’s loaded.


3) Changes to compositor.c for additional signals of surface and sub-surfaces.
https://github.com/HarshaMM/weston/commit/db335535a8b4abfee52dc1d6099e7db03e6973d4
https://github.com/HarshaMM/weston/commit/6a2f071bde56abed69c7ab827135d1cef5ea35bc
https://github.com/HarshaMM/weston/commit/a51ff22c8fab534e475fa671b1b7ed77ffc8571c
https://github.com/HarshaMM/weston/commit/d5646de516b635f5d01aa925c0c02275126e132d

These don’t seem bad, but at one point, we’d want to make struct opaques, so we probably want wrappers for listeners here.


4) Changes to Backend to enable swap from an external renderer (window manager).
https://github.com/HarshaMM/weston/commit/013e2e4eda6d67d5e32ce4aa74e0d6e18c3770f2
Same as 1.


It would be great if you can provide your thoughts about the implementation 
concept. It would
be helpful to know if there are any hard constraints/different design, due to 
which this concept
  should be entirely changed OR it is not a way to realize this using libweston.

Based on your feedback we will decide whether to continue the development, 
rebase and improve
the above patches and submit it to community.

Thanks,


--

Quentin “Sardem FF7” Glidic
_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to