How to maintain relative position of two surfaces?

Jasper St. Pierre jstpierre at mecheye.net
Thu Sep 25 07:33:43 PDT 2014


Note that ivi-shell is designed for embedded systems, and won't be
implemented by traditional desktop systems. It depends on the type of
application you're writing. If you want to write a traditional desktop
application, ivi-shell isn't for you.

On Thu, Sep 25, 2014 at 1:32 AM, Ucan, Emre (ADITG/SW1) <
eucan at de.adit-jv.com> wrote:

>  Hi,
>
>
>
> you can do it with weston-ivi-shell. IVI-Shell introduces layer concept to
> weston.
>
>
>
> A layer is a group of surfaces which can be moved or resized together.
>
>
>
> But IVI-Shell is just an interface and you have to implement your own APIs
> to use it.
>
>
>
> Wayland-IVI-Extension is a set of readily implemented APIs which are using
> weston-ivi-shell.
>
>
>
> Some example APIs:
>
>
>
> *ilm_layerSetPosition *
>
> *“*Sets the horizontal and vertical position of the layer. Relative
> position of layer’s surfaces would be maintained.”
>
>
>
> *ilm_layerSetDestinationRectangle *
>
> *“*Set the destination area on the display for a layer. The layer will be
> scaled and positioned to this rectangle
>
> for rendering.”
>
>
>
> *ilm_layerSetVisibility*
>
> “Sets the visibility  for all surfaces of a layer”
>
>
>
> *ilm_layerSetVisibility*
>
> “Sets the opacity for all surfaces of a layer”
>
>
>
> You can get more information from the website:
> http://projects.genivi.org/wayland-ivi-extension/home
>
>
>
> If you are interested I can help you to install & use it.
>
>
>
> Best regards
>
> *Emre Ucan*
> Software Group I (ADITG/SW1)
>
> Tel. +49 5121 49 6937
>
> *From:* wayland-devel [mailto:wayland-devel-bounces at lists.freedesktop.org]
> *On Behalf Of *Hongze Zhao
> *Sent:* Donnerstag, 25. September 2014 03:49
> *To:* Jasper St. Pierre
> *Cc:* wayland mailing list
> *Subject:* Re: How to maintain relative position of two surfaces?
>
>
>
> I am not familiar with subsurfaces as I am new to weston. I will look at
> it and see how it works.
>
>
>
> Thanks,
>
> Hongze
>
>
>
> On Wed, Sep 24, 2014 at 8:45 PM, Jasper St. Pierre <jstpierre at mecheye.net>
> wrote:
>
> This sounds like you want to use subsurfaces, then.
>
> Any reason you can't just draw the child surface on top of the father
> surface, though?
>
>
>
> On Wed, Sep 24, 2014 at 6:16 PM, Hongze Zhao <zhaohongze at gmail.com> wrote:
>
> Hi Jasper,
>
>
>
> Thanks for reply.
>
>
>
> Here is my use case.
>
>
>
> Suppose we have a client called "father", who has a larger surface called
> "father surface" and a client called "child", whose smaller surface is
> "child surface". The child surface should be displayed in a given relative
> position above father surface and maintain their relative position. When I
> move father surface, the child surface will be moved together. But the
> child surface cannot be moved. Thus the child surface will looks like a
> part of father surface. I just need it works in the simplest scenario. I
> assume the two surfaces is in the same workspace, both surfaces cannot be
> resized, maximized or fullscreened. The two clients and compositor should
> work together to achieve this goal.
>
>
>
> I know this is a weird use case. I am just wondering if there is some
> natural or easy way to implement this functionality. Or I have to do a lot
> of modifications.
>
>
>
> Thanks,
>
> Hongze
>
>
>
>
>
> On Wed, Sep 24, 2014 at 7:54 PM, Jasper St. Pierre <jstpierre at mecheye.net>
> wrote:
>
> The only way to position surfaces relatively one to another is by using a
> subsurface. But I imagine this isn't exactly what you want.
>
> Can you explain a bit more about your use case? What happens if I put one
> surface on a different workspace from the others? Should the two be stacked
> independently (e.g. your window A, my terminal, your window B)? What
> happens when I resize the surfaces? Or maximize or fullscreen them?
>
>
>
> On Wed, Sep 24, 2014 at 5:49 PM, Hongze Zhao <zhaohongze at gmail.com> wrote:
>
>    Hi All,
>
>
>
> I am doing some experiments on weston compositor. I am wondering if
> someone could give me some hints about how to maintain relative position of
> two surfaces.
>
>
>
> Suppose I have two wayland clients. After I grab and move the surface of
> one client, I would like to maintain the relative positions of the the
> surfaces from two clients. Thus I have to automatically update the position
> of the other surface.
>
>
>
> I feel that surface position is stored in an instance of weston_view,
> which is mainly maintained by desktop-shell. So I am not sure if there is
> some easy way to achieve my goal by modifying desktop-shell.
>
>
>
> Thanks,
>
> Hongze
>
>
>
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
>
>
>
>
> --
>   Jasper
>
>
>
>
>
> --
>
> Hongze Zhao
>
> Department of Computer Science
>
> Duke University
>
> Email: zhaohongze at gmail.com
>
>
>
>   --
>   Jasper
>
>
>
>
>
> --
>
> Hongze Zhao
>
> Department of Computer Science
>
> Duke University
>
> Email: zhaohongze at gmail.com
>
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
>
>


-- 
  Jasper
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/wayland-devel/attachments/20140925/6f092e81/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.png
Type: image/png
Size: 3046 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/wayland-devel/attachments/20140925/6f092e81/attachment-0001.png>


More information about the wayland-devel mailing list