KWin Effects that extend Wayland

<[email protected]> Tue, 13 Jun 2023 16:47:57 +0000
Newsgroups gmane.comp.kde.devel.kwin
Message-ID <AM0PR07MB64506CF3F3C7ADE779E0FE96F0759@AM0PR07MB6450.eurprd07.prod.outlook.com>
--_000_AM0PR07MB64506CF3F3C7ADE779E0FE96F0759AM0PR07MB6450eurp_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Dear KWiners,

Some recent developments in MBition required internally to have an effect t=
hat implements an internal Wayland protocol.


At the moment we expose KWaylandServer::Display *Effects::waylandDisplay() =
which is internal to kwin nowadays, so it makes it a bit harder to hook our=
selves into it. Here's some not-too-much-out-there solutions I can think of=
:

- we connect to wayland separately from the effect.
- we expose wl_* pointers, then we figure it out on the effect side. In gen=
eral, just wl_display should be fine, we might also need other pointers as =
the implementations need them, thinking of wl_output.
- we install kwaylandserver headers so it can be linked against.

What do you think would work best? IMO, the easiest would be installing the=
 headers, this way we can reuse the work that already is there. We don't ne=
ed to keep promises over this API.


Best,
Aleix with a new hat

If you are not the addressee, please inform us immediately that you have re=
ceived this e-mail by mistake, and delete it. We thank you for your support=
.


--_000_AM0PR07MB64506CF3F3C7ADE779E0FE96F0759AM0PR07MB6450eurp_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div class=3D"elementToProof ContentPasted0" style=3D"font-family: Calibri,=
 Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Dear KWiners,</div>
<div class=3D"elementToProof ContentPasted0" style=3D"font-family: Calibri,=
 Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div><br class=3D"ContentPasted0">
</div>
<div class=3D"ContentPasted0">Some recent developments in MBition required =
internally to have an effect that implements an internal Wayland protocol.<=
/div>
<div><br class=3D"ContentPasted0">
</div>
<div><br class=3D"ContentPasted0">
</div>
<div class=3D"ContentPasted0">At the moment we expose KWaylandServer::Displ=
ay *Effects::waylandDisplay() which is internal to kwin nowadays, so it mak=
es it a bit harder to hook ourselves into it. Here's some not-too-much-out-=
there solutions I can think of:</div>
<div><br class=3D"ContentPasted0">
</div>
<div class=3D"ContentPasted0">-&nbsp;we connect to wayland separately from =
the effect.</div>
<div class=3D"ContentPasted0">-&nbsp;we expose wl_* pointers, then we figur=
e it out on the effect side. In general, just wl_display should be fine, we=
 might also need other pointers as the implementations need them, thinking =
of wl_output.</div>
<div class=3D"ContentPasted0">-&nbsp;we install kwaylandserver headers so i=
t can be linked against.</div>
<div><br class=3D"ContentPasted0">
</div>
<div class=3D"ContentPasted0 elementToProof">What do you think would work b=
est? IMO, the easiest would be installing the headers, this way we can reus=
e the work that already is there. We don't need to keep promises over this =
API.<br>
</div>
<div><br class=3D"ContentPasted0">
</div>
<div><br class=3D"ContentPasted0">
</div>
Best,</div>
<div class=3D"elementToProof ContentPasted0" style=3D"font-family: Calibri,=
 Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Aleix with a new hat<br>
</div>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//DE">
<table cellpadding=3D"0" cellspacing=3D"0" border=3D"0">
<font face=3D"sans-serif, Arial, Helvetica" size=3D"-1" color=3D"#808080"><=
br>
If you are not the addressee, please inform us immediately that you have re=
ceived this e-mail by mistake, and delete it. We thank you for your support=
.<br>
<br>
</font>
</table>
</body>
</html>

--_000_AM0PR07MB64506CF3F3C7ADE779E0FE96F0759AM0PR07MB6450eurp_--