unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: 宋文武 <iyzsong@envs.net>
To: Matt Wette <matt.wette@gmail.com>
Cc: Guile User <guile-user@gnu.org>
Subject: Re: fun with wayland
Date: Mon, 06 Feb 2023 10:59:17 +0800	[thread overview]
Message-ID: <87edr3mrcq.fsf@envs.net> (raw)
In-Reply-To: <7e5725e9-4800-05f8-1157-761158effbcc@gmail.com> (Matt Wette's message of "Sun, 5 Feb 2023 11:05:11 -0800")

Matt Wette <matt.wette@gmail.com> writes:

> I finally got my Wayland demo in guile working.  I thought I'd share
> some bits.
> (I started with creating FFI to libwayland, but with all the callbacks
> it was
> not worth it.)
>
> Wayland is a display server for Linux (and others?), meant to replace X11.
> It uses UNIX socket I/O between the "compositor" (i.e., server) and clients.
> I have written  a client app without using libwayland: I've coded down
> to the
> socket protocol in Guile Scheme.
>
> Summary:
> 1) I created sendmsg/recvmsg! wrappers for Guile, in C.  This allows me
>    to send file descriptors as shared buffer references to the server.
> 2) I am using my proposed mmap wrapper for Guile, in C, to create a file-
>    mapped shared drawing.
> 3) I created a "scanner" program in Guile that converts protocol specs
>    (e.g., wayland.xml) to scheme.
> 4) I created "sender", "receiver" and "monitor" tasks within Fibers to
>    run the client app
> 5) I used my ffi-helper generated code to use cairo for drawing.
>
> prototype code is located at https://github.com/mwette/guile-wl-play

Cool, I will definitely play/learn with it, thank you for sharing!



  reply	other threads:[~2023-02-06  2:59 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-05 19:05 fun with wayland Matt Wette
2023-02-06  2:59 ` 宋文武 [this message]
2023-02-06  7:25 ` Sascha Ziemann
2023-02-06 13:30   ` Matt Wette
2023-02-07  6:09     ` Blake Shaw
2023-02-11 21:50       ` Matt Wette
2023-02-12  8:25         ` Blake Shaw
2023-02-12 16:06           ` Matt Wette

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87edr3mrcq.fsf@envs.net \
    --to=iyzsong@envs.net \
    --cc=guile-user@gnu.org \
    --cc=matt.wette@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).