From: Carsten Haitzler<mailto:ras...@rasterman.com> Sent: Tuesday, August 3, 2021 9:38 AM To: David Deyo<mailto:dd...@tireprofiles.com> Cc: wayland-devel@lists.freedesktop.org<mailto:wayland-devel@lists.freedesktop.org> Subject: Re: FW: xrandr and xwayland
CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe. On Tue, 3 Aug 2021 13:40:25 +0000 David Deyo <dd...@tireprofiles.com> said: > From: Carsten Haitzler<mailto:ras...@rasterman.com> > Sent: Tuesday, August 3, 2021 8:13 AM > To: David Deyo<mailto:dd...@tireprofiles.com> > Cc: > wayland-devel@lists.freedesktop.org<mailto:wayland-devel@lists.freedesktop.org> > Subject: Re: FW: xrandr and xwayland > > CAUTION: This email originated from outside of the organization. Do not click > links or open attachments unless you recognize the sender and know the > content is safe. > > > On Tue, 3 Aug 2021 13:04:11 +0000 David Deyo <dd...@tireprofiles.com> said: > > > > > > > From: David Deyo<mailto:dd...@tireprofiles.com> > > Sent: Monday, August 2, 2021 3:53 PM > > To: Pekka Paalanen<mailto:ppaala...@gmail.com> > > Subject: RE: xrandr and xwayland > > > > On Fri, 30 Jul 2021 23:30:38 +0100 > > Carsten Haitzler <ras...@rasterman.com> wrote: > > > > > On Fri, 30 Jul 2021 16:28:02 +0000 David Deyo <dd...@tireprofiles.com> > > > said: > > > > > > No - this is up to the compositor itself to do in its own internal ways. > > > Far too many abuses have happened over the years with xrandr available to > > > any client anywhere. While in theory a wayland compositor could create an > > > extension that works like xrandr, it'd be problematic to make it > > > general-access like xrandr. > > > > >>>Indeed. > > > > > > > > > > Hello everyone, > > > > > > > > I need to rotate my screen 90 degrees and back to normal in xwayland on > > > > an iMX8 running gatesgarth distro. > > > > >>>Maybe you could explain your top-level use case for this, and the > > >>>general system architecture (which relevant programs are running and > > >>>what their responsibilities are)? > > > > Distro: > > I am working on a product that our company is creating. It uses an imx8 som > > from Boundary. The system is not a normal desktop. The DISTRO is created by > > yocto using the gatesgarth branch. Just recently we were notified that > > Xwayland was working, so I don’t expect we will be removing it just yet. > > > > > > Use case: > > We will have a kiosk-looking desktop. Some of our pages will have the > > option for the end user to enter text from an on-screen keyboard. Since our > > display will be so small (68.04mm (2.68") x 120.96mm (4.76")), we will have > > to turn our unit sideways to make the keyboard fit. We have already done > > this on a smaller screen (1.0). On our 1.0 product, we used Segger as our > > graphics library. Compared to Android, and the like, it seems like > > rotating the screen would be a standard capability. > > > > I believe our compositor (Weston) can do it, transform=90, but to use this > > method, it has to be restarted; causing our gui app to crash and lose all > > entered data. The client probably needs to drive the orientation. > > Considering our gui will likely be in python3/tkinter, I will need some way > > create a page and rotate the display. > > > > I am somewhat limited by the packages available to me in my distro. > > > > > >The right way here is to modify Weston to do on-the-fly rotation > > > > >without a restart. You also will want a custom protocol from client to > > > > >compositor to indicate when a client surface wants rotation. This way > > > > >the compositor can correctly rotate the client content and any other > > > > >on-screen content at the time > > > > > (e.g. keyboard) when that client surface is the active visible one > > > > > (as a kiosk > > > > >style only one will be active/visible at a time - except for things > > > > >like keyboard etc.). When you switch which surface is the active one > > > > >then the compositor can re-evaluate how to draw on the screen based on > > > > >what that client has requested rotation-wise. > Thank you, > A custom protocol makes sense. > > 1. What’s the best way to communicate with Weston, socket, message, > function call? > > > > > >Wayland protocol. You can create extensions as XML files and use > > > > > >wayland-scanner to generate C code to handle that protocol. Ok, thanks. > 2. How would Weston actually rotate the display, in particular on the fly? > In the Weston documentation, it states that a super-kbd key and middle mouse > button should rotate the display (if supported). I’d like to find where that > is, as well. > > > > > >Any number of ways. It could modify the KMS device properties for > > > > > >that output > > > > > >to rotate. It could render rotated (in GL transform the triangle > > > > > >coordinates > > > > > >when rendering) or in software render the pixels rotated as you read > > > > > >and write > > > > > >them from one place to another (various algorithms can be used > > > > > >here). Weston > > > > > >already can do these so it's just a matter of gluing together the > > > > > >code with > > > > > >your protocol and some logic. Excellent, along with rotation, I will also need to keep touch working correctly. Does that decide any of the ways over the other? -dwd > -dwd > -- > ------------- Codito, ergo sum - "I code, therefore I am" -------------- > Carsten Haitzler - ras...@rasterman.com > -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- Carsten Haitzler - ras...@rasterman.com