On Tue, 3 Aug 2021 13:40:25 +0000 David Deyo <[email protected]> said:
> From: Carsten Haitzler<mailto:[email protected]> > Sent: Tuesday, August 3, 2021 8:13 AM > To: David Deyo<mailto:[email protected]> > Cc: > [email protected]<mailto:[email protected]> > 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 <[email protected]> said: > > > > > > > From: David Deyo<mailto:[email protected]> > > Sent: Monday, August 2, 2021 3:53 PM > > To: Pekka Paalanen<mailto:[email protected]> > > Subject: RE: xrandr and xwayland > > > > On Fri, 30 Jul 2021 23:30:38 +0100 > > Carsten Haitzler <[email protected]> wrote: > > > > > On Fri, 30 Jul 2021 16:28:02 +0000 David Deyo <[email protected]> > > > 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. > 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. > -dwd > -- > ------------- Codito, ergo sum - "I code, therefore I am" -------------- > Carsten Haitzler - [email protected] > -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- Carsten Haitzler - [email protected]
