How to get started writing a compositing WM?

前端 未结 2 1590
忘了有多久
忘了有多久 2021-02-01 10:51

I would like to write a basic hardware-accelerated window manager, so I\'ve been looking for some documentation on how to get started, but I\'ve only managed to find this tutori

相关标签:
2条回答
  • 2021-02-01 10:52

    There are two parts in your question: 1) How to write WM 2) how to write composite manager

    Some links to help understand part two (in addition to xcompmgr source):

    • http://www.talisman.org/~erlkonig/misc/x11-composite-tutorial/ (Uses Qt, but very generic and low level)
    • https://github.com/gustavosbarreto/compmgr
    • http://projects.mini-dweeb.org/projects/unagi

    Window manager, "part one":

    • I have simple ~100 loc wm in JavaScript: https://github.com/sidorares/node-x11/blob/master/examples/windowmanager/wm.js
    • another minimalist wm (in C), good to start as a reference: https://code.google.com/p/winmalist/
    • most important keyword: SubstructureRedirect event mask. A bit of documentation here
    0 讨论(0)
  • 2021-02-01 11:00

    The original demo compositing manager was xcompmgr, which I'd recommend for understanding the underlying X extensions.

    If you're using OpenGL to do your hardware-accelerated rendering, you'll need to read up on the EXT_texture_from_pixmap extension to avoid copying window contents through userspace. That extension allows you to use hardware-accelerated blits for those copies instead.

    You'll probably also be interested in the specification for _NET_WM_SYNC_REQUEST, to allow tear-free rendering synchronized to vertical retrace.

    0 讨论(0)
提交回复
热议问题