What can I replace X Pixmaps with?

Pekka Paalanen ppaalanen at gmail.com
Fri Oct 11 11:16:55 UTC 2019


On Fri, 11 Oct 2019 10:58:44 +0100
Brandon Dowdy <brandonrd7 at gmail.com> wrote:

> Hi,
> 
> I know this mailing list is mainly for anything about Wayland and I know
> that Wayland doesn't deal with rendering, so this may be the wrong place to
> ask or get advice about this, but I just wanted to get some advice (and may
> be some ideas as well) for what I can replace X Pixmaps with(if I'm able to
> and if it's possible to do so, of course) since I'm feeling a bit stuck
> with that at the moment.

Hello,

to complement the other answers, you probably know that X11 Pixmaps are
server-side pixel storage you can manipulate by sending X11 requests.
This is useful because X11 has drawing commands, and keeping some data
stashed in the server can make things much more efficient. Wayland has
no drawing commands as such; you cannot tell the display server to do
your drawing. Hence Wayland has no concept of pixmaps either, no
server-side pixel storage you could tell the display server to operate
on.

Since on Wayland there is no concept of pixmaps at all, there is no
replacement really.

> I am working on a fork of a window decorator and I want to replace X
> Pixmaps with something else(or at least, an equivalent to it) so I can make
> it less X-specific and less X-reliant (and kind-of more cross-platform,
> perhaps...? If I know what I'm talking about and if you know what I'm
> talking about, that is) for rendering window decorations.

Wayland started with client-side window decorations. Clients draw all
decorations into their own buffer as an integral part of their window,
and the server adds nothing. Since then, protocol extensions have
appeared that allow negotiating with the server to use server-side
decorations. However, I don't think there is any generic interface for
plugging a window decorator into a server. So you're not just
missing a pixel storage, you're missing everything for the interface.

You'll have to change your whole architecture, so that all the
decorating happens purely inside the client or at least never involves
the display server. This also implies that you cannot decorate
application windows without the applications having explicit support
for your decorator engine.

Or, if you are targeting Wayland display servers that do support
server-side decorations, then you need to integrate with those display
servers in particular.


Thanks,
pq
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20191011/f1fb9e29/attachment.sig>


More information about the wayland-devel mailing list