summaryrefslogtreecommitdiff
path: root/config/nvim-1/undo/%home%coast%Projects%wayland%window.c
blob: bc5fc5931543ecc89d7de2fdeef9942bd9aad858 (plain)
ofshex dumpascii
0000 56 69 6d 9f 55 6e 44 6f e5 00 03 2c 61 f9 87 33 29 80 de f2 1e 1f 8e 94 d4 56 89 c6 1a d6 65 85 Vim.UnDo...,a..3)........V....e.
0020 db b3 27 23 34 aa 53 c2 ac 09 6b 00 00 00 dd 00 00 00 01 7d 00 00 00 aa 00 00 00 01 00 00 00 01 ..'#4.S...k........}............
0040 00 00 00 38 00 00 00 00 00 00 00 38 00 00 00 38 00 00 00 38 00 00 00 00 69 9d 8a 77 04 01 00 00 ...8.......8...8...8....i..w....
0060 00 18 00 5f d0 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 ..._............................
0080 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01e0 00 00 00 00 00 00 00 69 9d 68 35 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 .......i.h5.....................
0200 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 ..........................5.....
0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2c 00 00 00 01 00 00 00 00 00 00 00 00 00 ..................,.............
0240 00 00 00 00 00 00 00 00 00 00 70 05 00 00 00 00 00 00 35 81 5f d0 00 00 00 01 00 00 00 03 00 00 ..........p.......5._...........
0260 00 00 00 00 00 00 00 00 00 02 00 00 00 2d 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 .............-..................
0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d 68 37 04 01 00 00 ........................i.h7....
03e0 00 02 00 f5 18 00 00 00 00 00 00 00 29 00 00 00 2d 00 00 00 2c 00 00 00 1b 23 69 6e 63 6c 75 64 ............)...-...,....#includ
0400 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 26 23 69 6e 63 6c 75 64 65 e.<wayland-client.h>...&#include
0420 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 ."xdg-shell-client-protocol.h"..
0440 00 00 00 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 69 73 70 6c 61 79 ......struct.wl_display.*display
0460 3b 00 00 00 1d 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 ;....struct.wl_registry.*registr
0480 79 3b 00 00 00 21 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 y;...!struct.wl_compositor.*comp
04a0 6f 73 69 74 6f 72 3b 00 00 00 1c 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 ositor;....struct.xdg_wm_base.*w
04c0 6d 5f 62 61 73 65 3b 00 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 m_base;....struct.wl_surface.*su
04e0 72 66 61 63 65 3b 00 00 00 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 64 rface;....struct.xdg_surface.*xd
0500 67 5f 73 75 72 66 61 63 65 3b 00 00 00 1e 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 g_surface;....struct.xdg_topleve
0520 6c 20 2a 74 6f 70 6c 65 76 65 6c 3b 00 00 00 00 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 l.*toplevel;.......Fstatic.void.
0540 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 registry_handler(void.*data,.str
0560 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 79 2c 00 00 00 40 20 20 uct.wl_registry.*registry,...@..
0580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 ...........................uint3
05a0 32 5f 74 20 69 64 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 6e 74 65 72 66 61 63 65 2c 00 00 2_t.id,.const.char.*interface,..
05c0 00 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 .0.............................u
05e0 69 6e 74 33 32 5f 74 20 76 65 72 73 69 6f 6e 29 20 7b 00 00 00 32 20 20 20 20 69 66 20 28 73 74 int32_t.version).{...2....if.(st
0600 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 rcmp(interface,."wl_compositor")
0620 20 3d 3d 20 30 29 20 7b 00 00 00 33 20 20 20 20 20 20 20 20 63 6f 6d 70 6f 73 69 74 6f 72 20 3d .==.0).{...3........compositor.=
0640 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 00 .wl_registry_bind(registry,.id,.
0660 00 00 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..D.............................
0680 20 20 20 20 20 20 20 20 20 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 ..........&wl_compositor_interfa
06a0 63 65 2c 20 34 29 3b 00 00 00 37 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 ce,.4);...7....}.else.if.(strcmp
06c0 28 69 6e 74 65 72 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 20 3d 3d 20 30 29 (interface,."xdg_wm_base").==.0)
06e0 20 7b 00 00 00 30 20 20 20 20 20 20 20 20 77 6d 5f 62 61 73 65 20 3d 20 77 6c 5f 72 65 67 69 73 .{...0........wm_base.=.wl_regis
0700 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 00 00 00 3e 20 20 20 20 20 20 try_bind(registry,.id,...>......
0720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 78 64 .............................&xd
0740 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 05 20 20 20 20 g_wm_base_interface,.1);........
0760 7d 00 00 00 01 7d 00 00 00 00 00 00 00 3e 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 }....}.......>static.const.struc
0780 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 69 73 74 72 79 5f t.wl_registry_listener.registry_
07a0 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 15 20 20 20 20 72 65 67 69 73 74 72 79 5f 68 61 6e listener.=.{........registry_han
07c0 64 6c 65 72 2c 00 00 00 08 20 20 20 20 4e 55 4c 4c 00 00 00 02 7d 3b 00 00 00 00 00 00 00 0c 69 dler,........NULL....};........i
07e0 6e 74 20 6d 61 69 6e 28 29 20 7b 00 00 00 27 20 20 20 20 64 69 73 70 6c 61 79 20 3d 20 77 6c 5f nt.main().{...'....display.=.wl_
0800 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 30 20 20 20 20 72 65 display_connect(NULL);...0....re
0820 67 69 73 74 72 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 gistry.=.wl_display_get_registry
0840 28 64 69 73 70 6c 61 79 29 3b 00 00 00 41 20 20 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 (display);...A....wl_registry_ad
0860 64 5f 6c 69 73 74 65 6e 65 72 28 72 65 67 69 73 74 72 79 2c 20 26 72 65 67 69 73 74 72 79 5f 6c d_listener(registry,.&registry_l
0880 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 22 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 istener,.NULL);..."....wl_displa
08a0 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 00 00 00 00 00 37 20 20 20 y_roundtrip(display);.......7...
08c0 20 73 75 72 66 61 63 65 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f .surface.=.wl_compositor_create_
08e0 73 75 72 66 61 63 65 28 63 6f 6d 70 6f 73 69 74 6f 72 29 3b 00 00 00 40 20 20 20 20 78 64 67 5f surface(compositor);...@....xdg_
0900 73 75 72 66 61 63 65 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 surface.=.xdg_wm_base_get_xdg_su
0920 72 66 61 63 65 28 77 6d 5f 62 61 73 65 2c 20 73 75 72 66 61 63 65 29 3b 00 00 00 35 20 20 20 20 rface(wm_base,.surface);...5....
0940 74 6f 70 6c 65 76 65 6c 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 toplevel.=.xdg_surface_get_tople
0960 76 65 6c 28 78 64 67 5f 73 75 72 66 61 63 65 29 3b 00 00 00 00 00 00 00 1f 20 20 20 20 77 6c 5f vel(xdg_surface);............wl_
0980 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 00 00 00 00 2a surface_commit(surface);.......*
09a0 20 20 20 20 77 68 69 6c 65 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 64 ....while.(wl_display_dispatch(d
09c0 69 73 70 6c 61 79 29 29 20 7b 00 00 00 05 20 20 20 20 7d 00 00 00 00 00 00 00 0d 20 20 20 20 72 isplay)).{........}............r
09e0 65 74 75 72 6e 20 30 3b 35 81 f5 18 00 00 00 00 00 00 00 00 09 00 00 00 2b 00 00 00 02 00 00 00 eturn.0;5...............+.......
0a00 27 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 5a 05 00 00 00 00 00 00 20 05 00 00 00 00 00 00 '...............Z...............
0a20 35 81 5f d0 00 00 00 02 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 02 00 00 00 00 5._.............................
0a40 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ba0 00 00 00 00 00 00 69 9d 68 57 04 01 00 00 00 00 00 f5 18 00 00 00 02 00 00 00 04 00 00 00 2a 00 ......i.hW....................*.
0bc0 00 00 01 00 00 00 00 f5 18 00 00 00 02 00 00 00 04 00 00 00 29 00 00 00 00 35 81 f5 18 00 00 00 ....................)....5......
0be0 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 43 00 00 00 00 00 00 .........................C......
0c00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 f5 18 00 00 00 00 02 00 00 00 00 00 00 00 00 ................................
0c20 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 43 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 ...............C................
0c40 00 00 00 00 00 00 00 f5 18 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 ................................
0c60 00 13 00 00 00 43 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 13 00 00 00 00 00 00 00 35 81 5f .....C.......................5._
0c80 d0 00 00 00 03 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 03 00 00 00 12 00 00 00 ................................
0ca0 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e00 00 00 00 69 9d 68 5b 04 01 00 00 00 03 00 f5 18 00 00 00 01 00 00 00 04 00 00 00 2a 00 00 00 02 ...i.h[....................*....
0e20 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 ....#include.<wayland-client.h>.
0e40 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 35 81 f5 18 00 00 00 00 01 00 ...#include.<string.h>5.........
0e60 00 00 0a 00 00 00 01 00 00 00 10 00 00 00 01 00 00 00 18 00 00 00 31 00 00 00 00 00 00 00 22 00 ......................1.......".
0e80 00 00 00 00 00 00 22 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 04 00 00 00 06 00 00 00 00 00 00 ......".......5._...............
0ea0 00 00 00 00 00 05 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 ................................
0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 2a ...............................*
1000 00 00 00 00 00 00 00 00 00 00 00 56 00 00 00 00 00 00 00 00 69 9d 68 b1 04 01 00 00 00 00 00 f5 ...........V........i.h.........
1020 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 2a 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 ................*...&#include."x
1040 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 13 23 dg-shell-client-protocol.h"....#
1060 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c include.<string.h>....#include.<
1080 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 00 00 00 00 1b 73 74 72 75 63 74 20 wayland-client.h>........struct.
10a0 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 69 73 70 6c 61 79 3b 00 00 00 1d 73 74 72 75 63 74 20 77 wl_display.*display;....struct.w
10c0 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 79 3b 00 00 00 21 73 74 72 75 63 74 20 l_registry.*registry;...!struct.
10e0 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 6f 73 69 74 6f 72 3b 00 00 00 1c 73 74 wl_compositor.*compositor;....st
1100 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 5f 62 61 73 65 3b 00 00 00 1b 73 74 ruct.xdg_wm_base.*wm_base;....st
1120 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 72 66 61 63 65 3b 00 00 00 20 73 74 72 ruct.wl_surface.*surface;....str
1140 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 64 67 5f 73 75 72 66 61 63 65 3b 00 00 00 uct.xdg_surface.*xdg_surface;...
1160 1e 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 3b 00 .struct.xdg_toplevel.*toplevel;.
1180 00 00 00 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 ......Fstatic.void.registry_hand
11a0 6c 65 72 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 ler(void.*data,.struct.wl_regist
11c0 72 79 20 2a 72 65 67 69 73 74 72 79 2c 00 00 00 40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ry.*registry,...@...............
11e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 20 63 6f 6e 73 74 ..............uint32_t.id,.const
1200 20 63 68 61 72 20 2a 69 6e 74 65 72 66 61 63 65 2c 00 00 00 30 20 20 20 20 20 20 20 20 20 20 20 .char.*interface,...0...........
1220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 76 65 72 73 69 ..................uint32_t.versi
1240 6f 6e 29 20 7b 00 00 00 30 20 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c on).{...0..if.(strcmp(interface,
1260 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 20 3d 3d 20 30 29 20 7b 00 00 00 4d 20 20 20 ."wl_compositor").==.0).{...M...
1280 20 63 6f 6d 70 6f 73 69 74 6f 72 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 .compositor.=.wl_registry_bind(r
12a0 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 egistry,.id,.&wl_compositor_inte
12c0 72 66 61 63 65 2c 20 34 29 3b 00 00 00 35 20 20 7d 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d rface,.4);...5..}.else.if.(strcm
12e0 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 20 3d 3d 20 30 p(interface,."xdg_wm_base").==.0
1300 29 20 7b 00 00 00 48 20 20 20 20 77 6d 5f 62 61 73 65 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 ).{...H....wm_base.=.wl_registry
1320 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 _bind(registry,.id,.&xdg_wm_base
1340 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 _interface,.1);......}....}.....
1360 00 00 4f 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 ..Ostatic.const.struct.wl_regist
1380 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 3d 20 ry_listener.registry_listener.=.
13a0 7b 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 2c 00 00 00 44 20 20 20 20 20 20 20 20 20 20 {registry_handler,...D..........
13c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
13e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4e 55 4c 4c 7d 3b 00 00 00 00 00 00 ....................NULL};......
1400 00 0c 69 6e 74 20 6d 61 69 6e 28 29 20 7b 00 00 00 25 20 20 64 69 73 70 6c 61 79 20 3d 20 77 6c ..int.main().{...%..display.=.wl
1420 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 2e 20 20 72 65 67 _display_connect(NULL);......reg
1440 69 73 74 72 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 istry.=.wl_display_get_registry(
1460 64 69 73 70 6c 61 79 29 3b 00 00 00 3f 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c display);...?..wl_registry_add_l
1480 69 73 74 65 6e 65 72 28 72 65 67 69 73 74 72 79 2c 20 26 72 65 67 69 73 74 72 79 5f 6c 69 73 74 istener(registry,.&registry_list
14a0 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 ener,.NULL);......wl_display_rou
14c0 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 00 00 00 00 00 35 20 20 73 75 72 66 61 63 ndtrip(display);.......5..surfac
14e0 65 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 e.=.wl_compositor_create_surface
1500 28 63 6f 6d 70 6f 73 69 74 6f 72 29 3b 00 00 00 3e 20 20 78 64 67 5f 73 75 72 66 61 63 65 20 3d (compositor);...>..xdg_surface.=
1520 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 77 6d 5f .xdg_wm_base_get_xdg_surface(wm_
1540 62 61 73 65 2c 20 73 75 72 66 61 63 65 29 3b 00 00 00 33 20 20 74 6f 70 6c 65 76 65 6c 20 3d 20 base,.surface);...3..toplevel.=.
1560 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 78 64 67 5f 73 75 72 xdg_surface_get_toplevel(xdg_sur
1580 66 61 63 65 29 3b 00 00 00 00 00 00 00 1d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 face);..........wl_surface_commi
15a0 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 00 00 00 00 28 20 20 77 68 69 6c 65 20 28 77 6c 5f 64 t(surface);.......(..while.(wl_d
15c0 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 64 69 73 70 6c 61 79 29 29 20 7b 00 00 00 03 20 isplay_dispatch(display)).{.....
15e0 20 7d 00 00 00 00 00 00 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 .}..........return.0;....}5.....
1600 00 00 00 00 00 00 00 00 00 00 2a 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 ..........*.....................
1620 00 00 4b 05 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 05 00 00 00 07 00 00 ..K...............5._...........
1640 00 00 00 00 00 00 00 00 00 06 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 ................................
1660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 ................................
17a0 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 56 00 00 00 00 00 00 00 00 69 9d 68 b2 04 01 00 00 ...............V........i.h.....
17c0 00 00 00 f5 18 00 00 00 7c 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 7d f5 18 00 00 00 7d ........|................}.....}
17e0 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 ................................
1800 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 ....................5...........
1820 00 00 00 00 00 00 00 00 00 00 00 00 7c 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ............|...................
1840 00 00 00 00 ee 0d 00 00 00 00 00 00 35 81 5f d0 00 00 00 06 00 00 00 08 00 00 00 00 00 00 00 00 ............5._.................
1860 00 00 00 07 00 00 00 7d 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 .......}........................
1880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 00 ................................
19c0 00 00 00 00 00 00 00 00 00 56 00 00 00 00 00 00 00 00 69 9d 68 b3 04 01 00 00 00 05 00 f5 18 00 .........V........i.h...........
19e0 00 00 00 00 00 00 64 00 00 00 7d 00 00 00 7c 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 ......d...}...|....#include.<way
1a00 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f land-client.h>....#include.<sys/
1a20 6d 6d 61 6e 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 mman.h>....#include.<unistd.h>..
1a40 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 ..#include.<fcntl.h>....#include
1a60 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e .<string.h>....#include.<stdlib.
1a80 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 26 23 69 6e 63 h>....#include.<stdio.h>...&#inc
1aa0 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e lude."xdg-shell-client-protocol.
1ac0 68 22 00 00 00 00 00 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 69 73 h"........struct.wl_display.*dis
1ae0 70 6c 61 79 3b 00 00 00 1d 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 play;....struct.wl_registry.*reg
1b00 69 73 74 72 79 3b 00 00 00 21 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a istry;...!struct.wl_compositor.*
1b20 63 6f 6d 70 6f 73 69 74 6f 72 3b 00 00 00 13 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 compositor;....struct.wl_shm.*sh
1b40 6d 3b 00 00 00 1c 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 5f 62 61 73 m;....struct.xdg_wm_base.*wm_bas
1b60 65 3b 00 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 72 66 61 63 65 e;....struct.wl_surface.*surface
1b80 3b 00 00 00 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 64 67 5f 73 75 72 ;....struct.xdg_surface.*xdg_sur
1ba0 66 61 63 65 3b 00 00 00 1e 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f face;....struct.xdg_toplevel.*to
1bc0 70 6c 65 76 65 6c 3b 00 00 00 00 00 00 00 17 73 74 61 74 69 63 20 69 6e 74 20 72 75 6e 6e 69 6e plevel;........static.int.runnin
1be0 67 20 3d 20 31 3b 00 00 00 00 00 00 00 24 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 62 61 73 g.=.1;.......$static.void.wm_bas
1c00 65 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 2c 00 00 00 35 20 20 20 20 20 20 20 20 20 20 e_ping(void.*data,...5..........
1c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 ...............struct.xdg_wm_bas
1c40 65 20 2a 77 6d 5f 62 61 73 65 2c 00 00 00 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.*wm_base,...).................
1c60 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 00 00 00 01 7b 00 00 00 ........uint32_t.serial)....{...
1c80 26 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 5f 62 61 73 65 2c 20 73 &....xdg_wm_base_pong(wm_base,.s
1ca0 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 3d 73 74 61 74 69 63 20 63 6f 6e 73 74 erial);....}.......=static.const
1cc0 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f .struct.xdg_wm_base_listener.wm_
1ce0 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 10 20 20 20 20 77 6d 5f 62 61 73 65 base_listener.=.{........wm_base
1d00 5f 70 69 6e 67 00 00 00 02 7d 3b 00 00 00 00 00 00 00 2d 73 74 61 74 69 63 20 76 6f 69 64 20 78 _ping....};.......-static.void.x
1d20 64 67 5f 73 75 72 66 61 63 65 5f 63 6f 6e 66 69 67 75 72 65 28 76 6f 69 64 20 2a 64 61 74 61 2c dg_surface_configure(void.*data,
1d40 00 00 00 42 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...B............................
1d60 20 20 20 20 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 64 67 5f 73 75 ......struct.xdg_surface.*xdg_su
1d80 72 66 61 63 65 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rface,...2......................
1da0 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 00 00 00 01 ............uint32_t.serial)....
1dc0 7b 00 00 00 33 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 {...3....xdg_surface_ack_configu
1de0 72 65 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 re(xdg_surface,.serial);....}...
1e00 00 00 00 00 41 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 ....Astatic.const.struct.xdg_sur
1e20 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e face_listener.xdg_surface_listen
1e40 65 72 20 3d 20 7b 00 00 00 19 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 63 6f 6e 66 69 67 er.=.{........xdg_surface_config
1e60 75 72 65 00 00 00 02 7d 3b 00 00 00 00 00 00 00 28 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 ure....};.......(static.void.reg
1e80 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 61 74 61 2c 00 00 00 3a 20 20 20 istry_handler(void.*data,...:...
1ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 ..........................struct
1ec0 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 79 2c 00 00 00 29 20 20 20 20 20 .wl_registry.*registry,...).....
1ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 ........................uint32_t
1f00 20 69 64 2c 00 00 00 33 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .id,...3........................
1f20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 6e 74 65 72 66 61 63 65 2c 00 00 00 2e 20 .....const.char.*interface,.....
1f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 ............................uint
1f60 33 32 5f 74 20 76 65 72 73 69 6f 6e 29 00 00 00 01 7b 00 00 00 30 20 20 20 20 69 66 20 28 73 74 32_t.version)....{...0....if.(st
1f80 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 rcmp(interface,."wl_compositor")
1fa0 20 3d 3d 20 30 29 00 00 00 33 20 20 20 20 20 20 20 20 63 6f 6d 70 6f 73 69 74 6f 72 20 3d 20 77 .==.0)...3........compositor.=.w
1fc0 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 00 00 00 l_registry_bind(registry,.id,...
1fe0 43 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 C...............................
2000 20 20 20 20 20 20 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c .......&wl_compositor_interface,
2020 20 34 29 3b 00 00 00 00 00 00 00 2e 20 20 20 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 .4);............else.if.(strcmp(
2040 69 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d 22 29 20 3d 3d 20 30 29 00 00 00 2c 20 20 interface,."wl_shm").==.0)...,..
2060 20 20 20 20 20 20 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 ......shm.=.wl_registry_bind(reg
2080 69 73 74 72 79 2c 20 69 64 2c 00 00 00 35 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 istry,.id,...5..................
20a0 20 20 20 20 20 20 20 20 20 20 20 20 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 .............&wl_shm_interface,.
20c0 31 29 3b 00 00 00 00 00 00 00 35 20 20 20 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 1);.......5....else.if.(strcmp(i
20e0 6e 74 65 72 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 20 3d 3d 20 30 29 20 7b nterface,."xdg_wm_base").==.0).{
2100 00 00 00 30 20 20 20 20 20 20 20 20 77 6d 5f 62 61 73 65 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 ...0........wm_base.=.wl_registr
2120 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 00 00 00 3e 20 20 20 20 20 20 20 20 y_bind(registry,.id,...>........
2140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 78 64 67 5f ...........................&xdg_
2160 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 43 20 20 20 20 20 20 wm_base_interface,.1);...C......
2180 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 77 6d 5f 62 61 ..xdg_wm_base_add_listener(wm_ba
21a0 73 65 2c 20 26 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 se,.&wm_base_listener,.NULL);...
21c0 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 3e 73 74 61 74 69 63 20 63 6f 6e 73 74 20 .....}....}.......>static.const.
21e0 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 69 struct.wl_registry_listener.regi
2200 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 15 20 20 20 20 72 65 67 69 73 74 72 stry_listener.=.{........registr
2220 79 5f 68 61 6e 64 6c 65 72 2c 00 00 00 08 20 20 20 20 4e 55 4c 4c 00 00 00 02 7d 3b 00 00 00 00 y_handler,........NULL....};....
2240 00 00 00 27 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 ...'static.int.create_shm_file(s
2260 69 7a 65 5f 74 20 73 69 7a 65 29 00 00 00 01 7b 00 00 00 2c 20 20 20 20 63 68 61 72 20 74 65 6d ize_t.size)....{...,....char.tem
2280 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 77 61 79 6c 61 6e 64 2d 73 68 6d 2d 58 58 58 58 58 58 22 3b plate[].=."/wayland-shm-XXXXXX";
22a0 00 00 00 1f 20 20 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 74 ........int.fd.=.mkstemp(templat
22c0 65 29 3b 00 00 00 15 20 20 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 18 e);........unlink(template);....
22e0 20 20 20 20 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 0e 20 20 20 20 ....ftruncate(fd,.size);........
2300 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0a 69 6e 74 20 6d 61 69 6e 28 return.fd;....}........int.main(
2320 29 00 00 00 01 7b 00 00 00 27 20 20 20 20 64 69 73 70 6c 61 79 20 3d 20 77 6c 5f 64 69 73 70 6c )....{...'....display.=.wl_displ
2340 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 30 20 20 20 20 72 65 67 69 73 74 72 ay_connect(NULL);...0....registr
2360 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 64 69 73 70 y.=.wl_display_get_registry(disp
2380 6c 61 79 29 3b 00 00 00 41 20 20 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 lay);...A....wl_registry_add_lis
23a0 74 65 6e 65 72 28 72 65 67 69 73 74 72 79 2c 20 26 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e tener(registry,.&registry_listen
23c0 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 22 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 er,.NULL);..."....wl_display_rou
23e0 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 00 00 00 00 00 37 20 20 20 20 73 75 72 66 ndtrip(display);.......7....surf
2400 61 63 65 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 ace.=.wl_compositor_create_surfa
2420 63 65 28 63 6f 6d 70 6f 73 69 74 6f 72 29 3b 00 00 00 40 20 20 20 20 78 64 67 5f 73 75 72 66 61 ce(compositor);...@....xdg_surfa
2440 63 65 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 ce.=.xdg_wm_base_get_xdg_surface
2460 28 77 6d 5f 62 61 73 65 2c 20 73 75 72 66 61 63 65 29 3b 00 00 00 29 20 20 20 20 78 64 67 5f 73 (wm_base,.surface);...)....xdg_s
2480 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 78 64 67 5f 73 75 72 66 61 63 65 2c urface_add_listener(xdg_surface,
24a0 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...:............................
24c0 20 26 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 .&xdg_surface_listener,.NULL);..
24e0 00 35 20 20 20 20 74 6f 70 6c 65 76 65 6c 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 .5....toplevel.=.xdg_surface_get
2500 5f 74 6f 70 6c 65 76 65 6c 28 78 64 67 5f 73 75 72 66 61 63 65 29 3b 00 00 00 00 00 00 00 1f 20 _toplevel(xdg_surface);.........
2520 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 ...wl_surface_commit(surface);..
2540 00 22 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 73 70 6c ."....wl_display_roundtrip(displ
2560 61 79 29 3b 00 00 00 00 00 00 00 14 20 20 20 20 69 6e 74 20 77 69 64 74 68 20 3d 20 32 30 30 3b ay);............int.width.=.200;
2580 00 00 00 15 20 20 20 20 69 6e 74 20 68 65 69 67 68 74 20 3d 20 32 30 30 3b 00 00 00 1b 20 20 20 ........int.height.=.200;.......
25a0 20 69 6e 74 20 73 74 72 69 64 65 20 3d 20 77 69 64 74 68 20 2a 20 34 3b 00 00 00 1f 20 20 20 20 .int.stride.=.width.*.4;........
25c0 69 6e 74 20 73 69 7a 65 20 3d 20 73 74 72 69 64 65 20 2a 20 68 65 69 67 68 74 3b 00 00 00 00 00 int.size.=.stride.*.height;.....
25e0 00 00 23 20 20 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 ..#....int.fd.=.create_shm_file(
2600 73 69 7a 65 29 3b 00 00 00 21 20 20 20 20 76 6f 69 64 20 2a 64 61 74 61 20 3d 20 6d 6d 61 70 28 size);...!....void.*data.=.mmap(
2620 4e 55 4c 4c 2c 20 73 69 7a 65 2c 00 00 00 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 NULL,.size,...-.................
2640 20 20 20 20 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 00 00 00 29 .....PROT_READ.|.PROT_WRITE,...)
2660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 41 50 5f 53 48 41 52 45 44 ......................MAP_SHARED
2680 2c 20 66 64 2c 20 30 29 3b 00 00 00 00 00 00 00 1c 20 20 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 ,.fd,.0);............uint32_t.*p
26a0 69 78 65 6c 73 20 3d 20 64 61 74 61 3b 00 00 00 2c 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 ixels.=.data;...,....for.(int.i.
26c0 3d 20 30 3b 20 69 20 3c 20 77 69 64 74 68 20 2a 20 68 65 69 67 68 74 3b 20 69 2b 2b 29 00 00 00 =.0;.i.<.width.*.height;.i++)...
26e0 33 20 20 20 20 20 20 20 20 70 69 78 65 6c 73 5b 69 5d 20 3d 20 30 78 66 66 66 66 30 30 30 30 3b 3........pixels[i].=.0xffff0000;
2700 20 2f 2f 20 73 6f 6c 69 64 20 72 65 64 20 28 41 52 47 42 29 00 00 00 00 00 00 00 1e 20 20 20 20 .//.solid.red.(ARGB)............
2720 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 00 00 00 2a 20 20 struct.wl_shm_pool.*pool.=...*..
2740 20 20 20 20 20 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 73 68 6d 2c 20 66 64 ......wl_shm_create_pool(shm,.fd
2760 2c 20 73 69 7a 65 29 3b 00 00 00 00 00 00 00 1e 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 ,.size);............struct.wl_bu
2780 66 66 65 72 20 2a 62 75 66 66 65 72 20 3d 00 00 00 27 20 20 20 20 20 20 20 20 77 6c 5f 73 68 6d ffer.*buffer.=...'........wl_shm
27a0 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 00 00 00 24 20 20 20 _pool_create_buffer(pool,...$...
27c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 ...............................0
27e0 2c 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,...(...........................
2800 20 20 20 20 20 20 20 77 69 64 74 68 2c 00 00 00 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......width,...)...............
2820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 65 69 67 68 74 2c 00 00 00 29 20 20 ...................height,...)..
2840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2860 73 74 72 69 64 65 2c 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 stride,...:.....................
2880 20 20 20 20 20 20 20 20 20 20 20 20 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 .............WL_SHM_FORMAT_ARGB8
28a0 38 38 38 29 3b 00 00 00 00 00 00 00 2d 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 888);.......-....wl_surface_atta
28c0 63 68 28 73 75 72 66 61 63 65 2c 20 62 75 66 66 65 72 2c 20 30 2c 20 30 29 3b 00 00 00 1f 20 20 ch(surface,.buffer,.0,.0);......
28e0 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 ..wl_surface_commit(surface);...
2900 00 00 00 00 36 20 20 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 20 26 26 20 77 6c 5f 64 69 ....6....while.(running.&&.wl_di
2920 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 64 69 73 70 6c 61 79 29 29 20 7b 7d 00 00 00 00 00 splay_dispatch(display)).{}.....
2940 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 30 3b 35 81 f5 18 00 00 00 00 00 00 00 00 09 00 00 00 .......return.0;5...............
2960 7b 00 00 00 02 00 00 00 62 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 d8 0d 00 00 00 00 00 00 {.......b.......................
2980 d5 0b 00 00 00 00 00 00 35 81 5f d0 00 00 00 07 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 08 ........5._.....................
29a0 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
29c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
29e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d 69 91 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 ..............i.i...............
2b20 00 00 02 00 00 00 00 00 00 00 64 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 ..........d...&#include."xdg-she
2b40 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 ll-client-protocol.h"....#includ
2b60 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 e.<fcntl.h>....#include.<stdio.h
2b80 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 >....#include.<stdlib.h>....#inc
2ba0 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 lude.<string.h>....#include.<sys
2bc0 2f 6d 6d 61 6e 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 /mman.h>....#include.<unistd.h>.
2be0 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 ...#include.<wayland-client.h>..
2c00 00 00 00 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 69 73 70 6c 61 79 ......struct.wl_display.*display
2c20 3b 00 00 00 1d 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 ;....struct.wl_registry.*registr
2c40 79 3b 00 00 00 21 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 y;...!struct.wl_compositor.*comp
2c60 6f 73 69 74 6f 72 3b 00 00 00 13 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 ositor;....struct.wl_shm.*shm;..
2c80 00 1c 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 5f 62 61 73 65 3b 00 00 ..struct.xdg_wm_base.*wm_base;..
2ca0 00 1b 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 72 66 61 63 65 3b 00 00 00 ..struct.wl_surface.*surface;...
2cc0 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 64 67 5f 73 75 72 66 61 63 65 .struct.xdg_surface.*xdg_surface
2ce0 3b 00 00 00 1e 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 ;....struct.xdg_toplevel.*toplev
2d00 65 6c 3b 00 00 00 00 00 00 00 17 73 74 61 74 69 63 20 69 6e 74 20 72 75 6e 6e 69 6e 67 20 3d 20 el;........static.int.running.=.
2d20 31 3b 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 62 61 73 65 5f 70 69 1;.......Astatic.void.wm_base_pi
2d40 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 ng(void.*data,.struct.xdg_wm_bas
2d60 65 20 2a 77 6d 5f 62 61 73 65 2c 00 00 00 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.*wm_base,...+.................
2d80 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 24 20 20 ........uint32_t.serial).{...$..
2da0 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 5f 62 61 73 65 2c 20 73 65 72 69 61 6c xdg_wm_base_pong(wm_base,.serial
2dc0 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4b 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 );....}.......Kstatic.const.stru
2de0 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 62 61 73 65 5f ct.xdg_wm_base_listener.wm_base_
2e00 6c 69 73 74 65 6e 65 72 20 3d 20 7b 77 6d 5f 62 61 73 65 5f 70 69 6e 67 7d 3b 00 00 00 00 00 00 listener.=.{wm_base_ping};......
2e20 00 4e 73 74 61 74 69 63 20 76 6f 69 64 20 78 64 67 5f 73 75 72 66 61 63 65 5f 63 6f 6e 66 69 67 .Nstatic.void.xdg_surface_config
2e40 75 72 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 ure(void.*data,.struct.xdg_surfa
2e60 63 65 20 2a 78 64 67 5f 73 75 72 66 61 63 65 2c 00 00 00 34 20 20 20 20 20 20 20 20 20 20 20 20 ce.*xdg_surface,...4............
2e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 73 ......................uint32_t.s
2ea0 65 72 69 61 6c 29 20 7b 00 00 00 31 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f erial).{...1..xdg_surface_ack_co
2ec0 6e 66 69 67 75 72 65 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 nfigure(xdg_surface,.serial);...
2ee0 01 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 .}.......Astatic.const.struct.xd
2f00 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c g_surface_listener.xdg_surface_l
2f20 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 1b 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 63 istener.=.{........xdg_surface_c
2f40 6f 6e 66 69 67 75 72 65 7d 3b 00 00 00 00 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 onfigure};.......Fstatic.void.re
2f60 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 gistry_handler(void.*data,.struc
2f80 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 79 2c 00 00 00 40 20 20 20 20 t.wl_registry.*registry,...@....
2fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f .........................uint32_
2fc0 74 20 69 64 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 6e 74 65 72 66 61 63 65 2c 00 00 00 30 t.id,.const.char.*interface,...0
2fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e .............................uin
3000 74 33 32 5f 74 20 76 65 72 73 69 6f 6e 29 20 7b 00 00 00 2e 20 20 69 66 20 28 73 74 72 63 6d 70 t32_t.version).{......if.(strcmp
3020 28 69 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 20 3d 3d 20 (interface,."wl_compositor").==.
3040 30 29 00 00 00 4d 20 20 20 20 63 6f 6d 70 6f 73 69 74 6f 72 20 3d 20 77 6c 5f 72 65 67 69 73 74 0)...M....compositor.=.wl_regist
3060 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 ry_bind(registry,.id,.&wl_compos
3080 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 00 00 00 00 2c 20 20 65 6c 73 itor_interface,.4);.......,..els
30a0 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d 22 e.if.(strcmp(interface,."wl_shm"
30c0 29 20 3d 3d 20 30 29 00 00 00 3f 20 20 20 20 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 ).==.0)...?....shm.=.wl_registry
30e0 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 _bind(registry,.id,.&wl_shm_inte
3100 72 66 61 63 65 2c 20 31 29 3b 00 00 00 00 00 00 00 33 20 20 65 6c 73 65 20 69 66 20 28 73 74 72 rface,.1);.......3..else.if.(str
3120 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 20 3d 3d cmp(interface,."xdg_wm_base").==
3140 20 30 29 20 7b 00 00 00 48 20 20 20 20 77 6d 5f 62 61 73 65 20 3d 20 77 6c 5f 72 65 67 69 73 74 .0).{...H....wm_base.=.wl_regist
3160 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 ry_bind(registry,.id,.&xdg_wm_ba
3180 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 3f 20 20 20 20 78 64 67 5f 77 6d 5f se_interface,.1);...?....xdg_wm_
31a0 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 77 6d 5f 62 61 73 65 2c 20 26 77 6d 5f 62 base_add_listener(wm_base,.&wm_b
31c0 61 73 65 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d ase_listener,.NULL);......}....}
31e0 00 00 00 00 00 00 00 4f 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 .......Ostatic.const.struct.wl_r
3200 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e egistry_listener.registry_listen
3220 65 72 20 3d 20 7b 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 2c 00 00 00 44 20 20 20 20 20 er.=.{registry_handler,...D.....
3240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4e 55 4c 4c 7d 3b 00 .........................NULL};.
3280 00 00 00 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c ......)static.int.create_shm_fil
32a0 65 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 2a 20 20 63 68 61 72 20 74 65 6d 70 6c e(size_t.size).{...*..char.templ
32c0 61 74 65 5b 5d 20 3d 20 22 2f 77 61 79 6c 61 6e 64 2d 73 68 6d 2d 58 58 58 58 58 58 22 3b 00 00 ate[].=."/wayland-shm-XXXXXX";..
32e0 00 1d 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 74 65 29 3b 00 ....int.fd.=.mkstemp(template);.
3300 00 00 13 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 16 20 20 66 74 72 75 .....unlink(template);......ftru
3320 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b ncate(fd,.size);......return.fd;
3340 00 00 00 01 7d 00 00 00 00 00 00 00 0c 69 6e 74 20 6d 61 69 6e 28 29 20 7b 00 00 00 25 20 20 64 ....}........int.main().{...%..d
3360 69 73 70 6c 61 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c isplay.=.wl_display_connect(NULL
3380 29 3b 00 00 00 2e 20 20 72 65 67 69 73 74 72 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 );......registry.=.wl_display_ge
33a0 74 5f 72 65 67 69 73 74 72 79 28 64 69 73 70 6c 61 79 29 3b 00 00 00 3f 20 20 77 6c 5f 72 65 67 t_registry(display);...?..wl_reg
33c0 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 72 65 67 69 73 74 72 79 2c 20 26 72 65 istry_add_listener(registry,.&re
33e0 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 20 20 20 77 6c 5f gistry_listener,.NULL);......wl_
3400 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 00 00 00 display_roundtrip(display);.....
3420 00 00 35 20 20 73 75 72 66 61 63 65 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 ..5..surface.=.wl_compositor_cre
3440 61 74 65 5f 73 75 72 66 61 63 65 28 63 6f 6d 70 6f 73 69 74 6f 72 29 3b 00 00 00 3e 20 20 78 64 ate_surface(compositor);...>..xd
3460 67 5f 73 75 72 66 61 63 65 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f g_surface.=.xdg_wm_base_get_xdg_
3480 73 75 72 66 61 63 65 28 77 6d 5f 62 61 73 65 2c 20 73 75 72 66 61 63 65 29 3b 00 00 00 45 20 20 surface(wm_base,.surface);...E..
34a0 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 78 64 67 5f 73 75 72 xdg_surface_add_listener(xdg_sur
34c0 66 61 63 65 2c 20 26 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c face,.&xdg_surface_listener,.NUL
34e0 4c 29 3b 00 00 00 33 20 20 74 6f 70 6c 65 76 65 6c 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f L);...3..toplevel.=.xdg_surface_
3500 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 78 64 67 5f 73 75 72 66 61 63 65 29 3b 00 00 00 00 00 00 get_toplevel(xdg_surface);......
3520 00 1d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 ....wl_surface_commit(surface);.
3540 00 00 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 .....wl_display_roundtrip(displa
3560 79 29 3b 00 00 00 00 00 00 00 12 20 20 69 6e 74 20 77 69 64 74 68 20 3d 20 32 30 30 3b 00 00 00 y);..........int.width.=.200;...
3580 13 20 20 69 6e 74 20 68 65 69 67 68 74 20 3d 20 32 30 30 3b 00 00 00 19 20 20 69 6e 74 20 73 74 ...int.height.=.200;......int.st
35a0 72 69 64 65 20 3d 20 77 69 64 74 68 20 2a 20 34 3b 00 00 00 1d 20 20 69 6e 74 20 73 69 7a 65 20 ride.=.width.*.4;......int.size.
35c0 3d 20 73 74 72 69 64 65 20 2a 20 68 65 69 67 68 74 3b 00 00 00 00 00 00 00 21 20 20 69 6e 74 20 =.stride.*.height;.......!..int.
35e0 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 4b 20 fd.=.create_shm_file(size);...K.
3600 20 76 6f 69 64 20 2a 64 61 74 61 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 .void.*data.=.mmap(NULL,.size,.P
3620 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 ROT_READ.|.PROT_WRITE,.MAP_SHARE
3640 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 00 00 00 00 1a 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 69 D,.fd,.0);..........uint32_t.*pi
3660 78 65 6c 73 20 3d 20 64 61 74 61 3b 00 00 00 2a 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 xels.=.data;...*..for.(int.i.=.0
3680 3b 20 69 20 3c 20 77 69 64 74 68 20 2a 20 68 65 69 67 68 74 3b 20 69 2b 2b 29 00 00 00 2f 20 20 ;.i.<.width.*.height;.i++).../..
36a0 20 20 70 69 78 65 6c 73 5b 69 5d 20 3d 20 30 78 66 66 66 66 30 30 30 30 3b 20 2f 2f 20 73 6f 6c ..pixels[i].=.0xffff0000;.//.sol
36c0 69 64 20 72 65 64 20 28 41 52 47 42 29 00 00 00 00 00 00 00 3f 20 20 73 74 72 75 63 74 20 77 6c id.red.(ARGB).......?..struct.wl
36e0 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f _shm_pool.*pool.=.wl_shm_create_
3700 70 6f 6f 6c 28 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 00 00 00 00 37 20 20 73 74 pool(shm,.fd,.size);.......7..st
3720 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 66 65 72 20 3d 20 77 6c 5f 73 68 6d 5f ruct.wl_buffer.*buffer.=.wl_shm_
3740 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 00 00 00 3e 20 20 20 20 20 20 70 6f 6f pool_create_buffer(...>......poo
3760 6c 2c 20 30 2c 20 77 69 64 74 68 2c 20 68 65 69 67 68 74 2c 20 73 74 72 69 64 65 2c 20 57 4c 5f l,.0,.width,.height,.stride,.WL_
3780 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 00 00 00 00 2b 20 20 77 SHM_FORMAT_ARGB8888);.......+..w
37a0 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 73 75 72 66 61 63 65 2c 20 62 75 66 66 65 72 l_surface_attach(surface,.buffer
37c0 2c 20 30 2c 20 30 29 3b 00 00 00 1d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 ,.0,.0);......wl_surface_commit(
37e0 73 75 72 66 61 63 65 29 3b 00 00 00 00 00 00 00 33 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e surface);.......3..while.(runnin
3800 67 20 26 26 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 64 69 73 70 6c 61 79 g.&&.wl_display_dispatch(display
3820 29 29 20 7b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 00 )).{......}..........return.0;..
3840 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 64 00 00 00 00 00 00 00 01 00 00 00 00 ..}5...............d............
3860 00 00 00 00 00 00 00 00 00 00 00 ec 0b 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 ...........................5._..
3880 00 00 08 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 09 00 00 00 01 00 00 00 00 00 00 00 00 ff ................................
38a0 ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a00 00 69 9d 69 92 04 01 00 00 00 00 00 f5 18 00 00 00 93 00 00 00 00 00 00 00 00 00 00 00 01 00 00 .i.i............................
3a20 00 01 7d f5 18 00 00 00 94 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 ..}.............................
3a40 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 .............................5..
3a60 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 93 00 00 00 01 00 00 00 00 00 00 ................................
3a80 00 00 00 00 00 00 00 00 00 00 00 00 00 fd 0f 00 00 00 00 00 00 35 81 5f d0 00 00 00 09 00 00 00 .....................5._........
3aa0 0b 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 94 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 ................................
3ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d 69 93 04 ...........................i.i..
3c20 01 00 00 00 06 00 f5 18 00 00 00 00 00 00 00 7b 00 00 00 94 00 00 00 93 00 00 00 1b 23 69 6e 63 ...............{............#inc
3c40 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 15 23 69 6e 63 6c lude.<wayland-client.h>....#incl
3c60 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e ude.<sys/mman.h>....#include.<un
3c80 69 73 74 64 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 istd.h>....#include.<fcntl.h>...
3ca0 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 .#include.<string.h>....#include
3cc0 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 .<stdlib.h>....#include.<stdio.h
3ce0 3e 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d >...&#include."xdg-shell-client-
3d00 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 00 00 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 64 69 73 protocol.h"........struct.wl_dis
3d20 70 6c 61 79 20 2a 64 69 73 70 6c 61 79 3b 00 00 00 1d 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 play.*display;....struct.wl_regi
3d40 73 74 72 79 20 2a 72 65 67 69 73 74 72 79 3b 00 00 00 21 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d stry.*registry;...!struct.wl_com
3d60 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 6f 73 69 74 6f 72 3b 00 00 00 13 73 74 72 75 63 74 20 77 positor.*compositor;....struct.w
3d80 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 1c 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 l_shm.*shm;....struct.xdg_wm_bas
3da0 65 20 2a 77 6d 5f 62 61 73 65 3b 00 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 e.*wm_base;....struct.wl_surface
3dc0 20 2a 73 75 72 66 61 63 65 3b 00 00 00 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 .*surface;....struct.xdg_surface
3de0 20 2a 78 64 67 5f 73 75 72 66 61 63 65 3b 00 00 00 1e 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 .*xdg_surface;....struct.xdg_top
3e00 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 3b 00 00 00 00 00 00 00 17 73 74 61 74 69 63 20 69 level.*toplevel;........static.i
3e20 6e 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 00 00 00 00 24 73 74 61 74 69 63 20 76 6f nt.running.=.1;.......$static.vo
3e40 69 64 20 77 6d 5f 62 61 73 65 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 2c 00 00 00 35 20 id.wm_base_ping(void.*data,...5.
3e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 78 ........................struct.x
3e80 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 5f 62 61 73 65 2c 00 00 00 29 20 20 20 20 20 20 20 20 dg_wm_base.*wm_base,...)........
3ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c .................uint32_t.serial
3ec0 29 00 00 00 01 7b 00 00 00 26 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 )....{...&....xdg_wm_base_pong(w
3ee0 6d 5f 62 61 73 65 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 3d 73 74 61 m_base,.serial);....}.......=sta
3f00 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 tic.const.struct.xdg_wm_base_lis
3f20 74 65 6e 65 72 20 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 10 20 20 tener.wm_base_listener.=.{......
3f40 20 20 77 6d 5f 62 61 73 65 5f 70 69 6e 67 00 00 00 02 7d 3b 00 00 00 00 00 00 00 2d 73 74 61 74 ..wm_base_ping....};.......-stat
3f60 69 63 20 76 6f 69 64 20 78 64 67 5f 73 75 72 66 61 63 65 5f 63 6f 6e 66 69 67 75 72 65 28 76 6f ic.void.xdg_surface_configure(vo
3f80 69 64 20 2a 64 61 74 61 2c 00 00 00 42 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 id.*data,...B...................
3fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 ...............struct.xdg_surfac
3fc0 65 20 2a 78 64 67 5f 73 75 72 66 61 63 65 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 20 20 e.*xdg_surface,...2.............
3fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 73 65 .....................uint32_t.se
4000 72 69 61 6c 29 00 00 00 01 7b 00 00 00 33 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 rial)....{...3....xdg_surface_ac
4020 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 73 65 72 69 61 6c 29 k_configure(xdg_surface,.serial)
4040 3b 00 00 00 1f 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 ;........wl_surface_commit(surfa
4060 63 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 ce);....}.......Astatic.const.st
4080 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 64 67 5f 73 75 ruct.xdg_surface_listener.xdg_su
40a0 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 19 20 20 20 20 78 64 67 5f 73 75 rface_listener.=.{........xdg_su
40c0 72 66 61 63 65 5f 63 6f 6e 66 69 67 75 72 65 00 00 00 02 7d 3b 00 00 00 00 00 00 00 28 73 74 61 rface_configure....};.......(sta
40e0 74 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a tic.void.registry_handler(void.*
4100 64 61 74 61 2c 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 data,...:.......................
4120 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 ......struct.wl_registry.*regist
4140 72 79 2c 00 00 00 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ry,...).........................
4160 20 20 20 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 00 00 00 33 20 20 20 20 20 20 20 20 20 20 20 20 ....uint32_t.id,...3............
4180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 6e 74 .................const.char.*int
41a0 65 72 66 61 63 65 2c 00 00 00 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 erface,.........................
41c0 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 76 65 72 73 69 6f 6e 29 00 00 00 01 7b 00 00 ........uint32_t.version)....{..
41e0 00 30 20 20 20 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f .0....if.(strcmp(interface,."wl_
4200 63 6f 6d 70 6f 73 69 74 6f 72 22 29 20 3d 3d 20 30 29 00 00 00 33 20 20 20 20 20 20 20 20 63 6f compositor").==.0)...3........co
4220 6d 70 6f 73 69 74 6f 72 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 mpositor.=.wl_registry_bind(regi
4240 73 74 72 79 2c 20 69 64 2c 00 00 00 43 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 stry,.id,...C...................
4260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f ...................&wl_composito
4280 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 00 00 00 00 2e 20 20 20 20 65 6c 73 65 r_interface,.4);............else
42a0 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d 22 29 .if.(strcmp(interface,."wl_shm")
42c0 20 3d 3d 20 30 29 00 00 00 2c 20 20 20 20 20 20 20 20 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 .==.0)...,........shm.=.wl_regis
42e0 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 00 00 00 35 20 20 20 20 20 20 try_bind(registry,.id,...5......
4300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 77 6c 5f 73 68 6d .........................&wl_shm
4320 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 00 00 00 00 35 20 20 20 20 65 6c 73 65 20 _interface,.1);.......5....else.
4340 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 if.(strcmp(interface,."xdg_wm_ba
4360 73 65 22 29 20 3d 3d 20 30 29 20 7b 00 00 00 30 20 20 20 20 20 20 20 20 77 6d 5f 62 61 73 65 20 se").==.0).{...0........wm_base.
4380 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c =.wl_registry_bind(registry,.id,
43a0 00 00 00 3e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...>............................
43c0 20 20 20 20 20 20 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 .......&xdg_wm_base_interface,.1
43e0 29 3b 00 00 00 43 20 20 20 20 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 );...C........xdg_wm_base_add_li
4400 73 74 65 6e 65 72 28 77 6d 5f 62 61 73 65 2c 20 26 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 stener(wm_base,.&wm_base_listene
4420 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 3e 73 r,.NULL);........}....}.......>s
4440 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c tatic.const.struct.wl_registry_l
4460 69 73 74 65 6e 65 72 20 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 istener.registry_listener.=.{...
4480 15 20 20 20 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 2c 00 00 00 08 20 20 20 20 4e 55 .....registry_handler,........NU
44a0 4c 4c 00 00 00 02 7d 3b 00 00 00 00 00 00 00 27 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 LL....};.......'static.int.creat
44c0 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 00 00 00 01 7b 00 00 00 30 e_shm_file(size_t.size)....{...0
44e0 20 20 20 20 63 68 61 72 20 74 65 6d 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 61 79 6c ....char.template[].=."/tmp/wayl
4500 61 6e 64 2d 73 68 6d 2d 58 58 58 58 58 58 22 3b 00 00 00 1f 20 20 20 20 69 6e 74 20 66 64 20 3d and-shm-XXXXXX";........int.fd.=
4520 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 11 20 20 20 20 69 66 20 28 66 .mkstemp(template);........if.(f
4540 64 20 3c 20 30 29 20 7b 00 00 00 1a 20 20 20 20 20 20 20 20 70 65 72 72 6f 72 28 22 6d 6b 73 74 d.<.0).{............perror("mkst
4560 65 6d 70 22 29 3b 00 00 00 10 20 20 20 20 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 05 20 20 emp");............exit(1);......
4580 20 20 7d 00 00 00 15 20 20 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 22 ..}........unlink(template);..."
45a0 20 20 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 ....if.(ftruncate(fd,.size).<.0)
45c0 20 7b 00 00 00 1c 20 20 20 20 20 20 20 20 70 65 72 72 6f 72 28 22 66 74 72 75 6e 63 61 74 65 22 .{............perror("ftruncate"
45e0 29 3b 00 00 00 10 20 20 20 20 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 05 20 20 20 20 7d 00 );............exit(1);........}.
4600 00 00 0e 20 20 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0a 69 6e .......return.fd;....}........in
4620 74 20 6d 61 69 6e 28 29 00 00 00 01 7b 00 00 00 27 20 20 20 20 64 69 73 70 6c 61 79 20 3d 20 77 t.main()....{...'....display.=.w
4640 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 13 20 20 20 20 l_display_connect(NULL);........
4660 69 66 20 28 21 64 69 73 70 6c 61 79 29 20 7b 00 00 00 42 20 20 20 20 20 20 20 20 66 70 72 69 6e if.(!display).{...B........fprin
4680 74 66 28 73 74 64 65 72 72 2c 20 22 46 61 69 6c 65 64 20 74 6f 20 63 6f 6e 6e 65 63 74 20 74 6f tf(stderr,."Failed.to.connect.to
46a0 20 57 61 79 6c 61 6e 64 20 64 69 73 70 6c 61 79 5c 6e 22 29 3b 00 00 00 11 20 20 20 20 20 20 20 .Wayland.display\n");...........
46c0 20 72 65 74 75 72 6e 20 31 3b 00 00 00 05 20 20 20 20 7d 00 00 00 00 00 00 00 30 20 20 20 20 72 .return.1;........}.......0....r
46e0 65 67 69 73 74 72 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 egistry.=.wl_display_get_registr
4700 79 28 64 69 73 70 6c 61 79 29 3b 00 00 00 41 20 20 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 y(display);...A....wl_registry_a
4720 64 64 5f 6c 69 73 74 65 6e 65 72 28 72 65 67 69 73 74 72 79 2c 20 26 72 65 67 69 73 74 72 79 5f dd_listener(registry,.&registry_
4740 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 22 20 20 20 20 77 6c 5f 64 69 73 70 6c listener,.NULL);..."....wl_displ
4760 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 00 00 00 00 00 2a 20 20 ay_roundtrip(display);.......*..
4780 20 20 69 66 20 28 21 63 6f 6d 70 6f 73 69 74 6f 72 20 7c 7c 20 21 77 6d 5f 62 61 73 65 20 7c 7c ..if.(!compositor.||.!wm_base.||
47a0 20 21 73 68 6d 29 20 7b 00 00 00 3e 20 20 20 20 20 20 20 20 66 70 72 69 6e 74 66 28 73 74 64 65 .!shm).{...>........fprintf(stde
47c0 72 72 2c 20 22 4d 69 73 73 69 6e 67 20 72 65 71 75 69 72 65 64 20 57 61 79 6c 61 6e 64 20 67 6c rr,."Missing.required.Wayland.gl
47e0 6f 62 61 6c 73 5c 6e 22 29 3b 00 00 00 11 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 obals\n");............return.1;.
4800 00 00 05 20 20 20 20 7d 00 00 00 00 00 00 00 37 20 20 20 20 73 75 72 66 61 63 65 20 3d 20 77 6c .......}.......7....surface.=.wl
4820 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 63 6f 6d 70 6f _compositor_create_surface(compo
4840 73 69 74 6f 72 29 3b 00 00 00 40 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 20 3d 20 78 64 67 sitor);...@....xdg_surface.=.xdg
4860 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 77 6d 5f 62 61 73 65 _wm_base_get_xdg_surface(wm_base
4880 2c 20 73 75 72 66 61 63 65 29 3b 00 00 00 29 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 ,.surface);...)....xdg_surface_a
48a0 64 64 5f 6c 69 73 74 65 6e 65 72 28 78 64 67 5f 73 75 72 66 61 63 65 2c 00 00 00 3a 20 20 20 20 dd_listener(xdg_surface,...:....
48c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 78 64 67 5f 73 75 .........................&xdg_su
48e0 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 35 20 20 20 20 74 6f rface_listener,.NULL);...5....to
4900 70 6c 65 76 65 6c 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 plevel.=.xdg_surface_get_topleve
4920 6c 28 78 64 67 5f 73 75 72 66 61 63 65 29 3b 00 00 00 00 00 00 00 1f 20 20 20 20 77 6c 5f 73 75 l(xdg_surface);............wl_su
4940 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 22 20 20 20 20 77 6c rface_commit(surface);..."....wl
4960 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 00 00 _display_roundtrip(display);....
4980 00 00 00 2a 20 20 20 20 2f 2f 20 63 72 65 61 74 65 20 61 20 73 69 6d 70 6c 65 20 32 30 30 78 32 ...*....//.create.a.simple.200x2
49a0 30 30 20 41 52 47 42 20 62 75 66 66 65 72 00 00 00 14 20 20 20 20 69 6e 74 20 77 69 64 74 68 20 00.ARGB.buffer........int.width.
49c0 3d 20 32 30 30 3b 00 00 00 15 20 20 20 20 69 6e 74 20 68 65 69 67 68 74 20 3d 20 32 30 30 3b 00 =.200;........int.height.=.200;.
49e0 00 00 1b 20 20 20 20 69 6e 74 20 73 74 72 69 64 65 20 3d 20 77 69 64 74 68 20 2a 20 34 3b 00 00 .......int.stride.=.width.*.4;..
4a00 00 1f 20 20 20 20 69 6e 74 20 73 69 7a 65 20 3d 20 73 74 72 69 64 65 20 2a 20 68 65 69 67 68 74 ......int.size.=.stride.*.height
4a20 3b 00 00 00 00 00 00 00 23 20 20 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d ;.......#....int.fd.=.create_shm
4a40 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 21 20 20 20 20 76 6f 69 64 20 2a 64 61 74 61 20 3d _file(size);...!....void.*data.=
4a60 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 00 00 00 2d 20 20 20 20 20 20 20 20 20 20 20 .mmap(NULL,.size,...-...........
4a80 20 20 20 20 20 20 20 20 20 20 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 ...........PROT_READ.|.PROT_WRIT
4aa0 45 2c 00 00 00 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 41 50 5f E,...)......................MAP_
4ac0 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 1d 20 20 20 20 69 66 20 28 64 61 74 61 20 SHARED,.fd,.0);........if.(data.
4ae0 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 20 7b 00 00 00 17 20 20 20 20 20 20 20 20 70 65 72 72 ==.MAP_FAILED).{............perr
4b00 6f 72 28 22 6d 6d 61 70 22 29 3b 00 00 00 10 20 20 20 20 20 20 20 20 65 78 69 74 28 31 29 3b 00 or("mmap");............exit(1);.
4b20 00 00 05 20 20 20 20 7d 00 00 00 00 00 00 00 1c 20 20 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 69 .......}............uint32_t.*pi
4b40 78 65 6c 73 20 3d 20 64 61 74 61 3b 00 00 00 2c 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d xels.=.data;...,....for.(int.i.=
4b60 20 30 3b 20 69 20 3c 20 77 69 64 74 68 20 2a 20 68 65 69 67 68 74 3b 20 69 2b 2b 29 00 00 00 31 .0;.i.<.width.*.height;.i++)...1
4b80 20 20 20 20 20 20 20 20 70 69 78 65 6c 73 5b 69 5d 20 3d 20 30 78 66 66 66 66 30 30 30 30 3b 20 ........pixels[i].=.0xffff0000;.
4ba0 2f 2f 20 73 6f 6c 69 64 20 72 65 64 20 41 52 47 42 00 00 00 00 00 00 00 1e 20 20 20 20 73 74 72 //.solid.red.ARGB............str
4bc0 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 00 00 00 2a 20 20 20 20 20 uct.wl_shm_pool.*pool.=...*.....
4be0 20 20 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 73 68 6d 2c 20 66 64 2c 20 73 ...wl_shm_create_pool(shm,.fd,.s
4c00 69 7a 65 29 3b 00 00 00 00 00 00 00 1e 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 ize);............struct.wl_buffe
4c20 72 20 2a 62 75 66 66 65 72 20 3d 00 00 00 27 20 20 20 20 20 20 20 20 77 6c 5f 73 68 6d 5f 70 6f r.*buffer.=...'........wl_shm_po
4c40 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 00 00 00 24 20 20 20 20 20 20 ol_create_buffer(pool,...$......
4c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 2c 00 00 ............................0,..
4c80 00 28 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(..............................
4ca0 20 20 20 20 77 69 64 74 68 2c 00 00 00 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....width,...)..................
4cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 65 69 67 68 74 2c 00 00 00 29 20 20 20 20 20 ................height,...).....
4ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 .............................str
4d00 69 64 65 2c 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ide,...:........................
4d20 20 20 20 20 20 20 20 20 20 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 ..........WL_SHM_FORMAT_ARGB8888
4d40 29 3b 00 00 00 00 00 00 00 2d 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 );.......-....wl_surface_attach(
4d60 73 75 72 66 61 63 65 2c 20 62 75 66 66 65 72 2c 20 30 2c 20 30 29 3b 00 00 00 1f 20 20 20 20 77 surface,.buffer,.0,.0);........w
4d80 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 00 00 00 l_surface_commit(surface);......
4da0 00 36 20 20 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 20 26 26 20 77 6c 5f 64 69 73 70 6c .6....while.(running.&&.wl_displ
4dc0 61 79 5f 64 69 73 70 61 74 63 68 28 64 69 73 70 6c 61 79 29 29 20 7b 7d 00 00 00 00 00 00 00 0d ay_dispatch(display)).{}........
4de0 20 20 20 20 72 65 74 75 72 6e 20 30 3b 35 81 f5 18 00 00 00 00 00 00 00 00 09 00 00 00 92 00 00 ....return.0;5..................
4e00 00 02 00 00 00 79 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 e7 0f 00 00 00 00 00 00 a6 0d 00 .....y..........................
4e20 00 00 00 00 00 35 81 5f d0 00 00 00 0a 00 00 00 0c 00 00 00 00 00 00 00 00 00 00 00 0b 00 00 00 .....5._........................
4e40 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fa0 00 00 00 00 00 00 00 00 00 00 00 69 9d 6a a5 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 ...........i.j..................
4fc0 00 00 00 00 00 00 00 7b 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d .......{...&#include."xdg-shell-
4fe0 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c client-protocol.h"....#include.<
5000 66 63 6e 74 6c 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 fcntl.h>....#include.<stdio.h>..
5020 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 ..#include.<stdlib.h>....#includ
5040 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d e.<string.h>....#include.<sys/mm
5060 61 6e 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b an.h>....#include.<unistd.h>....
5080 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 00 00 #include.<wayland-client.h>.....
50a0 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 69 73 70 6c 61 79 3b 00 00 ...struct.wl_display.*display;..
50c0 00 1d 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 79 3b 00 ..struct.wl_registry.*registry;.
50e0 00 00 21 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 6f 73 69 ..!struct.wl_compositor.*composi
5100 74 6f 72 3b 00 00 00 13 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 1c 73 tor;....struct.wl_shm.*shm;....s
5120 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 5f 62 61 73 65 3b 00 00 00 1b 73 truct.xdg_wm_base.*wm_base;....s
5140 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 72 66 61 63 65 3b 00 00 00 20 73 74 truct.wl_surface.*surface;....st
5160 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 64 67 5f 73 75 72 66 61 63 65 3b 00 00 ruct.xdg_surface.*xdg_surface;..
5180 00 1e 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 3b ..struct.xdg_toplevel.*toplevel;
51a0 00 00 00 00 00 00 00 17 73 74 61 74 69 63 20 69 6e 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 ........static.int.running.=.1;.
51c0 00 00 00 00 00 00 41 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 62 61 73 65 5f 70 69 6e 67 28 ......Astatic.void.wm_base_ping(
51e0 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a void.*data,.struct.xdg_wm_base.*
5200 77 6d 5f 62 61 73 65 2c 00 00 00 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 wm_base,...+....................
5220 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 24 20 20 78 64 67 .....uint32_t.serial).{...$..xdg
5240 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 5f 62 61 73 65 2c 20 73 65 72 69 61 6c 29 3b 00 _wm_base_pong(wm_base,.serial);.
5260 00 00 01 7d 00 00 00 00 00 00 00 4b 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 ...}.......Kstatic.const.struct.
5280 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 62 61 73 65 5f 6c 69 73 xdg_wm_base_listener.wm_base_lis
52a0 74 65 6e 65 72 20 3d 20 7b 77 6d 5f 62 61 73 65 5f 70 69 6e 67 7d 3b 00 00 00 00 00 00 00 4e 73 tener.=.{wm_base_ping};.......Ns
52c0 74 61 74 69 63 20 76 6f 69 64 20 78 64 67 5f 73 75 72 66 61 63 65 5f 63 6f 6e 66 69 67 75 72 65 tatic.void.xdg_surface_configure
52e0 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 (void.*data,.struct.xdg_surface.
5300 2a 78 64 67 5f 73 75 72 66 61 63 65 2c 00 00 00 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 *xdg_surface,...4...............
5320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 ...................uint32_t.seri
5340 61 6c 29 20 7b 00 00 00 31 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 al).{...1..xdg_surface_ack_confi
5360 67 75 72 65 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 1d 20 20 gure(xdg_surface,.serial);......
5380 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 01 7d wl_surface_commit(surface);....}
53a0 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f .......Astatic.const.struct.xdg_
53c0 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 surface_listener.xdg_surface_lis
53e0 74 65 6e 65 72 20 3d 20 7b 00 00 00 1b 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 63 6f 6e tener.=.{........xdg_surface_con
5400 66 69 67 75 72 65 7d 3b 00 00 00 00 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 69 figure};.......Fstatic.void.regi
5420 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 stry_handler(void.*data,.struct.
5440 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 79 2c 00 00 00 40 20 20 20 20 20 20 wl_registry.*registry,...@......
5460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 .......................uint32_t.
5480 69 64 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 6e 74 65 72 66 61 63 65 2c 00 00 00 30 20 20 id,.const.char.*interface,...0..
54a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 ...........................uint3
54c0 32 5f 74 20 76 65 72 73 69 6f 6e 29 20 7b 00 00 00 2e 20 20 69 66 20 28 73 74 72 63 6d 70 28 69 2_t.version).{......if.(strcmp(i
54e0 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 20 3d 3d 20 30 29 nterface,."wl_compositor").==.0)
5500 00 00 00 4d 20 20 20 20 63 6f 6d 70 6f 73 69 74 6f 72 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 ...M....compositor.=.wl_registry
5520 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 _bind(registry,.id,.&wl_composit
5540 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 00 00 00 00 2c 20 20 65 6c 73 65 20 or_interface,.4);.......,..else.
5560 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d 22 29 20 if.(strcmp(interface,."wl_shm").
5580 3d 3d 20 30 29 00 00 00 3f 20 20 20 20 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 ==.0)...?....shm.=.wl_registry_b
55a0 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 ind(registry,.id,.&wl_shm_interf
55c0 61 63 65 2c 20 31 29 3b 00 00 00 00 00 00 00 33 20 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d ace,.1);.......3..else.if.(strcm
55e0 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 20 3d 3d 20 30 p(interface,."xdg_wm_base").==.0
5600 29 20 7b 00 00 00 48 20 20 20 20 77 6d 5f 62 61 73 65 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 ).{...H....wm_base.=.wl_registry
5620 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 _bind(registry,.id,.&xdg_wm_base
5640 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 3f 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 _interface,.1);...?....xdg_wm_ba
5660 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 77 6d 5f 62 61 73 65 2c 20 26 77 6d 5f 62 61 73 se_add_listener(wm_base,.&wm_bas
5680 65 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 e_listener,.NULL);......}....}..
56a0 00 00 00 00 00 4f 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 .....Ostatic.const.struct.wl_reg
56c0 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 istry_listener.registry_listener
56e0 20 3d 20 7b 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 2c 00 00 00 44 20 20 20 20 20 20 20 .=.{registry_handler,...D.......
5700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
5720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4e 55 4c 4c 7d 3b 00 00 00 .......................NULL};...
5740 00 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 ....)static.int.create_shm_file(
5760 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 2e 20 20 63 68 61 72 20 74 65 6d 70 6c 61 74 size_t.size).{......char.templat
5780 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 61 79 6c 61 6e 64 2d 73 68 6d 2d 58 58 58 58 58 58 22 3b e[].=."/tmp/wayland-shm-XXXXXX";
57a0 00 00 00 1d 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 74 65 29 ......int.fd.=.mkstemp(template)
57c0 3b 00 00 00 0f 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 7b 00 00 00 16 20 20 20 20 70 65 72 72 ;......if.(fd.<.0).{........perr
57e0 6f 72 28 22 6d 6b 73 74 65 6d 70 22 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 or("mkstemp");........exit(1);..
5800 00 03 20 20 7d 00 00 00 13 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 20 ....}......unlink(template);....
5820 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 20 7b ..if.(ftruncate(fd,.size).<.0).{
5840 00 00 00 18 20 20 20 20 70 65 72 72 6f 72 28 22 66 74 72 75 6e 63 61 74 65 22 29 3b 00 00 00 0c ........perror("ftruncate");....
5860 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 0c 20 20 72 65 74 75 72 6e 20 ....exit(1);......}......return.
5880 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0c 69 6e 74 20 6d 61 69 6e 28 29 20 7b 00 00 00 25 fd;....}........int.main().{...%
58a0 20 20 64 69 73 70 6c 61 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e ..display.=.wl_display_connect(N
58c0 55 4c 4c 29 3b 00 00 00 11 20 20 69 66 20 28 21 64 69 73 70 6c 61 79 29 20 7b 00 00 00 3e 20 20 ULL);......if.(!display).{...>..
58e0 20 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 46 61 69 6c 65 64 20 74 6f 20 63 6f 6e ..fprintf(stderr,."Failed.to.con
5900 6e 65 63 74 20 74 6f 20 57 61 79 6c 61 6e 64 20 64 69 73 70 6c 61 79 5c 6e 22 29 3b 00 00 00 0d nect.to.Wayland.display\n");....
5920 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 2e 20 20 72 65 ....return.1;......}..........re
5940 67 69 73 74 72 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 gistry.=.wl_display_get_registry
5960 28 64 69 73 70 6c 61 79 29 3b 00 00 00 3f 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f (display);...?..wl_registry_add_
5980 6c 69 73 74 65 6e 65 72 28 72 65 67 69 73 74 72 79 2c 20 26 72 65 67 69 73 74 72 79 5f 6c 69 73 listener(registry,.&registry_lis
59a0 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f tener,.NULL);......wl_display_ro
59c0 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 00 00 00 00 00 28 20 20 69 66 20 28 21 undtrip(display);.......(..if.(!
59e0 63 6f 6d 70 6f 73 69 74 6f 72 20 7c 7c 20 21 77 6d 5f 62 61 73 65 20 7c 7c 20 21 73 68 6d 29 20 compositor.||.!wm_base.||.!shm).
5a00 7b 00 00 00 3a 20 20 20 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 4d 69 73 73 69 6e {...:....fprintf(stderr,."Missin
5a20 67 20 72 65 71 75 69 72 65 64 20 57 61 79 6c 61 6e 64 20 67 6c 6f 62 61 6c 73 5c 6e 22 29 3b 00 g.required.Wayland.globals\n");.
5a40 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 35 20 .......return.1;......}.......5.
5a60 20 73 75 72 66 61 63 65 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f .surface.=.wl_compositor_create_
5a80 73 75 72 66 61 63 65 28 63 6f 6d 70 6f 73 69 74 6f 72 29 3b 00 00 00 3e 20 20 78 64 67 5f 73 75 surface(compositor);...>..xdg_su
5aa0 72 66 61 63 65 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 rface.=.xdg_wm_base_get_xdg_surf
5ac0 61 63 65 28 77 6d 5f 62 61 73 65 2c 20 73 75 72 66 61 63 65 29 3b 00 00 00 45 20 20 78 64 67 5f ace(wm_base,.surface);...E..xdg_
5ae0 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 78 64 67 5f 73 75 72 66 61 63 65 surface_add_listener(xdg_surface
5b00 2c 20 26 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 ,.&xdg_surface_listener,.NULL);.
5b20 00 00 33 20 20 74 6f 70 6c 65 76 65 6c 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f ..3..toplevel.=.xdg_surface_get_
5b40 74 6f 70 6c 65 76 65 6c 28 78 64 67 5f 73 75 72 66 61 63 65 29 3b 00 00 00 00 00 00 00 1d 20 20 toplevel(xdg_surface);..........
5b60 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 20 20 wl_surface_commit(surface);.....
5b80 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 .wl_display_roundtrip(display);.
5ba0 00 00 00 00 00 00 28 20 20 2f 2f 20 63 72 65 61 74 65 20 61 20 73 69 6d 70 6c 65 20 32 30 30 78 ......(..//.create.a.simple.200x
5bc0 32 30 30 20 41 52 47 42 20 62 75 66 66 65 72 00 00 00 12 20 20 69 6e 74 20 77 69 64 74 68 20 3d 200.ARGB.buffer......int.width.=
5be0 20 32 30 30 3b 00 00 00 13 20 20 69 6e 74 20 68 65 69 67 68 74 20 3d 20 32 30 30 3b 00 00 00 19 .200;......int.height.=.200;....
5c00 20 20 69 6e 74 20 73 74 72 69 64 65 20 3d 20 77 69 64 74 68 20 2a 20 34 3b 00 00 00 1d 20 20 69 ..int.stride.=.width.*.4;......i
5c20 6e 74 20 73 69 7a 65 20 3d 20 73 74 72 69 64 65 20 2a 20 68 65 69 67 68 74 3b 00 00 00 00 00 00 nt.size.=.stride.*.height;......
5c40 00 21 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a .!..int.fd.=.create_shm_file(siz
5c60 65 29 3b 00 00 00 4b 20 20 76 6f 69 64 20 2a 64 61 74 61 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c e);...K..void.*data.=.mmap(NULL,
5c80 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d .size,.PROT_READ.|.PROT_WRITE,.M
5ca0 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 1b 20 20 69 66 20 28 64 61 74 61 AP_SHARED,.fd,.0);......if.(data
5cc0 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 20 7b 00 00 00 13 20 20 20 20 70 65 72 72 6f 72 28 .==.MAP_FAILED).{........perror(
5ce0 22 6d 6d 61 70 22 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 "mmap");........exit(1);......}.
5d00 00 00 00 00 00 00 1a 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 69 78 65 6c 73 20 3d 20 64 61 74 61 .........uint32_t.*pixels.=.data
5d20 3b 00 00 00 2a 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 77 69 64 74 68 ;...*..for.(int.i.=.0;.i.<.width
5d40 20 2a 20 68 65 69 67 68 74 3b 20 69 2b 2b 29 00 00 00 2d 20 20 20 20 70 69 78 65 6c 73 5b 69 5d .*.height;.i++)...-....pixels[i]
5d60 20 3d 20 30 78 66 66 66 66 30 30 30 30 3b 20 2f 2f 20 73 6f 6c 69 64 20 72 65 64 20 41 52 47 42 .=.0xffff0000;.//.solid.red.ARGB
5d80 00 00 00 00 00 00 00 3f 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f .......?..struct.wl_shm_pool.*po
5da0 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 73 68 6d 2c 20 66 64 2c ol.=.wl_shm_create_pool(shm,.fd,
5dc0 20 73 69 7a 65 29 3b 00 00 00 00 00 00 00 37 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 .size);.......7..struct.wl_buffe
5de0 72 20 2a 62 75 66 66 65 72 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 r.*buffer.=.wl_shm_pool_create_b
5e00 75 66 66 65 72 28 00 00 00 3e 20 20 20 20 20 20 70 6f 6f 6c 2c 20 30 2c 20 77 69 64 74 68 2c 20 uffer(...>......pool,.0,.width,.
5e20 68 65 69 67 68 74 2c 20 73 74 72 69 64 65 2c 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 height,.stride,.WL_SHM_FORMAT_AR
5e40 47 42 38 38 38 38 29 3b 00 00 00 00 00 00 00 2b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 GB8888);.......+..wl_surface_att
5e60 61 63 68 28 73 75 72 66 61 63 65 2c 20 62 75 66 66 65 72 2c 20 30 2c 20 30 29 3b 00 00 00 1d 20 ach(surface,.buffer,.0,.0);.....
5e80 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 00 .wl_surface_commit(surface);....
5ea0 00 00 00 33 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 20 26 26 20 77 6c 5f 64 69 73 70 6c ...3..while.(running.&&.wl_displ
5ec0 61 79 5f 64 69 73 70 61 74 63 68 28 64 69 73 70 6c 61 79 29 29 20 7b 00 00 00 03 20 20 7d 00 00 ay_dispatch(display)).{......}..
5ee0 00 00 00 00 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 ........return.0;....}5.........
5f00 00 00 00 00 00 00 7b 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bd 0d ......{.........................
5f20 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 0b 00 00 00 0d 00 00 00 00 00 00 ..............5._...............
5f40 00 00 00 00 00 0c 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 ................................
5f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
60a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d 6a a6 04 01 00 00 00 00 00 f5 ....................i.j.........
60c0 18 00 00 00 6d 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 7d f5 18 00 00 00 6e 00 00 00 00 ....m................}.....n....
60e0 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 ................................
6100 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 ................5...............
6120 00 00 00 00 00 00 00 00 6d 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........m.......................
6140 a7 0e 00 00 00 00 00 00 35 81 5f d0 00 00 00 0c 00 00 00 0e 00 00 00 00 00 00 00 00 00 00 00 0d ........5._.....................
6160 00 00 00 6e 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...n............................
6180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
61a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
61c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
61e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
6280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
62a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
62c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d 6a a7 04 01 00 00 00 07 00 f5 18 00 00 00 00 00 ..............i.j...............
62e0 00 00 85 00 00 00 6e 00 00 00 6d 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 ......n...m....#include.<wayland
6300 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e -client.h>....#include.<sys/mman
6320 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 12 23 69 .h>....#include.<unistd.h>....#i
6340 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 nclude.<fcntl.h>....#include.<st
6360 72 69 6e 67 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 ring.h>....#include.<stdlib.h>..
6380 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 26 23 69 6e 63 6c 75 64 65 ..#include.<stdio.h>...&#include
63a0 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 ."xdg-shell-client-protocol.h"..
63c0 00 00 00 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 69 73 70 6c 61 79 ......struct.wl_display.*display
63e0 3b 00 00 00 1d 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 ;....struct.wl_registry.*registr
6400 79 3b 00 00 00 21 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 y;...!struct.wl_compositor.*comp
6420 6f 73 69 74 6f 72 3b 00 00 00 13 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 ositor;....struct.wl_shm.*shm;..
6440 00 1c 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 5f 62 61 73 65 3b 00 00 ..struct.xdg_wm_base.*wm_base;..
6460 00 1b 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 72 66 61 63 65 3b 00 00 00 ..struct.wl_surface.*surface;...
6480 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 64 67 5f 73 75 72 66 61 63 65 .struct.xdg_surface.*xdg_surface
64a0 3b 00 00 00 1e 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 ;....struct.xdg_toplevel.*toplev
64c0 65 6c 3b 00 00 00 00 00 00 00 0e 2f 2f 20 57 69 6e 64 6f 77 20 73 69 7a 65 00 00 00 16 63 6f 6e el;........//.Window.size....con
64e0 73 74 20 69 6e 74 20 57 49 44 54 48 20 3d 20 33 30 30 3b 00 00 00 17 63 6f 6e 73 74 20 69 6e 74 st.int.WIDTH.=.300;....const.int
6500 20 48 45 49 47 48 54 20 3d 20 32 30 30 3b 00 00 00 00 00 00 00 0f 2f 2f 20 52 75 6e 6e 69 6e 67 .HEIGHT.=.200;........//.Running
6520 20 66 6c 61 67 00 00 00 10 69 6e 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 00 00 00 00 .flag....int.running.=.1;.......
6540 26 2f 2f 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d &//.----------------------------
6560 2d 2d 2d 2d 2d 2d 2d 00 00 00 13 2f 2f 20 57 61 79 6c 61 6e 64 20 68 61 6e 64 6c 65 72 73 00 00 -------....//.Wayland.handlers..
6580 00 26 2f 2f 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .&//.---------------------------
65a0 2d 2d 2d 2d 2d 2d 2d 2d 00 00 00 54 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 62 61 73 65 5f --------...Tstatic.void.wm_base_
65c0 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 ping(void.*data,.struct.xdg_wm_b
65e0 61 73 65 20 2a 77 6d 5f 62 61 73 65 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b ase.*wm_base,.uint32_t.serial).{
6600 00 00 00 26 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 5f 62 61 73 65 ...&....xdg_wm_base_pong(wm_base
6620 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4d 73 74 61 74 69 63 20 63 6f ,.serial);....}.......Mstatic.co
6640 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 nst.struct.xdg_wm_base_listener.
6660 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 20 77 6d 5f 62 61 73 65 5f 70 69 6e wm_base_listener.=.{.wm_base_pin
6680 67 20 7d 3b 00 00 00 00 00 00 00 61 73 74 61 74 69 63 20 76 6f 69 64 20 78 64 67 5f 73 75 72 66 g.};.......astatic.void.xdg_surf
66a0 61 63 65 5f 63 6f 6e 66 69 67 75 72 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 ace_configure(void.*data,.struct
66c0 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 64 67 5f 73 75 72 66 61 63 65 2c 20 75 69 6e 74 33 .xdg_surface.*xdg_surface,.uint3
66e0 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 33 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 2_t.serial).{...3....xdg_surface
6700 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 73 65 72 69 _ack_configure(xdg_surface,.seri
6720 61 6c 29 3b 00 00 00 1f 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 al);........wl_surface_commit(su
6740 72 66 61 63 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 5a 73 74 61 74 69 63 20 63 6f 6e 73 74 rface);....}.......Zstatic.const
6760 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 64 67 .struct.xdg_surface_listener.xdg
6780 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 20 78 64 67 5f 73 75 72 66 61 63 _surface_listener.=.{.xdg_surfac
67a0 65 5f 63 6f 6e 66 69 67 75 72 65 20 7d 3b 00 00 00 00 00 00 00 7e 73 74 61 74 69 63 20 76 6f 69 e_configure.};.......~static.voi
67c0 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 d.registry_handler(void.*data,.s
67e0 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 79 2c 20 75 69 6e truct.wl_registry.*registry,.uin
6800 74 33 32 5f 74 20 69 64 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 6e 74 65 72 66 61 63 65 2c t32_t.id,.const.char.*interface,
6820 20 75 69 6e 74 33 32 5f 74 20 76 65 72 73 69 6f 6e 29 20 7b 00 00 00 32 20 20 20 20 69 66 20 28 .uint32_t.version).{...2....if.(
6840 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 strcmp(interface,."wl_compositor
6860 22 29 20 3d 3d 20 30 29 20 7b 00 00 00 51 20 20 20 20 20 20 20 20 63 6f 6d 70 6f 73 69 74 6f 72 ").==.0).{...Q........compositor
6880 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 .=.wl_registry_bind(registry,.id
68a0 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 ,.&wl_compositor_interface,.4);.
68c0 00 00 32 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 ..2....}.else.if.(strcmp(interfa
68e0 63 65 2c 20 22 77 6c 5f 73 68 6d 22 29 20 3d 3d 20 30 29 20 7b 00 00 00 43 20 20 20 20 20 20 20 ce,."wl_shm").==.0).{...C.......
6900 20 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 .shm.=.wl_registry_bind(registry
6920 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 37 ,.id,.&wl_shm_interface,.1);...7
6940 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c ....}.else.if.(strcmp(interface,
6960 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 20 3d 3d 20 30 29 20 7b 00 00 00 4c 20 20 20 20 20 ."xdg_wm_base").==.0).{...L.....
6980 20 20 20 77 6d 5f 62 61 73 65 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 ...wm_base.=.wl_registry_bind(re
69a0 67 69 73 74 72 79 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 gistry,.id,.&xdg_wm_base_interfa
69c0 63 65 2c 20 31 29 3b 00 00 00 43 20 20 20 20 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 ce,.1);...C........xdg_wm_base_a
69e0 64 64 5f 6c 69 73 74 65 6e 65 72 28 77 6d 5f 62 61 73 65 2c 20 26 77 6d 5f 62 61 73 65 5f 6c 69 dd_listener(wm_base,.&wm_base_li
6a00 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 stener,.NULL);........}....}....
6a20 00 00 00 58 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 ...Xstatic.const.struct.wl_regis
6a40 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 3d try_listener.registry_listener.=
6a60 20 7b 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 2c 20 4e 55 4c 4c 20 7d 3b 00 00 00 00 .{.registry_handler,.NULL.};....
6a80 00 00 00 26 2f 2f 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ...&//.-------------------------
6aa0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 00 0e 2f 2f 20 53 48 4d 20 68 65 6c 70 65 72 73 00 00 00 26 ----------....//.SHM.helpers...&
6ac0 2f 2f 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d //.-----------------------------
6ae0 2d 2d 2d 2d 2d 2d 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 5f ------...)static.int.create_shm_
6b00 66 69 6c 65 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 30 20 20 20 20 63 68 61 72 20 file(size_t.size).{...0....char.
6b20 74 65 6d 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 61 79 6c 61 6e 64 2d 73 68 6d 2d 58 template[].=."/tmp/wayland-shm-X
6b40 58 58 58 58 58 22 3b 00 00 00 1f 20 20 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 XXXXX";........int.fd.=.mkstemp(
6b60 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 2f 20 20 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 7b 20 template);.../....if.(fd.<.0).{.
6b80 70 65 72 72 6f 72 28 22 6d 6b 73 74 65 6d 70 22 29 3b 20 65 78 69 74 28 31 29 3b 20 7d 00 00 00 perror("mkstemp");.exit(1);.}...
6ba0 15 20 20 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 42 20 20 20 20 69 66 .....unlink(template);...B....if
6bc0 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 20 7b 20 70 65 72 .(ftruncate(fd,.size).<.0).{.per
6be0 72 6f 72 28 22 66 74 72 75 6e 63 61 74 65 22 29 3b 20 65 78 69 74 28 31 29 3b 20 7d 00 00 00 0e ror("ftruncate");.exit(1);.}....
6c00 20 20 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 26 2f 2f 20 2d 2d ....return.fd;....}.......&//.--
6c20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
6c40 2d 00 00 00 07 2f 2f 20 4d 61 69 6e 00 00 00 26 2f 2f 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d -....//.Main...&//.-------------
6c60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 00 0c 69 6e 74 20 6d 61 ----------------------....int.ma
6c80 69 6e 28 29 20 7b 00 00 00 27 20 20 20 20 64 69 73 70 6c 61 79 20 3d 20 77 6c 5f 64 69 73 70 6c in().{...'....display.=.wl_displ
6ca0 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 5a 20 20 20 20 69 66 20 28 21 64 69 ay_connect(NULL);...Z....if.(!di
6cc0 73 70 6c 61 79 29 20 7b 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 46 61 69 6c 65 64 splay).{.fprintf(stderr,."Failed
6ce0 20 74 6f 20 63 6f 6e 6e 65 63 74 20 74 6f 20 57 61 79 6c 61 6e 64 20 64 69 73 70 6c 61 79 5c 6e .to.connect.to.Wayland.display\n
6d00 22 29 3b 20 72 65 74 75 72 6e 20 31 3b 20 7d 00 00 00 00 00 00 00 30 20 20 20 20 72 65 67 69 73 ");.return.1;.}.......0....regis
6d20 74 72 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 64 69 try.=.wl_display_get_registry(di
6d40 73 70 6c 61 79 29 3b 00 00 00 41 20 20 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c splay);...A....wl_registry_add_l
6d60 69 73 74 65 6e 65 72 28 72 65 67 69 73 74 72 79 2c 20 26 72 65 67 69 73 74 72 79 5f 6c 69 73 74 istener(registry,.&registry_list
6d80 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 22 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 ener,.NULL);..."....wl_display_r
6da0 6f 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 00 00 00 00 00 6d 20 20 20 20 69 66 oundtrip(display);.......m....if
6dc0 20 28 21 63 6f 6d 70 6f 73 69 74 6f 72 20 7c 7c 20 21 73 68 6d 20 7c 7c 20 21 77 6d 5f 62 61 73 .(!compositor.||.!shm.||.!wm_bas
6de0 65 29 20 7b 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 4d 69 73 73 69 6e 67 20 72 65 e).{.fprintf(stderr,."Missing.re
6e00 71 75 69 72 65 64 20 57 61 79 6c 61 6e 64 20 67 6c 6f 62 61 6c 73 5c 6e 22 29 3b 20 72 65 74 75 quired.Wayland.globals\n");.retu
6e20 72 6e 20 31 3b 20 7d 00 00 00 00 00 00 00 15 20 20 20 20 2f 2f 20 43 72 65 61 74 65 20 73 75 72 rn.1;.}............//.Create.sur
6e40 66 61 63 65 00 00 00 37 20 20 20 20 73 75 72 66 61 63 65 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 face...7....surface.=.wl_composi
6e60 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 63 6f 6d 70 6f 73 69 74 6f 72 29 3b 00 tor_create_surface(compositor);.
6e80 00 00 40 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 ..@....xdg_surface.=.xdg_wm_base
6ea0 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 77 6d 5f 62 61 73 65 2c 20 73 75 72 66 61 63 _get_xdg_surface(wm_base,.surfac
6ec0 65 29 3b 00 00 00 47 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 e);...G....xdg_surface_add_liste
6ee0 6e 65 72 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 26 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 ner(xdg_surface,.&xdg_surface_li
6f00 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 35 20 20 20 20 74 6f 70 6c 65 76 65 6c 20 3d stener,.NULL);...5....toplevel.=
6f20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 78 64 67 5f 73 75 .xdg_surface_get_toplevel(xdg_su
6f40 72 66 61 63 65 29 3b 00 00 00 1f 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 rface);........wl_surface_commit
6f60 28 73 75 72 66 61 63 65 29 3b 00 00 00 22 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 (surface);..."....wl_display_rou
6f80 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 00 00 00 00 00 18 20 20 20 20 2f 2f 20 43 ndtrip(display);............//.C
6fa0 72 65 61 74 65 20 53 48 4d 20 62 75 66 66 65 72 00 00 00 1b 20 20 20 20 69 6e 74 20 73 74 72 69 reate.SHM.buffer........int.stri
6fc0 64 65 20 3d 20 57 49 44 54 48 20 2a 20 34 3b 00 00 00 1f 20 20 20 20 69 6e 74 20 73 69 7a 65 20 de.=.WIDTH.*.4;........int.size.
6fe0 3d 20 73 74 72 69 64 65 20 2a 20 48 45 49 47 48 54 3b 00 00 00 23 20 20 20 20 69 6e 74 20 66 64 =.stride.*.HEIGHT;...#....int.fd
7000 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 4d 20 20 20 .=.create_shm_file(size);...M...
7020 20 76 6f 69 64 20 2a 64 61 74 61 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 .void.*data.=.mmap(NULL,.size,.P
7040 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 ROT_READ.|.PROT_WRITE,.MAP_SHARE
7060 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 38 20 20 20 20 69 66 20 28 64 61 74 61 20 3d 3d 20 4d 41 D,.fd,.0);...8....if.(data.==.MA
7080 50 5f 46 41 49 4c 45 44 29 20 7b 20 70 65 72 72 6f 72 28 22 6d 6d 61 70 22 29 3b 20 65 78 69 74 P_FAILED).{.perror("mmap");.exit
70a0 28 31 29 3b 20 7d 00 00 00 00 00 00 00 22 20 20 20 20 2f 2f 20 46 69 6c 6c 20 62 75 66 66 65 72 (1);.}......."....//.Fill.buffer
70c0 20 77 69 74 68 20 73 6f 6c 69 64 20 62 6c 75 65 00 00 00 1c 20 20 20 20 75 69 6e 74 33 32 5f 74 .with.solid.blue........uint32_t
70e0 20 2a 70 69 78 65 6c 73 20 3d 20 64 61 74 61 3b 00 00 00 2c 20 20 20 20 66 6f 72 20 28 69 6e 74 .*pixels.=.data;...,....for.(int
7100 20 69 20 3d 20 30 3b 20 69 20 3c 20 57 49 44 54 48 20 2a 20 48 45 49 47 48 54 3b 20 69 2b 2b 29 .i.=.0;.i.<.WIDTH.*.HEIGHT;.i++)
7120 00 00 00 35 20 20 20 20 20 20 20 20 70 69 78 65 6c 73 5b 69 5d 20 3d 20 30 78 66 66 30 30 30 30 ...5........pixels[i].=.0xff0000
7140 66 66 3b 20 2f 2f 20 41 52 47 42 20 3d 20 6f 70 61 71 75 65 20 62 6c 75 65 00 00 00 00 00 00 00 ff;.//.ARGB.=.opaque.blue.......
7160 41 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 A....struct.wl_shm_pool.*pool.=.
7180 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 wl_shm_create_pool(shm,.fd,.size
71a0 29 3b 00 00 00 71 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 66 );...q....struct.wl_buffer.*buff
71c0 65 72 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 er.=.wl_shm_pool_create_buffer(p
71e0 6f 6f 6c 2c 20 30 2c 20 57 49 44 54 48 2c 20 48 45 49 47 48 54 2c 20 73 74 72 69 64 65 2c 20 57 ool,.0,.WIDTH,.HEIGHT,.stride,.W
7200 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 00 00 00 00 2d 20 L_SHM_FORMAT_ARGB8888);.......-.
7220 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 73 75 72 66 61 63 65 2c 20 62 75 ...wl_surface_attach(surface,.bu
7240 66 66 65 72 2c 20 30 2c 20 30 29 3b 00 00 00 1f 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 ffer,.0,.0);........wl_surface_c
7260 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 00 00 00 00 11 20 20 20 20 2f 2f 20 45 76 ommit(surface);............//.Ev
7280 65 6e 74 20 6c 6f 6f 70 00 00 00 37 20 20 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 20 26 ent.loop...7....while.(running.&
72a0 26 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 64 69 73 70 6c 61 79 29 29 20 &.wl_display_dispatch(display)).
72c0 7b 20 7d 00 00 00 00 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 30 3b 35 81 f5 18 00 00 00 00 {.}............return.0;5.......
72e0 00 00 00 00 09 00 00 00 6c 00 00 00 02 00 00 00 83 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 ........l.......................
7300 91 0e 00 00 00 00 00 00 16 0f 00 00 00 00 00 00 35 81 5f d0 00 00 00 0d 00 00 00 0f 00 00 00 00 ................5._.............
7320 00 00 00 00 00 00 00 0e 00 00 00 80 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 ................................
7340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
73e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 82 00 00 00 00 00 00 00 00 00 00 ................................
7480 00 80 00 00 00 00 00 00 00 00 00 00 00 56 00 00 00 00 00 00 00 00 69 9d 6b 68 04 01 00 00 00 00 .............V........i.kh......
74a0 00 f5 18 00 00 00 7f 00 00 00 80 00 00 00 00 00 00 00 03 00 00 00 0f 20 20 2f 2f 20 45 76 65 6e .........................//.Even
74c0 74 20 6c 6f 6f 70 00 00 00 33 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 20 26 26 20 77 6c t.loop...3..while.(running.&&.wl
74e0 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 64 69 73 70 6c 61 79 29 29 20 7b 00 00 00 _display_dispatch(display)).{...
7500 03 20 20 7d 35 81 f5 18 00 00 00 00 7f 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 ...}5...........................
7520 00 00 00 00 d6 0e 00 00 00 00 00 00 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 ............H...............5._.
7540 00 00 00 0e 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 0f 00 00 00 80 00 00 00 00 00 00 00 00 ................................
7560 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
75a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
75c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
75e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
76a0 00 80 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 56 00 00 00 00 00 00 .........................V......
76c0 00 00 69 9d 6b 69 04 01 00 00 00 00 00 f5 18 00 00 00 7f 00 00 00 81 00 00 00 83 00 00 00 01 00 ..i.ki..........................
76e0 00 00 02 20 20 f5 18 00 00 00 7f 00 00 00 81 00 00 00 82 00 00 00 00 35 81 f5 18 00 00 00 00 7f .......................5........
7700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 d6 0e 00 00 00 00 00 00 00 ................................
7720 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 f5 18 00 00 00 00 7f 00 00 00 00 00 00 00 00 00 00 ................................
7740 00 00 00 00 00 00 00 00 00 18 00 00 00 d6 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 00 00 ................................
7760 00 00 00 00 00 f5 18 00 00 00 00 7f 00 00 00 16 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 06 ................................
7780 00 00 00 ec 0e 00 00 00 00 00 00 02 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 35 81 5f d0 00 ...........................5._..
77a0 00 00 0f 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 80 00 00 00 1c 00 00 00 00 ff ................................
77c0 ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
77e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7900 81 00 00 00 00 00 00 00 00 00 00 00 81 00 00 00 00 00 00 00 00 00 00 00 56 00 00 00 00 00 00 00 ........................V.......
7920 00 69 9d 6b 70 04 01 00 00 00 00 00 f5 18 00 00 00 7f 00 00 00 81 00 00 00 83 00 00 00 01 00 00 .i.kp...........................
7940 00 1c 20 20 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 6c 5f 63 6c 6f 73 65 35 81 ....static.void.toplevel_close5.
7960 f5 18 00 00 00 00 7f 00 00 00 1c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 f2 0e ................................
7980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 10 00 00 ......................5._.......
79a0 00 12 00 00 00 00 00 00 00 00 00 00 00 11 00 00 00 80 00 00 00 1d 00 00 00 00 ff ff ff ff 00 01 ................................
79c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
79e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 81 00 00 00 00 ................................
7b00 00 00 00 00 00 00 00 81 00 00 00 00 00 00 00 00 00 00 00 56 00 00 00 00 00 00 00 00 69 9d 6b 70 ...................V........i.kp
7b20 04 01 00 00 00 00 00 f5 18 00 00 00 7f 00 00 00 81 00 00 00 83 00 00 00 01 00 00 00 1e 20 20 73 ...............................s
7b40 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 6c 5f 63 6c 6f 73 65 28 29 35 81 f5 18 00 tatic.void.toplevel_close()5....
7b60 00 00 00 7f 00 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 00 00 00 f3 0e 00 00 00 ................................
7b80 00 00 00 00 00 00 00 00 00 00 00 18 00 00 00 00 00 00 00 f5 18 00 00 00 00 7f 00 00 00 34 00 00 .............................4..
7ba0 00 00 00 00 00 01 00 00 00 00 00 00 00 07 00 00 00 0a 0f 00 00 00 00 00 00 01 00 00 00 00 00 00 ................................
7bc0 00 07 00 00 00 00 00 00 00 f5 18 00 00 00 00 7f 00 00 00 3a 00 00 00 00 00 00 00 01 00 00 00 00 ...................:............
7be0 00 00 00 0c 00 00 00 10 0f 00 00 00 00 00 00 01 00 00 00 00 00 00 00 0c 00 00 00 00 00 00 00 35 ...............................5
7c00 81 5f d0 00 00 00 11 00 00 00 13 00 00 00 00 00 00 00 00 00 00 00 12 00 00 00 80 00 00 00 47 00 ._............................G.
7c20 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7d60 00 00 00 00 81 00 00 00 00 00 00 00 00 00 00 00 81 00 00 00 00 00 00 00 00 00 00 00 56 00 00 00 ............................V...
7d80 00 00 00 00 00 69 9d 6b 7b 04 01 00 00 00 00 00 f5 18 00 00 00 7f 00 00 00 81 00 00 00 83 00 00 .....i.k{.......................
7da0 00 01 00 00 00 47 20 20 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 6c 5f 63 6c 6f .....G..static.void.toplevel_clo
7dc0 73 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 se(void.*data,.struct.xdg_toplev
7de0 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 29 35 81 f5 18 00 00 00 00 7f 00 00 00 47 00 00 00 00 00 00 el.*toplevel)5...........G......
7e00 00 00 00 00 00 00 00 00 00 01 00 00 00 1d 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 ................................
7e20 00 00 00 00 00 35 81 5f d0 00 00 00 12 00 00 00 14 00 00 00 00 00 00 00 00 00 00 00 13 00 00 00 .....5._........................
7e40 80 00 00 00 48 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ....H...........................
7e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7f80 00 00 00 00 00 00 00 00 00 00 81 00 00 00 00 00 00 00 00 00 00 00 81 00 00 00 00 00 00 00 00 00 ................................
7fa0 00 00 56 00 00 00 00 00 00 00 00 69 9d 6b 7b 04 01 00 00 00 00 00 f5 18 00 00 00 7f 00 00 00 81 ..V........i.k{.................
7fc0 00 00 00 83 00 00 00 01 00 00 00 48 20 20 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 ...........H..static.void.toplev
7fe0 65 6c 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f el_close(void.*data,.struct.xdg_
8000 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 29 20 35 81 f5 18 00 00 00 00 7f 00 00 00 toplevel.*toplevel).5...........
8020 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 1e 0f 00 00 00 00 00 00 00 00 00 00 H...............................
8040 00 00 00 00 02 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 13 00 00 00 15 00 00 00 00 00 00 00 00 ............5._.................
8060 00 00 00 14 00 00 00 80 00 00 00 49 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 ...........I....................
8080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
81a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 81 00 00 00 00 00 00 00 00 00 00 00 81 00 00 ................................
81c0 00 00 00 00 00 00 00 00 00 56 00 00 00 00 00 00 00 00 69 9d 6b 7b 04 01 00 00 00 00 00 f5 18 00 .........V........i.k{..........
81e0 00 00 7f 00 00 00 82 00 00 00 84 00 00 00 01 00 00 00 49 20 20 73 74 61 74 69 63 20 76 6f 69 64 ..................I..static.void
8200 20 74 6f 70 6c 65 76 65 6c 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 .toplevel_close(void.*data,.stru
8220 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 29 20 7b f5 18 00 00 ct.xdg_toplevel.*toplevel).{....
8240 00 80 00 00 00 82 00 00 00 00 00 00 00 01 00 00 00 03 20 20 7d f5 18 00 00 00 7f 00 00 00 82 00 ....................}...........
8260 00 00 83 00 00 00 01 00 00 00 4a 20 20 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 ..........J..static.void.topleve
8280 6c 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 l_close(void.*data,.struct.xdg_t
82a0 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 29 20 7b 7d 35 81 f5 18 00 00 00 00 7f 00 00 oplevel.*toplevel).{}5..........
82c0 00 49 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 1f 0f 00 00 00 00 00 00 00 00 00 .I..............................
82e0 00 00 00 00 00 03 00 00 00 00 00 00 00 f5 18 00 00 00 00 7f 00 00 00 49 00 00 00 00 00 00 00 00 .......................I........
8300 00 00 00 01 00 00 00 02 00 00 00 1f 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 ................................
8320 00 00 00 f5 18 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 0e 00 00 ................................
8340 00 20 0f 00 00 00 00 00 00 02 00 00 00 00 00 00 00 0e 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 .........................5._....
8360 14 00 00 00 16 00 00 00 00 00 00 00 00 00 00 00 15 00 00 00 81 00 00 00 0e 00 00 00 00 ff ff ff ................................
8380 ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 83 00 ................................
84c0 00 00 00 00 00 00 00 00 00 00 83 00 00 00 00 00 00 00 00 00 00 00 56 00 00 00 00 00 00 00 00 69 ......................V........i
84e0 9d 6b 7f 04 01 00 00 00 00 00 f5 18 00 00 00 80 00 00 00 82 00 00 00 85 00 00 00 01 00 00 00 0e .k..............................
8500 09 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 35 81 f5 18 00 00 00 00 80 00 00 00 0e 00 00 00 00 00 ...running.=.05.................
8520 00 00 00 00 00 00 00 00 00 00 01 00 00 00 2e 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 ................................
8540 00 00 00 00 00 00 35 81 5f d0 00 00 00 15 00 00 00 17 00 00 00 00 00 00 00 00 00 00 00 16 00 00 ......5._.......................
8560 00 82 00 00 00 03 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
86a0 00 00 00 00 00 00 00 00 00 00 00 83 00 00 00 00 00 00 00 00 00 00 00 83 00 00 00 00 00 00 00 00 ................................
86c0 00 00 00 56 00 00 00 00 00 00 00 00 69 9d 6b 81 04 01 00 00 00 00 00 f5 18 00 00 00 81 00 00 00 ...V........i.k.................
86e0 83 00 00 00 85 00 00 00 01 00 00 00 03 20 20 7d 35 81 f5 18 00 00 00 00 81 00 00 00 03 00 00 00 ...............}5...............
8700 00 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 33 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................3...............
8720 03 00 00 00 00 00 00 00 f5 18 00 00 00 00 82 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 ................................
8740 00 00 00 00 00 00 34 0f 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 ......4.........................
8760 00 00 00 00 81 00 00 00 03 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 33 0f 00 00 ............................3...
8780 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 16 00 00 00 18 ....................5._.........
87a0 00 00 00 00 00 00 00 00 00 00 00 17 00 00 00 82 00 00 00 03 00 00 00 00 ff ff ff ff 00 01 00 00 ................................
87c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
88a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
88c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
88e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 83 00 00 00 00 00 00 ................................
8900 00 00 00 00 00 83 00 00 00 00 00 00 00 00 00 00 00 56 00 00 00 00 00 00 00 00 69 9d 6b 84 04 01 .................V........i.k...
8920 00 00 00 00 00 f5 18 00 00 00 81 00 00 00 85 00 00 00 85 00 00 00 01 00 00 00 03 20 20 7d 35 81 .............................}5.
8940 f5 18 00 00 00 00 81 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 33 0f ..............................3.
8960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 f5 18 00 00 00 00 82 00 00 00 ................................
8980 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 34 0f 00 00 00 00 00 00 02 00 00 00 ....................4...........
89a0 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 82 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
89c0 00 00 01 00 00 00 02 00 00 00 34 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 ..........4.....................
89e0 00 00 f5 18 00 00 00 00 83 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 24 00 00 00 ............................$...
8a00 37 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 24 00 00 00 00 00 00 00 f5 18 00 00 00 00 83 00 7...............$...............
8a20 00 00 25 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 08 00 00 00 5a 0f 00 00 00 00 00 00 01 00 ..%...................Z.........
8a40 00 00 00 00 00 00 08 00 00 00 00 00 00 00 f5 18 00 00 00 00 83 00 00 00 2c 00 00 00 00 00 00 00 ........................,.......
8a60 01 00 00 00 00 00 00 00 00 00 00 00 61 0f 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 ............a...................
8a80 00 00 00 00 f5 18 00 00 00 00 83 00 00 00 2b 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 ..............+.................
8aa0 00 00 60 0f 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 ..`.............................
8ac0 83 00 00 00 2a 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 04 00 00 00 5f 0f 00 00 00 00 00 00 ....*..................._.......
8ae0 01 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 f5 18 00 00 00 00 83 00 00 00 2d 00 00 00 00 00 ..........................-.....
8b00 00 00 01 00 00 00 00 00 00 00 0c 00 00 00 62 0f 00 00 00 00 00 00 01 00 00 00 00 00 00 00 0c 00 ..............b.................
8b20 00 00 00 00 00 00 35 81 5f d0 00 00 00 17 00 00 00 19 00 00 00 00 00 00 00 00 00 00 00 18 00 00 ......5._.......................
8b40 00 84 00 00 00 39 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .....9..........................
8b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8c80 00 00 00 00 00 00 00 00 00 00 00 85 00 00 00 00 00 00 00 00 00 00 00 85 00 00 00 00 00 00 00 00 ................................
8ca0 00 00 00 56 00 00 00 00 00 00 00 00 69 9d 6b 91 04 01 00 00 00 00 00 f5 18 00 00 00 83 00 00 00 ...V........i.k.................
8cc0 85 00 00 00 87 00 00 00 01 00 00 00 39 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 78 64 67 5f ............9..static.const.xdg_
8ce0 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 toplevel_listener.toplevel_liste
8d00 6e 65 72 20 3d 20 35 81 f5 18 00 00 00 00 83 00 00 00 39 00 00 00 00 00 00 00 00 00 00 00 00 00 ner.=.5...........9.............
8d20 00 00 02 00 00 00 6e 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 35 81 ......n.......................5.
8d40 5f d0 00 00 00 18 00 00 00 1a 00 00 00 00 00 00 00 00 00 00 00 19 00 00 00 84 00 00 00 3b 00 00 _............................;..
8d60 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ea0 00 00 00 85 00 00 00 00 00 00 00 00 00 00 00 85 00 00 00 00 00 00 00 00 00 00 00 56 00 00 00 00 ...........................V....
8ec0 00 00 00 00 69 9d 6b 93 04 01 00 00 00 00 00 f5 18 00 00 00 83 00 00 00 85 00 00 00 87 00 00 00 ....i.k.........................
8ee0 01 00 00 00 3b 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c ....;..static.const.xdg_toplevel
8f00 5f 6c 69 73 74 65 6e 65 72 20 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 7d _listener.toplevel_listener.=.{}
8f20 35 81 f5 18 00 00 00 00 83 00 00 00 3b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 5...........;...................
8f40 70 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 19 p.......................5._.....
8f60 00 00 00 1b 00 00 00 00 00 00 00 00 00 00 00 1a 00 00 00 84 00 00 00 3b 00 00 00 00 ff ff ff ff .......................;........
8f80 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 85 00 00 ................................
90c0 00 00 00 00 00 00 00 00 00 85 00 00 00 00 00 00 00 00 00 00 00 56 00 00 00 00 00 00 00 00 69 9d .....................V........i.
90e0 6b 93 04 01 00 00 00 08 00 f5 18 00 00 00 80 00 00 00 82 00 00 00 87 00 00 00 01 00 00 00 0f 09 k...............................
9100 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 35 81 f5 18 00 00 00 00 80 00 00 00 00 00 00 00 00 00 ..running.=.0;5.................
9120 00 00 01 00 00 00 00 00 00 00 02 00 00 00 20 0f 00 00 00 00 00 00 01 00 00 00 00 00 00 00 02 00 ................................
9140 00 00 00 00 00 00 35 81 5f d0 00 00 00 1a 00 00 00 1c 00 00 00 00 00 00 00 00 00 00 00 1b 00 00 ......5._.......................
9160 00 7e 00 00 00 11 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .~..............................
9180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92a0 00 00 00 00 00 00 00 00 00 00 00 85 00 00 00 00 00 00 00 00 00 00 00 85 00 00 00 00 00 00 00 00 ................................
92c0 00 00 00 56 00 00 00 00 00 00 00 00 69 9d 6b a0 04 01 00 00 00 00 00 f5 18 00 00 00 7f 00 00 00 ...V........i.k.................
92e0 82 00 00 00 89 00 00 00 01 00 00 00 02 20 20 f5 18 00 00 00 80 00 00 00 81 00 00 00 89 00 00 00 ................................
9300 00 f5 18 00 00 00 7e 00 00 00 81 00 00 00 88 00 00 00 01 00 00 00 02 20 20 f5 18 00 00 00 7e 00 ......~.......................~.
9320 00 00 80 00 00 00 87 00 00 00 00 35 81 f5 18 00 00 00 00 7e 00 00 00 00 00 00 00 00 00 00 00 00 ...........5.......~............
9340 00 00 00 01 00 00 00 00 00 00 00 d5 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 ................................
9360 00 00 00 f5 18 00 00 00 00 7e 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 .........~......................
9380 00 d5 0e 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 7e ...............................~
93a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 02 00 00 00 d5 0e 00 00 00 00 00 00 00 ................................
93c0 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 f5 18 00 00 00 00 7f 00 00 00 02 00 00 00 00 00 00 ................................
93e0 00 00 00 00 00 01 00 00 00 3e 00 00 00 d8 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70 00 00 .........>...................p..
9400 00 00 00 00 00 35 81 5f d0 00 00 00 1b 00 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 1c 00 00 00 .....5._........................
9420 83 00 00 00 02 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9560 00 00 00 00 00 00 00 00 00 00 88 00 00 00 00 00 00 00 00 00 00 00 88 00 00 00 00 00 00 00 00 00 ................................
9580 00 00 56 00 00 00 00 00 00 00 00 69 9d 6b a2 04 01 00 00 00 0a 00 f5 18 00 00 00 80 00 00 00 82 ..V........i.k..................
95a0 00 00 00 8a 00 00 00 01 00 00 00 3e 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 ...........>xdg_toplevel_add_lis
95c0 74 65 6e 65 72 28 74 6f 70 6c 65 76 65 6c 2c 20 26 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e tener(toplevel,.&toplevel_listen
95e0 65 72 2c 20 4e 55 4c 4c 29 3b 35 81 f5 18 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 er,.NULL);5.....................
9600 00 00 00 00 00 00 02 00 00 00 0a 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 ................................
9620 00 00 35 81 5f d0 00 00 00 1c 00 00 00 1e 00 00 00 00 00 00 00 00 00 00 00 1d 00 00 00 01 00 00 ..5._...........................
9640 00 02 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
96a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
96c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
96e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
97a0 00 00 00 00 00 00 00 00 69 9d 6b b2 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 ........i.k.....................
97c0 00 00 00 00 8a 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 ........&#include."xdg-shell-cli
97e0 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e ent-protocol.h"....#include.<fcn
9800 74 6c 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 tl.h>....#include.<stdio.h>....#
9820 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c include.<stdlib.h>....#include.<
9840 73 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e string.h>....#include.<sys/mman.
9860 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e h>....#include.<unistd.h>....#in
9880 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 00 00 00 00 1b clude.<wayland-client.h>........
98a0 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 69 73 70 6c 61 79 3b 00 00 00 1d 73 struct.wl_display.*display;....s
98c0 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 79 3b 00 00 00 21 truct.wl_registry.*registry;...!
98e0 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 6f 73 69 74 6f 72 struct.wl_compositor.*compositor
9900 3b 00 00 00 13 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 1c 73 74 72 75 ;....struct.wl_shm.*shm;....stru
9920 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 5f 62 61 73 65 3b 00 00 00 1b 73 74 72 75 ct.xdg_wm_base.*wm_base;....stru
9940 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 72 66 61 63 65 3b 00 00 00 20 73 74 72 75 63 ct.wl_surface.*surface;....struc
9960 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 64 67 5f 73 75 72 66 61 63 65 3b 00 00 00 1e 73 t.xdg_surface.*xdg_surface;....s
9980 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 3b 00 00 00 truct.xdg_toplevel.*toplevel;...
99a0 00 00 00 00 0e 2f 2f 20 57 69 6e 64 6f 77 20 73 69 7a 65 00 00 00 16 63 6f 6e 73 74 20 69 6e 74 .....//.Window.size....const.int
99c0 20 57 49 44 54 48 20 3d 20 33 30 30 3b 00 00 00 17 63 6f 6e 73 74 20 69 6e 74 20 48 45 49 47 48 .WIDTH.=.300;....const.int.HEIGH
99e0 54 20 3d 20 32 30 30 3b 00 00 00 00 00 00 00 0f 2f 2f 20 52 75 6e 6e 69 6e 67 20 66 6c 61 67 00 T.=.200;........//.Running.flag.
9a00 00 00 10 69 6e 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 00 00 00 00 26 2f 2f 20 2d 2d ...int.running.=.1;.......&//.--
9a20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
9a40 2d 00 00 00 13 2f 2f 20 57 61 79 6c 61 6e 64 20 68 61 6e 64 6c 65 72 73 00 00 00 26 2f 2f 20 2d -....//.Wayland.handlers...&//.-
9a60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
9a80 2d 2d 00 00 00 41 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 62 61 73 65 5f 70 69 6e 67 28 76 --...Astatic.void.wm_base_ping(v
9aa0 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 oid.*data,.struct.xdg_wm_base.*w
9ac0 6d 5f 62 61 73 65 2c 00 00 00 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 m_base,...+.....................
9ae0 20 20 20 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 24 20 20 78 64 67 5f ....uint32_t.serial).{...$..xdg_
9b00 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 5f 62 61 73 65 2c 20 73 65 72 69 61 6c 29 3b 00 00 wm_base_pong(wm_base,.serial);..
9b20 00 01 7d 00 00 00 00 00 00 00 4b 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 ..}.......Kstatic.const.struct.x
9b40 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 62 61 73 65 5f 6c 69 73 74 dg_wm_base_listener.wm_base_list
9b60 65 6e 65 72 20 3d 20 7b 77 6d 5f 62 61 73 65 5f 70 69 6e 67 7d 3b 00 00 00 00 00 00 00 4e 73 74 ener.=.{wm_base_ping};.......Nst
9b80 61 74 69 63 20 76 6f 69 64 20 78 64 67 5f 73 75 72 66 61 63 65 5f 63 6f 6e 66 69 67 75 72 65 28 atic.void.xdg_surface_configure(
9ba0 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a void.*data,.struct.xdg_surface.*
9bc0 78 64 67 5f 73 75 72 66 61 63 65 2c 00 00 00 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 xdg_surface,...4................
9be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 ..................uint32_t.seria
9c00 6c 29 20 7b 00 00 00 31 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 l).{...1..xdg_surface_ack_config
9c20 75 72 65 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 1d 20 20 77 ure(xdg_surface,.serial);......w
9c40 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 01 7d 00 l_surface_commit(surface);....}.
9c60 00 00 00 00 00 00 41 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 ......Astatic.const.struct.xdg_s
9c80 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 urface_listener.xdg_surface_list
9ca0 65 6e 65 72 20 3d 20 7b 00 00 00 1b 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 63 6f 6e 66 ener.=.{........xdg_surface_conf
9cc0 69 67 75 72 65 7d 3b 00 00 00 00 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 69 73 igure};.......Fstatic.void.regis
9ce0 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 77 try_handler(void.*data,.struct.w
9d00 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 79 2c 00 00 00 40 20 20 20 20 20 20 20 l_registry.*registry,...@.......
9d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 69 ......................uint32_t.i
9d40 64 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 6e 74 65 72 66 61 63 65 2c 00 00 00 30 20 20 20 d,.const.char.*interface,...0...
9d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 ..........................uint32
9d80 5f 74 20 76 65 72 73 69 6f 6e 29 20 7b 00 00 00 30 20 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e _t.version).{...0..if.(strcmp(in
9da0 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 20 3d 3d 20 30 29 20 terface,."wl_compositor").==.0).
9dc0 7b 00 00 00 4d 20 20 20 20 63 6f 6d 70 6f 73 69 74 6f 72 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 {...M....compositor.=.wl_registr
9de0 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 y_bind(registry,.id,.&wl_composi
9e00 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 30 20 20 7d 20 65 6c 73 65 20 69 tor_interface,.4);...0..}.else.i
9e20 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d 22 29 20 3d f.(strcmp(interface,."wl_shm").=
9e40 3d 20 30 29 20 7b 00 00 00 3f 20 20 20 20 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f =.0).{...?....shm.=.wl_registry_
9e60 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 bind(registry,.id,.&wl_shm_inter
9e80 66 61 63 65 2c 20 31 29 3b 00 00 00 35 20 20 7d 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 face,.1);...5..}.else.if.(strcmp
9ea0 28 69 6e 74 65 72 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 20 3d 3d 20 30 29 (interface,."xdg_wm_base").==.0)
9ec0 20 7b 00 00 00 48 20 20 20 20 77 6d 5f 62 61 73 65 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f .{...H....wm_base.=.wl_registry_
9ee0 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f bind(registry,.id,.&xdg_wm_base_
9f00 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 3f 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 interface,.1);...?....xdg_wm_bas
9f20 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 77 6d 5f 62 61 73 65 2c 20 26 77 6d 5f 62 61 73 65 e_add_listener(wm_base,.&wm_base
9f40 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 _listener,.NULL);......}....}...
9f60 00 00 00 00 4f 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 ....Ostatic.const.struct.wl_regi
9f80 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 stry_listener.registry_listener.
9fa0 3d 20 7b 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 2c 00 00 00 44 20 20 20 20 20 20 20 20 =.{registry_handler,...D........
9fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4e 55 4c 4c 7d 3b 00 00 00 00 ......................NULL};....
a000 00 00 00 26 2f 2f 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ...&//.-------------------------
a020 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 00 0e 2f 2f 20 53 48 4d 20 68 65 6c 70 65 72 73 00 00 00 26 ----------....//.SHM.helpers...&
a040 2f 2f 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d //.-----------------------------
a060 2d 2d 2d 2d 2d 2d 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 5f ------...)static.int.create_shm_
a080 66 69 6c 65 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 2e 20 20 63 68 61 72 20 74 65 file(size_t.size).{......char.te
a0a0 6d 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 61 79 6c 61 6e 64 2d 73 68 6d 2d 58 58 58 mplate[].=."/tmp/wayland-shm-XXX
a0c0 58 58 58 22 3b 00 00 00 1d 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 XXX";......int.fd.=.mkstemp(temp
a0e0 6c 61 74 65 29 3b 00 00 00 0f 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 7b 00 00 00 16 20 20 20 late);......if.(fd.<.0).{.......
a100 20 70 65 72 72 6f 72 28 22 6d 6b 73 74 65 6d 70 22 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 .perror("mkstemp");........exit(
a120 31 29 3b 00 00 00 03 20 20 7d 00 00 00 13 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 1);......}......unlink(template)
a140 3b 00 00 00 20 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c ;......if.(ftruncate(fd,.size).<
a160 20 30 29 20 7b 00 00 00 18 20 20 20 20 70 65 72 72 6f 72 28 22 66 74 72 75 6e 63 61 74 65 22 29 .0).{........perror("ftruncate")
a180 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 0c 20 20 72 65 ;........exit(1);......}......re
a1a0 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 26 2f 2f 20 2d 2d 2d 2d 2d 2d 2d 2d turn.fd;....}.......&//.--------
a1c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 00 07 2f ---------------------------..../
a1e0 2f 20 4d 61 69 6e 00 00 00 26 2f 2f 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d /.Main...&//.-------------------
a200 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 00 0c 69 6e 74 20 6d 61 69 6e 28 29 20 7b ----------------....int.main().{
a220 00 00 00 25 20 20 64 69 73 70 6c 61 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 ...%..display.=.wl_display_conne
a240 63 74 28 4e 55 4c 4c 29 3b 00 00 00 11 20 20 69 66 20 28 21 64 69 73 70 6c 61 79 29 20 7b 00 00 ct(NULL);......if.(!display).{..
a260 00 3e 20 20 20 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 46 61 69 6c 65 64 20 74 6f .>....fprintf(stderr,."Failed.to
a280 20 63 6f 6e 6e 65 63 74 20 74 6f 20 57 61 79 6c 61 6e 64 20 64 69 73 70 6c 61 79 5c 6e 22 29 3b .connect.to.Wayland.display\n");
a2a0 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 2e ........return.1;......}........
a2c0 20 20 72 65 67 69 73 74 72 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 ..registry.=.wl_display_get_regi
a2e0 73 74 72 79 28 64 69 73 70 6c 61 79 29 3b 00 00 00 3f 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f stry(display);...?..wl_registry_
a300 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 72 65 67 69 73 74 72 79 2c 20 26 72 65 67 69 73 74 72 79 add_listener(registry,.&registry
a320 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 20 20 20 77 6c 5f 64 69 73 70 6c 61 _listener,.NULL);......wl_displa
a340 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 00 00 00 00 00 28 20 20 69 y_roundtrip(display);.......(..i
a360 66 20 28 21 63 6f 6d 70 6f 73 69 74 6f 72 20 7c 7c 20 21 73 68 6d 20 7c 7c 20 21 77 6d 5f 62 61 f.(!compositor.||.!shm.||.!wm_ba
a380 73 65 29 20 7b 00 00 00 3a 20 20 20 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 4d 69 se).{...:....fprintf(stderr,."Mi
a3a0 73 73 69 6e 67 20 72 65 71 75 69 72 65 64 20 57 61 79 6c 61 6e 64 20 67 6c 6f 62 61 6c 73 5c 6e ssing.required.Wayland.globals\n
a3c0 22 29 3b 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 03 20 20 7d 00 00 00 00 00 ");........return.1;......}.....
a3e0 00 00 13 20 20 2f 2f 20 43 72 65 61 74 65 20 73 75 72 66 61 63 65 00 00 00 35 20 20 73 75 72 66 .....//.Create.surface...5..surf
a400 61 63 65 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 ace.=.wl_compositor_create_surfa
a420 63 65 28 63 6f 6d 70 6f 73 69 74 6f 72 29 3b 00 00 00 3e 20 20 78 64 67 5f 73 75 72 66 61 63 65 ce(compositor);...>..xdg_surface
a440 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 77 .=.xdg_wm_base_get_xdg_surface(w
a460 6d 5f 62 61 73 65 2c 20 73 75 72 66 61 63 65 29 3b 00 00 00 45 20 20 78 64 67 5f 73 75 72 66 61 m_base,.surface);...E..xdg_surfa
a480 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 26 78 64 ce_add_listener(xdg_surface,.&xd
a4a0 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 33 20 20 g_surface_listener,.NULL);...3..
a4c0 74 6f 70 6c 65 76 65 6c 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 toplevel.=.xdg_surface_get_tople
a4e0 76 65 6c 28 78 64 67 5f 73 75 72 66 61 63 65 29 3b 00 00 00 1d 20 20 77 6c 5f 73 75 72 66 61 63 vel(xdg_surface);......wl_surfac
a500 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 20 20 20 77 6c 5f 64 69 73 70 6c e_commit(surface);......wl_displ
a520 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 00 00 00 00 00 16 20 20 ay_roundtrip(display);..........
a540 2f 2f 20 43 72 65 61 74 65 20 53 48 4d 20 62 75 66 66 65 72 00 00 00 19 20 20 69 6e 74 20 73 74 //.Create.SHM.buffer......int.st
a560 72 69 64 65 20 3d 20 57 49 44 54 48 20 2a 20 34 3b 00 00 00 1d 20 20 69 6e 74 20 73 69 7a 65 20 ride.=.WIDTH.*.4;......int.size.
a580 3d 20 73 74 72 69 64 65 20 2a 20 48 45 49 47 48 54 3b 00 00 00 21 20 20 69 6e 74 20 66 64 20 3d =.stride.*.HEIGHT;...!..int.fd.=
a5a0 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 4b 20 20 76 6f 69 .create_shm_file(size);...K..voi
a5c0 64 20 2a 64 61 74 61 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f d.*data.=.mmap(NULL,.size,.PROT_
a5e0 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 READ.|.PROT_WRITE,.MAP_SHARED,.f
a600 64 2c 20 30 29 3b 00 00 00 1b 20 20 69 66 20 28 64 61 74 61 20 3d 3d 20 4d 41 50 5f 46 41 49 4c d,.0);......if.(data.==.MAP_FAIL
a620 45 44 29 20 7b 00 00 00 13 20 20 20 20 70 65 72 72 6f 72 28 22 6d 6d 61 70 22 29 3b 00 00 00 0c ED).{........perror("mmap");....
a640 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 20 20 20 2f 2f 20 ....exit(1);......}..........//.
a660 46 69 6c 6c 20 62 75 66 66 65 72 20 77 69 74 68 20 73 6f 6c 69 64 20 62 6c 75 65 00 00 00 1a 20 Fill.buffer.with.solid.blue.....
a680 20 75 69 6e 74 33 32 5f 74 20 2a 70 69 78 65 6c 73 20 3d 20 64 61 74 61 3b 00 00 00 2a 20 20 66 .uint32_t.*pixels.=.data;...*..f
a6a0 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 57 49 44 54 48 20 2a 20 48 45 49 47 48 or.(int.i.=.0;.i.<.WIDTH.*.HEIGH
a6c0 54 3b 20 69 2b 2b 29 00 00 00 31 20 20 20 20 70 69 78 65 6c 73 5b 69 5d 20 3d 20 30 78 66 66 30 T;.i++)...1....pixels[i].=.0xff0
a6e0 30 30 30 66 66 3b 20 2f 2f 20 41 52 47 42 20 3d 20 6f 70 61 71 75 65 20 62 6c 75 65 00 00 00 00 000ff;.//.ARGB.=.opaque.blue....
a700 00 00 00 3f 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d ...?..struct.wl_shm_pool.*pool.=
a720 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 73 68 6d 2c 20 66 64 2c 20 73 69 7a .wl_shm_create_pool(shm,.fd,.siz
a740 65 29 3b 00 00 00 37 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 66 65 e);...7..struct.wl_buffer.*buffe
a760 72 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 00 00 r.=.wl_shm_pool_create_buffer(..
a780 00 3e 20 20 20 20 20 20 70 6f 6f 6c 2c 20 30 2c 20 57 49 44 54 48 2c 20 48 45 49 47 48 54 2c 20 .>......pool,.0,.WIDTH,.HEIGHT,.
a7a0 73 74 72 69 64 65 2c 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b stride,.WL_SHM_FORMAT_ARGB8888);
a7c0 00 00 00 00 00 00 00 2b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 73 75 72 66 .......+..wl_surface_attach(surf
a7e0 61 63 65 2c 20 62 75 66 66 65 72 2c 20 30 2c 20 30 29 3b 00 00 00 1d 20 20 77 6c 5f 73 75 72 66 ace,.buffer,.0,.0);......wl_surf
a800 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 00 00 00 00 33 20 20 74 6f ace_commit(surface);.......3..to
a820 70 6c 65 76 65 6c 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 plevel.=.xdg_surface_get_topleve
a840 6c 28 78 64 67 5f 73 75 72 66 61 63 65 29 3b 00 00 00 40 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 l(xdg_surface);...@..xdg_topleve
a860 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 74 6f 70 6c 65 76 65 6c 2c 20 26 74 6f 70 6c 65 76 l_add_listener(toplevel,.&toplev
a880 65 6c 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 00 00 00 00 49 20 20 73 74 61 el_listener,.NULL);.......I..sta
a8a0 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 6c 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 61 tic.void.toplevel_close(void.*da
a8c0 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 ta,.struct.xdg_toplevel.*topleve
a8e0 6c 29 20 7b 00 00 00 10 20 20 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 03 20 20 7d 00 l).{........running.=.0;......}.
a900 00 00 00 00 00 00 3c 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 78 64 67 5f 74 6f 70 6c 65 76 ......<..static.const.xdg_toplev
a920 65 6c 5f 6c 69 73 74 65 6e 65 72 20 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 3d 20 el_listener.toplevel_listener.=.
a940 7b 7d 3b 00 00 00 00 00 00 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 {};..........return.0;....}5....
a960 00 00 00 00 00 00 00 00 00 00 00 8a 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a980 00 00 00 f8 0f 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 1d 00 00 00 1f 00 ...................5._..........
a9a0 00 00 00 00 00 00 00 00 00 00 1e 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 ................................
a9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aa00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aa20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aa40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aa60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aa80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aaa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ab00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d 6b ff 04 01 00 .........................i.k....
ab20 00 00 00 00 f5 18 00 00 00 7f 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 7d f5 18 00 00 00 ..........................}.....
ab40 80 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 7c 00 00 00 00 00 00 00 00 00 00 00 01 00 ..................|.............
ab60 00 00 2a 20 20 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 20 26 26 20 77 6c 5f 64 69 73 70 ..*....while.(running.&&.wl_disp
ab80 6c 61 79 5f 64 69 73 70 61 74 63 68 28 f5 18 00 00 00 7d 00 00 00 00 00 00 00 00 00 00 00 00 f5 lay_dispatch(.....}.............
aba0 18 00 00 00 6f 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 70 00 00 00 00 00 ....o.....................p.....
abc0 00 00 00 00 00 00 00 f5 18 00 00 00 48 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 ............H...................
abe0 00 00 49 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..I.............................
ac00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 .......................5........
ac20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...............H................
ac40 00 00 00 00 00 00 00 00 09 00 00 00 00 00 00 f5 18 00 00 00 00 48 00 00 00 00 00 00 00 00 00 00 .....................H..........
ac60 00 00 00 00 00 27 00 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 .....'..........................
ac80 00 00 00 00 00 f5 18 00 00 00 00 6f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0d 00 00 00 2a ...........o...................*
aca0 00 00 00 00 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 ................................
acc0 00 7c 00 00 00 2a 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 01 00 00 00 00 10 00 00 00 00 00 .|...*..........................
ace0 00 00 00 00 00 00 00 00 00 1d 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 1e 00 00 00 20 00 00 00 .................5._............
ad00 00 00 00 00 00 00 00 00 1f 00 00 00 80 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 ................................
ad20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ad40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ad60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ad80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ada0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
adc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ade0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ae00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ae20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ae40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ae60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d 6c 00 04 01 00 00 00 .......................i.l......
ae80 0c 00 f5 18 00 00 00 00 00 00 00 94 00 00 00 80 00 00 00 7f 00 00 00 1b 23 69 6e 63 6c 75 64 65 ........................#include
aea0 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 .<wayland-client.h>....#include.
aec0 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 <sys/mman.h>....#include.<unistd
aee0 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 13 23 69 6e .h>....#include.<fcntl.h>....#in
af00 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 clude.<string.h>....#include.<st
af20 64 6c 69 62 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 dlib.h>....#include.<stdio.h>...
af40 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 &#include."xdg-shell-client-prot
af60 6f 63 6f 6c 2e 68 22 00 00 00 00 00 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 ocol.h"........struct.wl_display
af80 20 2a 64 69 73 70 6c 61 79 3b 00 00 00 1d 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 .*display;....struct.wl_registry
afa0 20 2a 72 65 67 69 73 74 72 79 3b 00 00 00 21 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 .*registry;...!struct.wl_composi
afc0 74 6f 72 20 2a 63 6f 6d 70 6f 73 69 74 6f 72 3b 00 00 00 13 73 74 72 75 63 74 20 77 6c 5f 73 68 tor.*compositor;....struct.wl_sh
afe0 6d 20 2a 73 68 6d 3b 00 00 00 1c 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 m.*shm;....struct.xdg_wm_base.*w
b000 6d 5f 62 61 73 65 3b 00 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 m_base;....struct.wl_surface.*su
b020 72 66 61 63 65 3b 00 00 00 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 64 rface;....struct.xdg_surface.*xd
b040 67 5f 73 75 72 66 61 63 65 3b 00 00 00 1e 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 g_surface;....struct.xdg_topleve
b060 6c 20 2a 74 6f 70 6c 65 76 65 6c 3b 00 00 00 00 00 00 00 0e 2f 2f 20 57 69 6e 64 6f 77 20 73 69 l.*toplevel;........//.Window.si
b080 7a 65 00 00 00 16 63 6f 6e 73 74 20 69 6e 74 20 57 49 44 54 48 20 3d 20 33 30 30 3b 00 00 00 17 ze....const.int.WIDTH.=.300;....
b0a0 63 6f 6e 73 74 20 69 6e 74 20 48 45 49 47 48 54 20 3d 20 32 30 30 3b 00 00 00 00 00 00 00 0f 2f const.int.HEIGHT.=.200;......../
b0c0 2f 20 52 75 6e 6e 69 6e 67 20 66 6c 61 67 00 00 00 10 69 6e 74 20 72 75 6e 6e 69 6e 67 20 3d 20 /.Running.flag....int.running.=.
b0e0 31 3b 00 00 00 00 00 00 00 22 2f 2f 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 1;......."//.-------------------
b100 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 00 13 2f 2f 20 57 61 79 6c 61 6e 64 20 68 61 6e 64 6c ------------....//.Wayland.handl
b120 65 72 73 00 00 00 22 2f 2f 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ers..."//.----------------------
b140 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 00 00 00 00 00 0f 2f 2f 20 50 69 6e 67 20 68 61 6e 64 6c 65 72 ---------........//.Ping.handler
b160 00 00 00 54 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 62 61 73 65 5f 70 69 6e 67 28 76 6f 69 ...Tstatic.void.wm_base_ping(voi
b180 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 5f d.*data,.struct.xdg_wm_base.*wm_
b1a0 62 61 73 65 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 26 20 20 20 20 base,.uint32_t.serial).{...&....
b1c0 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 5f 62 61 73 65 2c 20 73 65 72 69 61 6c xdg_wm_base_pong(wm_base,.serial
b1e0 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4d 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 );....}.......Mstatic.const.stru
b200 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 62 61 73 65 5f ct.xdg_wm_base_listener.wm_base_
b220 6c 69 73 74 65 6e 65 72 20 3d 20 7b 20 77 6d 5f 62 61 73 65 5f 70 69 6e 67 20 7d 3b 00 00 00 00 listener.=.{.wm_base_ping.};....
b240 00 00 00 14 2f 2f 20 43 6f 6e 66 69 67 75 72 65 20 68 61 6e 64 6c 65 72 00 00 00 61 73 74 61 74 ....//.Configure.handler...astat
b260 69 63 20 76 6f 69 64 20 78 64 67 5f 73 75 72 66 61 63 65 5f 63 6f 6e 66 69 67 75 72 65 28 76 6f ic.void.xdg_surface_configure(vo
b280 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 64 id.*data,.struct.xdg_surface.*xd
b2a0 67 5f 73 75 72 66 61 63 65 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 g_surface,.uint32_t.serial).{...
b2c0 33 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 3....xdg_surface_ack_configure(x
b2e0 64 67 5f 73 75 72 66 61 63 65 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 1f 20 20 20 20 77 6c 5f 73 dg_surface,.serial);........wl_s
b300 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 01 7d 00 00 00 00 urface_commit(surface);....}....
b320 00 00 00 5a 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 ...Zstatic.const.struct.xdg_surf
b340 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 ace_listener.xdg_surface_listene
b360 72 20 3d 20 7b 20 78 64 67 5f 73 75 72 66 61 63 65 5f 63 6f 6e 66 69 67 75 72 65 20 7d 3b 00 00 r.=.{.xdg_surface_configure.};..
b380 00 00 00 00 00 19 2f 2f 20 54 6f 70 6c 65 76 65 6c 20 63 6c 6f 73 65 20 68 61 6e 64 6c 65 72 00 ......//.Toplevel.close.handler.
b3a0 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 6c 5f 63 6c 6f 73 65 28 76 6f ..Gstatic.void.toplevel_close(vo
b3c0 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 id.*data,.struct.xdg_toplevel.*t
b3e0 6f 70 6c 65 76 65 6c 29 20 7b 00 00 00 22 20 20 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 2f oplevel).{..."....running.=.0;./
b400 2f 20 65 78 69 74 20 6d 61 69 6e 20 6c 6f 6f 70 00 00 00 01 7d 00 00 00 00 00 00 00 51 73 74 61 /.exit.main.loop....}.......Qsta
b420 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 tic.const.struct.xdg_toplevel_li
b440 73 74 65 6e 65 72 20 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 20 74 6f 70 stener.toplevel_listener.=.{.top
b460 6c 65 76 65 6c 5f 63 6c 6f 73 65 20 7d 3b 00 00 00 00 00 00 00 13 2f 2f 20 52 65 67 69 73 74 72 level_close.};........//.Registr
b480 79 20 68 61 6e 64 6c 65 72 00 00 00 7e 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 y.handler...~static.void.registr
b4a0 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f y_handler(void.*data,.struct.wl_
b4c0 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 79 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c registry.*registry,.uint32_t.id,
b4e0 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 6e 74 65 72 66 61 63 65 2c 20 75 69 6e 74 33 32 5f 74 .const.char.*interface,.uint32_t
b500 20 76 65 72 73 69 6f 6e 29 20 7b 00 00 00 32 20 20 20 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e .version).{...2....if.(strcmp(in
b520 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 20 3d 3d 20 30 29 20 terface,."wl_compositor").==.0).
b540 7b 00 00 00 51 20 20 20 20 20 20 20 20 63 6f 6d 70 6f 73 69 74 6f 72 20 3d 20 77 6c 5f 72 65 67 {...Q........compositor.=.wl_reg
b560 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d istry_bind(registry,.id,.&wl_com
b580 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 32 20 20 20 20 7d 20 positor_interface,.4);...2....}.
b5a0 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 73 else.if.(strcmp(interface,."wl_s
b5c0 68 6d 22 29 20 3d 3d 20 30 29 20 7b 00 00 00 43 20 20 20 20 20 20 20 20 73 68 6d 20 3d 20 77 6c hm").==.0).{...C........shm.=.wl
b5e0 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 77 6c _registry_bind(registry,.id,.&wl
b600 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 37 20 20 20 20 7d 20 65 6c 73 _shm_interface,.1);...7....}.els
b620 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f e.if.(strcmp(interface,."xdg_wm_
b640 62 61 73 65 22 29 20 3d 3d 20 30 29 20 7b 00 00 00 4c 20 20 20 20 20 20 20 20 77 6d 5f 62 61 73 base").==.0).{...L........wm_bas
b660 65 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 e.=.wl_registry_bind(registry,.i
b680 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 d,.&xdg_wm_base_interface,.1);..
b6a0 00 43 20 20 20 20 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e .C........xdg_wm_base_add_listen
b6c0 65 72 28 77 6d 5f 62 61 73 65 2c 20 26 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 2c 20 4e er(wm_base,.&wm_base_listener,.N
b6e0 55 4c 4c 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 58 73 74 61 74 69 ULL);........}....}.......Xstati
b700 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 c.const.struct.wl_registry_liste
b720 6e 65 72 20 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 20 72 65 67 69 73 74 ner.registry_listener.=.{.regist
b740 72 79 5f 68 61 6e 64 6c 65 72 2c 20 4e 55 4c 4c 20 7d 3b 00 00 00 00 00 00 00 22 2f 2f 20 2d 2d ry_handler,.NULL.};......."//.--
b760 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 00 -----------------------------...
b780 0e 2f 2f 20 53 48 4d 20 68 65 6c 70 65 72 73 00 00 00 22 2f 2f 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .//.SHM.helpers..."//.----------
b7a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 00 29 73 74 61 74 69 63 20 ---------------------...)static.
b7c0 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 int.create_shm_file(size_t.size)
b7e0 20 7b 00 00 00 30 20 20 20 20 63 68 61 72 20 74 65 6d 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 6d .{...0....char.template[].=."/tm
b800 70 2f 77 61 79 6c 61 6e 64 2d 73 68 6d 2d 58 58 58 58 58 58 22 3b 00 00 00 1f 20 20 20 20 69 6e p/wayland-shm-XXXXXX";........in
b820 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 2f 20 20 20 t.fd.=.mkstemp(template);.../...
b840 20 69 66 20 28 66 64 20 3c 20 30 29 20 7b 20 70 65 72 72 6f 72 28 22 6d 6b 73 74 65 6d 70 22 29 .if.(fd.<.0).{.perror("mkstemp")
b860 3b 20 65 78 69 74 28 31 29 3b 20 7d 00 00 00 15 20 20 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c ;.exit(1);.}........unlink(templ
b880 61 74 65 29 3b 00 00 00 42 20 20 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 ate);...B....if.(ftruncate(fd,.s
b8a0 69 7a 65 29 20 3c 20 30 29 20 7b 20 70 65 72 72 6f 72 28 22 66 74 72 75 6e 63 61 74 65 22 29 3b ize).<.0).{.perror("ftruncate");
b8c0 20 65 78 69 74 28 31 29 3b 20 7d 00 00 00 0e 20 20 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 .exit(1);.}........return.fd;...
b8e0 01 7d 00 00 00 00 00 00 00 22 2f 2f 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .}......."//.-------------------
b900 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 00 07 2f 2f 20 4d 61 69 6e 00 00 00 22 2f 2f 20 2d 2d ------------....//.Main..."//.--
b920 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 00 -----------------------------...
b940 0c 69 6e 74 20 6d 61 69 6e 28 29 20 7b 00 00 00 19 20 20 20 20 2f 2f 20 43 6f 6e 6e 65 63 74 20 .int.main().{........//.Connect.
b960 74 6f 20 57 61 79 6c 61 6e 64 00 00 00 27 20 20 20 20 64 69 73 70 6c 61 79 20 3d 20 77 6c 5f 64 to.Wayland...'....display.=.wl_d
b980 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 5a 20 20 20 20 69 66 20 isplay_connect(NULL);...Z....if.
b9a0 28 21 64 69 73 70 6c 61 79 29 20 7b 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 46 61 (!display).{.fprintf(stderr,."Fa
b9c0 69 6c 65 64 20 74 6f 20 63 6f 6e 6e 65 63 74 20 74 6f 20 57 61 79 6c 61 6e 64 20 64 69 73 70 6c iled.to.connect.to.Wayland.displ
b9e0 61 79 5c 6e 22 29 3b 20 72 65 74 75 72 6e 20 31 3b 20 7d 00 00 00 00 00 00 00 24 20 20 20 20 2f ay\n");.return.1;.}.......$..../
ba00 2f 20 47 65 74 20 72 65 67 69 73 74 72 79 20 61 6e 64 20 62 69 6e 64 20 67 6c 6f 62 61 6c 73 00 /.Get.registry.and.bind.globals.
ba20 00 00 30 20 20 20 20 72 65 67 69 73 74 72 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 ..0....registry.=.wl_display_get
ba40 5f 72 65 67 69 73 74 72 79 28 64 69 73 70 6c 61 79 29 3b 00 00 00 41 20 20 20 20 77 6c 5f 72 65 _registry(display);...A....wl_re
ba60 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 72 65 67 69 73 74 72 79 2c 20 26 72 gistry_add_listener(registry,.&r
ba80 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 22 20 20 20 20 egistry_listener,.NULL);..."....
baa0 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 wl_display_roundtrip(display);..
bac0 00 00 00 00 00 2a 20 20 20 20 69 66 20 28 21 63 6f 6d 70 6f 73 69 74 6f 72 20 7c 7c 20 21 73 68 .....*....if.(!compositor.||.!sh
bae0 6d 20 7c 7c 20 21 77 6d 5f 62 61 73 65 29 20 7b 00 00 00 3e 20 20 20 20 20 20 20 20 66 70 72 69 m.||.!wm_base).{...>........fpri
bb00 6e 74 66 28 73 74 64 65 72 72 2c 20 22 4d 69 73 73 69 6e 67 20 72 65 71 75 69 72 65 64 20 57 61 ntf(stderr,."Missing.required.Wa
bb20 79 6c 61 6e 64 20 67 6c 6f 62 61 6c 73 5c 6e 22 29 3b 00 00 00 11 20 20 20 20 20 20 20 20 72 65 yland.globals\n");............re
bb40 74 75 72 6e 20 31 3b 00 00 00 05 20 20 20 20 7d 00 00 00 00 00 00 00 15 20 20 20 20 2f 2f 20 43 turn.1;........}............//.C
bb60 72 65 61 74 65 20 73 75 72 66 61 63 65 00 00 00 37 20 20 20 20 73 75 72 66 61 63 65 20 3d 20 77 reate.surface...7....surface.=.w
bb80 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 63 6f 6d 70 l_compositor_create_surface(comp
bba0 6f 73 69 74 6f 72 29 3b 00 00 00 40 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 20 3d 20 78 64 ositor);...@....xdg_surface.=.xd
bbc0 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 77 6d 5f 62 61 73 g_wm_base_get_xdg_surface(wm_bas
bbe0 65 2c 20 73 75 72 66 61 63 65 29 3b 00 00 00 47 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f e,.surface);...G....xdg_surface_
bc00 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 26 78 64 67 5f 73 add_listener(xdg_surface,.&xdg_s
bc20 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 00 00 00 00 35 20 urface_listener,.NULL);.......5.
bc40 20 20 20 74 6f 70 6c 65 76 65 6c 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f ...toplevel.=.xdg_surface_get_to
bc60 70 6c 65 76 65 6c 28 78 64 67 5f 73 75 72 66 61 63 65 29 3b 00 00 00 42 20 20 20 20 78 64 67 5f plevel(xdg_surface);...B....xdg_
bc80 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 74 6f 70 6c 65 76 65 6c 2c 20 toplevel_add_listener(toplevel,.
bca0 26 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 00 00 00 &toplevel_listener,.NULL);......
bcc0 00 1f 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 ......wl_surface_commit(surface)
bce0 3b 00 00 00 22 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 ;..."....wl_display_roundtrip(di
bd00 73 70 6c 61 79 29 3b 00 00 00 00 00 00 00 18 20 20 20 20 2f 2f 20 43 72 65 61 74 65 20 53 48 4d splay);............//.Create.SHM
bd20 20 62 75 66 66 65 72 00 00 00 1b 20 20 20 20 69 6e 74 20 73 74 72 69 64 65 20 3d 20 57 49 44 54 .buffer........int.stride.=.WIDT
bd40 48 20 2a 20 34 3b 00 00 00 1f 20 20 20 20 69 6e 74 20 73 69 7a 65 20 3d 20 73 74 72 69 64 65 20 H.*.4;........int.size.=.stride.
bd60 2a 20 48 45 49 47 48 54 3b 00 00 00 23 20 20 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 *.HEIGHT;...#....int.fd.=.create
bd80 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 4d 20 20 20 20 76 6f 69 64 20 2a 64 61 _shm_file(size);...M....void.*da
bda0 74 61 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 ta.=.mmap(NULL,.size,.PROT_READ.
bdc0 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 |.PROT_WRITE,.MAP_SHARED,.fd,.0)
bde0 3b 00 00 00 38 20 20 20 20 69 66 20 28 64 61 74 61 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 ;...8....if.(data.==.MAP_FAILED)
be00 20 7b 20 70 65 72 72 6f 72 28 22 6d 6d 61 70 22 29 3b 20 65 78 69 74 28 31 29 3b 20 7d 00 00 00 .{.perror("mmap");.exit(1);.}...
be20 00 00 00 00 1c 20 20 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 69 78 65 6c 73 20 3d 20 64 61 74 61 .........uint32_t.*pixels.=.data
be40 3b 00 00 00 2c 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 57 49 44 ;...,....for.(int.i.=.0;.i.<.WID
be60 54 48 20 2a 20 48 45 49 47 48 54 3b 20 69 2b 2b 29 00 00 00 35 20 20 20 20 20 20 20 20 70 69 78 TH.*.HEIGHT;.i++)...5........pix
be80 65 6c 73 5b 69 5d 20 3d 20 30 78 66 66 30 30 30 30 66 66 3b 20 2f 2f 20 41 52 47 42 20 3d 20 6f els[i].=.0xff0000ff;.//.ARGB.=.o
bea0 70 61 71 75 65 20 62 6c 75 65 00 00 00 00 00 00 00 41 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f paque.blue.......A....struct.wl_
bec0 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 shm_pool.*pool.=.wl_shm_create_p
bee0 6f 6f 6c 28 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 71 20 20 20 20 73 74 72 75 63 ool(shm,.fd,.size);...q....struc
bf00 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 66 65 72 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f t.wl_buffer.*buffer.=.wl_shm_poo
bf20 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 57 49 44 54 48 2c 20 l_create_buffer(pool,.0,.WIDTH,.
bf40 48 45 49 47 48 54 2c 20 73 74 72 69 64 65 2c 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 HEIGHT,.stride,.WL_SHM_FORMAT_AR
bf60 47 42 38 38 38 38 29 3b 00 00 00 00 00 00 00 2d 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 GB8888);.......-....wl_surface_a
bf80 74 74 61 63 68 28 73 75 72 66 61 63 65 2c 20 62 75 66 66 65 72 2c 20 30 2c 20 30 29 3b 00 00 00 ttach(surface,.buffer,.0,.0);...
bfa0 1f 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b .....wl_surface_commit(surface);
bfc0 00 00 00 00 00 00 00 16 20 20 20 20 2f 2f 20 4d 61 69 6e 20 65 76 65 6e 74 20 6c 6f 6f 70 00 00 ............//.Main.event.loop..
bfe0 00 36 20 20 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 20 26 26 20 77 6c 5f 64 69 73 70 6c .6....while.(running.&&.wl_displ
c000 61 79 5f 64 69 73 70 61 74 63 68 28 64 69 73 70 6c 61 79 29 29 20 7b 7d 00 00 00 00 00 00 00 0d ay_dispatch(display)).{}........
c020 20 20 20 20 72 65 74 75 72 6e 20 30 3b 35 81 f5 18 00 00 00 00 00 00 00 00 09 00 00 00 7e 00 00 ....return.0;5...............~..
c040 00 02 00 00 00 92 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 07 10 00 00 00 00 00 00 71 10 00 .............................q..
c060 00 00 00 00 00 35 81 5f d0 00 00 00 1f 00 00 00 21 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 .....5._........!...............
c080 01 00 00 00 0b 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c1e0 00 00 00 00 00 00 00 00 00 00 00 69 9d 6c 35 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 ...........i.l5.................
c200 00 00 00 00 00 00 00 94 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d ...........&#include."xdg-shell-
c220 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c client-protocol.h"....#include.<
c240 66 63 6e 74 6c 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 fcntl.h>....#include.<stdio.h>..
c260 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 ..#include.<stdlib.h>....#includ
c280 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d e.<string.h>....#include.<sys/mm
c2a0 61 6e 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b an.h>....#include.<unistd.h>....
c2c0 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 00 00 #include.<wayland-client.h>.....
c2e0 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 69 73 70 6c 61 79 3b 00 00 ...struct.wl_display.*display;..
c300 00 1d 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 79 3b 00 ..struct.wl_registry.*registry;.
c320 00 00 21 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 6f 73 69 ..!struct.wl_compositor.*composi
c340 74 6f 72 3b 00 00 00 13 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 1c 73 tor;....struct.wl_shm.*shm;....s
c360 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 5f 62 61 73 65 3b 00 00 00 1b 73 truct.xdg_wm_base.*wm_base;....s
c380 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 72 66 61 63 65 3b 00 00 00 20 73 74 truct.wl_surface.*surface;....st
c3a0 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 64 67 5f 73 75 72 66 61 63 65 3b 00 00 ruct.xdg_surface.*xdg_surface;..
c3c0 00 1e 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 3b ..struct.xdg_toplevel.*toplevel;
c3e0 00 00 00 00 00 00 00 0e 2f 2f 20 57 69 6e 64 6f 77 20 73 69 7a 65 00 00 00 16 63 6f 6e 73 74 20 ........//.Window.size....const.
c400 69 6e 74 20 57 49 44 54 48 20 3d 20 33 30 30 3b 00 00 00 17 63 6f 6e 73 74 20 69 6e 74 20 48 45 int.WIDTH.=.300;....const.int.HE
c420 49 47 48 54 20 3d 20 32 30 30 3b 00 00 00 00 00 00 00 0f 2f 2f 20 52 75 6e 6e 69 6e 67 20 66 6c IGHT.=.200;........//.Running.fl
c440 61 67 00 00 00 10 69 6e 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 00 00 00 00 22 2f 2f ag....int.running.=.1;......."//
c460 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .-------------------------------
c480 00 00 00 13 2f 2f 20 57 61 79 6c 61 6e 64 20 68 61 6e 64 6c 65 72 73 00 00 00 22 2f 2f 20 2d 2d ....//.Wayland.handlers..."//.--
c4a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 00 -----------------------------...
c4c0 00 00 00 00 0f 2f 2f 20 50 69 6e 67 20 68 61 6e 64 6c 65 72 00 00 00 41 73 74 61 74 69 63 20 76 .....//.Ping.handler...Astatic.v
c4e0 6f 69 64 20 77 6d 5f 62 61 73 65 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 oid.wm_base_ping(void.*data,.str
c500 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 5f 62 61 73 65 2c 00 00 00 2b 20 20 20 uct.xdg_wm_base.*wm_base,...+...
c520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 73 ......................uint32_t.s
c540 65 72 69 61 6c 29 20 7b 00 00 00 24 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 erial).{...$..xdg_wm_base_pong(w
c560 6d 5f 62 61 73 65 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4b 73 74 61 m_base,.serial);....}.......Ksta
c580 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 tic.const.struct.xdg_wm_base_lis
c5a0 74 65 6e 65 72 20 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 77 6d 5f 62 61 73 tener.wm_base_listener.=.{wm_bas
c5c0 65 5f 70 69 6e 67 7d 3b 00 00 00 00 00 00 00 14 2f 2f 20 43 6f 6e 66 69 67 75 72 65 20 68 61 6e e_ping};........//.Configure.han
c5e0 64 6c 65 72 00 00 00 4e 73 74 61 74 69 63 20 76 6f 69 64 20 78 64 67 5f 73 75 72 66 61 63 65 5f dler...Nstatic.void.xdg_surface_
c600 63 6f 6e 66 69 67 75 72 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 configure(void.*data,.struct.xdg
c620 5f 73 75 72 66 61 63 65 20 2a 78 64 67 5f 73 75 72 66 61 63 65 2c 00 00 00 34 20 20 20 20 20 20 _surface.*xdg_surface,...4......
c640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 ............................uint
c660 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 31 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 32_t.serial).{...1..xdg_surface_
c680 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 73 65 72 69 61 ack_configure(xdg_surface,.seria
c6a0 6c 29 3b 00 00 00 1d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 l);......wl_surface_commit(surfa
c6c0 63 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 ce);....}.......Astatic.const.st
c6e0 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 64 67 5f 73 75 ruct.xdg_surface_listener.xdg_su
c700 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 1b 20 20 20 20 78 64 67 5f 73 75 rface_listener.=.{........xdg_su
c720 72 66 61 63 65 5f 63 6f 6e 66 69 67 75 72 65 7d 3b 00 00 00 00 00 00 00 19 2f 2f 20 54 6f 70 6c rface_configure};........//.Topl
c740 65 76 65 6c 20 63 6c 6f 73 65 20 68 61 6e 64 6c 65 72 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 evel.close.handler...Gstatic.voi
c760 64 20 74 6f 70 6c 65 76 65 6c 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 d.toplevel_close(void.*data,.str
c780 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 29 20 7b 00 00 00 uct.xdg_toplevel.*toplevel).{...
c7a0 20 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 2f 2f 20 65 78 69 74 20 6d 61 69 6e 20 6c 6f 6f ...running.=.0;.//.exit.main.loo
c7c0 70 00 00 00 01 7d 00 00 00 00 00 00 00 4f 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 p....}.......Ostatic.const.struc
c7e0 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 74 6f 70 6c 65 76 65 6c t.xdg_toplevel_listener.toplevel
c800 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 74 6f 70 6c 65 76 65 6c 5f 63 6c 6f 73 65 7d 3b 00 00 00 _listener.=.{toplevel_close};...
c820 00 00 00 00 13 2f 2f 20 52 65 67 69 73 74 72 79 20 68 61 6e 64 6c 65 72 00 00 00 46 73 74 61 74 .....//.Registry.handler...Fstat
c840 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 ic.void.registry_handler(void.*d
c860 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 ata,.struct.wl_registry.*registr
c880 79 2c 00 00 00 40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y,...@..........................
c8a0 20 20 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 6e 74 65 ...uint32_t.id,.const.char.*inte
c8c0 72 66 61 63 65 2c 00 00 00 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rface,...0......................
c8e0 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 76 65 72 73 69 6f 6e 29 20 7b 00 00 00 30 20 20 .......uint32_t.version).{...0..
c900 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 if.(strcmp(interface,."wl_compos
c920 69 74 6f 72 22 29 20 3d 3d 20 30 29 20 7b 00 00 00 4d 20 20 20 20 63 6f 6d 70 6f 73 69 74 6f 72 itor").==.0).{...M....compositor
c940 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 .=.wl_registry_bind(registry,.id
c960 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 ,.&wl_compositor_interface,.4);.
c980 00 00 30 20 20 7d 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 ..0..}.else.if.(strcmp(interface
c9a0 2c 20 22 77 6c 5f 73 68 6d 22 29 20 3d 3d 20 30 29 20 7b 00 00 00 3f 20 20 20 20 73 68 6d 20 3d ,."wl_shm").==.0).{...?....shm.=
c9c0 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 .wl_registry_bind(registry,.id,.
c9e0 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 35 20 20 7d 20 65 6c &wl_shm_interface,.1);...5..}.el
ca00 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 78 64 67 5f 77 6d se.if.(strcmp(interface,."xdg_wm
ca20 5f 62 61 73 65 22 29 20 3d 3d 20 30 29 20 7b 00 00 00 48 20 20 20 20 77 6d 5f 62 61 73 65 20 3d _base").==.0).{...H....wm_base.=
ca40 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 .wl_registry_bind(registry,.id,.
ca60 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 3f 20 &xdg_wm_base_interface,.1);...?.
ca80 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 77 6d 5f 62 ...xdg_wm_base_add_listener(wm_b
caa0 61 73 65 2c 20 26 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 ase,.&wm_base_listener,.NULL);..
cac0 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 4f 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 ....}....}.......Ostatic.const.s
cae0 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 69 73 truct.wl_registry_listener.regis
cb00 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 try_listener.=.{registry_handler
cb20 2c 00 00 00 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,...D...........................
cb40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
cb60 20 20 20 4e 55 4c 4c 7d 3b 00 00 00 00 00 00 00 22 2f 2f 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ...NULL};......."//.------------
cb80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 00 0e 2f 2f 20 53 48 4d 20 68 65 -------------------....//.SHM.he
cba0 6c 70 65 72 73 00 00 00 22 2f 2f 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d lpers..."//.--------------------
cbc0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 -----------...)static.int.create
cbe0 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 2e 20 20 63 68 _shm_file(size_t.size).{......ch
cc00 61 72 20 74 65 6d 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 61 79 6c 61 6e 64 2d 73 68 ar.template[].=."/tmp/wayland-sh
cc20 6d 2d 58 58 58 58 58 58 22 3b 00 00 00 1d 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 m-XXXXXX";......int.fd.=.mkstemp
cc40 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 0f 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 7b 00 00 (template);......if.(fd.<.0).{..
cc60 00 16 20 20 20 20 70 65 72 72 6f 72 28 22 6d 6b 73 74 65 6d 70 22 29 3b 00 00 00 0c 20 20 20 20 ......perror("mkstemp");........
cc80 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 13 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 exit(1);......}......unlink(temp
cca0 6c 61 74 65 29 3b 00 00 00 20 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 late);......if.(ftruncate(fd,.si
ccc0 7a 65 29 20 3c 20 30 29 20 7b 00 00 00 18 20 20 20 20 70 65 72 72 6f 72 28 22 66 74 72 75 6e 63 ze).<.0).{........perror("ftrunc
cce0 61 74 65 22 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 ate");........exit(1);......}...
cd00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 22 2f 2f 20 2d 2d 2d ...return.fd;....}......."//.---
cd20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 00 07 ----------------------------....
cd40 2f 2f 20 4d 61 69 6e 00 00 00 22 2f 2f 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d //.Main..."//.------------------
cd60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 00 00 0c 69 6e 74 20 6d 61 69 6e 28 29 20 7b 00 00 00 -------------....int.main().{...
cd80 17 20 20 2f 2f 20 43 6f 6e 6e 65 63 74 20 74 6f 20 57 61 79 6c 61 6e 64 00 00 00 25 20 20 64 69 ...//.Connect.to.Wayland...%..di
cda0 73 70 6c 61 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 splay.=.wl_display_connect(NULL)
cdc0 3b 00 00 00 11 20 20 69 66 20 28 21 64 69 73 70 6c 61 79 29 20 7b 00 00 00 3e 20 20 20 20 66 70 ;......if.(!display).{...>....fp
cde0 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 46 61 69 6c 65 64 20 74 6f 20 63 6f 6e 6e 65 63 74 rintf(stderr,."Failed.to.connect
ce00 20 74 6f 20 57 61 79 6c 61 6e 64 20 64 69 73 70 6c 61 79 5c 6e 22 29 3b 00 00 00 0d 20 20 20 20 .to.Wayland.display\n");........
ce20 72 65 74 75 72 6e 20 31 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 22 20 20 2f 2f 20 47 65 74 return.1;......}......."..//.Get
ce40 20 72 65 67 69 73 74 72 79 20 61 6e 64 20 62 69 6e 64 20 67 6c 6f 62 61 6c 73 00 00 00 2e 20 20 .registry.and.bind.globals......
ce60 72 65 67 69 73 74 72 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 registry.=.wl_display_get_regist
ce80 72 79 28 64 69 73 70 6c 61 79 29 3b 00 00 00 3f 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 ry(display);...?..wl_registry_ad
cea0 64 5f 6c 69 73 74 65 6e 65 72 28 72 65 67 69 73 74 72 79 2c 20 26 72 65 67 69 73 74 72 79 5f 6c d_listener(registry,.&registry_l
cec0 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f istener,.NULL);......wl_display_
cee0 72 6f 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 00 00 00 00 00 28 20 20 69 66 20 roundtrip(display);.......(..if.
cf00 28 21 63 6f 6d 70 6f 73 69 74 6f 72 20 7c 7c 20 21 73 68 6d 20 7c 7c 20 21 77 6d 5f 62 61 73 65 (!compositor.||.!shm.||.!wm_base
cf20 29 20 7b 00 00 00 3a 20 20 20 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 4d 69 73 73 ).{...:....fprintf(stderr,."Miss
cf40 69 6e 67 20 72 65 71 75 69 72 65 64 20 57 61 79 6c 61 6e 64 20 67 6c 6f 62 61 6c 73 5c 6e 22 29 ing.required.Wayland.globals\n")
cf60 3b 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 ;........return.1;......}.......
cf80 13 20 20 2f 2f 20 43 72 65 61 74 65 20 73 75 72 66 61 63 65 00 00 00 35 20 20 73 75 72 66 61 63 ...//.Create.surface...5..surfac
cfa0 65 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 e.=.wl_compositor_create_surface
cfc0 28 63 6f 6d 70 6f 73 69 74 6f 72 29 3b 00 00 00 3e 20 20 78 64 67 5f 73 75 72 66 61 63 65 20 3d (compositor);...>..xdg_surface.=
cfe0 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 77 6d 5f .xdg_wm_base_get_xdg_surface(wm_
d000 62 61 73 65 2c 20 73 75 72 66 61 63 65 29 3b 00 00 00 45 20 20 78 64 67 5f 73 75 72 66 61 63 65 base,.surface);...E..xdg_surface
d020 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 26 78 64 67 5f _add_listener(xdg_surface,.&xdg_
d040 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 00 00 00 00 33 surface_listener,.NULL);.......3
d060 20 20 74 6f 70 6c 65 76 65 6c 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 ..toplevel.=.xdg_surface_get_top
d080 6c 65 76 65 6c 28 78 64 67 5f 73 75 72 66 61 63 65 29 3b 00 00 00 40 20 20 78 64 67 5f 74 6f 70 level(xdg_surface);...@..xdg_top
d0a0 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 74 6f 70 6c 65 76 65 6c 2c 20 26 74 6f level_add_listener(toplevel,.&to
d0c0 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 00 00 00 00 1d 20 plevel_listener,.NULL);.........
d0e0 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 20 .wl_surface_commit(surface);....
d100 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b ..wl_display_roundtrip(display);
d120 00 00 00 00 00 00 00 16 20 20 2f 2f 20 43 72 65 61 74 65 20 53 48 4d 20 62 75 66 66 65 72 00 00 ..........//.Create.SHM.buffer..
d140 00 19 20 20 69 6e 74 20 73 74 72 69 64 65 20 3d 20 57 49 44 54 48 20 2a 20 34 3b 00 00 00 1d 20 ....int.stride.=.WIDTH.*.4;.....
d160 20 69 6e 74 20 73 69 7a 65 20 3d 20 73 74 72 69 64 65 20 2a 20 48 45 49 47 48 54 3b 00 00 00 21 .int.size.=.stride.*.HEIGHT;...!
d180 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 ..int.fd.=.create_shm_file(size)
d1a0 3b 00 00 00 4b 20 20 76 6f 69 64 20 2a 64 61 74 61 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 ;...K..void.*data.=.mmap(NULL,.s
d1c0 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 ize,.PROT_READ.|.PROT_WRITE,.MAP
d1e0 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 1b 20 20 69 66 20 28 64 61 74 61 20 3d _SHARED,.fd,.0);......if.(data.=
d200 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 20 7b 00 00 00 13 20 20 20 20 70 65 72 72 6f 72 28 22 6d =.MAP_FAILED).{........perror("m
d220 6d 61 70 22 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 map");........exit(1);......}...
d240 00 00 00 00 1a 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 69 78 65 6c 73 20 3d 20 64 61 74 61 3b 00 .......uint32_t.*pixels.=.data;.
d260 00 00 2a 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 57 49 44 54 48 20 2a ..*..for.(int.i.=.0;.i.<.WIDTH.*
d280 20 48 45 49 47 48 54 3b 20 69 2b 2b 29 00 00 00 31 20 20 20 20 70 69 78 65 6c 73 5b 69 5d 20 3d .HEIGHT;.i++)...1....pixels[i].=
d2a0 20 30 78 66 66 30 30 30 30 66 66 3b 20 2f 2f 20 41 52 47 42 20 3d 20 6f 70 61 71 75 65 20 62 6c .0xff0000ff;.//.ARGB.=.opaque.bl
d2c0 75 65 00 00 00 00 00 00 00 3f 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a ue.......?..struct.wl_shm_pool.*
d2e0 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 73 68 6d 2c 20 66 pool.=.wl_shm_create_pool(shm,.f
d300 64 2c 20 73 69 7a 65 29 3b 00 00 00 37 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 d,.size);...7..struct.wl_buffer.
d320 2a 62 75 66 66 65 72 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 *buffer.=.wl_shm_pool_create_buf
d340 66 65 72 28 00 00 00 3e 20 20 20 20 20 20 70 6f 6f 6c 2c 20 30 2c 20 57 49 44 54 48 2c 20 48 45 fer(...>......pool,.0,.WIDTH,.HE
d360 49 47 48 54 2c 20 73 74 72 69 64 65 2c 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 IGHT,.stride,.WL_SHM_FORMAT_ARGB
d380 38 38 38 38 29 3b 00 00 00 00 00 00 00 2b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 8888);.......+..wl_surface_attac
d3a0 68 28 73 75 72 66 61 63 65 2c 20 62 75 66 66 65 72 2c 20 30 2c 20 30 29 3b 00 00 00 1d 20 20 77 h(surface,.buffer,.0,.0);......w
d3c0 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 00 00 00 l_surface_commit(surface);......
d3e0 00 14 20 20 2f 2f 20 4d 61 69 6e 20 65 76 65 6e 74 20 6c 6f 6f 70 00 00 00 33 20 20 77 68 69 6c ....//.Main.event.loop...3..whil
d400 65 20 28 72 75 6e 6e 69 6e 67 20 26 26 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 e.(running.&&.wl_display_dispatc
d420 68 28 64 69 73 70 6c 61 79 29 29 20 7b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 0b 20 20 72 65 h(display)).{......}..........re
d440 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 94 00 00 00 turn.0;....}5...................
d460 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 88 10 00 00 00 00 00 00 01 00 00 00 ................................
d480 00 00 00 00 35 81 5f d0 00 00 00 20 00 00 00 22 00 00 00 00 00 00 00 00 00 00 00 21 00 00 00 01 ....5._........"...........!....
d4a0 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d600 00 00 00 00 00 00 00 00 00 00 69 9d 6c 35 04 01 00 00 00 00 00 f5 18 00 00 00 6d 00 00 00 00 00 ..........i.l5............m.....
d620 00 00 00 00 00 00 01 00 00 00 01 7d f5 18 00 00 00 6e 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 ...........}.....n..............
d640 00 00 00 5e 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 11 20 20 20 20 69 66 20 28 64 61 74 61 ...^....................if.(data
d660 20 3d 3d 20 4d f5 18 00 00 00 5f 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 42 00 00 00 .==.M....._.................B...
d680 00 00 00 00 00 00 00 00 01 00 00 00 2b 20 20 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 ............+....if.(ftruncate(f
d6a0 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 20 7b 20 70 65 72 72 6f 72 28 22 f5 18 00 00 00 43 00 00 d,.size).<.0).{.perror(".....C..
d6c0 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 ................................
d6e0 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 ..................5.............
d700 00 00 00 00 00 00 00 00 00 00 42 00 00 00 2b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..........B...+.................
d720 00 00 00 09 00 00 00 00 00 00 f5 18 00 00 00 00 42 00 00 00 2b 00 00 00 00 00 00 00 00 00 00 00 ................B...+...........
d740 1c 00 00 00 11 00 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 ................................
d760 f5 18 00 00 00 00 5e 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 0f 00 00 00 01 00 00 00 00 0d ......^.........................
d780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 df 01 00 00 00 00 00 00 35 81 5f d0 00 00 00 21 00 00 ......................5._....!..
d7a0 00 23 00 00 00 00 00 00 00 00 00 00 00 22 00 00 00 6e 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 .#..........."...n..............
d7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d 6c 36 ............................i.l6
d920 04 01 00 00 00 0d 00 f5 18 00 00 00 00 00 00 00 83 00 00 00 6e 00 00 00 6d 00 00 00 1b 23 69 6e ....................n...m....#in
d940 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 15 23 69 6e 63 clude.<wayland-client.h>....#inc
d960 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 lude.<sys/mman.h>....#include.<u
d980 6e 69 73 74 64 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 nistd.h>....#include.<fcntl.h>..
d9a0 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 ..#include.<string.h>....#includ
d9c0 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e e.<stdlib.h>....#include.<stdio.
d9e0 68 3e 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 h>...&#include."xdg-shell-client
da00 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 00 00 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 64 69 -protocol.h"........struct.wl_di
da20 73 70 6c 61 79 20 2a 64 69 73 70 6c 61 79 3b 00 00 00 1d 73 74 72 75 63 74 20 77 6c 5f 72 65 67 splay.*display;....struct.wl_reg
da40 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 79 3b 00 00 00 21 73 74 72 75 63 74 20 77 6c 5f 63 6f istry.*registry;...!struct.wl_co
da60 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 6f 73 69 74 6f 72 3b 00 00 00 13 73 74 72 75 63 74 20 mpositor.*compositor;....struct.
da80 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 1c 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 wl_shm.*shm;....struct.xdg_wm_ba
daa0 73 65 20 2a 77 6d 5f 62 61 73 65 3b 00 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 se.*wm_base;....struct.wl_surfac
dac0 65 20 2a 73 75 72 66 61 63 65 3b 00 00 00 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 e.*surface;....struct.xdg_surfac
dae0 65 20 2a 78 64 67 5f 73 75 72 66 61 63 65 3b 00 00 00 1e 73 74 72 75 63 74 20 78 64 67 5f 74 6f e.*xdg_surface;....struct.xdg_to
db00 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 3b 00 00 00 00 00 00 00 16 63 6f 6e 73 74 20 69 plevel.*toplevel;........const.i
db20 6e 74 20 57 49 44 54 48 20 3d 20 33 30 30 3b 00 00 00 17 63 6f 6e 73 74 20 69 6e 74 20 48 45 49 nt.WIDTH.=.300;....const.int.HEI
db40 47 48 54 20 3d 20 32 30 30 3b 00 00 00 10 69 6e 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 GHT.=.200;....int.running.=.1;..
db60 00 00 00 00 00 54 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 62 61 73 65 5f 70 69 6e 67 28 76 .....Tstatic.void.wm_base_ping(v
db80 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 oid.*data,.struct.xdg_wm_base.*w
dba0 6d 5f 62 61 73 65 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 26 20 20 m_base,.uint32_t.serial).{...&..
dbc0 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 5f 62 61 73 65 2c 20 73 65 72 69 ..xdg_wm_base_pong(wm_base,.seri
dbe0 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4d 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 al);....}.......Mstatic.const.st
dc00 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 62 61 73 ruct.xdg_wm_base_listener.wm_bas
dc20 65 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 20 77 6d 5f 62 61 73 65 5f 70 69 6e 67 20 7d 3b 00 00 e_listener.=.{.wm_base_ping.};..
dc40 00 00 00 00 00 61 73 74 61 74 69 63 20 76 6f 69 64 20 78 64 67 5f 73 75 72 66 61 63 65 5f 63 6f .....astatic.void.xdg_surface_co
dc60 6e 66 69 67 75 72 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 nfigure(void.*data,.struct.xdg_s
dc80 75 72 66 61 63 65 20 2a 78 64 67 5f 73 75 72 66 61 63 65 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 urface.*xdg_surface,.uint32_t.se
dca0 72 69 61 6c 29 20 7b 00 00 00 33 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 rial).{...3....xdg_surface_ack_c
dcc0 6f 6e 66 69 67 75 72 65 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 73 65 72 69 61 6c 29 3b 00 00 onfigure(xdg_surface,.serial);..
dce0 00 1f 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 ......wl_surface_commit(surface)
dd00 3b 00 00 00 01 7d 00 00 00 00 00 00 00 5a 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 ;....}.......Zstatic.const.struc
dd20 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 64 67 5f 73 75 72 66 61 t.xdg_surface_listener.xdg_surfa
dd40 63 65 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 20 78 64 67 5f 73 75 72 66 61 63 65 5f 63 6f 6e 66 ce_listener.=.{.xdg_surface_conf
dd60 69 67 75 72 65 20 7d 3b 00 00 00 00 00 00 00 49 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c igure.};.......Istatic.void.topl
dd80 65 76 65 6c 5f 63 6f 6e 66 69 67 75 72 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 evel_configure(void.*data,.struc
dda0 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 2c 00 00 00 59 20 20 20 t.xdg_toplevel.*toplevel,...Y...
ddc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 33 ............................int3
dde0 32 5f 74 20 77 69 64 74 68 2c 20 69 6e 74 33 32 5f 74 20 68 65 69 67 68 74 2c 20 73 74 72 75 63 2_t.width,.int32_t.height,.struc
de00 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 74 61 74 65 73 29 20 7b 7d 00 00 00 00 00 00 00 47 73 74 t.wl_array.*states).{}.......Gst
de20 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 6c 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 atic.void.toplevel_close(void.*d
de40 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 ata,.struct.xdg_toplevel.*toplev
de60 65 6c 29 20 7b 00 00 00 10 20 20 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 el).{........running.=.0;....}..
de80 00 00 00 00 00 3f 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f .....?static.const.struct.xdg_to
dea0 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 plevel_listener.toplevel_listene
dec0 72 20 3d 20 7b 00 00 00 24 20 20 20 20 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 74 6f 70 6c 65 76 r.=.{...$.....configure.=.toplev
dee0 65 6c 5f 63 6f 6e 66 69 67 75 72 65 2c 00 00 00 1b 20 20 20 20 2e 63 6c 6f 73 65 20 3d 20 74 6f el_configure,.........close.=.to
df00 70 6c 65 76 65 6c 5f 63 6c 6f 73 65 00 00 00 02 7d 3b 00 00 00 00 00 00 00 53 73 74 61 74 69 63 plevel_close....};.......Sstatic
df20 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 61 74 .void.registry_handler(void.*dat
df40 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 79 2c a,.struct.wl_registry.*registry,
df60 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 00 00 00 47 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .uint32_t.id,...G...............
df80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 6e 74 65 72 66 ..............const.char.*interf
dfa0 61 63 65 2c 20 75 69 6e 74 33 32 5f 74 20 76 65 72 73 69 6f 6e 29 20 7b 00 00 00 32 20 20 20 20 ace,.uint32_t.version).{...2....
dfc0 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 if.(strcmp(interface,."wl_compos
dfe0 69 74 6f 72 22 29 20 3d 3d 20 30 29 20 7b 00 00 00 51 20 20 20 20 20 20 20 20 63 6f 6d 70 6f 73 itor").==.0).{...Q........compos
e000 69 74 6f 72 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 itor.=.wl_registry_bind(registry
e020 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 ,.id,.&wl_compositor_interface,.
e040 34 29 3b 00 00 00 32 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 4);...2....}.else.if.(strcmp(int
e060 65 72 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d 22 29 20 3d 3d 20 30 29 20 7b 00 00 00 43 20 20 20 erface,."wl_shm").==.0).{...C...
e080 20 20 20 20 20 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 .....shm.=.wl_registry_bind(regi
e0a0 73 74 72 79 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b stry,.id,.&wl_shm_interface,.1);
e0c0 00 00 00 37 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 ...7....}.else.if.(strcmp(interf
e0e0 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 20 3d 3d 20 30 29 20 7b 00 00 00 4c 20 ace,."xdg_wm_base").==.0).{...L.
e100 20 20 20 20 20 20 20 77 6d 5f 62 61 73 65 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e .......wm_base.=.wl_registry_bin
e120 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 d(registry,.id,.&xdg_wm_base_int
e140 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 43 20 20 20 20 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 erface,.1);...C........xdg_wm_ba
e160 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 77 6d 5f 62 61 73 65 2c 20 26 77 6d 5f 62 61 73 se_add_listener(wm_base,.&wm_bas
e180 65 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d e_listener,.NULL);........}....}
e1a0 00 00 00 00 00 00 00 58 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 .......Xstatic.const.struct.wl_r
e1c0 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e egistry_listener.registry_listen
e1e0 65 72 20 3d 20 7b 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 2c 20 4e 55 4c 4c 20 7d 3b er.=.{.registry_handler,.NULL.};
e200 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 .......)static.int.create_shm_fi
e220 6c 65 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 30 20 20 20 20 63 68 61 72 20 74 65 le(size_t.size).{...0....char.te
e240 6d 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 61 79 6c 61 6e 64 2d 73 68 6d 2d 58 58 58 mplate[].=."/tmp/wayland-shm-XXX
e260 58 58 58 22 3b 00 00 00 1f 20 20 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 XXX";........int.fd.=.mkstemp(te
e280 6d 70 6c 61 74 65 29 3b 00 00 00 2f 20 20 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 7b 20 70 65 mplate);.../....if.(fd.<.0).{.pe
e2a0 72 72 6f 72 28 22 6d 6b 73 74 65 6d 70 22 29 3b 20 65 78 69 74 28 31 29 3b 20 7d 00 00 00 15 20 rror("mkstemp");.exit(1);.}.....
e2c0 20 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 42 20 20 20 20 69 66 20 28 ...unlink(template);...B....if.(
e2e0 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 20 7b 20 70 65 72 72 6f ftruncate(fd,.size).<.0).{.perro
e300 72 28 22 66 74 72 75 6e 63 61 74 65 22 29 3b 20 65 78 69 74 28 31 29 3b 20 7d 00 00 00 0e 20 20 r("ftruncate");.exit(1);.}......
e320 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0c 69 6e 74 20 6d 61 69 ..return.fd;....}........int.mai
e340 6e 28 29 20 7b 00 00 00 27 20 20 20 20 64 69 73 70 6c 61 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 n().{...'....display.=.wl_displa
e360 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 5a 20 20 20 20 69 66 20 28 21 64 69 73 y_connect(NULL);...Z....if.(!dis
e380 70 6c 61 79 29 20 7b 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 46 61 69 6c 65 64 20 play).{.fprintf(stderr,."Failed.
e3a0 74 6f 20 63 6f 6e 6e 65 63 74 20 74 6f 20 57 61 79 6c 61 6e 64 20 64 69 73 70 6c 61 79 5c 6e 22 to.connect.to.Wayland.display\n"
e3c0 29 3b 20 72 65 74 75 72 6e 20 31 3b 20 7d 00 00 00 00 00 00 00 30 20 20 20 20 72 65 67 69 73 74 );.return.1;.}.......0....regist
e3e0 72 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 64 69 73 ry.=.wl_display_get_registry(dis
e400 70 6c 61 79 29 3b 00 00 00 41 20 20 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 play);...A....wl_registry_add_li
e420 73 74 65 6e 65 72 28 72 65 67 69 73 74 72 79 2c 20 26 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 stener(registry,.&registry_liste
e440 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 22 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f ner,.NULL);..."....wl_display_ro
e460 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 00 00 00 00 00 6d 20 20 20 20 69 66 20 undtrip(display);.......m....if.
e480 28 21 63 6f 6d 70 6f 73 69 74 6f 72 20 7c 7c 20 21 73 68 6d 20 7c 7c 20 21 77 6d 5f 62 61 73 65 (!compositor.||.!shm.||.!wm_base
e4a0 29 20 7b 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 4d 69 73 73 69 6e 67 20 72 65 71 ).{.fprintf(stderr,."Missing.req
e4c0 75 69 72 65 64 20 57 61 79 6c 61 6e 64 20 67 6c 6f 62 61 6c 73 5c 6e 22 29 3b 20 72 65 74 75 72 uired.Wayland.globals\n");.retur
e4e0 6e 20 31 3b 20 7d 00 00 00 00 00 00 00 37 20 20 20 20 73 75 72 66 61 63 65 20 3d 20 77 6c 5f 63 n.1;.}.......7....surface.=.wl_c
e500 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 63 6f 6d 70 6f 73 69 ompositor_create_surface(composi
e520 74 6f 72 29 3b 00 00 00 40 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 20 3d 20 78 64 67 5f 77 tor);...@....xdg_surface.=.xdg_w
e540 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 77 6d 5f 62 61 73 65 2c 20 m_base_get_xdg_surface(wm_base,.
e560 73 75 72 66 61 63 65 29 3b 00 00 00 47 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 surface);...G....xdg_surface_add
e580 5f 6c 69 73 74 65 6e 65 72 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 26 78 64 67 5f 73 75 72 66 _listener(xdg_surface,.&xdg_surf
e5a0 61 63 65 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 00 00 00 00 35 20 20 20 20 ace_listener,.NULL);.......5....
e5c0 74 6f 70 6c 65 76 65 6c 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 toplevel.=.xdg_surface_get_tople
e5e0 76 65 6c 28 78 64 67 5f 73 75 72 66 61 63 65 29 3b 00 00 00 42 20 20 20 20 78 64 67 5f 74 6f 70 vel(xdg_surface);...B....xdg_top
e600 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 74 6f 70 6c 65 76 65 6c 2c 20 26 74 6f level_add_listener(toplevel,.&to
e620 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 00 00 00 00 1f 20 plevel_listener,.NULL);.........
e640 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 ...wl_surface_commit(surface);..
e660 00 22 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 73 70 6c ."....wl_display_roundtrip(displ
e680 61 79 29 3b 00 00 00 00 00 00 00 1b 20 20 20 20 69 6e 74 20 73 74 72 69 64 65 20 3d 20 57 49 44 ay);............int.stride.=.WID
e6a0 54 48 20 2a 20 34 3b 00 00 00 1f 20 20 20 20 69 6e 74 20 73 69 7a 65 20 3d 20 73 74 72 69 64 65 TH.*.4;........int.size.=.stride
e6c0 20 2a 20 48 45 49 47 48 54 3b 00 00 00 23 20 20 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 .*.HEIGHT;...#....int.fd.=.creat
e6e0 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 4d 20 20 20 20 76 6f 69 64 20 2a 64 e_shm_file(size);...M....void.*d
e700 61 74 61 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 ata.=.mmap(NULL,.size,.PROT_READ
e720 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 .|.PROT_WRITE,.MAP_SHARED,.fd,.0
e740 29 3b 00 00 00 38 20 20 20 20 69 66 20 28 64 61 74 61 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 );...8....if.(data.==.MAP_FAILED
e760 29 20 7b 20 70 65 72 72 6f 72 28 22 6d 6d 61 70 22 29 3b 20 65 78 69 74 28 31 29 3b 20 7d 00 00 ).{.perror("mmap");.exit(1);.}..
e780 00 00 00 00 00 1c 20 20 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 69 78 65 6c 73 20 3d 20 64 61 74 ..........uint32_t.*pixels.=.dat
e7a0 61 3b 00 00 00 2c 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 57 49 a;...,....for.(int.i.=.0;.i.<.WI
e7c0 44 54 48 20 2a 20 48 45 49 47 48 54 3b 20 69 2b 2b 29 00 00 00 1f 20 20 20 20 20 20 20 20 70 69 DTH.*.HEIGHT;.i++)............pi
e7e0 78 65 6c 73 5b 69 5d 20 3d 20 30 78 66 66 30 30 30 30 66 66 3b 00 00 00 00 00 00 00 41 20 20 20 xels[i].=.0xff0000ff;.......A...
e800 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 .struct.wl_shm_pool.*pool.=.wl_s
e820 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 hm_create_pool(shm,.fd,.size);..
e840 00 71 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 66 65 72 20 3d .q....struct.wl_buffer.*buffer.=
e860 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c .wl_shm_pool_create_buffer(pool,
e880 20 30 2c 20 57 49 44 54 48 2c 20 48 45 49 47 48 54 2c 20 73 74 72 69 64 65 2c 20 57 4c 5f 53 48 .0,.WIDTH,.HEIGHT,.stride,.WL_SH
e8a0 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 00 00 00 00 2d 20 20 20 20 77 M_FORMAT_ARGB8888);.......-....w
e8c0 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 73 75 72 66 61 63 65 2c 20 62 75 66 66 65 72 l_surface_attach(surface,.buffer
e8e0 2c 20 30 2c 20 30 29 3b 00 00 00 1f 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 ,.0,.0);........wl_surface_commi
e900 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 00 00 00 00 36 20 20 20 20 77 68 69 6c 65 20 28 72 75 t(surface);.......6....while.(ru
e920 6e 6e 69 6e 67 20 26 26 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 64 69 73 nning.&&.wl_display_dispatch(dis
e940 70 6c 61 79 29 29 20 7b 7d 00 00 00 00 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 30 3b 35 81 play)).{}............return.0;5.
e960 f5 18 00 00 00 00 00 00 00 00 09 00 00 00 6c 00 00 00 02 00 00 00 81 00 00 00 00 00 00 00 09 00 ..............l.................
e980 00 00 00 00 00 00 c9 0e 00 00 00 00 00 00 50 0f 00 00 00 00 00 00 35 81 5f d0 00 00 00 22 00 00 ..............P.......5._...."..
e9a0 00 24 00 00 00 00 00 00 00 00 00 00 00 23 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 .$...........#..................
e9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
eaa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
eac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
eae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
eb00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d 6c 85 ............................i.l.
eb20 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 83 00 00 00 26 23 69 6e ............................&#in
eb40 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c clude."xdg-shell-client-protocol
eb60 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 12 23 69 6e .h"....#include.<fcntl.h>....#in
eb80 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 clude.<stdio.h>....#include.<std
eba0 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 lib.h>....#include.<string.h>...
ebc0 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 .#include.<sys/mman.h>....#inclu
ebe0 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 de.<unistd.h>....#include.<wayla
ec00 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 00 00 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 64 69 nd-client.h>........struct.wl_di
ec20 73 70 6c 61 79 20 2a 64 69 73 70 6c 61 79 3b 00 00 00 1d 73 74 72 75 63 74 20 77 6c 5f 72 65 67 splay.*display;....struct.wl_reg
ec40 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 79 3b 00 00 00 21 73 74 72 75 63 74 20 77 6c 5f 63 6f istry.*registry;...!struct.wl_co
ec60 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 6f 73 69 74 6f 72 3b 00 00 00 13 73 74 72 75 63 74 20 mpositor.*compositor;....struct.
ec80 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 1c 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 wl_shm.*shm;....struct.xdg_wm_ba
eca0 73 65 20 2a 77 6d 5f 62 61 73 65 3b 00 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 se.*wm_base;....struct.wl_surfac
ecc0 65 20 2a 73 75 72 66 61 63 65 3b 00 00 00 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 e.*surface;....struct.xdg_surfac
ece0 65 20 2a 78 64 67 5f 73 75 72 66 61 63 65 3b 00 00 00 1e 73 74 72 75 63 74 20 78 64 67 5f 74 6f e.*xdg_surface;....struct.xdg_to
ed00 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 3b 00 00 00 00 00 00 00 16 63 6f 6e 73 74 20 69 plevel.*toplevel;........const.i
ed20 6e 74 20 57 49 44 54 48 20 3d 20 33 30 30 3b 00 00 00 17 63 6f 6e 73 74 20 69 6e 74 20 48 45 49 nt.WIDTH.=.300;....const.int.HEI
ed40 47 48 54 20 3d 20 32 30 30 3b 00 00 00 10 69 6e 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 GHT.=.200;....int.running.=.1;..
ed60 00 00 00 00 00 41 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 62 61 73 65 5f 70 69 6e 67 28 76 .....Astatic.void.wm_base_ping(v
ed80 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 oid.*data,.struct.xdg_wm_base.*w
eda0 6d 5f 62 61 73 65 2c 00 00 00 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 m_base,...+.....................
edc0 20 20 20 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 24 20 20 78 64 67 5f ....uint32_t.serial).{...$..xdg_
ede0 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 5f 62 61 73 65 2c 20 73 65 72 69 61 6c 29 3b 00 00 wm_base_pong(wm_base,.serial);..
ee00 00 01 7d 00 00 00 00 00 00 00 4b 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 ..}.......Kstatic.const.struct.x
ee20 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 62 61 73 65 5f 6c 69 73 74 dg_wm_base_listener.wm_base_list
ee40 65 6e 65 72 20 3d 20 7b 77 6d 5f 62 61 73 65 5f 70 69 6e 67 7d 3b 00 00 00 00 00 00 00 4e 73 74 ener.=.{wm_base_ping};.......Nst
ee60 61 74 69 63 20 76 6f 69 64 20 78 64 67 5f 73 75 72 66 61 63 65 5f 63 6f 6e 66 69 67 75 72 65 28 atic.void.xdg_surface_configure(
ee80 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a void.*data,.struct.xdg_surface.*
eea0 78 64 67 5f 73 75 72 66 61 63 65 2c 00 00 00 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 xdg_surface,...4................
eec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 ..................uint32_t.seria
eee0 6c 29 20 7b 00 00 00 31 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 l).{...1..xdg_surface_ack_config
ef00 75 72 65 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 1d 20 20 77 ure(xdg_surface,.serial);......w
ef20 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 01 7d 00 l_surface_commit(surface);....}.
ef40 00 00 00 00 00 00 41 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 ......Astatic.const.struct.xdg_s
ef60 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 urface_listener.xdg_surface_list
ef80 65 6e 65 72 20 3d 20 7b 00 00 00 1b 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 63 6f 6e 66 ener.=.{........xdg_surface_conf
efa0 69 67 75 72 65 7d 3b 00 00 00 00 00 00 00 49 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 igure};.......Istatic.void.tople
efc0 76 65 6c 5f 63 6f 6e 66 69 67 75 72 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 vel_configure(void.*data,.struct
efe0 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 2c 00 00 00 3d 20 20 20 20 .xdg_toplevel.*toplevel,...=....
f000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 33 32 ...........................int32
f020 5f 74 20 77 69 64 74 68 2c 20 69 6e 74 33 32 5f 74 20 68 65 69 67 68 74 2c 00 00 00 3a 20 20 20 _t.width,.int32_t.height,...:...
f040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 ............................stru
f060 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 74 61 74 65 73 29 20 7b 7d 00 00 00 00 00 00 00 47 73 ct.wl_array.*states).{}.......Gs
f080 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 6c 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a tatic.void.toplevel_close(void.*
f0a0 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 data,.struct.xdg_toplevel.*tople
f0c0 76 65 6c 29 20 7b 00 00 00 0e 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 vel).{......running.=.0;....}...
f0e0 00 00 00 00 3f 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 ....?static.const.struct.xdg_top
f100 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 level_listener.toplevel_listener
f120 20 3d 20 7b 00 00 00 3e 20 20 20 20 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 74 6f 70 6c 65 76 65 .=.{...>.....configure.=.topleve
f140 6c 5f 63 6f 6e 66 69 67 75 72 65 2c 20 2e 63 6c 6f 73 65 20 3d 20 74 6f 70 6c 65 76 65 6c 5f 63 l_configure,..close.=.toplevel_c
f160 6c 6f 73 65 7d 3b 00 00 00 00 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 lose};.......Fstatic.void.regist
f180 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c ry_handler(void.*data,.struct.wl
f1a0 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 79 2c 00 00 00 40 20 20 20 20 20 20 20 20 _registry.*registry,...@........
f1c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 69 64 .....................uint32_t.id
f1e0 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 6e 74 65 72 66 61 63 65 2c 00 00 00 30 20 20 20 20 ,.const.char.*interface,...0....
f200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f .........................uint32_
f220 74 20 76 65 72 73 69 6f 6e 29 20 7b 00 00 00 30 20 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 t.version).{...0..if.(strcmp(int
f240 65 72 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 20 3d 3d 20 30 29 20 7b erface,."wl_compositor").==.0).{
f260 00 00 00 4d 20 20 20 20 63 6f 6d 70 6f 73 69 74 6f 72 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 ...M....compositor.=.wl_registry
f280 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 _bind(registry,.id,.&wl_composit
f2a0 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 30 20 20 7d 20 65 6c 73 65 20 69 66 or_interface,.4);...0..}.else.if
f2c0 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d 22 29 20 3d 3d .(strcmp(interface,."wl_shm").==
f2e0 20 30 29 20 7b 00 00 00 3f 20 20 20 20 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 .0).{...?....shm.=.wl_registry_b
f300 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 ind(registry,.id,.&wl_shm_interf
f320 61 63 65 2c 20 31 29 3b 00 00 00 35 20 20 7d 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 ace,.1);...5..}.else.if.(strcmp(
f340 69 6e 74 65 72 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 20 3d 3d 20 30 29 20 interface,."xdg_wm_base").==.0).
f360 7b 00 00 00 48 20 20 20 20 77 6d 5f 62 61 73 65 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 {...H....wm_base.=.wl_registry_b
f380 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 ind(registry,.id,.&xdg_wm_base_i
f3a0 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 3f 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 nterface,.1);...?....xdg_wm_base
f3c0 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 77 6d 5f 62 61 73 65 2c 20 26 77 6d 5f 62 61 73 65 5f _add_listener(wm_base,.&wm_base_
f3e0 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 listener,.NULL);......}....}....
f400 00 00 00 4f 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 ...Ostatic.const.struct.wl_regis
f420 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 3d try_listener.registry_listener.=
f440 20 7b 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 2c 00 00 00 44 20 20 20 20 20 20 20 20 20 .{registry_handler,...D.........
f460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
f480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4e 55 4c 4c 7d 3b 00 00 00 00 00 .....................NULL};.....
f4a0 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 ..)static.int.create_shm_file(si
f4c0 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 2e 20 20 63 68 61 72 20 74 65 6d 70 6c 61 74 65 5b ze_t.size).{......char.template[
f4e0 5d 20 3d 20 22 2f 74 6d 70 2f 77 61 79 6c 61 6e 64 2d 73 68 6d 2d 58 58 58 58 58 58 22 3b 00 00 ].=."/tmp/wayland-shm-XXXXXX";..
f500 00 1d 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 74 65 29 3b 00 ....int.fd.=.mkstemp(template);.
f520 00 00 0f 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 7b 00 00 00 16 20 20 20 20 70 65 72 72 6f 72 .....if.(fd.<.0).{........perror
f540 28 22 6d 6b 73 74 65 6d 70 22 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 ("mkstemp");........exit(1);....
f560 20 20 7d 00 00 00 13 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 20 20 20 ..}......unlink(template);......
f580 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 20 7b 00 00 if.(ftruncate(fd,.size).<.0).{..
f5a0 00 18 20 20 20 20 70 65 72 72 6f 72 28 22 66 74 72 75 6e 63 61 74 65 22 29 3b 00 00 00 0c 20 20 ......perror("ftruncate");......
f5c0 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 ..exit(1);......}......return.fd
f5e0 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0c 69 6e 74 20 6d 61 69 6e 28 29 20 7b 00 00 00 25 20 20 ;....}........int.main().{...%..
f600 64 69 73 70 6c 61 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c display.=.wl_display_connect(NUL
f620 4c 29 3b 00 00 00 11 20 20 69 66 20 28 21 64 69 73 70 6c 61 79 29 20 7b 00 00 00 3e 20 20 20 20 L);......if.(!display).{...>....
f640 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 46 61 69 6c 65 64 20 74 6f 20 63 6f 6e 6e 65 fprintf(stderr,."Failed.to.conne
f660 63 74 20 74 6f 20 57 61 79 6c 61 6e 64 20 64 69 73 70 6c 61 79 5c 6e 22 29 3b 00 00 00 0d 20 20 ct.to.Wayland.display\n");......
f680 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 2e 20 20 72 65 67 69 ..return.1;......}..........regi
f6a0 73 74 72 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 64 stry.=.wl_display_get_registry(d
f6c0 69 73 70 6c 61 79 29 3b 00 00 00 3f 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 isplay);...?..wl_registry_add_li
f6e0 73 74 65 6e 65 72 28 72 65 67 69 73 74 72 79 2c 20 26 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 stener(registry,.&registry_liste
f700 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e ner,.NULL);......wl_display_roun
f720 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 00 00 00 00 00 28 20 20 69 66 20 28 21 63 6f dtrip(display);.......(..if.(!co
f740 6d 70 6f 73 69 74 6f 72 20 7c 7c 20 21 73 68 6d 20 7c 7c 20 21 77 6d 5f 62 61 73 65 29 20 7b 00 mpositor.||.!shm.||.!wm_base).{.
f760 00 00 3a 20 20 20 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 4d 69 73 73 69 6e 67 20 ..:....fprintf(stderr,."Missing.
f780 72 65 71 75 69 72 65 64 20 57 61 79 6c 61 6e 64 20 67 6c 6f 62 61 6c 73 5c 6e 22 29 3b 00 00 00 required.Wayland.globals\n");...
f7a0 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 35 20 20 73 .....return.1;......}.......5..s
f7c0 75 72 66 61 63 65 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 urface.=.wl_compositor_create_su
f7e0 72 66 61 63 65 28 63 6f 6d 70 6f 73 69 74 6f 72 29 3b 00 00 00 3e 20 20 78 64 67 5f 73 75 72 66 rface(compositor);...>..xdg_surf
f800 61 63 65 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 ace.=.xdg_wm_base_get_xdg_surfac
f820 65 28 77 6d 5f 62 61 73 65 2c 20 73 75 72 66 61 63 65 29 3b 00 00 00 45 20 20 78 64 67 5f 73 75 e(wm_base,.surface);...E..xdg_su
f840 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 rface_add_listener(xdg_surface,.
f860 26 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 &xdg_surface_listener,.NULL);...
f880 00 00 00 00 33 20 20 74 6f 70 6c 65 76 65 6c 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 ....3..toplevel.=.xdg_surface_ge
f8a0 74 5f 74 6f 70 6c 65 76 65 6c 28 78 64 67 5f 73 75 72 66 61 63 65 29 3b 00 00 00 40 20 20 78 64 t_toplevel(xdg_surface);...@..xd
f8c0 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 74 6f 70 6c 65 76 65 6c g_toplevel_add_listener(toplevel
f8e0 2c 20 26 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 00 ,.&toplevel_listener,.NULL);....
f900 00 00 00 1d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 ......wl_surface_commit(surface)
f920 3b 00 00 00 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 73 70 ;......wl_display_roundtrip(disp
f940 6c 61 79 29 3b 00 00 00 00 00 00 00 19 20 20 69 6e 74 20 73 74 72 69 64 65 20 3d 20 57 49 44 54 lay);..........int.stride.=.WIDT
f960 48 20 2a 20 34 3b 00 00 00 1d 20 20 69 6e 74 20 73 69 7a 65 20 3d 20 73 74 72 69 64 65 20 2a 20 H.*.4;......int.size.=.stride.*.
f980 48 45 49 47 48 54 3b 00 00 00 21 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d HEIGHT;...!..int.fd.=.create_shm
f9a0 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 4b 20 20 76 6f 69 64 20 2a 64 61 74 61 20 3d 20 6d _file(size);...K..void.*data.=.m
f9c0 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 map(NULL,.size,.PROT_READ.|.PROT
f9e0 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 1b 20 _WRITE,.MAP_SHARED,.fd,.0);.....
fa00 20 69 66 20 28 64 61 74 61 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 20 7b 00 00 00 13 20 20 .if.(data.==.MAP_FAILED).{......
fa20 20 20 70 65 72 72 6f 72 28 22 6d 6d 61 70 22 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 ..perror("mmap");........exit(1)
fa40 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 1a 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 69 78 65 ;......}..........uint32_t.*pixe
fa60 6c 73 20 3d 20 64 61 74 61 3b 00 00 00 2a 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 ls.=.data;...*..for.(int.i.=.0;.
fa80 69 20 3c 20 57 49 44 54 48 20 2a 20 48 45 49 47 48 54 3b 20 69 2b 2b 29 00 00 00 1b 20 20 20 20 i.<.WIDTH.*.HEIGHT;.i++)........
faa0 70 69 78 65 6c 73 5b 69 5d 20 3d 20 30 78 66 66 30 30 30 30 66 66 3b 00 00 00 00 00 00 00 3f 20 pixels[i].=.0xff0000ff;.......?.
fac0 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 .struct.wl_shm_pool.*pool.=.wl_s
fae0 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 hm_create_pool(shm,.fd,.size);..
fb00 00 37 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 66 65 72 20 3d 20 77 .7..struct.wl_buffer.*buffer.=.w
fb20 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 00 00 00 3e 20 20 20 l_shm_pool_create_buffer(...>...
fb40 20 20 20 70 6f 6f 6c 2c 20 30 2c 20 57 49 44 54 48 2c 20 48 45 49 47 48 54 2c 20 73 74 72 69 64 ...pool,.0,.WIDTH,.HEIGHT,.strid
fb60 65 2c 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 00 00 e,.WL_SHM_FORMAT_ARGB8888);.....
fb80 00 00 2b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 73 75 72 66 61 63 65 2c 20 ..+..wl_surface_attach(surface,.
fba0 62 75 66 66 65 72 2c 20 30 2c 20 30 29 3b 00 00 00 1d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 buffer,.0,.0);......wl_surface_c
fbc0 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 00 00 00 00 33 20 20 77 68 69 6c 65 20 28 ommit(surface);.......3..while.(
fbe0 72 75 6e 6e 69 6e 67 20 26 26 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 64 running.&&.wl_display_dispatch(d
fc00 69 73 70 6c 61 79 29 29 20 7b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 0b 20 20 72 65 74 75 72 isplay)).{......}..........retur
fc20 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 83 00 00 00 00 00 00 n.0;....}5......................
fc40 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 67 0f 00 00 00 00 00 00 01 00 00 00 00 00 00 .................g..............
fc60 00 35 81 5f d0 00 00 00 23 00 00 00 25 00 00 00 00 00 00 00 00 00 00 00 24 00 00 00 01 00 00 00 .5._....#...%...........$.......
fc80 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fcc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fd00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fd20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fd40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fdc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fde0 00 00 00 00 00 00 00 69 9d 6c 86 04 01 00 00 00 00 00 f5 18 00 00 00 76 00 00 00 00 00 00 00 00 .......i.l.............v........
fe00 00 00 00 01 00 00 00 01 7d f5 18 00 00 00 77 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 ........}.....w.................
fe20 6b 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 20 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 k....................xdg_surface
fe40 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 78 64 67 f5 18 00 00 00 6c 00 00 00 00 00 00 00 00 00 _add_listener(xdg.....l.........
fe60 00 00 00 f5 18 00 00 00 60 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 23 20 20 20 20 64 69 73 ........`...............#....dis
fe80 70 6c 61 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 f5 18 00 00 play.=.wl_display_connect(NU....
fea0 00 61 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 .a..............................
fec0 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 ......................5.........
fee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60 00 00 00 23 00 00 00 00 00 00 00 00 00 00 00 00 00 ..............`...#.............
ff00 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 f5 18 00 00 00 00 60 00 00 00 23 00 00 00 00 00 00 00 ....................`...#.......
ff20 00 00 00 00 0b 00 00 00 20 00 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 ................................
ff40 00 00 00 00 f5 18 00 00 00 00 6b 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 0b 00 00 00 01 00 ..........k.....................
ff60 00 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2e 01 00 00 00 00 00 00 35 81 5f d0 00 00 ..........................5._...
ff80 00 24 00 00 00 26 00 00 00 00 00 00 00 00 00 00 00 25 00 00 00 77 00 00 00 00 00 00 00 00 ff ff .$...&...........%...w..........
ffa0 ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ffc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ffe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
100a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
100c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
100e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
10100 69 9d 6c 87 04 01 00 00 00 0f 00 f5 18 00 00 00 00 00 00 00 8c 00 00 00 77 00 00 00 76 00 00 00 i.l.....................w...v...
10120 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 15 .#include.<wayland-client.h>....
10140 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 #include.<sys/mman.h>....#includ
10160 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e e.<unistd.h>....#include.<fcntl.
10180 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 13 23 69 6e h>....#include.<string.h>....#in
101a0 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 clude.<stdlib.h>....#include.<st
101c0 64 69 6f 2e 68 3e 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c dio.h>...&#include."xdg-shell-cl
101e0 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 00 00 00 00 1b 73 74 72 75 63 74 20 77 ient-protocol.h"........struct.w
10200 6c 5f 64 69 73 70 6c 61 79 20 2a 64 69 73 70 6c 61 79 3b 00 00 00 1d 73 74 72 75 63 74 20 77 6c l_display.*display;....struct.wl
10220 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 79 3b 00 00 00 21 73 74 72 75 63 74 20 77 _registry.*registry;...!struct.w
10240 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 6f 73 69 74 6f 72 3b 00 00 00 13 73 74 72 l_compositor.*compositor;....str
10260 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 1c 73 74 72 75 63 74 20 78 64 67 5f 77 uct.wl_shm.*shm;....struct.xdg_w
10280 6d 5f 62 61 73 65 20 2a 77 6d 5f 62 61 73 65 3b 00 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 73 75 m_base.*wm_base;....struct.wl_su
102a0 72 66 61 63 65 20 2a 73 75 72 66 61 63 65 3b 00 00 00 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 rface.*surface;....struct.xdg_su
102c0 72 66 61 63 65 20 2a 78 64 67 5f 73 75 72 66 61 63 65 3b 00 00 00 1e 73 74 72 75 63 74 20 78 64 rface.*xdg_surface;....struct.xd
102e0 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 3b 00 00 00 00 00 00 00 17 73 74 61 g_toplevel.*toplevel;........sta
10300 74 69 63 20 69 6e 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 27 73 74 61 74 69 63 20 73 tic.int.running.=.1;...'static.s
10320 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 66 65 72 20 3d 20 4e 55 4c 4c 3b 00 truct.wl_buffer.*buffer.=.NULL;.
10340 00 00 1b 73 74 61 74 69 63 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 ...static.void.*pixels.=.NULL;..
10360 00 29 73 74 61 74 69 63 20 69 6e 74 20 62 75 66 5f 77 69 64 74 68 20 3d 20 30 2c 20 62 75 66 5f .)static.int.buf_width.=.0,.buf_
10380 68 65 69 67 68 74 20 3d 20 30 3b 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 63 72 height.=.0;.......)static.int.cr
103a0 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 30 eate_shm_file(size_t.size).{...0
103c0 20 20 20 20 63 68 61 72 20 74 65 6d 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 61 79 6c ....char.template[].=."/tmp/wayl
103e0 61 6e 64 2d 73 68 6d 2d 58 58 58 58 58 58 22 3b 00 00 00 1f 20 20 20 20 69 6e 74 20 66 64 20 3d and-shm-XXXXXX";........int.fd.=
10400 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 2f 20 20 20 20 69 66 20 28 66 .mkstemp(template);.../....if.(f
10420 64 20 3c 20 30 29 20 7b 20 70 65 72 72 6f 72 28 22 6d 6b 73 74 65 6d 70 22 29 3b 20 65 78 69 74 d.<.0).{.perror("mkstemp");.exit
10440 28 31 29 3b 20 7d 00 00 00 15 20 20 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 (1);.}........unlink(template);.
10460 00 00 42 20 20 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c ..B....if.(ftruncate(fd,.size).<
10480 20 30 29 20 7b 20 70 65 72 72 6f 72 28 22 66 74 72 75 6e 63 61 74 65 22 29 3b 20 65 78 69 74 28 .0).{.perror("ftruncate");.exit(
104a0 31 29 3b 20 7d 00 00 00 0e 20 20 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 1);.}........return.fd;....}....
104c0 00 00 00 54 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 62 61 73 65 5f 70 69 6e 67 28 76 6f 69 ...Tstatic.void.wm_base_ping(voi
104e0 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 5f d.*data,.struct.xdg_wm_base.*wm_
10500 62 61 73 65 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 26 20 20 20 20 base,.uint32_t.serial).{...&....
10520 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 5f 62 61 73 65 2c 20 73 65 72 69 61 6c xdg_wm_base_pong(wm_base,.serial
10540 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4d 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 );....}.......Mstatic.const.stru
10560 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 62 61 73 65 5f ct.xdg_wm_base_listener.wm_base_
10580 6c 69 73 74 65 6e 65 72 20 3d 20 7b 20 77 6d 5f 62 61 73 65 5f 70 69 6e 67 20 7d 3b 00 00 00 00 listener.=.{.wm_base_ping.};....
105a0 00 00 00 61 73 74 61 74 69 63 20 76 6f 69 64 20 78 64 67 5f 73 75 72 66 61 63 65 5f 63 6f 6e 66 ...astatic.void.xdg_surface_conf
105c0 69 67 75 72 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 igure(void.*data,.struct.xdg_sur
105e0 66 61 63 65 20 2a 78 64 67 5f 73 75 72 66 61 63 65 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 face.*xdg_surface,.uint32_t.seri
10600 61 6c 29 20 7b 00 00 00 33 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e al).{...3....xdg_surface_ack_con
10620 66 69 67 75 72 65 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 1f figure(xdg_surface,.serial);....
10640 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 ....wl_surface_commit(surface);.
10660 00 00 01 7d 00 00 00 00 00 00 00 5a 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 ...}.......Zstatic.const.struct.
10680 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 64 67 5f 73 75 72 66 61 63 65 xdg_surface_listener.xdg_surface
106a0 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 20 78 64 67 5f 73 75 72 66 61 63 65 5f 63 6f 6e 66 69 67 _listener.=.{.xdg_surface_config
106c0 75 72 65 20 7d 3b 00 00 00 00 00 00 00 34 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 61 ure.};.......4static.void.alloca
106e0 74 65 5f 62 75 66 66 65 72 28 69 6e 74 20 77 69 64 74 68 2c 20 69 6e 74 20 68 65 69 67 68 74 29 te_buffer(int.width,.int.height)
10700 20 7b 00 00 00 11 20 20 20 20 69 66 20 28 62 75 66 66 65 72 29 20 7b 00 00 00 22 20 20 20 20 20 .{........if.(buffer).{...".....
10720 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 62 75 66 66 65 72 29 3b 00 00 00 ...wl_buffer_destroy(buffer);...
10740 33 20 20 20 20 20 20 20 20 6d 75 6e 6d 61 70 28 70 69 78 65 6c 73 2c 20 62 75 66 5f 77 69 64 74 3........munmap(pixels,.buf_widt
10760 68 20 2a 20 62 75 66 5f 68 65 69 67 68 74 20 2a 20 34 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 h.*.buf_height.*.4);........}...
10780 16 20 20 20 20 62 75 66 5f 77 69 64 74 68 20 3d 20 77 69 64 74 68 3b 00 00 00 18 20 20 20 20 62 .....buf_width.=.width;........b
107a0 75 66 5f 68 65 69 67 68 74 20 3d 20 68 65 69 67 68 74 3b 00 00 00 1b 20 20 20 20 69 6e 74 20 73 uf_height.=.height;........int.s
107c0 74 72 69 64 65 20 3d 20 77 69 64 74 68 20 2a 20 34 3b 00 00 00 1f 20 20 20 20 69 6e 74 20 73 69 tride.=.width.*.4;........int.si
107e0 7a 65 20 3d 20 73 74 72 69 64 65 20 2a 20 68 65 69 67 68 74 3b 00 00 00 23 20 20 20 20 69 6e 74 ze.=.stride.*.height;...#....int
10800 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 49 .fd.=.create_shm_file(size);...I
10820 20 20 20 20 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 ....pixels.=.mmap(NULL,.size,.PR
10840 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 OT_READ.|.PROT_WRITE,.MAP_SHARED
10860 2c 20 66 64 2c 20 30 29 3b 00 00 00 3a 20 20 20 20 69 66 20 28 70 69 78 65 6c 73 20 3d 3d 20 4d ,.fd,.0);...:....if.(pixels.==.M
10880 41 50 5f 46 41 49 4c 45 44 29 20 7b 20 70 65 72 72 6f 72 28 22 6d 6d 61 70 22 29 3b 20 65 78 69 AP_FAILED).{.perror("mmap");.exi
108a0 74 28 31 29 3b 20 7d 00 00 00 1a 20 20 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 70 69 t(1);.}........uint32_t.*px.=.pi
108c0 78 65 6c 73 3b 00 00 00 2c 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c xels;...,....for.(int.i.=.0;.i.<
108e0 20 77 69 64 74 68 20 2a 20 68 65 69 67 68 74 3b 20 69 2b 2b 29 00 00 00 29 20 20 20 20 20 20 20 .width.*.height;.i++)...).......
10900 20 70 78 5b 69 5d 20 3d 20 30 78 66 66 30 30 30 30 66 66 3b 20 2f 2f 20 73 6f 6c 69 64 20 62 6c .px[i].=.0xff0000ff;.//.solid.bl
10920 75 65 00 00 00 41 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f ue...A....struct.wl_shm_pool.*po
10940 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 73 68 6d 2c 20 66 64 2c ol.=.wl_shm_create_pool(shm,.fd,
10960 20 73 69 7a 65 29 3b 00 00 00 5f 20 20 20 20 62 75 66 66 65 72 20 3d 20 77 6c 5f 73 68 6d 5f 70 .size);..._....buffer.=.wl_shm_p
10980 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 77 69 64 74 68 ool_create_buffer(pool,.0,.width
109a0 2c 20 68 65 69 67 68 74 2c 20 73 74 72 69 64 65 2c 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f ,.height,.stride,.WL_SHM_FORMAT_
109c0 41 52 47 42 38 38 38 38 29 3b 00 00 00 2d 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 ARGB8888);...-....wl_surface_att
109e0 61 63 68 28 73 75 72 66 61 63 65 2c 20 62 75 66 66 65 72 2c 20 30 2c 20 30 29 3b 00 00 00 1f 20 ach(surface,.buffer,.0,.0);.....
10a00 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 ...wl_surface_commit(surface);..
10a20 00 01 7d 00 00 00 00 00 00 00 49 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 6c 5f ..}.......Istatic.void.toplevel_
10a40 63 6f 6e 66 69 67 75 72 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 configure(void.*data,.struct.xdg
10a60 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 2c 00 00 00 58 20 20 20 20 20 20 20 20 _toplevel.*toplevel,...X........
10a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 33 32 5f 74 20 77 .......................int32_t.w
10aa0 69 64 74 68 2c 20 69 6e 74 33 32 5f 74 20 68 65 69 67 68 74 2c 20 73 74 72 75 63 74 20 77 6c 5f idth,.int32_t.height,.struct.wl_
10ac0 61 72 72 61 79 20 2a 73 74 61 74 65 73 29 20 7b 00 00 00 20 20 20 20 20 69 66 20 28 77 69 64 74 array.*states).{........if.(widt
10ae0 68 20 3e 20 30 20 26 26 20 68 65 69 67 68 74 20 3e 20 30 29 00 00 00 27 20 20 20 20 20 20 20 20 h.>.0.&&.height.>.0)...'........
10b00 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 77 69 64 74 68 2c 20 68 65 69 67 68 74 29 3b 00 allocate_buffer(width,.height);.
10b20 00 00 01 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 6c ...}.......Gstatic.void.toplevel
10b40 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f _close(void.*data,.struct.xdg_to
10b60 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 29 20 7b 00 00 00 10 20 20 20 20 72 75 6e 6e 69 plevel.*toplevel).{........runni
10b80 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 3f 73 74 61 74 69 63 20 63 6f 6e 73 74 ng.=.0;....}.......?static.const
10ba0 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 74 6f .struct.xdg_toplevel_listener.to
10bc0 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 24 20 20 20 20 2e 63 6f 6e 66 plevel_listener.=.{...$.....conf
10be0 69 67 75 72 65 20 3d 20 74 6f 70 6c 65 76 65 6c 5f 63 6f 6e 66 69 67 75 72 65 2c 00 00 00 1b 20 igure.=.toplevel_configure,.....
10c00 20 20 20 2e 63 6c 6f 73 65 20 3d 20 74 6f 70 6c 65 76 65 6c 5f 63 6c 6f 73 65 00 00 00 02 7d 3b ....close.=.toplevel_close....};
10c20 00 00 00 00 00 00 00 53 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e .......Sstatic.void.registry_han
10c40 64 6c 65 72 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 dler(void.*data,.struct.wl_regis
10c60 74 72 79 20 2a 72 65 67 69 73 74 72 79 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 00 00 00 47 20 try.*registry,.uint32_t.id,...G.
10c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 ............................cons
10ca0 74 20 63 68 61 72 20 2a 69 6e 74 65 72 66 61 63 65 2c 20 75 69 6e 74 33 32 5f 74 20 76 65 72 73 t.char.*interface,.uint32_t.vers
10cc0 69 6f 6e 29 20 7b 00 00 00 30 20 20 20 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 ion).{...0....if.(strcmp(interfa
10ce0 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 20 3d 3d 20 30 29 00 00 00 51 20 20 ce,."wl_compositor").==.0)...Q..
10d00 20 20 20 20 20 20 63 6f 6d 70 6f 73 69 74 6f 72 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 ......compositor.=.wl_registry_b
10d20 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 ind(registry,.id,.&wl_compositor
10d40 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 2e 20 20 20 20 65 6c 73 65 20 69 66 20 28 _interface,.4);........else.if.(
10d60 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d 22 29 20 3d 3d 20 30 strcmp(interface,."wl_shm").==.0
10d80 29 00 00 00 43 20 20 20 20 20 20 20 20 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 )...C........shm.=.wl_registry_b
10da0 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 ind(registry,.id,.&wl_shm_interf
10dc0 61 63 65 2c 20 31 29 3b 00 00 00 35 20 20 20 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 ace,.1);...5....else.if.(strcmp(
10de0 69 6e 74 65 72 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 20 3d 3d 20 30 29 20 interface,."xdg_wm_base").==.0).
10e00 7b 00 00 00 4c 20 20 20 20 20 20 20 20 77 6d 5f 62 61 73 65 20 3d 20 77 6c 5f 72 65 67 69 73 74 {...L........wm_base.=.wl_regist
10e20 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 ry_bind(registry,.id,.&xdg_wm_ba
10e40 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 43 20 20 20 20 20 20 20 20 78 64 67 se_interface,.1);...C........xdg
10e60 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 77 6d 5f 62 61 73 65 2c 20 26 _wm_base_add_listener(wm_base,.&
10e80 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 05 20 20 20 20 wm_base_listener,.NULL);........
10ea0 7d 00 00 00 01 7d 00 00 00 00 00 00 00 58 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 }....}.......Xstatic.const.struc
10ec0 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 69 73 74 72 79 5f t.wl_registry_listener.registry_
10ee0 6c 69 73 74 65 6e 65 72 20 3d 20 7b 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 2c 20 4e listener.=.{.registry_handler,.N
10f00 55 4c 4c 20 7d 3b 00 00 00 00 00 00 00 0c 69 6e 74 20 6d 61 69 6e 28 29 20 7b 00 00 00 27 20 20 ULL.};........int.main().{...'..
10f20 20 20 64 69 73 70 6c 61 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e ..display.=.wl_display_connect(N
10f40 55 4c 4c 29 3b 00 00 00 5a 20 20 20 20 69 66 20 28 21 64 69 73 70 6c 61 79 29 20 7b 20 66 70 72 ULL);...Z....if.(!display).{.fpr
10f60 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 46 61 69 6c 65 64 20 74 6f 20 63 6f 6e 6e 65 63 74 20 intf(stderr,."Failed.to.connect.
10f80 74 6f 20 57 61 79 6c 61 6e 64 20 64 69 73 70 6c 61 79 5c 6e 22 29 3b 20 72 65 74 75 72 6e 20 31 to.Wayland.display\n");.return.1
10fa0 3b 20 7d 00 00 00 00 00 00 00 30 20 20 20 20 72 65 67 69 73 74 72 79 20 3d 20 77 6c 5f 64 69 73 ;.}.......0....registry.=.wl_dis
10fc0 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 64 69 73 70 6c 61 79 29 3b 00 00 00 41 20 play_get_registry(display);...A.
10fe0 20 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 72 65 67 69 ...wl_registry_add_listener(regi
11000 73 74 72 79 2c 20 26 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b stry,.&registry_listener,.NULL);
11020 00 00 00 22 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 73 ..."....wl_display_roundtrip(dis
11040 70 6c 61 79 29 3b 00 00 00 00 00 00 00 6d 20 20 20 20 69 66 20 28 21 63 6f 6d 70 6f 73 69 74 6f play);.......m....if.(!composito
11060 72 20 7c 7c 20 21 73 68 6d 20 7c 7c 20 21 77 6d 5f 62 61 73 65 29 20 7b 20 66 70 72 69 6e 74 66 r.||.!shm.||.!wm_base).{.fprintf
11080 28 73 74 64 65 72 72 2c 20 22 4d 69 73 73 69 6e 67 20 72 65 71 75 69 72 65 64 20 57 61 79 6c 61 (stderr,."Missing.required.Wayla
110a0 6e 64 20 67 6c 6f 62 61 6c 73 5c 6e 22 29 3b 20 72 65 74 75 72 6e 20 31 3b 20 7d 00 00 00 00 00 nd.globals\n");.return.1;.}.....
110c0 00 00 37 20 20 20 20 73 75 72 66 61 63 65 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 ..7....surface.=.wl_compositor_c
110e0 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 63 6f 6d 70 6f 73 69 74 6f 72 29 3b 00 00 00 40 20 20 reate_surface(compositor);...@..
11100 20 20 78 64 67 5f 73 75 72 66 61 63 65 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f ..xdg_surface.=.xdg_wm_base_get_
11120 78 64 67 5f 73 75 72 66 61 63 65 28 77 6d 5f 62 61 73 65 2c 20 73 75 72 66 61 63 65 29 3b 00 00 xdg_surface(wm_base,.surface);..
11140 00 47 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 78 .G....xdg_surface_add_listener(x
11160 64 67 5f 73 75 72 66 61 63 65 2c 20 26 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 dg_surface,.&xdg_surface_listene
11180 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 00 00 00 00 35 20 20 20 20 74 6f 70 6c 65 76 65 6c 20 3d 20 r,.NULL);.......5....toplevel.=.
111a0 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 78 64 67 5f 73 75 72 xdg_surface_get_toplevel(xdg_sur
111c0 66 61 63 65 29 3b 00 00 00 42 20 20 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c face);...B....xdg_toplevel_add_l
111e0 69 73 74 65 6e 65 72 28 74 6f 70 6c 65 76 65 6c 2c 20 26 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 istener(toplevel,.&toplevel_list
11200 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 00 00 00 00 1f 20 20 20 20 77 6c 5f 73 75 72 66 61 ener,.NULL);............wl_surfa
11220 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 22 20 20 20 20 77 6c 5f 64 69 ce_commit(surface);..."....wl_di
11240 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 00 00 00 00 00 splay_roundtrip(display);.......
11260 36 20 20 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 20 26 26 20 77 6c 5f 64 69 73 70 6c 61 6....while.(running.&&.wl_displa
11280 79 5f 64 69 73 70 61 74 63 68 28 64 69 73 70 6c 61 79 29 29 20 7b 7d 00 00 00 00 00 00 00 0d 20 y_dispatch(display)).{}.........
112a0 20 20 20 72 65 74 75 72 6e 20 30 3b 35 81 f5 18 00 00 00 00 00 00 00 00 09 00 00 00 75 00 00 00 ...return.0;5...............u...
112c0 02 00 00 00 8a 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 18 10 00 00 00 00 00 00 a7 10 00 00 ................................
112e0 00 00 00 00 35 81 5f d0 00 00 00 25 00 00 00 27 00 00 00 00 00 00 00 00 00 00 00 26 00 00 00 0a ....5._....%...'...........&....
11300 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
113a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
113c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
113e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11440 00 00 00 00 00 00 00 00 00 25 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 .........%......................
11460 00 76 00 00 00 00 00 00 00 00 69 9d 86 f7 04 01 00 00 00 00 00 f5 18 00 00 00 09 00 00 00 0a 00 .v........i.....................
11480 00 00 00 00 00 00 1c 00 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 69 ...........struct.wl_display.*di
114a0 73 70 6c 61 79 3b 00 00 00 1d 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 splay;....struct.wl_registry.*re
114c0 67 69 73 74 72 79 3b 00 00 00 21 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 gistry;...!struct.wl_compositor.
114e0 2a 63 6f 6d 70 6f 73 69 74 6f 72 3b 00 00 00 13 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 *compositor;....struct.wl_shm.*s
11500 68 6d 3b 00 00 00 1c 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 5f 62 61 hm;....struct.xdg_wm_base.*wm_ba
11520 73 65 3b 00 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 72 66 61 63 se;....struct.wl_surface.*surfac
11540 65 3b 00 00 00 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 64 67 5f 73 75 e;....struct.xdg_surface.*xdg_su
11560 72 66 61 63 65 3b 00 00 00 1e 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 rface;....struct.xdg_toplevel.*t
11580 6f 70 6c 65 76 65 6c 3b 00 00 00 00 00 00 00 17 73 74 61 74 69 63 20 69 6e 74 20 72 75 6e 6e 69 oplevel;........static.int.runni
115a0 6e 67 20 3d 20 31 3b 00 00 00 27 73 74 61 74 69 63 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 ng.=.1;...'static.struct.wl_buff
115c0 65 72 20 2a 62 75 66 66 65 72 20 3d 20 4e 55 4c 4c 3b 00 00 00 1b 73 74 61 74 69 63 20 76 6f 69 er.*buffer.=.NULL;....static.voi
115e0 64 20 2a 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 d.*pixels.=.NULL;...)static.int.
11600 62 75 66 5f 77 69 64 74 68 20 3d 20 30 2c 20 62 75 66 5f 68 65 69 67 68 74 20 3d 20 30 3b 00 00 buf_width.=.0,.buf_height.=.0;..
11620 00 00 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 .....)static.int.create_shm_file
11640 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 2e 20 20 63 68 61 72 20 74 65 6d 70 6c 61 (size_t.size).{......char.templa
11660 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 61 79 6c 61 6e 64 2d 73 68 6d 2d 58 58 58 58 58 58 22 te[].=."/tmp/wayland-shm-XXXXXX"
11680 3b 00 00 00 1d 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 74 65 ;......int.fd.=.mkstemp(template
116a0 29 3b 00 00 00 0f 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 7b 00 00 00 16 20 20 20 20 70 65 72 );......if.(fd.<.0).{........per
116c0 72 6f 72 28 22 6d 6b 73 74 65 6d 70 22 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 ror("mkstemp");........exit(1);.
116e0 00 00 03 20 20 7d 00 00 00 13 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 .....}......unlink(template);...
11700 20 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 20 ...if.(ftruncate(fd,.size).<.0).
11720 7b 00 00 00 18 20 20 20 20 70 65 72 72 6f 72 28 22 66 74 72 75 6e 63 61 74 65 22 29 3b 00 00 00 {........perror("ftruncate");...
11740 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 0c 20 20 72 65 74 75 72 6e .....exit(1);......}......return
11760 20 66 64 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 09 00 00 00 00 00 00 00 1c 00 00 00 00 00 00 .fd;....}5......................
11780 00 00 00 00 00 00 00 00 00 bc 00 00 00 00 00 00 00 8e 02 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
117a0 00 35 81 5f d0 00 00 00 26 00 00 00 28 00 00 00 00 00 00 00 00 00 00 00 27 00 00 00 01 00 00 00 .5._....&...(...........'.......
117c0 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
117e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
118a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
118c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
118e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11900 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 76 00 ..............................v.
11920 00 00 00 00 00 00 00 69 9d 86 f9 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 .......i........................
11940 00 00 00 70 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 ...p...&#include."xdg-shell-clie
11960 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 nt-protocol.h"....#include.<fcnt
11980 6c 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 l.h>....#include.<stdio.h>....#i
119a0 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 nclude.<stdlib.h>....#include.<s
119c0 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 tring.h>....#include.<sys/mman.h
119e0 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 >....#include.<unistd.h>....#inc
11a00 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 00 00 00 00 00 00 lude.<wayland-client.h>.........
11a20 00 00 41 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 62 61 73 65 5f 70 69 6e 67 28 76 6f 69 64 ..Astatic.void.wm_base_ping(void
11a40 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 5f 62 .*data,.struct.xdg_wm_base.*wm_b
11a60 61 73 65 2c 00 00 00 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ase,...+........................
11a80 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 24 20 20 78 64 67 5f 77 6d 5f .uint32_t.serial).{...$..xdg_wm_
11aa0 62 61 73 65 5f 70 6f 6e 67 28 77 6d 5f 62 61 73 65 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d base_pong(wm_base,.serial);....}
11ac0 00 00 00 00 00 00 00 4b 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f .......Kstatic.const.struct.xdg_
11ae0 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 wm_base_listener.wm_base_listene
11b00 72 20 3d 20 7b 77 6d 5f 62 61 73 65 5f 70 69 6e 67 7d 3b 00 00 00 00 00 00 00 4e 73 74 61 74 69 r.=.{wm_base_ping};.......Nstati
11b20 63 20 76 6f 69 64 20 78 64 67 5f 73 75 72 66 61 63 65 5f 63 6f 6e 66 69 67 75 72 65 28 76 6f 69 c.void.xdg_surface_configure(voi
11b40 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 64 67 d.*data,.struct.xdg_surface.*xdg
11b60 5f 73 75 72 66 61 63 65 2c 00 00 00 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 _surface,...4...................
11b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 ...............uint32_t.serial).
11ba0 7b 00 00 00 31 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 {...1..xdg_surface_ack_configure
11bc0 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 1d 20 20 77 6c 5f 73 (xdg_surface,.serial);......wl_s
11be0 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 01 7d 00 00 00 00 urface_commit(surface);....}....
11c00 00 00 00 41 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 ...Astatic.const.struct.xdg_surf
11c20 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 ace_listener.xdg_surface_listene
11c40 72 20 3d 20 7b 00 00 00 1b 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 63 6f 6e 66 69 67 75 r.=.{........xdg_surface_configu
11c60 72 65 7d 3b 00 00 00 00 00 00 00 34 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 61 74 65 re};.......4static.void.allocate
11c80 5f 62 75 66 66 65 72 28 69 6e 74 20 77 69 64 74 68 2c 20 69 6e 74 20 68 65 69 67 68 74 29 20 7b _buffer(int.width,.int.height).{
11ca0 00 00 00 0f 20 20 69 66 20 28 62 75 66 66 65 72 29 20 7b 00 00 00 1e 20 20 20 20 77 6c 5f 62 75 ......if.(buffer).{........wl_bu
11cc0 66 66 65 72 5f 64 65 73 74 72 6f 79 28 62 75 66 66 65 72 29 3b 00 00 00 2f 20 20 20 20 6d 75 6e ffer_destroy(buffer);.../....mun
11ce0 6d 61 70 28 70 69 78 65 6c 73 2c 20 62 75 66 5f 77 69 64 74 68 20 2a 20 62 75 66 5f 68 65 69 67 map(pixels,.buf_width.*.buf_heig
11d00 68 74 20 2a 20 34 29 3b 00 00 00 03 20 20 7d 00 00 00 14 20 20 62 75 66 5f 77 69 64 74 68 20 3d ht.*.4);......}......buf_width.=
11d20 20 77 69 64 74 68 3b 00 00 00 16 20 20 62 75 66 5f 68 65 69 67 68 74 20 3d 20 68 65 69 67 68 74 .width;......buf_height.=.height
11d40 3b 00 00 00 19 20 20 69 6e 74 20 73 74 72 69 64 65 20 3d 20 77 69 64 74 68 20 2a 20 34 3b 00 00 ;......int.stride.=.width.*.4;..
11d60 00 1d 20 20 69 6e 74 20 73 69 7a 65 20 3d 20 73 74 72 69 64 65 20 2a 20 68 65 69 67 68 74 3b 00 ....int.size.=.stride.*.height;.
11d80 00 00 21 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 ..!..int.fd.=.create_shm_file(si
11da0 7a 65 29 3b 00 00 00 47 20 20 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 ze);...G..pixels.=.mmap(NULL,.si
11dc0 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f ze,.PROT_READ.|.PROT_WRITE,.MAP_
11de0 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 1d 20 20 69 66 20 28 70 69 78 65 6c 73 20 SHARED,.fd,.0);......if.(pixels.
11e00 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 20 7b 00 00 00 13 20 20 20 20 70 65 72 72 6f 72 28 22 ==.MAP_FAILED).{........perror("
11e20 6d 6d 61 70 22 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 mmap");........exit(1);......}..
11e40 00 18 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 70 69 78 65 6c 73 3b 00 00 00 2a 20 20 ....uint32_t.*px.=.pixels;...*..
11e60 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 77 69 64 74 68 20 2a 20 68 65 69 67 for.(int.i.=.0;.i.<.width.*.heig
11e80 68 74 3b 20 69 2b 2b 29 00 00 00 25 20 20 20 20 70 78 5b 69 5d 20 3d 20 30 78 66 66 30 30 30 30 ht;.i++)...%....px[i].=.0xff0000
11ea0 66 66 3b 20 2f 2f 20 73 6f 6c 69 64 20 62 6c 75 65 00 00 00 3f 20 20 73 74 72 75 63 74 20 77 6c ff;.//.solid.blue...?..struct.wl
11ec0 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f _shm_pool.*pool.=.wl_shm_create_
11ee0 70 6f 6f 6c 28 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 44 20 20 62 75 66 66 65 72 pool(shm,.fd,.size);...D..buffer
11f00 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f .=.wl_shm_pool_create_buffer(poo
11f20 6c 2c 20 30 2c 20 77 69 64 74 68 2c 20 68 65 69 67 68 74 2c 20 73 74 72 69 64 65 2c 00 00 00 3d l,.0,.width,.height,.stride,...=
11f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
11f60 20 20 20 20 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 .....WL_SHM_FORMAT_ARGB8888);...
11f80 2b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 73 75 72 66 61 63 65 2c 20 62 75 +..wl_surface_attach(surface,.bu
11fa0 66 66 65 72 2c 20 30 2c 20 30 29 3b 00 00 00 1d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d ffer,.0,.0);......wl_surface_com
11fc0 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 49 73 74 61 74 69 63 mit(surface);....}.......Istatic
11fe0 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 6c 5f 63 6f 6e 66 69 67 75 72 65 28 76 6f 69 64 20 2a 64 .void.toplevel_configure(void.*d
12000 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 ata,.struct.xdg_toplevel.*toplev
12020 65 6c 2c 00 00 00 3d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 el,...=.........................
12040 20 20 20 20 20 20 69 6e 74 33 32 5f 74 20 77 69 64 74 68 2c 20 69 6e 74 33 32 5f 74 20 68 65 69 ......int32_t.width,.int32_t.hei
12060 67 68 74 2c 00 00 00 39 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ght,...9........................
12080 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 74 61 74 65 73 29 20 .......struct.wl_array.*states).
120a0 7b 00 00 00 1e 20 20 69 66 20 28 77 69 64 74 68 20 3e 20 30 20 26 26 20 68 65 69 67 68 74 20 3e {......if.(width.>.0.&&.height.>
120c0 20 30 29 00 00 00 23 20 20 20 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 77 69 64 74 68 .0)...#....allocate_buffer(width
120e0 2c 20 68 65 69 67 68 74 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f ,.height);....}.......Gstatic.vo
12100 69 64 20 74 6f 70 6c 65 76 65 6c 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 id.toplevel_close(void.*data,.st
12120 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 29 20 7b 00 00 ruct.xdg_toplevel.*toplevel).{..
12140 00 0e 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 3f 73 74 61 ....running.=.0;....}.......?sta
12160 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 tic.const.struct.xdg_toplevel_li
12180 73 74 65 6e 65 72 20 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 3e stener.toplevel_listener.=.{...>
121a0 20 20 20 20 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 74 6f 70 6c 65 76 65 6c 5f 63 6f 6e 66 69 67 .....configure.=.toplevel_config
121c0 75 72 65 2c 20 2e 63 6c 6f 73 65 20 3d 20 74 6f 70 6c 65 76 65 6c 5f 63 6c 6f 73 65 7d 3b 00 00 ure,..close.=.toplevel_close};..
121e0 00 00 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c .....Fstatic.void.registry_handl
12200 65 72 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 er(void.*data,.struct.wl_registr
12220 79 20 2a 72 65 67 69 73 74 72 79 2c 00 00 00 40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y.*registry,...@................
12240 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 20 63 6f 6e 73 74 20 .............uint32_t.id,.const.
12260 63 68 61 72 20 2a 69 6e 74 65 72 66 61 63 65 2c 00 00 00 30 20 20 20 20 20 20 20 20 20 20 20 20 char.*interface,...0............
12280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 76 65 72 73 69 6f .................uint32_t.versio
122a0 6e 29 20 7b 00 00 00 2e 20 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 n).{......if.(strcmp(interface,.
122c0 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 20 3d 3d 20 30 29 00 00 00 4d 20 20 20 20 63 6f "wl_compositor").==.0)...M....co
122e0 6d 70 6f 73 69 74 6f 72 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 mpositor.=.wl_registry_bind(regi
12300 73 74 72 79 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 stry,.id,.&wl_compositor_interfa
12320 63 65 2c 20 34 29 3b 00 00 00 2c 20 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 ce,.4);...,..else.if.(strcmp(int
12340 65 72 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d 22 29 20 3d 3d 20 30 29 00 00 00 3f 20 20 20 20 73 erface,."wl_shm").==.0)...?....s
12360 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 hm.=.wl_registry_bind(registry,.
12380 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 33 20 20 id,.&wl_shm_interface,.1);...3..
123a0 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 78 64 67 5f else.if.(strcmp(interface,."xdg_
123c0 77 6d 5f 62 61 73 65 22 29 20 3d 3d 20 30 29 20 7b 00 00 00 48 20 20 20 20 77 6d 5f 62 61 73 65 wm_base").==.0).{...H....wm_base
123e0 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 .=.wl_registry_bind(registry,.id
12400 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 ,.&xdg_wm_base_interface,.1);...
12420 3f 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 77 6d ?....xdg_wm_base_add_listener(wm
12440 5f 62 61 73 65 2c 20 26 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b _base,.&wm_base_listener,.NULL);
12460 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 4f 73 74 61 74 69 63 20 63 6f 6e 73 74 ......}....}.......Ostatic.const
12480 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 .struct.wl_registry_listener.reg
124a0 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c istry_listener.=.{registry_handl
124c0 65 72 2c 00 00 00 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 er,...D.........................
124e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
12500 20 20 20 20 20 4e 55 4c 4c 7d 3b 00 00 00 00 00 00 00 0c 69 6e 74 20 6d 61 69 6e 28 29 20 7b 00 .....NULL};........int.main().{.
12520 00 00 25 20 20 64 69 73 70 6c 61 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 ..%..display.=.wl_display_connec
12540 74 28 4e 55 4c 4c 29 3b 00 00 00 11 20 20 69 66 20 28 21 64 69 73 70 6c 61 79 29 20 7b 00 00 00 t(NULL);......if.(!display).{...
12560 3e 20 20 20 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 46 61 69 6c 65 64 20 74 6f 20 >....fprintf(stderr,."Failed.to.
12580 63 6f 6e 6e 65 63 74 20 74 6f 20 57 61 79 6c 61 6e 64 20 64 69 73 70 6c 61 79 5c 6e 22 29 3b 00 connect.to.Wayland.display\n");.
125a0 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 2e 20 .......return.1;......}.........
125c0 20 72 65 67 69 73 74 72 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 .registry.=.wl_display_get_regis
125e0 74 72 79 28 64 69 73 70 6c 61 79 29 3b 00 00 00 3f 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 try(display);...?..wl_registry_a
12600 64 64 5f 6c 69 73 74 65 6e 65 72 28 72 65 67 69 73 74 72 79 2c 20 26 72 65 67 69 73 74 72 79 5f dd_listener(registry,.&registry_
12620 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 listener,.NULL);......wl_display
12640 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 00 00 00 00 00 28 20 20 69 66 _roundtrip(display);.......(..if
12660 20 28 21 63 6f 6d 70 6f 73 69 74 6f 72 20 7c 7c 20 21 73 68 6d 20 7c 7c 20 21 77 6d 5f 62 61 73 .(!compositor.||.!shm.||.!wm_bas
12680 65 29 20 7b 00 00 00 3a 20 20 20 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 4d 69 73 e).{...:....fprintf(stderr,."Mis
126a0 73 69 6e 67 20 72 65 71 75 69 72 65 64 20 57 61 79 6c 61 6e 64 20 67 6c 6f 62 61 6c 73 5c 6e 22 sing.required.Wayland.globals\n"
126c0 29 3b 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 );........return.1;......}......
126e0 00 35 20 20 73 75 72 66 61 63 65 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 .5..surface.=.wl_compositor_crea
12700 74 65 5f 73 75 72 66 61 63 65 28 63 6f 6d 70 6f 73 69 74 6f 72 29 3b 00 00 00 3e 20 20 78 64 67 te_surface(compositor);...>..xdg
12720 5f 73 75 72 66 61 63 65 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 _surface.=.xdg_wm_base_get_xdg_s
12740 75 72 66 61 63 65 28 77 6d 5f 62 61 73 65 2c 20 73 75 72 66 61 63 65 29 3b 00 00 00 45 20 20 78 urface(wm_base,.surface);...E..x
12760 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 78 64 67 5f 73 75 72 66 dg_surface_add_listener(xdg_surf
12780 61 63 65 2c 20 26 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c ace,.&xdg_surface_listener,.NULL
127a0 29 3b 00 00 00 00 00 00 00 33 20 20 74 6f 70 6c 65 76 65 6c 20 3d 20 78 64 67 5f 73 75 72 66 61 );.......3..toplevel.=.xdg_surfa
127c0 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 78 64 67 5f 73 75 72 66 61 63 65 29 3b 00 00 00 ce_get_toplevel(xdg_surface);...
127e0 40 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 74 6f 70 @..xdg_toplevel_add_listener(top
12800 6c 65 76 65 6c 2c 20 26 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 level,.&toplevel_listener,.NULL)
12820 3b 00 00 00 00 00 00 00 1d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 ;..........wl_surface_commit(sur
12840 66 61 63 65 29 3b 00 00 00 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 face);......wl_display_roundtrip
12860 28 64 69 73 70 6c 61 79 29 3b 00 00 00 00 00 00 00 33 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 (display);.......3..while.(runni
12880 6e 67 20 26 26 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 64 69 73 70 6c 61 ng.&&.wl_display_dispatch(displa
128a0 79 29 29 20 7b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 y)).{......}..........return.0;.
128c0 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 70 00 00 00 00 00 00 00 01 00 00 00 ...}5...............p...........
128e0 00 00 00 00 00 00 00 00 00 00 00 00 30 0e 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 ............0...............5._.
12900 00 00 00 27 00 00 00 29 00 00 00 00 00 00 00 00 00 00 00 28 00 00 00 01 00 00 00 00 00 00 00 00 ...'...)...........(............
12920 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
129a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
129c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
129e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a60 00 01 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 76 00 00 00 00 00 00 .........................v......
12a80 00 00 69 9d 86 f9 04 01 00 00 00 00 00 f5 18 00 00 00 b1 00 00 00 00 00 00 00 00 00 00 00 01 00 ..i.............................
12aa0 00 00 01 7d f5 18 00 00 00 b2 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 7f 00 00 00 00 ...}............................
12ac0 00 00 00 00 00 00 00 01 00 00 00 3c 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 6c ...........<static.void.toplevel
12ae0 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f _close(void.*data,.struct.xdg_to
12b00 70 6c 65 76 65 6c 20 2a f5 18 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 plevel.*........................
12b20 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 ................................
12b40 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7f 00 00 00 3c 00 ..5...........................<.
12b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 f5 18 00 00 00 00 ................................
12b80 7f 00 00 00 3c 00 00 00 00 00 00 00 00 00 00 00 32 00 00 00 01 00 00 00 00 10 00 00 00 00 00 00 ....<...........2...............
12ba0 00 00 00 00 00 00 00 00 38 07 00 00 00 00 00 00 35 81 5f d0 00 00 00 28 00 00 00 2a 00 00 00 00 ........8.......5._....(...*....
12bc0 00 00 00 00 00 00 00 29 00 00 00 b2 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 .......)........................
12be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 ................................
12d20 00 01 00 00 00 00 00 00 00 00 00 00 00 76 00 00 00 00 00 00 00 00 69 9d 86 fa 04 01 00 00 00 10 .............v........i.........
12d40 00 f5 18 00 00 00 1a 00 00 00 c9 00 00 00 b2 00 00 00 97 00 00 00 30 20 20 20 20 63 68 61 72 20 ......................0....char.
12d60 74 65 6d 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 61 79 6c 61 6e 64 2d 73 68 6d 2d 58 template[].=."/tmp/wayland-shm-X
12d80 58 58 58 58 58 22 3b 00 00 00 1f 20 20 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 XXXXX";........int.fd.=.mkstemp(
12da0 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 11 20 20 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 7b 00 template);........if.(fd.<.0).{.
12dc0 00 00 1a 20 20 20 20 20 20 20 20 70 65 72 72 6f 72 28 22 6d 6b 73 74 65 6d 70 22 29 3b 00 00 00 ...........perror("mkstemp");...
12de0 10 20 20 20 20 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 15 20 20 .........exit(1);........}......
12e00 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 22 20 20 20 20 69 66 20 28 66 ..unlink(template);..."....if.(f
12e20 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 20 7b 00 00 00 1c 20 20 20 truncate(fd,.size).<.0).{.......
12e40 20 20 20 20 20 70 65 72 72 6f 72 28 22 66 74 72 75 6e 63 61 74 65 22 29 3b 00 00 00 10 20 20 20 .....perror("ftruncate");.......
12e60 20 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 0e 20 20 20 20 72 65 .....exit(1);........}........re
12e80 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 54 73 74 61 74 69 63 20 76 6f 69 64 turn.fd;....}.......Tstatic.void
12ea0 20 77 6d 5f 62 61 73 65 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 .wm_base_ping(void.*data,.struct
12ec0 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 5f 62 61 73 65 2c 20 75 69 6e 74 33 32 5f 74 20 .xdg_wm_base.*wm_base,.uint32_t.
12ee0 73 65 72 69 61 6c 29 20 7b 00 00 00 26 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e serial).{...&....xdg_wm_base_pon
12f00 67 28 77 6d 5f 62 61 73 65 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4b g(wm_base,.serial);....}.......K
12f20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f static.const.struct.xdg_wm_base_
12f40 6c 69 73 74 65 6e 65 72 20 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 77 6d 5f listener.wm_base_listener.=.{wm_
12f60 62 61 73 65 5f 70 69 6e 67 7d 3b 00 00 00 00 00 00 00 4e 73 74 61 74 69 63 20 76 6f 69 64 20 78 base_ping};.......Nstatic.void.x
12f80 64 67 5f 73 75 72 66 61 63 65 5f 63 6f 6e 66 69 67 75 72 65 28 76 6f 69 64 20 2a 64 61 74 61 2c dg_surface_configure(void.*data,
12fa0 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 64 67 5f 73 75 72 66 61 63 65 .struct.xdg_surface.*xdg_surface
12fc0 2c 00 00 00 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,...4...........................
12fe0 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 33 20 20 20 .......uint32_t.serial).{...3...
13000 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 64 67 5f 73 .xdg_surface_ack_configure(xdg_s
13020 75 72 66 61 63 65 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 1f 20 20 20 20 77 6c 5f 73 75 72 66 61 urface,.serial);........wl_surfa
13040 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 58 ce_commit(surface);....}.......X
13060 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f static.const.struct.xdg_surface_
13080 6c 69 73 74 65 6e 65 72 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 3d 20 listener.xdg_surface_listener.=.
130a0 7b 78 64 67 5f 73 75 72 66 61 63 65 5f 63 6f 6e 66 69 67 75 72 65 7d 3b 00 00 00 00 00 00 00 34 {xdg_surface_configure};.......4
130c0 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 69 6e 74 20 static.void.allocate_buffer(int.
130e0 77 69 64 74 68 2c 20 69 6e 74 20 68 65 69 67 68 74 29 20 7b 00 00 00 11 20 20 20 20 69 66 20 28 width,.int.height).{........if.(
13100 62 75 66 66 65 72 29 20 7b 00 00 00 22 20 20 20 20 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 buffer).{..."........wl_buffer_d
13120 65 73 74 72 6f 79 28 62 75 66 66 65 72 29 3b 00 00 00 33 20 20 20 20 20 20 20 20 6d 75 6e 6d 61 estroy(buffer);...3........munma
13140 70 28 70 69 78 65 6c 73 2c 20 62 75 66 5f 77 69 64 74 68 20 2a 20 62 75 66 5f 68 65 69 67 68 74 p(pixels,.buf_width.*.buf_height
13160 20 2a 20 34 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 16 20 20 20 20 62 75 66 5f 77 69 64 74 68 .*.4);........}........buf_width
13180 20 3d 20 77 69 64 74 68 3b 00 00 00 18 20 20 20 20 62 75 66 5f 68 65 69 67 68 74 20 3d 20 68 65 .=.width;........buf_height.=.he
131a0 69 67 68 74 3b 00 00 00 1b 20 20 20 20 69 6e 74 20 73 74 72 69 64 65 20 3d 20 77 69 64 74 68 20 ight;........int.stride.=.width.
131c0 2a 20 34 3b 00 00 00 1f 20 20 20 20 69 6e 74 20 73 69 7a 65 20 3d 20 73 74 72 69 64 65 20 2a 20 *.4;........int.size.=.stride.*.
131e0 68 65 69 67 68 74 3b 00 00 00 23 20 20 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 height;...#....int.fd.=.create_s
13200 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 49 20 20 20 20 70 69 78 65 6c 73 20 3d 20 6d hm_file(size);...I....pixels.=.m
13220 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 map(NULL,.size,.PROT_READ.|.PROT
13240 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 1f 20 _WRITE,.MAP_SHARED,.fd,.0);.....
13260 20 20 20 69 66 20 28 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 20 7b 00 00 ...if.(pixels.==.MAP_FAILED).{..
13280 00 17 20 20 20 20 20 20 20 20 70 65 72 72 6f 72 28 22 6d 6d 61 70 22 29 3b 00 00 00 10 20 20 20 ..........perror("mmap");.......
132a0 20 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 00 00 00 00 41 20 20 .....exit(1);........}.......A..
132c0 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f ..struct.wl_shm_pool.*pool.=.wl_
132e0 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 shm_create_pool(shm,.fd,.size);.
13300 00 00 5f 20 20 20 20 62 75 66 66 65 72 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 .._....buffer.=.wl_shm_pool_crea
13320 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 77 69 64 74 68 2c 20 68 65 69 67 68 74 te_buffer(pool,.0,.width,.height
13340 2c 20 73 74 72 69 64 65 2c 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 ,.stride,.WL_SHM_FORMAT_ARGB8888
13360 29 3b 00 00 00 2d 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 73 75 72 66 );...-....wl_surface_attach(surf
13380 61 63 65 2c 20 62 75 66 66 65 72 2c 20 30 2c 20 30 29 3b 00 00 00 1f 20 20 20 20 77 6c 5f 73 75 ace,.buffer,.0,.0);........wl_su
133a0 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 01 7d 00 00 00 00 00 rface_commit(surface);....}.....
133c0 00 00 1d 2f 2f 20 44 72 61 77 20 61 20 73 69 6d 70 6c 65 20 61 6e 61 6c 6f 67 20 63 6c 6f 63 6b ...//.Draw.a.simple.analog.clock
133e0 00 00 00 1a 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 6c 6f 63 6b 28 29 20 7b 00 00 ....static.void.draw_clock().{..
13400 00 18 20 20 20 20 69 66 20 28 21 70 69 78 65 6c 73 29 20 72 65 74 75 72 6e 3b 00 00 00 1a 20 20 ......if.(!pixels).return;......
13420 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 70 69 78 65 6c 73 3b 00 00 00 16 20 20 20 20 ..uint32_t.*px.=.pixels;........
13440 69 6e 74 20 77 20 3d 20 62 75 66 5f 77 69 64 74 68 3b 00 00 00 17 20 20 20 20 69 6e 74 20 68 20 int.w.=.buf_width;........int.h.
13460 3d 20 62 75 66 5f 68 65 69 67 68 74 3b 00 00 00 1f 20 20 20 20 69 6e 74 20 63 78 20 3d 20 77 20 =.buf_height;........int.cx.=.w.
13480 2f 20 32 2c 20 63 79 20 3d 20 68 20 2f 20 32 3b 00 00 00 25 20 20 20 20 69 6e 74 20 72 20 3d 20 /.2,.cy.=.h./.2;...%....int.r.=.
134a0 28 77 20 3c 20 68 20 3f 20 77 20 3a 20 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 00 00 00 00 (w.<.h.?.w.:.h)./.2.-.10;.......
134c0 15 20 20 20 20 2f 2f 20 43 6c 65 61 72 20 74 6f 20 77 68 69 74 65 00 00 00 37 20 20 20 20 66 6f .....//.Clear.to.white...7....fo
134e0 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 77 20 2a 20 68 3b 20 69 2b 2b 29 20 70 78 r.(int.i.=.0;.i.<.w.*.h;.i++).px
13500 5b 69 5d 20 3d 20 30 78 66 66 66 66 66 66 66 66 3b 00 00 00 00 00 00 00 17 20 20 20 20 2f 2f 20 [i].=.0xffffffff;............//.
13520 47 65 74 20 63 75 72 72 65 6e 74 20 74 69 6d 65 00 00 00 1a 20 20 20 20 74 69 6d 65 5f 74 20 74 Get.current.time........time_t.t
13540 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 22 20 20 20 20 73 74 72 75 63 74 20 74 6d 20 .=.time(NULL);..."....struct.tm.
13560 2a 74 6d 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 26 74 29 3b 00 00 00 00 00 00 00 1c 20 20 20 20 *tm.=.localtime(&t);............
13580 2f 2f 20 48 65 6c 70 65 72 20 74 6f 20 64 72 61 77 20 61 20 6c 69 6e 65 00 00 00 4a 20 20 20 20 //.Helper.to.draw.a.line...J....
135a0 61 75 74 6f 20 64 72 61 77 5f 6c 69 6e 65 20 3d 20 5b 26 5d 28 69 6e 74 20 78 30 2c 20 69 6e 74 auto.draw_line.=.[&](int.x0,.int
135c0 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 20 75 69 6e 74 33 32 5f 74 20 63 6f .y0,.int.x1,.int.y1,.uint32_t.co
135e0 6c 6f 72 29 20 7b 00 00 00 35 20 20 20 20 20 20 20 20 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 lor).{...5........int.dx.=.abs(x
13600 31 20 2d 20 78 30 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 1.-.x0),.sx.=.x0.<.x1.?.1.:.-1;.
13620 00 00 36 20 20 20 20 20 20 20 20 69 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 30 ..6........int.dy.=.-abs(y1.-.y0
13640 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 1e 20 20 20 ),.sy.=.y0.<.y1.?.1.:.-1;.......
13660 20 20 20 20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 2c 20 65 32 3b 00 00 00 13 20 .....int.err.=.dx.+.dy,.e2;.....
13680 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 50 20 20 20 20 20 20 20 20 20 20 .......while.(1).{...P..........
136a0 20 20 69 66 20 28 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 20 3e 3d ..if.(x0.>=.0.&&.x0.<.w.&&.y0.>=
136c0 20 30 20 26 26 20 79 30 20 3c 20 68 29 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 .0.&&.y0.<.h).px[y0.*.w.+.x0].=.
136e0 63 6f 6c 6f 72 3b 00 00 00 2c 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 78 30 20 3d 3d 20 color;...,............if.(x0.==.
13700 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 20 62 72 65 61 6b 3b 00 00 00 19 20 20 20 20 20 20 x1.&&.y0.==.y1).break;..........
13720 20 20 20 20 20 20 65 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 00 00 32 20 20 20 20 20 20 20 20 20 ......e2.=.2.*.err;...2.........
13740 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 20 65 72 72 20 2b 3d 20 64 79 3b 20 78 30 ...if.(e2.>=.dy).{.err.+=.dy;.x0
13760 20 2b 3d 20 73 78 3b 20 7d 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 65 32 20 .+=.sx;.}...2............if.(e2.
13780 3c 3d 20 64 78 29 20 7b 20 65 72 72 20 2b 3d 20 64 78 3b 20 79 30 20 2b 3d 20 73 79 3b 20 7d 00 <=.dx).{.err.+=.dx;.y0.+=.sy;.}.
137a0 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 00 00 00 00 11 20 20 ...........}........};..........
137c0 20 20 2f 2f 20 44 72 61 77 20 68 61 6e 64 73 00 00 00 55 20 20 20 20 64 6f 75 62 6c 65 20 68 6f ..//.Draw.hands...U....double.ho
137e0 75 72 5f 61 6e 67 6c 65 20 3d 20 28 74 6d 2d 3e 74 6d 5f 68 6f 75 72 20 25 20 31 32 20 2b 20 74 ur_angle.=.(tm->tm_hour.%.12.+.t
13800 6d 2d 3e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 20 2a 20 4d 5f 50 49 20 2f 20 36 2e 30 20 2d m->tm_min./.60.0).*.M_PI./.6.0.-
13820 20 4d 5f 50 49 2f 32 3b 00 00 00 4f 20 20 20 20 64 6f 75 62 6c 65 20 6d 69 6e 5f 61 6e 67 6c 65 .M_PI/2;...O....double.min_angle
13840 20 3d 20 28 74 6d 2d 3e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 2d 3e 74 6d 5f 73 65 63 20 2f 20 36 30 .=.(tm->tm_min.+.tm->tm_sec./.60
13860 2e 30 29 20 2a 20 4d 5f 50 49 20 2f 20 33 30 2e 30 20 2d 20 4d 5f 50 49 2f 32 3b 00 00 00 39 20 .0).*.M_PI./.30.0.-.M_PI/2;...9.
13880 20 20 20 64 6f 75 62 6c 65 20 73 65 63 5f 61 6e 67 6c 65 20 3d 20 74 6d 2d 3e 74 6d 5f 73 65 63 ...double.sec_angle.=.tm->tm_sec
138a0 20 2a 20 4d 5f 50 49 20 2f 20 33 30 2e 30 20 2d 20 4d 5f 50 49 2f 32 3b 00 00 00 00 00 00 00 70 .*.M_PI./.30.0.-.M_PI/2;.......p
138c0 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 ....draw_line(cx,.cy,.cx.+.(int)
138e0 28 72 20 2a 20 30 2e 35 20 2a 20 63 6f 73 28 68 6f 75 72 5f 61 6e 67 6c 65 29 29 2c 20 63 79 20 (r.*.0.5.*.cos(hour_angle)),.cy.
13900 2b 20 28 69 6e 74 29 28 72 20 2a 20 30 2e 35 20 2a 20 73 69 6e 28 68 6f 75 72 5f 61 6e 67 6c 65 +.(int)(r.*.0.5.*.sin(hour_angle
13920 29 29 2c 20 30 78 66 66 30 30 30 30 30 30 29 3b 00 00 00 6e 20 20 20 20 64 72 61 77 5f 6c 69 6e )),.0xff000000);...n....draw_lin
13940 65 28 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 30 2e 37 20 2a 20 63 e(cx,.cy,.cx.+.(int)(r.*.0.7.*.c
13960 6f 73 28 6d 69 6e 5f 61 6e 67 6c 65 29 29 2c 20 63 79 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 30 os(min_angle)),.cy.+.(int)(r.*.0
13980 2e 37 20 2a 20 73 69 6e 28 6d 69 6e 5f 61 6e 67 6c 65 29 29 2c 20 30 78 66 66 30 30 30 30 30 30 .7.*.sin(min_angle)),.0xff000000
139a0 29 3b 00 00 00 6e 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 63 78 2c 20 63 79 2c 20 63 78 20 2b );...n....draw_line(cx,.cy,.cx.+
139c0 20 28 69 6e 74 29 28 72 20 2a 20 30 2e 39 20 2a 20 63 6f 73 28 73 65 63 5f 61 6e 67 6c 65 29 29 .(int)(r.*.0.9.*.cos(sec_angle))
139e0 2c 20 63 79 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 30 2e 39 20 2a 20 73 69 6e 28 73 65 63 5f 61 ,.cy.+.(int)(r.*.0.9.*.sin(sec_a
13a00 6e 67 6c 65 29 29 2c 20 30 78 66 66 66 66 30 30 30 30 29 3b 00 00 00 04 20 20 20 20 00 00 00 2d ngle)),.0xffff0000);...........-
13a20 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 73 75 72 66 61 63 65 2c 20 62 ....wl_surface_attach(surface,.b
13a40 75 66 66 65 72 2c 20 30 2c 20 30 29 3b 00 00 00 2b 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f uffer,.0,.0);...+....wl_surface_
13a60 64 61 6d 61 67 65 28 73 75 72 66 61 63 65 2c 20 30 2c 20 30 2c 20 77 2c 20 68 29 3b 00 00 00 1f damage(surface,.0,.0,.w,.h);....
13a80 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 ....wl_surface_commit(surface);.
13aa0 00 00 01 7d 00 00 00 00 00 00 00 49 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 6c ...}.......Istatic.void.toplevel
13ac0 5f 63 6f 6e 66 69 67 75 72 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 _configure(void.*data,.struct.xd
13ae0 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 2c 00 00 00 3d 20 20 20 20 20 20 20 g_toplevel.*toplevel,...=.......
13b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 33 32 5f 74 20 ........................int32_t.
13b20 77 69 64 74 68 2c 20 69 6e 74 33 32 5f 74 20 68 65 69 67 68 74 2c 00 00 00 39 20 20 20 20 20 20 width,.int32_t.height,...9......
13b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 .........................struct.
13b60 77 6c 5f 61 72 72 61 79 20 2a 73 74 61 74 65 73 29 20 7b 00 00 00 20 20 20 20 20 69 66 20 28 77 wl_array.*states).{........if.(w
13b80 69 64 74 68 20 3e 20 30 20 26 26 20 68 65 69 67 68 74 20 3e 20 30 29 00 00 00 27 20 20 20 20 20 idth.>.0.&&.height.>.0)...'.....
13ba0 20 20 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 77 69 64 74 68 2c 20 68 65 69 67 68 74 ...allocate_buffer(width,.height
13bc0 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 );....}.......Gstatic.void.tople
13be0 76 65 6c 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 vel_close(void.*data,.struct.xdg
13c00 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 29 20 7b 00 00 00 10 20 20 20 20 72 75 _toplevel.*toplevel).{........ru
13c20 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 3f 73 74 61 74 69 63 20 63 6f nning.=.0;....}.......?static.co
13c40 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 nst.struct.xdg_toplevel_listener
13c60 20 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 3c 20 20 20 20 2e 63 .toplevel_listener.=.{...<.....c
13c80 6f 6e 66 69 67 75 72 65 20 3d 20 74 6f 70 6c 65 76 65 6c 5f 63 6f 6e 66 69 67 75 72 65 2c 20 2e onfigure.=.toplevel_configure,..
13ca0 63 6c 6f 73 65 20 3d 20 74 6f 70 6c 65 76 65 6c 5f 63 6c 6f 73 65 00 00 00 02 7d 3b 00 00 00 00 close.=.toplevel_close....};....
13cc0 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 ...Fstatic.void.registry_handler
13ce0 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 (void.*data,.struct.wl_registry.
13d00 2a 72 65 67 69 73 74 72 79 2c 00 00 00 40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 *registry,...@..................
13d20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 20 63 6f 6e 73 74 20 63 68 ...........uint32_t.id,.const.ch
13d40 61 72 20 2a 69 6e 74 65 72 66 61 63 65 2c 00 00 00 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ar.*interface,...0..............
13d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 76 65 72 73 69 6f 6e 29 ...............uint32_t.version)
13d80 20 7b 00 00 00 30 20 20 20 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 .{...0....if.(strcmp(interface,.
13da0 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 20 3d 3d 20 30 29 00 00 00 51 20 20 20 20 20 20 "wl_compositor").==.0)...Q......
13dc0 20 20 63 6f 6d 70 6f 73 69 74 6f 72 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 ..compositor.=.wl_registry_bind(
13de0 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 registry,.id,.&wl_compositor_int
13e00 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 2e 20 20 20 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 erface,.4);........else.if.(strc
13e20 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d 22 29 20 3d 3d 20 30 29 00 00 00 mp(interface,."wl_shm").==.0)...
13e40 43 20 20 20 20 20 20 20 20 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 C........shm.=.wl_registry_bind(
13e60 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c registry,.id,.&wl_shm_interface,
13e80 20 31 29 3b 00 00 00 35 20 20 20 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 .1);...5....else.if.(strcmp(inte
13ea0 72 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 20 3d 3d 20 30 29 20 7b 00 00 00 rface,."xdg_wm_base").==.0).{...
13ec0 4c 20 20 20 20 20 20 20 20 77 6d 5f 62 61 73 65 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 L........wm_base.=.wl_registry_b
13ee0 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 ind(registry,.id,.&xdg_wm_base_i
13f00 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 43 20 20 20 20 20 20 20 20 78 64 67 5f 77 6d 5f nterface,.1);...C........xdg_wm_
13f20 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 77 6d 5f 62 61 73 65 2c 20 26 77 6d 5f 62 base_add_listener(wm_base,.&wm_b
13f40 61 73 65 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 ase_listener,.NULL);........}...
13f60 01 7d 00 00 00 00 00 00 00 56 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c .}.......Vstatic.const.struct.wl
13f80 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 69 73 74 72 79 5f 6c 69 73 74 _registry_listener.registry_list
13fa0 65 6e 65 72 20 3d 20 7b 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 2c 20 4e 55 4c 4c 7d 3b ener.=.{registry_handler,.NULL};
13fc0 00 00 00 00 00 00 00 0c 69 6e 74 20 6d 61 69 6e 28 29 20 7b 00 00 00 27 20 20 20 20 64 69 73 70 ........int.main().{...'....disp
13fe0 6c 61 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 lay.=.wl_display_connect(NULL);.
14000 00 00 5a 20 20 20 20 69 66 20 28 21 64 69 73 70 6c 61 79 29 20 7b 20 66 70 72 69 6e 74 66 28 73 ..Z....if.(!display).{.fprintf(s
14020 74 64 65 72 72 2c 20 22 46 61 69 6c 65 64 20 74 6f 20 63 6f 6e 6e 65 63 74 20 74 6f 20 57 61 79 tderr,."Failed.to.connect.to.Way
14040 6c 61 6e 64 20 64 69 73 70 6c 61 79 5c 6e 22 29 3b 20 72 65 74 75 72 6e 20 31 3b 20 7d 00 00 00 land.display\n");.return.1;.}...
14060 00 00 00 00 30 20 20 20 20 72 65 67 69 73 74 72 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 ....0....registry.=.wl_display_g
14080 65 74 5f 72 65 67 69 73 74 72 79 28 64 69 73 70 6c 61 79 29 3b 00 00 00 41 20 20 20 20 77 6c 5f et_registry(display);...A....wl_
140a0 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 72 65 67 69 73 74 72 79 2c 20 registry_add_listener(registry,.
140c0 26 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 22 20 20 &registry_listener,.NULL);..."..
140e0 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b ..wl_display_roundtrip(display);
14100 00 00 00 00 00 00 00 6d 20 20 20 20 69 66 20 28 21 63 6f 6d 70 6f 73 69 74 6f 72 20 7c 7c 20 21 .......m....if.(!compositor.||.!
14120 73 68 6d 20 7c 7c 20 21 77 6d 5f 62 61 73 65 29 20 7b 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 shm.||.!wm_base).{.fprintf(stder
14140 72 2c 20 22 4d 69 73 73 69 6e 67 20 72 65 71 75 69 72 65 64 20 57 61 79 6c 61 6e 64 20 67 6c 6f r,."Missing.required.Wayland.glo
14160 62 61 6c 73 5c 6e 22 29 3b 20 72 65 74 75 72 6e 20 31 3b 20 7d 00 00 00 00 00 00 00 37 20 20 20 bals\n");.return.1;.}.......7...
14180 20 73 75 72 66 61 63 65 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f .surface.=.wl_compositor_create_
141a0 73 75 72 66 61 63 65 28 63 6f 6d 70 6f 73 69 74 6f 72 29 3b 00 00 00 40 20 20 20 20 78 64 67 5f surface(compositor);...@....xdg_
141c0 73 75 72 66 61 63 65 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 surface.=.xdg_wm_base_get_xdg_su
141e0 72 66 61 63 65 28 77 6d 5f 62 61 73 65 2c 20 73 75 72 66 61 63 65 29 3b 00 00 00 47 20 20 20 20 rface(wm_base,.surface);...G....
14200 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 78 64 67 5f 73 75 72 xdg_surface_add_listener(xdg_sur
14220 66 61 63 65 2c 20 26 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c face,.&xdg_surface_listener,.NUL
14240 4c 29 3b 00 00 00 00 00 00 00 35 20 20 20 20 74 6f 70 6c 65 76 65 6c 20 3d 20 78 64 67 5f 73 75 L);.......5....toplevel.=.xdg_su
14260 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 78 64 67 5f 73 75 72 66 61 63 65 29 3b rface_get_toplevel(xdg_surface);
14280 00 00 00 42 20 20 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 ...B....xdg_toplevel_add_listene
142a0 72 28 74 6f 70 6c 65 76 65 6c 2c 20 26 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 2c 20 r(toplevel,.&toplevel_listener,.
142c0 4e 55 4c 4c 29 3b 00 00 00 1f 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 NULL);........wl_surface_commit(
142e0 73 75 72 66 61 63 65 29 3b 00 00 00 22 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e surface);..."....wl_display_roun
14300 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 00 00 00 00 00 10 20 20 20 20 2f 2f 20 4d 61 dtrip(display);............//.Ma
14320 69 6e 20 6c 6f 6f 70 00 00 00 15 20 20 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b in.loop........while.(running).{
14340 00 00 00 2d 20 20 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f ...-........wl_display_dispatch_
14360 70 65 6e 64 69 6e 67 28 64 69 73 70 6c 61 79 29 3b 00 00 00 15 20 20 20 20 20 20 20 20 64 72 61 pending(display);............dra
14380 77 5f 63 6c 6f 63 6b 28 29 3b 00 00 00 28 20 20 20 20 20 20 20 20 75 73 6c 65 65 70 28 31 30 30 w_clock();...(........usleep(100
143a0 30 30 30 30 20 2f 20 36 30 29 3b 20 2f 2f 20 7e 36 30 20 46 50 53 00 00 00 05 20 20 20 20 7d 00 0000./.60);.//.~60.FPS........}.
143c0 00 00 00 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 30 3b 35 81 f5 18 00 00 00 00 1a 00 00 00 ...........return.0;5...........
143e0 02 00 00 00 96 00 00 00 02 00 00 00 ad 00 00 00 00 00 00 00 7d 02 00 00 00 00 00 00 ae 14 00 00 ....................}...........
14400 00 00 00 00 b0 14 00 00 00 00 00 00 35 81 5f d0 00 00 00 29 00 00 00 2b 00 00 00 00 00 00 00 00 ............5._....)...+........
14420 00 00 00 2a 00 00 00 63 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 ...*...c........................
14440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
144e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 63 00 00 00 07 00 00 00 00 00 00 00 76 00 00 .................c...........v..
14580 00 04 00 00 00 00 00 00 00 56 00 00 00 07 00 00 00 00 69 9d 87 2c 04 01 00 00 00 00 00 f5 18 00 .........V........i..,..........
145a0 00 00 62 00 00 00 63 00 00 00 00 00 00 00 14 00 00 00 48 20 20 61 75 74 6f 20 64 72 61 77 5f 6c ..b...c...........H..auto.draw_l
145c0 69 6e 65 20 3d 20 5b 26 5d 28 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 ine.=.[&](int.x0,.int.y0,.int.x1
145e0 2c 20 69 6e 74 20 79 31 2c 20 75 69 6e 74 33 32 5f 74 20 63 6f 6c 6f 72 29 20 7b 00 00 00 31 20 ,.int.y1,.uint32_t.color).{...1.
14600 20 20 20 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 20 3d 20 78 ...int.dx.=.abs(x1.-.x0),.sx.=.x
14620 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 32 20 20 20 20 69 6e 74 20 64 79 20 3d 0.<.x1.?.1.:.-1;...2....int.dy.=
14640 20 2d 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 31 .-abs(y1.-.y0),.sy.=.y0.<.y1.?.1
14660 20 3a 20 2d 31 3b 00 00 00 1a 20 20 20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 2c .:.-1;........int.err.=.dx.+.dy,
14680 20 65 32 3b 00 00 00 0f 20 20 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 31 20 20 20 20 20 .e2;........while.(1).{...1.....
146a0 20 69 66 20 28 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 20 3e 3d 20 .if.(x0.>=.0.&&.x0.<.w.&&.y0.>=.
146c0 30 20 26 26 20 79 30 20 3c 20 68 29 00 00 00 20 20 20 20 20 20 20 20 20 70 78 5b 79 30 20 2a 20 0.&&.y0.<.h)............px[y0.*.
146e0 77 20 2b 20 78 30 5d 20 3d 20 63 6f 6c 6f 72 3b 00 00 00 1f 20 20 20 20 20 20 69 66 20 28 78 30 w.+.x0].=.color;..........if.(x0
14700 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 00 00 00 0e 20 20 20 20 20 20 20 20 62 .==.x1.&&.y0.==.y1)............b
14720 72 65 61 6b 3b 00 00 00 13 20 20 20 20 20 20 65 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 00 00 15 reak;..........e2.=.2.*.err;....
14740 20 20 20 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 00 00 00 12 20 20 20 20 20 20 20 ......if.(e2.>=.dy).{...........
14760 20 65 72 72 20 2b 3d 20 64 79 3b 00 00 00 11 20 20 20 20 20 20 20 20 78 30 20 2b 3d 20 73 78 3b .err.+=.dy;............x0.+=.sx;
14780 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 15 20 20 20 20 20 20 69 66 20 28 65 32 20 3c 3d 20 64 ..........}..........if.(e2.<=.d
147a0 78 29 20 7b 00 00 00 12 20 20 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 78 3b 00 00 00 11 20 20 x).{............err.+=.dx;......
147c0 20 20 20 20 20 20 79 30 20 2b 3d 20 73 79 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 ......y0.+=.sy;..........}......
147e0 20 20 7d 00 00 00 04 20 20 7d 3b 35 81 f5 18 00 00 00 00 62 00 00 00 00 00 00 00 14 00 00 00 00 ..}......};5.......b............
14800 00 00 00 00 00 00 00 00 00 00 00 d8 09 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 ................................
14820 00 00 00 35 81 5f d0 00 00 00 2a 00 00 00 2c 00 00 00 00 00 00 00 00 00 00 00 2b 00 00 00 63 00 ...5._....*...,...........+...c.
14840 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
148a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
148c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
148e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14980 00 00 00 00 00 00 00 00 63 00 00 00 07 00 00 00 00 00 00 00 63 00 00 00 04 00 00 00 00 00 00 00 ........c...........c...........
149a0 56 00 00 00 07 00 00 00 00 69 9d 87 2f 04 01 00 00 00 00 00 f5 18 00 00 00 62 00 00 00 72 00 00 V........i../............b...r..
149c0 00 b6 00 00 00 01 00 00 00 02 20 20 f5 18 00 00 00 63 00 00 00 64 00 00 00 b6 00 00 00 00 f5 18 .................c...d..........
149e0 00 00 00 62 00 00 00 64 00 00 00 b5 00 00 00 00 35 81 f5 18 00 00 00 00 62 00 00 00 00 00 00 00 ...b...d........5.......b.......
14a00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 d8 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a20 01 00 00 00 00 00 00 00 f5 18 00 00 00 00 62 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..............b.................
14a40 00 00 02 00 00 00 d8 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 f5 18 ................................
14a60 00 00 00 00 62 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 0e 00 00 00 01 00 00 00 da 09 00 00 ....b...........................
14a80 00 00 00 00 00 00 00 00 00 00 00 00 43 02 00 00 00 00 00 00 35 81 5f d0 00 00 00 2b 00 00 00 2d ............C.......5._....+...-
14aa0 00 00 00 00 00 00 00 00 00 00 00 2c 00 00 00 71 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 ...........,...q................
14ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 72 00 00 00 07 00 00 .........................r......
14c00 00 00 00 00 00 72 00 00 00 04 00 00 00 00 00 00 00 56 00 00 00 07 00 00 00 00 69 9d 87 30 04 01 .....r...........V........i..0..
14c20 00 00 00 12 00 f5 18 00 00 00 63 00 00 00 79 00 00 00 c4 00 00 00 0e 00 00 00 31 73 74 61 74 69 ..........c...y...........1stati
14c40 63 20 76 6f 69 64 20 64 72 61 77 5f 6c 69 6e 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 c.void.draw_line(uint32_t.*px,.i
14c60 6e 74 20 77 2c 20 69 6e 74 20 68 2c 00 00 00 47 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt.w,.int.h,...G................
14c80 20 20 20 20 20 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e ......int.x0,.int.y0,.int.x1,.in
14ca0 74 20 79 31 2c 20 75 69 6e 74 33 32 5f 74 20 63 6f 6c 6f 72 29 20 7b 00 00 00 31 20 20 20 20 69 t.y1,.uint32_t.color).{...1....i
14cc0 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 nt.dx.=.abs(x1.-.x0),.sx.=.x0.<.
14ce0 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 32 20 20 20 20 69 6e 74 20 64 79 20 3d 20 2d 61 62 x1.?.1.:.-1;...2....int.dy.=.-ab
14d00 73 28 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 31 20 3a 20 2d s(y1.-.y0),.sy.=.y0.<.y1.?.1.:.-
14d20 31 3b 00 00 00 1a 20 20 20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 2c 20 65 32 3b 1;........int.err.=.dx.+.dy,.e2;
14d40 00 00 00 0f 20 20 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 33 20 20 20 20 20 20 20 20 69 ........while.(1).{...3........i
14d60 66 20 28 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 20 3e 3d 20 30 20 f.(x0.>=.0.&&.x0.<.w.&&.y0.>=.0.
14d80 26 26 20 79 30 20 3c 20 68 29 00 00 00 24 20 20 20 20 20 20 20 20 20 20 20 20 70 78 5b 79 30 20 &&.y0.<.h)...$............px[y0.
14da0 2a 20 77 20 2b 20 78 30 5d 20 3d 20 63 6f 6c 6f 72 3b 00 00 00 28 20 20 20 20 20 20 20 20 69 66 *.w.+.x0].=.color;...(........if
14dc0 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 20 62 72 65 61 6b 3b 00 00 .(x0.==.x1.&&.y0.==.y1).break;..
14de0 00 15 20 20 20 20 20 20 20 20 65 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 00 00 2e 20 20 20 20 20 ..........e2.=.2.*.err;.........
14e00 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 20 65 72 72 20 2b 3d 20 64 79 3b 20 78 30 ...if.(e2.>=.dy).{.err.+=.dy;.x0
14e20 20 2b 3d 20 73 78 3b 20 7d 00 00 00 2e 20 20 20 20 20 20 20 20 69 66 20 28 65 32 20 3c 3d 20 64 .+=.sx;.}............if.(e2.<=.d
14e40 78 29 20 7b 20 65 72 72 20 2b 3d 20 64 78 3b 20 79 30 20 2b 3d 20 73 79 3b 20 7d 00 00 00 05 20 x).{.err.+=.dx;.y0.+=.sy;.}.....
14e60 20 20 20 7d 00 00 00 01 7d 35 81 f5 18 00 00 00 00 63 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 ...}....}5.......c..............
14e80 00 14 00 00 00 02 00 00 00 16 0a 00 00 00 00 00 00 06 02 00 00 00 00 00 00 32 02 00 00 00 00 00 .........................2......
14ea0 00 35 81 5f d0 00 00 00 2c 00 00 00 2e 00 00 00 00 00 00 00 00 00 00 00 2d 00 00 00 01 00 00 00 .5._....,...............-.......
14ec0 02 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15020 00 00 00 00 00 00 00 69 9d 87 70 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 .......i..p.....................
15040 00 00 00 cb 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 .......&#include."xdg-shell-clie
15060 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 nt-protocol.h"....#include.<fcnt
15080 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 12 23 69 6e l.h>....#include.<math.h>....#in
150a0 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 clude.<stdio.h>....#include.<std
150c0 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 lib.h>....#include.<string.h>...
150e0 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 .#include.<sys/mman.h>....#inclu
15100 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e de.<time.h>....#include.<unistd.
15120 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 h>....#include.<wayland-client.h
15140 3e 00 00 00 00 00 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 69 73 70 >........struct.wl_display.*disp
15160 6c 61 79 3b 00 00 00 1d 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 lay;....struct.wl_registry.*regi
15180 73 74 72 79 3b 00 00 00 21 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 stry;...!struct.wl_compositor.*c
151a0 6f 6d 70 6f 73 69 74 6f 72 3b 00 00 00 13 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d ompositor;....struct.wl_shm.*shm
151c0 3b 00 00 00 1c 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 5f 62 61 73 65 ;....struct.xdg_wm_base.*wm_base
151e0 3b 00 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 72 66 61 63 65 3b ;....struct.wl_surface.*surface;
15200 00 00 00 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 64 67 5f 73 75 72 66 ....struct.xdg_surface.*xdg_surf
15220 61 63 65 3b 00 00 00 1e 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 ace;....struct.xdg_toplevel.*top
15240 6c 65 76 65 6c 3b 00 00 00 00 00 00 00 17 73 74 61 74 69 63 20 69 6e 74 20 72 75 6e 6e 69 6e 67 level;........static.int.running
15260 20 3d 20 31 3b 00 00 00 27 73 74 61 74 69 63 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 .=.1;...'static.struct.wl_buffer
15280 20 2a 62 75 66 66 65 72 20 3d 20 4e 55 4c 4c 3b 00 00 00 1b 73 74 61 74 69 63 20 76 6f 69 64 20 .*buffer.=.NULL;....static.void.
152a0 2a 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 62 75 *pixels.=.NULL;...)static.int.bu
152c0 66 5f 77 69 64 74 68 20 3d 20 30 2c 20 62 75 66 5f 68 65 69 67 68 74 20 3d 20 30 3b 00 00 00 00 f_width.=.0,.buf_height.=.0;....
152e0 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 ...)static.int.create_shm_file(s
15300 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 2e 20 20 63 68 61 72 20 74 65 6d 70 6c 61 74 65 ize_t.size).{......char.template
15320 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 61 79 6c 61 6e 64 2d 73 68 6d 2d 58 58 58 58 58 58 22 3b 00 [].=."/tmp/wayland-shm-XXXXXX";.
15340 00 00 1d 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 74 65 29 3b .....int.fd.=.mkstemp(template);
15360 00 00 00 0f 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 7b 00 00 00 16 20 20 20 20 70 65 72 72 6f ......if.(fd.<.0).{........perro
15380 72 28 22 6d 6b 73 74 65 6d 70 22 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 r("mkstemp");........exit(1);...
153a0 03 20 20 7d 00 00 00 13 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 20 20 ...}......unlink(template);.....
153c0 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 20 7b 00 .if.(ftruncate(fd,.size).<.0).{.
153e0 00 00 18 20 20 20 20 70 65 72 72 6f 72 28 22 66 74 72 75 6e 63 61 74 65 22 29 3b 00 00 00 0c 20 .......perror("ftruncate");.....
15400 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 ...exit(1);......}......return.f
15420 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 62 61 d;....}.......Astatic.void.wm_ba
15440 73 65 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 se_ping(void.*data,.struct.xdg_w
15460 6d 5f 62 61 73 65 20 2a 77 6d 5f 62 61 73 65 2c 00 00 00 2b 20 20 20 20 20 20 20 20 20 20 20 20 m_base.*wm_base,...+............
15480 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 .............uint32_t.serial).{.
154a0 00 00 24 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 5f 62 61 73 65 2c 20 73 ..$..xdg_wm_base_pong(wm_base,.s
154c0 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4b 73 74 61 74 69 63 20 63 6f 6e 73 74 erial);....}.......Kstatic.const
154e0 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f .struct.xdg_wm_base_listener.wm_
15500 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 77 6d 5f 62 61 73 65 5f 70 69 6e 67 7d 3b 00 base_listener.=.{wm_base_ping};.
15520 00 00 00 00 00 00 4e 73 74 61 74 69 63 20 76 6f 69 64 20 78 64 67 5f 73 75 72 66 61 63 65 5f 63 ......Nstatic.void.xdg_surface_c
15540 6f 6e 66 69 67 75 72 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f onfigure(void.*data,.struct.xdg_
15560 73 75 72 66 61 63 65 20 2a 78 64 67 5f 73 75 72 66 61 63 65 2c 00 00 00 34 20 20 20 20 20 20 20 surface.*xdg_surface,...4.......
15580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 ...........................uint3
155a0 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 31 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 2_t.serial).{...1..xdg_surface_a
155c0 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 73 65 72 69 61 6c ck_configure(xdg_surface,.serial
155e0 29 3b 00 00 00 1d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 );......wl_surface_commit(surfac
15600 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 e);....}.......Astatic.const.str
15620 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 64 67 5f 73 75 72 uct.xdg_surface_listener.xdg_sur
15640 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 1b 20 20 20 20 78 64 67 5f 73 75 72 face_listener.=.{........xdg_sur
15660 66 61 63 65 5f 63 6f 6e 66 69 67 75 72 65 7d 3b 00 00 00 00 00 00 00 34 73 74 61 74 69 63 20 76 face_configure};.......4static.v
15680 6f 69 64 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 69 6e 74 20 77 69 64 74 68 2c 20 69 oid.allocate_buffer(int.width,.i
156a0 6e 74 20 68 65 69 67 68 74 29 20 7b 00 00 00 0f 20 20 69 66 20 28 62 75 66 66 65 72 29 20 7b 00 nt.height).{......if.(buffer).{.
156c0 00 00 1e 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 62 75 66 66 65 72 29 .......wl_buffer_destroy(buffer)
156e0 3b 00 00 00 2f 20 20 20 20 6d 75 6e 6d 61 70 28 70 69 78 65 6c 73 2c 20 62 75 66 5f 77 69 64 74 ;.../....munmap(pixels,.buf_widt
15700 68 20 2a 20 62 75 66 5f 68 65 69 67 68 74 20 2a 20 34 29 3b 00 00 00 03 20 20 7d 00 00 00 14 20 h.*.buf_height.*.4);......}.....
15720 20 62 75 66 5f 77 69 64 74 68 20 3d 20 77 69 64 74 68 3b 00 00 00 16 20 20 62 75 66 5f 68 65 69 .buf_width.=.width;......buf_hei
15740 67 68 74 20 3d 20 68 65 69 67 68 74 3b 00 00 00 19 20 20 69 6e 74 20 73 74 72 69 64 65 20 3d 20 ght.=.height;......int.stride.=.
15760 77 69 64 74 68 20 2a 20 34 3b 00 00 00 1d 20 20 69 6e 74 20 73 69 7a 65 20 3d 20 73 74 72 69 64 width.*.4;......int.size.=.strid
15780 65 20 2a 20 68 65 69 67 68 74 3b 00 00 00 21 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 e.*.height;...!..int.fd.=.create
157a0 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 47 20 20 70 69 78 65 6c 73 20 3d 20 6d _shm_file(size);...G..pixels.=.m
157c0 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 map(NULL,.size,.PROT_READ.|.PROT
157e0 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 1d 20 _WRITE,.MAP_SHARED,.fd,.0);.....
15800 20 69 66 20 28 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 20 7b 00 00 00 13 .if.(pixels.==.MAP_FAILED).{....
15820 20 20 20 20 70 65 72 72 6f 72 28 22 6d 6d 61 70 22 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 ....perror("mmap");........exit(
15840 31 29 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 3f 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 1);......}.......?..struct.wl_sh
15860 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f m_pool.*pool.=.wl_shm_create_poo
15880 6c 28 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 44 20 20 62 75 66 66 65 72 20 3d 20 l(shm,.fd,.size);...D..buffer.=.
158a0 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 wl_shm_pool_create_buffer(pool,.
158c0 30 2c 20 77 69 64 74 68 2c 20 68 65 69 67 68 74 2c 20 73 74 72 69 64 65 2c 00 00 00 3d 20 20 20 0,.width,.height,.stride,...=...
158e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
15900 20 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 2b 20 20 ..WL_SHM_FORMAT_ARGB8888);...+..
15920 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 73 75 72 66 61 63 65 2c 20 62 75 66 66 65 wl_surface_attach(surface,.buffe
15940 72 2c 20 30 2c 20 30 29 3b 00 00 00 1d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 r,.0,.0);......wl_surface_commit
15960 28 73 75 72 66 61 63 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 1d 2f 2f 20 44 72 61 77 20 61 (surface);....}........//.Draw.a
15980 20 73 69 6d 70 6c 65 20 61 6e 61 6c 6f 67 20 63 6c 6f 63 6b 00 00 00 1a 73 74 61 74 69 63 20 76 .simple.analog.clock....static.v
159a0 6f 69 64 20 64 72 61 77 5f 63 6c 6f 63 6b 28 29 20 7b 00 00 00 0e 20 20 69 66 20 28 21 70 69 78 oid.draw_clock().{......if.(!pix
159c0 65 6c 73 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 18 20 20 75 69 6e 74 33 32 5f els)........return;......uint32_
159e0 74 20 2a 70 78 20 3d 20 70 69 78 65 6c 73 3b 00 00 00 14 20 20 69 6e 74 20 77 20 3d 20 62 75 66 t.*px.=.pixels;......int.w.=.buf
15a00 5f 77 69 64 74 68 3b 00 00 00 15 20 20 69 6e 74 20 68 20 3d 20 62 75 66 5f 68 65 69 67 68 74 3b _width;......int.h.=.buf_height;
15a20 00 00 00 1d 20 20 69 6e 74 20 63 78 20 3d 20 77 20 2f 20 32 2c 20 63 79 20 3d 20 68 20 2f 20 32 ......int.cx.=.w./.2,.cy.=.h./.2
15a40 3b 00 00 00 23 20 20 69 6e 74 20 72 20 3d 20 28 77 20 3c 20 68 20 3f 20 77 20 3a 20 68 29 20 2f ;...#..int.r.=.(w.<.h.?.w.:.h)./
15a60 20 32 20 2d 20 31 30 3b 00 00 00 00 00 00 00 13 20 20 2f 2f 20 43 6c 65 61 72 20 74 6f 20 77 68 .2.-.10;..........//.Clear.to.wh
15a80 69 74 65 00 00 00 21 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 77 20 2a ite...!..for.(int.i.=.0;.i.<.w.*
15aa0 20 68 3b 20 69 2b 2b 29 00 00 00 17 20 20 20 20 70 78 5b 69 5d 20 3d 20 30 78 66 66 66 66 66 66 .h;.i++)........px[i].=.0xffffff
15ac0 66 66 3b 00 00 00 00 00 00 00 15 20 20 2f 2f 20 47 65 74 20 63 75 72 72 65 6e 74 20 74 69 6d 65 ff;..........//.Get.current.time
15ae0 00 00 00 18 20 20 74 69 6d 65 5f 74 20 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 20 ......time_t.t.=.time(NULL);....
15b00 20 20 73 74 72 75 63 74 20 74 6d 20 2a 74 6d 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 26 74 29 3b ..struct.tm.*tm.=.localtime(&t);
15b20 00 00 00 00 00 00 00 1a 20 20 2f 2f 20 48 65 6c 70 65 72 20 74 6f 20 64 72 61 77 20 61 20 6c 69 ..........//.Helper.to.draw.a.li
15b40 6e 65 00 00 00 3d 20 20 2f 2f 20 48 65 6c 70 65 72 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 64 72 ne...=..//.Helper.function.to.dr
15b60 61 77 20 61 20 6c 69 6e 65 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 20 28 42 72 65 73 65 6e 68 aw.a.line.in.the.buffer.(Bresenh
15b80 61 6d 29 00 00 00 4b 20 20 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 6c 69 6e 65 28 75 am)...K..static.void.draw_line(u
15ba0 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 int32_t.*px,.int.w,.int.h,.int.x
15bc0 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 00 00 00 31 20 20 20 20 20 20 20 20 20 20 0,.int.y0,.int.x1,...1..........
15be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 79 31 2c 20 75 69 6e 74 33 32 5f 74 20 63 ..............int.y1,.uint32_t.c
15c00 6f 6c 6f 72 29 20 7b 00 00 00 31 20 20 20 20 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d olor).{...1....int.dx.=.abs(x1.-
15c20 20 78 30 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 32 .x0),.sx.=.x0.<.x1.?.1.:.-1;...2
15c40 20 20 20 20 69 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d ....int.dy.=.-abs(y1.-.y0),.sy.=
15c60 20 79 30 20 3c 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 1a 20 20 20 20 69 6e 74 20 65 72 .y0.<.y1.?.1.:.-1;........int.er
15c80 72 20 3d 20 64 78 20 2b 20 64 79 2c 20 65 32 3b 00 00 00 0f 20 20 20 20 77 68 69 6c 65 20 28 31 r.=.dx.+.dy,.e2;........while.(1
15ca0 29 20 7b 00 00 00 31 20 20 20 20 20 20 69 66 20 28 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c ).{...1......if.(x0.>=.0.&&.x0.<
15cc0 20 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 20 79 30 20 3c 20 68 29 00 00 00 20 20 20 20 20 .w.&&.y0.>=.0.&&.y0.<.h)........
15ce0 20 20 20 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 63 6f 6c 6f 72 3b 00 00 00 1f ....px[y0.*.w.+.x0].=.color;....
15d00 20 20 20 20 20 20 69 66 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 00 ......if.(x0.==.x1.&&.y0.==.y1).
15d20 00 00 0e 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 13 20 20 20 20 20 20 65 32 20 3d 20 ...........break;..........e2.=.
15d40 32 20 2a 20 65 72 72 3b 00 00 00 15 20 20 20 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 2.*.err;..........if.(e2.>=.dy).
15d60 7b 00 00 00 12 20 20 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 79 3b 00 00 00 11 20 20 20 20 20 {............err.+=.dy;.........
15d80 20 20 20 78 30 20 2b 3d 20 73 78 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 15 20 20 20 20 20 ...x0.+=.sx;..........}.........
15da0 20 69 66 20 28 65 32 20 3c 3d 20 64 78 29 20 7b 00 00 00 12 20 20 20 20 20 20 20 20 65 72 72 20 .if.(e2.<=.dx).{............err.
15dc0 2b 3d 20 64 78 3b 00 00 00 11 20 20 20 20 20 20 20 20 79 30 20 2b 3d 20 73 79 3b 00 00 00 07 20 +=.dx;............y0.+=.sy;.....
15de0 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 0f 20 20 .....}........}......}..........
15e00 2f 2f 20 44 72 61 77 20 68 61 6e 64 73 00 00 00 15 20 20 64 6f 75 62 6c 65 20 68 6f 75 72 5f 61 //.Draw.hands......double.hour_a
15e20 6e 67 6c 65 20 3d 00 00 00 45 20 20 20 20 20 20 28 74 6d 2d 3e 74 6d 5f 68 6f 75 72 20 25 20 31 ngle.=...E......(tm->tm_hour.%.1
15e40 32 20 2b 20 74 6d 2d 3e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 20 2a 20 4d 5f 50 49 20 2f 20 2.+.tm->tm_min./.60.0).*.M_PI./.
15e60 36 2e 30 20 2d 20 4d 5f 50 49 20 2f 20 32 3b 00 00 00 4f 20 20 64 6f 75 62 6c 65 20 6d 69 6e 5f 6.0.-.M_PI./.2;...O..double.min_
15e80 61 6e 67 6c 65 20 3d 20 28 74 6d 2d 3e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 2d 3e 74 6d 5f 73 65 63 angle.=.(tm->tm_min.+.tm->tm_sec
15ea0 20 2f 20 36 30 2e 30 29 20 2a 20 4d 5f 50 49 20 2f 20 33 30 2e 30 20 2d 20 4d 5f 50 49 20 2f 20 ./.60.0).*.M_PI./.30.0.-.M_PI./.
15ec0 32 3b 00 00 00 39 20 20 64 6f 75 62 6c 65 20 73 65 63 5f 61 6e 67 6c 65 20 3d 20 74 6d 2d 3e 74 2;...9..double.sec_angle.=.tm->t
15ee0 6d 5f 73 65 63 20 2a 20 4d 5f 50 49 20 2f 20 33 30 2e 30 20 2d 20 4d 5f 50 49 20 2f 20 32 3b 00 m_sec.*.M_PI./.30.0.-.M_PI./.2;.
15f00 00 00 00 00 00 00 3a 20 20 64 72 61 77 5f 6c 69 6e 65 28 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 ......:..draw_line(cx,.cy,.cx.+.
15f20 28 69 6e 74 29 28 72 20 2a 20 30 2e 35 20 2a 20 63 6f 73 28 68 6f 75 72 5f 61 6e 67 6c 65 29 29 (int)(r.*.0.5.*.cos(hour_angle))
15f40 2c 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 ,...?............cy.+.(int)(r.*.
15f60 30 2e 35 20 2a 20 73 69 6e 28 68 6f 75 72 5f 61 6e 67 6c 65 29 29 2c 20 30 78 66 66 30 30 30 30 0.5.*.sin(hour_angle)),.0xff0000
15f80 30 30 29 3b 00 00 00 39 20 20 64 72 61 77 5f 6c 69 6e 65 28 63 78 2c 20 63 79 2c 20 63 78 20 2b 00);...9..draw_line(cx,.cy,.cx.+
15fa0 20 28 69 6e 74 29 28 72 20 2a 20 30 2e 37 20 2a 20 63 6f 73 28 6d 69 6e 5f 61 6e 67 6c 65 29 29 .(int)(r.*.0.7.*.cos(min_angle))
15fc0 2c 00 00 00 3e 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 ,...>............cy.+.(int)(r.*.
15fe0 30 2e 37 20 2a 20 73 69 6e 28 6d 69 6e 5f 61 6e 67 6c 65 29 29 2c 20 30 78 66 66 30 30 30 30 30 0.7.*.sin(min_angle)),.0xff00000
16000 30 29 3b 00 00 00 39 20 20 64 72 61 77 5f 6c 69 6e 65 28 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 0);...9..draw_line(cx,.cy,.cx.+.
16020 28 69 6e 74 29 28 72 20 2a 20 30 2e 39 20 2a 20 63 6f 73 28 73 65 63 5f 61 6e 67 6c 65 29 29 2c (int)(r.*.0.9.*.cos(sec_angle)),
16040 00 00 00 3e 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 30 ...>............cy.+.(int)(r.*.0
16060 2e 39 20 2a 20 73 69 6e 28 73 65 63 5f 61 6e 67 6c 65 29 29 2c 20 30 78 66 66 66 66 30 30 30 30 .9.*.sin(sec_angle)),.0xffff0000
16080 29 3b 00 00 00 00 00 00 00 2b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 73 75 );.......+..wl_surface_attach(su
160a0 72 66 61 63 65 2c 20 62 75 66 66 65 72 2c 20 30 2c 20 30 29 3b 00 00 00 29 20 20 77 6c 5f 73 75 rface,.buffer,.0,.0);...)..wl_su
160c0 72 66 61 63 65 5f 64 61 6d 61 67 65 28 73 75 72 66 61 63 65 2c 20 30 2c 20 30 2c 20 77 2c 20 68 rface_damage(surface,.0,.0,.w,.h
160e0 29 3b 00 00 00 1d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 );......wl_surface_commit(surfac
16100 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 49 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c e);....}.......Istatic.void.topl
16120 65 76 65 6c 5f 63 6f 6e 66 69 67 75 72 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 evel_configure(void.*data,.struc
16140 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 2c 00 00 00 3d 20 20 20 t.xdg_toplevel.*toplevel,...=...
16160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 33 ............................int3
16180 32 5f 74 20 77 69 64 74 68 2c 20 69 6e 74 33 32 5f 74 20 68 65 69 67 68 74 2c 00 00 00 39 20 20 2_t.width,.int32_t.height,...9..
161a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 .............................str
161c0 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 74 61 74 65 73 29 20 7b 00 00 00 1e 20 20 69 66 20 uct.wl_array.*states).{......if.
161e0 28 77 69 64 74 68 20 3e 20 30 20 26 26 20 68 65 69 67 68 74 20 3e 20 30 29 00 00 00 23 20 20 20 (width.>.0.&&.height.>.0)...#...
16200 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 77 69 64 74 68 2c 20 68 65 69 67 68 74 29 3b .allocate_buffer(width,.height);
16220 00 00 00 01 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 ....}.......Gstatic.void.topleve
16240 6c 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 l_close(void.*data,.struct.xdg_t
16260 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 29 20 7b 00 00 00 0e 20 20 72 75 6e 6e 69 6e oplevel.*toplevel).{......runnin
16280 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 3f 73 74 61 74 69 63 20 63 6f 6e 73 74 20 g.=.0;....}.......?static.const.
162a0 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 74 6f 70 struct.xdg_toplevel_listener.top
162c0 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 3e 20 20 20 20 2e 63 6f 6e 66 69 level_listener.=.{...>.....confi
162e0 67 75 72 65 20 3d 20 74 6f 70 6c 65 76 65 6c 5f 63 6f 6e 66 69 67 75 72 65 2c 20 2e 63 6c 6f 73 gure.=.toplevel_configure,..clos
16300 65 20 3d 20 74 6f 70 6c 65 76 65 6c 5f 63 6c 6f 73 65 7d 3b 00 00 00 00 00 00 00 46 73 74 61 74 e.=.toplevel_close};.......Fstat
16320 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 ic.void.registry_handler(void.*d
16340 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 ata,.struct.wl_registry.*registr
16360 79 2c 00 00 00 40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y,...@..........................
16380 20 20 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 6e 74 65 ...uint32_t.id,.const.char.*inte
163a0 72 66 61 63 65 2c 00 00 00 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rface,...0......................
163c0 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 76 65 72 73 69 6f 6e 29 20 7b 00 00 00 2e 20 20 .......uint32_t.version).{......
163e0 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 if.(strcmp(interface,."wl_compos
16400 69 74 6f 72 22 29 20 3d 3d 20 30 29 00 00 00 4d 20 20 20 20 63 6f 6d 70 6f 73 69 74 6f 72 20 3d itor").==.0)...M....compositor.=
16420 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 .wl_registry_bind(registry,.id,.
16440 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 &wl_compositor_interface,.4);...
16460 2c 20 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 77 ,..else.if.(strcmp(interface,."w
16480 6c 5f 73 68 6d 22 29 20 3d 3d 20 30 29 00 00 00 3f 20 20 20 20 73 68 6d 20 3d 20 77 6c 5f 72 65 l_shm").==.0)...?....shm.=.wl_re
164a0 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 77 6c 5f 73 68 gistry_bind(registry,.id,.&wl_sh
164c0 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 33 20 20 65 6c 73 65 20 69 66 20 28 73 m_interface,.1);...3..else.if.(s
164e0 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 20 trcmp(interface,."xdg_wm_base").
16500 3d 3d 20 30 29 20 7b 00 00 00 48 20 20 20 20 77 6d 5f 62 61 73 65 20 3d 20 77 6c 5f 72 65 67 69 ==.0).{...H....wm_base.=.wl_regi
16520 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f stry_bind(registry,.id,.&xdg_wm_
16540 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 3f 20 20 20 20 78 64 67 5f 77 base_interface,.1);...?....xdg_w
16560 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 77 6d 5f 62 61 73 65 2c 20 26 77 6d m_base_add_listener(wm_base,.&wm
16580 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 03 20 20 7d 00 00 00 _base_listener,.NULL);......}...
165a0 01 7d 00 00 00 00 00 00 00 4f 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c .}.......Ostatic.const.struct.wl
165c0 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 69 73 74 72 79 5f 6c 69 73 74 _registry_listener.registry_list
165e0 65 6e 65 72 20 3d 20 7b 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 2c 00 00 00 44 20 20 20 ener.=.{registry_handler,...D...
16600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
16620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4e 55 4c 4c 7d ...........................NULL}
16640 3b 00 00 00 00 00 00 00 0c 69 6e 74 20 6d 61 69 6e 28 29 20 7b 00 00 00 25 20 20 64 69 73 70 6c ;........int.main().{...%..displ
16660 61 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 ay.=.wl_display_connect(NULL);..
16680 00 11 20 20 69 66 20 28 21 64 69 73 70 6c 61 79 29 20 7b 00 00 00 3e 20 20 20 20 66 70 72 69 6e ....if.(!display).{...>....fprin
166a0 74 66 28 73 74 64 65 72 72 2c 20 22 46 61 69 6c 65 64 20 74 6f 20 63 6f 6e 6e 65 63 74 20 74 6f tf(stderr,."Failed.to.connect.to
166c0 20 57 61 79 6c 61 6e 64 20 64 69 73 70 6c 61 79 5c 6e 22 29 3b 00 00 00 0d 20 20 20 20 72 65 74 .Wayland.display\n");........ret
166e0 75 72 6e 20 31 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 2e 20 20 72 65 67 69 73 74 72 79 20 urn.1;......}..........registry.
16700 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 64 69 73 70 6c 61 =.wl_display_get_registry(displa
16720 79 29 3b 00 00 00 3f 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 y);...?..wl_registry_add_listene
16740 72 28 72 65 67 69 73 74 72 79 2c 20 26 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 2c 20 r(registry,.&registry_listener,.
16760 4e 55 4c 4c 29 3b 00 00 00 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 NULL);......wl_display_roundtrip
16780 28 64 69 73 70 6c 61 79 29 3b 00 00 00 00 00 00 00 28 20 20 69 66 20 28 21 63 6f 6d 70 6f 73 69 (display);.......(..if.(!composi
167a0 74 6f 72 20 7c 7c 20 21 73 68 6d 20 7c 7c 20 21 77 6d 5f 62 61 73 65 29 20 7b 00 00 00 3a 20 20 tor.||.!shm.||.!wm_base).{...:..
167c0 20 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 4d 69 73 73 69 6e 67 20 72 65 71 75 69 ..fprintf(stderr,."Missing.requi
167e0 72 65 64 20 57 61 79 6c 61 6e 64 20 67 6c 6f 62 61 6c 73 5c 6e 22 29 3b 00 00 00 0d 20 20 20 20 red.Wayland.globals\n");........
16800 72 65 74 75 72 6e 20 31 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 35 20 20 73 75 72 66 61 63 return.1;......}.......5..surfac
16820 65 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 e.=.wl_compositor_create_surface
16840 28 63 6f 6d 70 6f 73 69 74 6f 72 29 3b 00 00 00 3e 20 20 78 64 67 5f 73 75 72 66 61 63 65 20 3d (compositor);...>..xdg_surface.=
16860 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 77 6d 5f .xdg_wm_base_get_xdg_surface(wm_
16880 62 61 73 65 2c 20 73 75 72 66 61 63 65 29 3b 00 00 00 45 20 20 78 64 67 5f 73 75 72 66 61 63 65 base,.surface);...E..xdg_surface
168a0 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 26 78 64 67 5f _add_listener(xdg_surface,.&xdg_
168c0 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 00 00 00 00 33 surface_listener,.NULL);.......3
168e0 20 20 74 6f 70 6c 65 76 65 6c 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 ..toplevel.=.xdg_surface_get_top
16900 6c 65 76 65 6c 28 78 64 67 5f 73 75 72 66 61 63 65 29 3b 00 00 00 40 20 20 78 64 67 5f 74 6f 70 level(xdg_surface);...@..xdg_top
16920 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 74 6f 70 6c 65 76 65 6c 2c 20 26 74 6f level_add_listener(toplevel,.&to
16940 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 1d 20 20 77 6c 5f plevel_listener,.NULL);......wl_
16960 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 20 20 20 77 6c surface_commit(surface);......wl
16980 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 00 00 _display_roundtrip(display);....
169a0 00 00 00 0e 20 20 2f 2f 20 4d 61 69 6e 20 6c 6f 6f 70 00 00 00 13 20 20 77 68 69 6c 65 20 28 72 ......//.Main.loop......while.(r
169c0 75 6e 6e 69 6e 67 29 20 7b 00 00 00 29 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 unning).{...)....wl_display_disp
169e0 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 64 69 73 70 6c 61 79 29 3b 00 00 00 11 20 20 20 20 64 72 atch_pending(display);........dr
16a00 61 77 5f 63 6c 6f 63 6b 28 29 3b 00 00 00 24 20 20 20 20 75 73 6c 65 65 70 28 31 30 30 30 30 30 aw_clock();...$....usleep(100000
16a20 30 20 2f 20 36 30 29 3b 20 2f 2f 20 7e 36 30 20 46 50 53 00 00 00 03 20 20 7d 00 00 00 00 00 00 0./.60);.//.~60.FPS......}......
16a40 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 ....return.0;....}5.............
16a60 00 00 cb 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ad 17 00 00 00 00 ................................
16a80 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 2d 00 00 00 2f 00 00 00 00 00 00 00 00 00 00 ..........5._....-.../..........
16aa0 00 2e 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d 87 70 04 01 00 00 00 00 00 f5 18 00 00 00 ................i..p............
16c20 8c 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 7d f5 18 00 00 00 8d 00 00 00 00 00 00 00 00 .................}..............
16c40 00 00 00 00 f5 18 00 00 00 84 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 19 20 20 20 20 77 6c ..............................wl
16c60 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 f5 18 00 00 00 85 00 00 00 00 00 00 00 _surface_commit(sur.............
16c80 00 00 00 00 00 f5 18 00 00 00 69 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 73 f5 18 00 00 ..........i................s....
16ca0 00 6a 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 5d 00 00 00 00 00 00 00 00 00 00 00 01 .j.................]............
16cc0 00 00 00 18 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 77 2c 20 68 2c 20 f5 18 00 00 ........draw_line(px,.w,.h,.....
16ce0 00 5e 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 57 00 00 00 00 00 00 00 00 00 00 00 01 .^.................W............
16d00 00 00 00 10 20 20 20 20 73 74 72 75 63 74 20 74 6d 20 2a 74 f5 18 00 00 00 58 00 00 00 00 00 00 ........struct.tm.*t.....X......
16d20 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 ................................
16d40 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..............5.................
16d60 00 00 00 00 00 00 57 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0b ......W.........................
16d80 00 00 00 00 00 00 f5 18 00 00 00 00 57 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 ............W...................
16da0 18 00 00 00 00 0b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 ................................
16dc0 00 00 5d 00 00 00 18 00 00 00 00 00 00 00 00 00 00 00 0c 00 00 00 01 00 00 00 00 0d 00 00 00 00 ..].............................
16de0 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 69 00 00 00 01 00 00 00 ........................i.......
16e00 00 00 00 00 00 00 00 00 1b 00 00 00 19 00 00 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16e20 00 06 00 00 00 00 00 00 f5 18 00 00 00 00 84 00 00 00 19 00 00 00 00 00 00 00 00 00 00 00 08 00 ................................
16e40 00 00 01 00 00 00 00 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b7 00 00 00 00 00 00 00 35 81 ..............................5.
16e60 5f d0 00 00 00 2e 00 00 00 30 00 00 00 00 00 00 00 00 00 00 00 2f 00 00 00 8d 00 00 00 00 00 00 _........0.........../..........
16e80 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16fe0 00 00 00 00 69 9d 87 71 04 01 00 00 00 13 00 f5 18 00 00 00 1a 00 00 00 b8 00 00 00 8d 00 00 00 ....i..q........................
17000 72 00 00 00 30 20 20 20 20 63 68 61 72 20 74 65 6d 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 r...0....char.template[].=."/tmp
17020 2f 77 61 79 6c 61 6e 64 2d 73 68 6d 2d 58 58 58 58 58 58 22 3b 00 00 00 1f 20 20 20 20 69 6e 74 /wayland-shm-XXXXXX";........int
17040 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 2f 20 20 20 20 .fd.=.mkstemp(template);.../....
17060 69 66 20 28 66 64 20 3c 20 30 29 20 7b 20 70 65 72 72 6f 72 28 22 6d 6b 73 74 65 6d 70 22 29 3b if.(fd.<.0).{.perror("mkstemp");
17080 20 65 78 69 74 28 31 29 3b 20 7d 00 00 00 15 20 20 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 .exit(1);.}........unlink(templa
170a0 74 65 29 3b 00 00 00 42 20 20 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 te);...B....if.(ftruncate(fd,.si
170c0 7a 65 29 20 3c 20 30 29 20 7b 20 70 65 72 72 6f 72 28 22 66 74 72 75 6e 63 61 74 65 22 29 3b 20 ze).<.0).{.perror("ftruncate");.
170e0 65 78 69 74 28 31 29 3b 20 7d 00 00 00 0e 20 20 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 exit(1);.}........return.fd;....
17100 7d 00 00 00 00 00 00 00 54 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 62 61 73 65 5f 70 69 6e }.......Tstatic.void.wm_base_pin
17120 67 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 g(void.*data,.struct.xdg_wm_base
17140 20 2a 77 6d 5f 62 61 73 65 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 .*wm_base,.uint32_t.serial).{...
17160 26 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 5f 62 61 73 65 2c 20 73 &....xdg_wm_base_pong(wm_base,.s
17180 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4b 73 74 61 74 69 63 20 63 6f 6e 73 74 erial);....}.......Kstatic.const
171a0 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f .struct.xdg_wm_base_listener.wm_
171c0 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 77 6d 5f 62 61 73 65 5f 70 69 6e 67 7d 3b 00 base_listener.=.{wm_base_ping};.
171e0 00 00 00 00 00 00 61 73 74 61 74 69 63 20 76 6f 69 64 20 78 64 67 5f 73 75 72 66 61 63 65 5f 63 ......astatic.void.xdg_surface_c
17200 6f 6e 66 69 67 75 72 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f onfigure(void.*data,.struct.xdg_
17220 73 75 72 66 61 63 65 20 2a 78 64 67 5f 73 75 72 66 61 63 65 2c 20 75 69 6e 74 33 32 5f 74 20 73 surface.*xdg_surface,.uint32_t.s
17240 65 72 69 61 6c 29 20 7b 00 00 00 33 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f erial).{...3....xdg_surface_ack_
17260 63 6f 6e 66 69 67 75 72 65 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 73 65 72 69 61 6c 29 3b 00 configure(xdg_surface,.serial);.
17280 00 00 1f 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 .......wl_surface_commit(surface
172a0 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 58 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 );....}.......Xstatic.const.stru
172c0 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 64 67 5f 73 75 72 66 ct.xdg_surface_listener.xdg_surf
172e0 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 78 64 67 5f 73 75 72 66 61 63 65 5f 63 6f 6e 66 ace_listener.=.{xdg_surface_conf
17300 69 67 75 72 65 7d 3b 00 00 00 00 00 00 00 34 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 igure};.......4static.void.alloc
17320 61 74 65 5f 62 75 66 66 65 72 28 69 6e 74 20 77 69 64 74 68 2c 20 69 6e 74 20 68 65 69 67 68 74 ate_buffer(int.width,.int.height
17340 29 20 7b 00 00 00 11 20 20 20 20 69 66 20 28 62 75 66 66 65 72 29 20 7b 00 00 00 22 20 20 20 20 ).{........if.(buffer).{..."....
17360 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 62 75 66 66 65 72 29 3b 00 00 ....wl_buffer_destroy(buffer);..
17380 00 33 20 20 20 20 20 20 20 20 6d 75 6e 6d 61 70 28 70 69 78 65 6c 73 2c 20 62 75 66 5f 77 69 64 .3........munmap(pixels,.buf_wid
173a0 74 68 20 2a 20 62 75 66 5f 68 65 69 67 68 74 20 2a 20 34 29 3b 00 00 00 05 20 20 20 20 7d 00 00 th.*.buf_height.*.4);........}..
173c0 00 16 20 20 20 20 62 75 66 5f 77 69 64 74 68 20 3d 20 77 69 64 74 68 3b 00 00 00 18 20 20 20 20 ......buf_width.=.width;........
173e0 62 75 66 5f 68 65 69 67 68 74 20 3d 20 68 65 69 67 68 74 3b 00 00 00 1b 20 20 20 20 69 6e 74 20 buf_height.=.height;........int.
17400 73 74 72 69 64 65 20 3d 20 77 69 64 74 68 20 2a 20 34 3b 00 00 00 1f 20 20 20 20 69 6e 74 20 73 stride.=.width.*.4;........int.s
17420 69 7a 65 20 3d 20 73 74 72 69 64 65 20 2a 20 68 65 69 67 68 74 3b 00 00 00 23 20 20 20 20 69 6e ize.=.stride.*.height;...#....in
17440 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 t.fd.=.create_shm_file(size);...
17460 49 20 20 20 20 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 I....pixels.=.mmap(NULL,.size,.P
17480 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 ROT_READ.|.PROT_WRITE,.MAP_SHARE
174a0 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 3a 20 20 20 20 69 66 20 28 70 69 78 65 6c 73 20 3d 3d 20 D,.fd,.0);...:....if.(pixels.==.
174c0 4d 41 50 5f 46 41 49 4c 45 44 29 20 7b 20 70 65 72 72 6f 72 28 22 6d 6d 61 70 22 29 3b 20 65 78 MAP_FAILED).{.perror("mmap");.ex
174e0 69 74 28 31 29 3b 20 7d 00 00 00 41 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f it(1);.}...A....struct.wl_shm_po
17500 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 73 68 ol.*pool.=.wl_shm_create_pool(sh
17520 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 5f 20 20 20 20 62 75 66 66 65 72 20 3d 20 77 6c m,.fd,.size);..._....buffer.=.wl
17540 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c _shm_pool_create_buffer(pool,.0,
17560 20 77 69 64 74 68 2c 20 68 65 69 67 68 74 2c 20 73 74 72 69 64 65 2c 20 57 4c 5f 53 48 4d 5f 46 .width,.height,.stride,.WL_SHM_F
17580 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 2d 20 20 20 20 77 6c 5f 73 75 72 66 61 ORMAT_ARGB8888);...-....wl_surfa
175a0 63 65 5f 61 74 74 61 63 68 28 73 75 72 66 61 63 65 2c 20 62 75 66 66 65 72 2c 20 30 2c 20 30 29 ce_attach(surface,.buffer,.0,.0)
175c0 3b 00 00 00 1f 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 ;........wl_surface_commit(surfa
175e0 63 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 63 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 ce);....}.......cstatic.void.dra
17600 77 5f 6c 69 6e 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 w_line(uint32_t.*px,.int.w,.int.
17620 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 h,.int.x0,.int.y0,.int.x1,.int.y
17640 31 2c 20 75 69 6e 74 33 32 5f 74 20 63 6f 6c 6f 72 29 20 7b 00 00 00 31 20 20 20 20 69 6e 74 20 1,.uint32_t.color).{...1....int.
17660 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 78 31 20 dx.=.abs(x1.-.x0),.sx.=.x0.<.x1.
17680 3f 20 31 20 3a 20 2d 31 3b 00 00 00 32 20 20 20 20 69 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 79 ?.1.:.-1;...2....int.dy.=.-abs(y
176a0 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b 00 1.-.y0),.sy.=.y0.<.y1.?.1.:.-1;.
176c0 00 00 1a 20 20 20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 2c 20 65 32 3b 00 00 00 .......int.err.=.dx.+.dy,.e2;...
176e0 0f 20 20 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 4c 20 20 20 20 20 20 20 20 69 66 20 28 .....while.(1).{...L........if.(
17700 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 20 x0.>=.0.&&.x0.<.w.&&.y0.>=.0.&&.
17720 79 30 20 3c 20 68 29 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 63 6f 6c 6f 72 3b y0.<.h).px[y0.*.w.+.x0].=.color;
17740 00 00 00 28 20 20 20 20 20 20 20 20 69 66 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d ...(........if.(x0.==.x1.&&.y0.=
17760 3d 20 79 31 29 20 62 72 65 61 6b 3b 00 00 00 15 20 20 20 20 20 20 20 20 65 32 20 3d 20 32 20 2a =.y1).break;............e2.=.2.*
17780 20 65 72 72 3b 00 00 00 2e 20 20 20 20 20 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b .err;............if.(e2.>=.dy).{
177a0 20 65 72 72 20 2b 3d 20 64 79 3b 20 78 30 20 2b 3d 20 73 78 3b 20 7d 00 00 00 2e 20 20 20 20 20 .err.+=.dy;.x0.+=.sx;.}.........
177c0 20 20 20 69 66 20 28 65 32 20 3c 3d 20 64 78 29 20 7b 20 65 72 72 20 2b 3d 20 64 78 3b 20 79 30 ...if.(e2.<=.dx).{.err.+=.dx;.y0
177e0 20 2b 3d 20 73 79 3b 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 1a 73 .+=.sy;.}........}....}........s
17800 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 6c 6f 63 6b 28 29 20 7b 00 00 00 18 20 20 20 tatic.void.draw_clock().{.......
17820 20 69 66 20 28 21 70 69 78 65 6c 73 29 20 72 65 74 75 72 6e 3b 00 00 00 1a 20 20 20 20 75 69 6e .if.(!pixels).return;........uin
17840 74 33 32 5f 74 20 2a 70 78 20 3d 20 70 69 78 65 6c 73 3b 00 00 00 16 20 20 20 20 69 6e 74 20 77 t32_t.*px.=.pixels;........int.w
17860 20 3d 20 62 75 66 5f 77 69 64 74 68 3b 00 00 00 17 20 20 20 20 69 6e 74 20 68 20 3d 20 62 75 66 .=.buf_width;........int.h.=.buf
17880 5f 68 65 69 67 68 74 3b 00 00 00 1f 20 20 20 20 69 6e 74 20 63 78 20 3d 20 77 20 2f 20 32 2c 20 _height;........int.cx.=.w./.2,.
178a0 63 79 20 3d 20 68 20 2f 20 32 3b 00 00 00 25 20 20 20 20 69 6e 74 20 72 20 3d 20 28 77 20 3c 20 cy.=.h./.2;...%....int.r.=.(w.<.
178c0 68 20 3f 20 77 20 3a 20 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 37 20 20 20 20 66 6f 72 20 h.?.w.:.h)./.2.-.10;...7....for.
178e0 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 77 20 2a 20 68 3b 20 69 2b 2b 29 20 70 78 5b 69 (int.i.=.0;.i.<.w.*.h;.i++).px[i
17900 5d 20 3d 20 30 78 66 66 66 66 66 66 66 66 3b 00 00 00 1a 20 20 20 20 74 69 6d 65 5f 74 20 74 20 ].=.0xffffffff;........time_t.t.
17920 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 22 20 20 20 20 73 74 72 75 63 74 20 74 6d 20 2a =.time(NULL);..."....struct.tm.*
17940 74 6d 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 26 74 29 3b 00 00 00 55 20 20 20 20 64 6f 75 62 6c tm.=.localtime(&t);...U....doubl
17960 65 20 68 6f 75 72 5f 61 6e 67 6c 65 20 3d 20 28 74 6d 2d 3e 74 6d 5f 68 6f 75 72 20 25 20 31 32 e.hour_angle.=.(tm->tm_hour.%.12
17980 20 2b 20 74 6d 2d 3e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 20 2a 20 4d 5f 50 49 20 2f 20 36 .+.tm->tm_min./.60.0).*.M_PI./.6
179a0 2e 30 20 2d 20 4d 5f 50 49 2f 32 3b 00 00 00 4f 20 20 20 20 64 6f 75 62 6c 65 20 6d 69 6e 5f 61 .0.-.M_PI/2;...O....double.min_a
179c0 6e 67 6c 65 20 3d 20 28 74 6d 2d 3e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 2d 3e 74 6d 5f 73 65 63 20 ngle.=.(tm->tm_min.+.tm->tm_sec.
179e0 2f 20 36 30 2e 30 29 20 2a 20 4d 5f 50 49 20 2f 20 33 30 2e 30 20 2d 20 4d 5f 50 49 2f 32 3b 00 /.60.0).*.M_PI./.30.0.-.M_PI/2;.
17a00 00 00 39 20 20 20 20 64 6f 75 62 6c 65 20 73 65 63 5f 61 6e 67 6c 65 20 3d 20 74 6d 2d 3e 74 6d ..9....double.sec_angle.=.tm->tm
17a20 5f 73 65 63 20 2a 20 4d 5f 50 49 20 2f 20 33 30 2e 30 20 2d 20 4d 5f 50 49 2f 32 3b 00 00 00 7a _sec.*.M_PI./.30.0.-.M_PI/2;...z
17a40 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 77 2c 20 68 2c 20 63 78 2c 20 63 79 2c 20 ....draw_line(px,.w,.h,.cx,.cy,.
17a60 63 78 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 30 2e 35 20 2a 20 63 6f 73 28 68 6f 75 72 5f 61 6e cx.+.(int)(r.*.0.5.*.cos(hour_an
17a80 67 6c 65 29 29 2c 20 63 79 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 30 2e 35 20 2a 20 73 69 6e 28 gle)),.cy.+.(int)(r.*.0.5.*.sin(
17aa0 68 6f 75 72 5f 61 6e 67 6c 65 29 29 2c 20 30 78 66 66 30 30 30 30 30 30 29 3b 00 00 00 79 20 20 hour_angle)),.0xff000000);...y..
17ac0 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 77 2c 20 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 ..draw_line(px,.w,.h,.cx,.cy,.cx
17ae0 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 30 2e 37 20 2a 20 63 6f 73 28 6d 69 6e 5f 61 6e 67 6c 65 .+.(int)(r.*.0.7.*.cos(min_angle
17b00 29 29 2c 20 20 63 79 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 30 2e 37 20 2a 20 73 69 6e 28 6d 69 )),..cy.+.(int)(r.*.0.7.*.sin(mi
17b20 6e 5f 61 6e 67 6c 65 29 29 2c 20 30 78 66 66 30 30 30 30 30 30 29 3b 00 00 00 79 20 20 20 20 64 n_angle)),.0xff000000);...y....d
17b40 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 77 2c 20 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 raw_line(px,.w,.h,.cx,.cy,.cx.+.
17b60 28 69 6e 74 29 28 72 20 2a 20 30 2e 39 20 2a 20 63 6f 73 28 73 65 63 5f 61 6e 67 6c 65 29 29 2c (int)(r.*.0.9.*.cos(sec_angle)),
17b80 20 20 63 79 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 30 2e 39 20 2a 20 73 69 6e 28 73 65 63 5f 61 ..cy.+.(int)(r.*.0.9.*.sin(sec_a
17ba0 6e 67 6c 65 29 29 2c 20 30 78 66 66 66 66 30 30 30 30 29 3b 00 00 00 2d 20 20 20 20 77 6c 5f 73 ngle)),.0xffff0000);...-....wl_s
17bc0 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 73 75 72 66 61 63 65 2c 20 62 75 66 66 65 72 2c 20 30 urface_attach(surface,.buffer,.0
17be0 2c 20 30 29 3b 00 00 00 2b 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 28 73 ,.0);...+....wl_surface_damage(s
17c00 75 72 66 61 63 65 2c 20 30 2c 20 30 2c 20 77 2c 20 68 29 3b 00 00 00 1f 20 20 20 20 77 6c 5f 73 urface,.0,.0,.w,.h);........wl_s
17c20 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 01 7d 00 00 00 00 urface_commit(surface);....}....
17c40 00 00 00 83 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 6c 5f 63 6f 6e 66 69 67 75 ....static.void.toplevel_configu
17c60 72 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 re(void.*data,.struct.xdg_toplev
17c80 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 2c 20 69 6e 74 33 32 5f 74 20 77 69 64 74 68 2c 20 69 6e 74 el.*toplevel,.int32_t.width,.int
17ca0 33 32 5f 74 20 68 65 69 67 68 74 2c 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 74 32_t.height,.struct.wl_array.*st
17cc0 61 74 65 73 29 20 7b 00 00 00 40 20 20 20 20 69 66 20 28 77 69 64 74 68 20 3e 20 30 20 26 26 20 ates).{...@....if.(width.>.0.&&.
17ce0 68 65 69 67 68 74 20 3e 20 30 29 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 77 69 64 74 height.>.0).allocate_buffer(widt
17d00 68 2c 20 68 65 69 67 68 74 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 56 73 74 61 74 69 63 20 76 h,.height);....}.......Vstatic.v
17d20 6f 69 64 20 74 6f 70 6c 65 76 65 6c 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 oid.toplevel_close(void.*data,.s
17d40 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 29 20 7b 20 truct.xdg_toplevel.*toplevel).{.
17d60 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 00 00 00 00 7b 73 74 61 74 69 63 20 63 6f 6e running.=.0;.}.......{static.con
17d80 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 st.struct.xdg_toplevel_listener.
17da0 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 20 2e 63 6f 6e 66 69 67 75 72 65 toplevel_listener.=.{..configure
17dc0 20 3d 20 74 6f 70 6c 65 76 65 6c 5f 63 6f 6e 66 69 67 75 72 65 2c 20 2e 63 6c 6f 73 65 20 3d 20 .=.toplevel_configure,..close.=.
17de0 74 6f 70 6c 65 76 65 6c 5f 63 6c 6f 73 65 20 7d 3b 00 00 00 00 00 00 00 7e 73 74 61 74 69 63 20 toplevel_close.};.......~static.
17e00 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 61 74 61 void.registry_handler(void.*data
17e20 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 79 2c 20 ,.struct.wl_registry.*registry,.
17e40 75 69 6e 74 33 32 5f 74 20 69 64 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 6e 74 65 72 66 61 uint32_t.id,.const.char.*interfa
17e60 63 65 2c 20 75 69 6e 74 33 32 5f 74 20 76 65 72 73 69 6f 6e 29 20 7b 00 00 00 30 20 20 20 20 69 ce,.uint32_t.version).{...0....i
17e80 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 f.(strcmp(interface,."wl_composi
17ea0 74 6f 72 22 29 20 3d 3d 20 30 29 00 00 00 51 20 20 20 20 20 20 20 20 63 6f 6d 70 6f 73 69 74 6f tor").==.0)...Q........composito
17ec0 72 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 r.=.wl_registry_bind(registry,.i
17ee0 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b d,.&wl_compositor_interface,.4);
17f00 00 00 00 2e 20 20 20 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 ........else.if.(strcmp(interfac
17f20 65 2c 20 22 77 6c 5f 73 68 6d 22 29 20 3d 3d 20 30 29 00 00 00 43 20 20 20 20 20 20 20 20 73 68 e,."wl_shm").==.0)...C........sh
17f40 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 m.=.wl_registry_bind(registry,.i
17f60 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 35 20 20 20 d,.&wl_shm_interface,.1);...5...
17f80 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 78 64 67 .else.if.(strcmp(interface,."xdg
17fa0 5f 77 6d 5f 62 61 73 65 22 29 20 3d 3d 20 30 29 20 7b 00 00 00 4c 20 20 20 20 20 20 20 20 77 6d _wm_base").==.0).{...L........wm
17fc0 5f 62 61 73 65 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 _base.=.wl_registry_bind(registr
17fe0 79 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 y,.id,.&xdg_wm_base_interface,.1
18000 29 3b 00 00 00 43 20 20 20 20 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 );...C........xdg_wm_base_add_li
18020 73 74 65 6e 65 72 28 77 6d 5f 62 61 73 65 2c 20 26 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 stener(wm_base,.&wm_base_listene
18040 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 56 73 r,.NULL);........}....}.......Vs
18060 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c tatic.const.struct.wl_registry_l
18080 69 73 74 65 6e 65 72 20 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 72 65 67 istener.registry_listener.=.{reg
180a0 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 2c 20 4e 55 4c 4c 7d 3b 00 00 00 00 00 00 00 0c 69 6e 74 istry_handler,.NULL};........int
180c0 20 6d 61 69 6e 28 29 20 7b 00 00 00 27 20 20 20 20 64 69 73 70 6c 61 79 20 3d 20 77 6c 5f 64 69 .main().{...'....display.=.wl_di
180e0 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 5a 20 20 20 20 69 66 20 28 splay_connect(NULL);...Z....if.(
18100 21 64 69 73 70 6c 61 79 29 20 7b 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 46 61 69 !display).{.fprintf(stderr,."Fai
18120 6c 65 64 20 74 6f 20 63 6f 6e 6e 65 63 74 20 74 6f 20 57 61 79 6c 61 6e 64 20 64 69 73 70 6c 61 led.to.connect.to.Wayland.displa
18140 79 5c 6e 22 29 3b 20 72 65 74 75 72 6e 20 31 3b 20 7d 00 00 00 30 20 20 20 20 72 65 67 69 73 74 y\n");.return.1;.}...0....regist
18160 72 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 64 69 73 ry.=.wl_display_get_registry(dis
18180 70 6c 61 79 29 3b 00 00 00 41 20 20 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 play);...A....wl_registry_add_li
181a0 73 74 65 6e 65 72 28 72 65 67 69 73 74 72 79 2c 20 26 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 stener(registry,.&registry_liste
181c0 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 22 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f ner,.NULL);..."....wl_display_ro
181e0 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 00 6d 20 20 20 20 69 66 20 28 21 63 6f undtrip(display);...m....if.(!co
18200 6d 70 6f 73 69 74 6f 72 20 7c 7c 20 21 73 68 6d 20 7c 7c 20 21 77 6d 5f 62 61 73 65 29 20 7b 20 mpositor.||.!shm.||.!wm_base).{.
18220 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 4d 69 73 73 69 6e 67 20 72 65 71 75 69 72 65 fprintf(stderr,."Missing.require
18240 64 20 57 61 79 6c 61 6e 64 20 67 6c 6f 62 61 6c 73 5c 6e 22 29 3b 20 72 65 74 75 72 6e 20 31 3b d.Wayland.globals\n");.return.1;
18260 20 7d 00 00 00 37 20 20 20 20 73 75 72 66 61 63 65 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f .}...7....surface.=.wl_composito
18280 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 63 6f 6d 70 6f 73 69 74 6f 72 29 3b 00 00 00 r_create_surface(compositor);...
182a0 40 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 @....xdg_surface.=.xdg_wm_base_g
182c0 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 77 6d 5f 62 61 73 65 2c 20 73 75 72 66 61 63 65 29 et_xdg_surface(wm_base,.surface)
182e0 3b 00 00 00 47 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 ;...G....xdg_surface_add_listene
18300 72 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 26 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 r(xdg_surface,.&xdg_surface_list
18320 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 35 20 20 20 20 74 6f 70 6c 65 76 65 6c 20 3d 20 78 ener,.NULL);...5....toplevel.=.x
18340 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 78 64 67 5f 73 75 72 66 dg_surface_get_toplevel(xdg_surf
18360 61 63 65 29 3b 00 00 00 42 20 20 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 ace);...B....xdg_toplevel_add_li
18380 73 74 65 6e 65 72 28 74 6f 70 6c 65 76 65 6c 2c 20 26 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 stener(toplevel,.&toplevel_liste
183a0 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 1f 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f ner,.NULL);........wl_surface_co
183c0 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 22 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 mmit(surface);..."....wl_display
183e0 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 00 15 20 20 20 20 77 68 69 6c _roundtrip(display);........whil
18400 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 2d 20 20 20 20 20 20 20 20 77 6c 5f 64 69 73 70 e.(running).{...-........wl_disp
18420 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 64 69 73 70 6c 61 79 29 3b 00 00 lay_dispatch_pending(display);..
18440 00 15 20 20 20 20 20 20 20 20 64 72 61 77 5f 63 6c 6f 63 6b 28 29 3b 00 00 00 1d 20 20 20 20 20 ..........draw_clock();.........
18460 20 20 20 75 73 6c 65 65 70 28 31 30 30 30 30 30 30 20 2f 20 36 30 29 3b 00 00 00 05 20 20 20 20 ...usleep(1000000./.60);........
18480 7d 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 30 3b 35 81 f5 18 00 00 00 00 1a 00 00 00 02 00 }........return.0;5.............
184a0 00 00 71 00 00 00 02 00 00 00 9c 00 00 00 00 00 00 00 7d 02 00 00 00 00 00 00 2d 13 00 00 00 00 ..q...............}.......-.....
184c0 00 00 3f 14 00 00 00 00 00 00 35 81 5f d0 00 00 00 2f 00 00 00 31 00 00 00 00 00 00 00 00 00 00 ..?.......5._..../...1..........
184e0 00 30 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 .0..............................
18500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
185a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
185c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
185e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d 88 50 04 01 00 00 00 00 00 f5 18 00 00 00 ................i..P............
18660 00 00 00 00 02 00 00 00 00 00 00 00 b8 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 ................&#include."xdg-s
18680 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c hell-client-protocol.h"....#incl
186a0 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e ude.<fcntl.h>....#include.<math.
186c0 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 h>....#include.<stdio.h>....#inc
186e0 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 lude.<stdlib.h>....#include.<str
18700 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 ing.h>....#include.<sys/mman.h>.
18720 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 ...#include.<time.h>....#include
18740 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 .<unistd.h>....#include.<wayland
18760 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 00 00 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 -client.h>........struct.wl_disp
18780 6c 61 79 20 2a 64 69 73 70 6c 61 79 3b 00 00 00 1d 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 lay.*display;....struct.wl_regis
187a0 74 72 79 20 2a 72 65 67 69 73 74 72 79 3b 00 00 00 21 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 try.*registry;...!struct.wl_comp
187c0 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 6f 73 69 74 6f 72 3b 00 00 00 13 73 74 72 75 63 74 20 77 6c ositor.*compositor;....struct.wl
187e0 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 1c 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 _shm.*shm;....struct.xdg_wm_base
18800 20 2a 77 6d 5f 62 61 73 65 3b 00 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 .*wm_base;....struct.wl_surface.
18820 2a 73 75 72 66 61 63 65 3b 00 00 00 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 *surface;....struct.xdg_surface.
18840 2a 78 64 67 5f 73 75 72 66 61 63 65 3b 00 00 00 1e 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c *xdg_surface;....struct.xdg_topl
18860 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 3b 00 00 00 00 00 00 00 17 73 74 61 74 69 63 20 69 6e evel.*toplevel;........static.in
18880 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 27 73 74 61 74 69 63 20 73 74 72 75 63 74 20 t.running.=.1;...'static.struct.
188a0 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 66 65 72 20 3d 20 4e 55 4c 4c 3b 00 00 00 1b 73 74 61 wl_buffer.*buffer.=.NULL;....sta
188c0 74 69 63 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 29 73 74 61 74 tic.void.*pixels.=.NULL;...)stat
188e0 69 63 20 69 6e 74 20 62 75 66 5f 77 69 64 74 68 20 3d 20 30 2c 20 62 75 66 5f 68 65 69 67 68 74 ic.int.buf_width.=.0,.buf_height
18900 20 3d 20 30 3b 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 .=.0;.......)static.int.create_s
18920 68 6d 5f 66 69 6c 65 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 2e 20 20 63 68 61 72 hm_file(size_t.size).{......char
18940 20 74 65 6d 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 61 79 6c 61 6e 64 2d 73 68 6d 2d .template[].=."/tmp/wayland-shm-
18960 58 58 58 58 58 58 22 3b 00 00 00 1d 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 XXXXXX";......int.fd.=.mkstemp(t
18980 65 6d 70 6c 61 74 65 29 3b 00 00 00 0f 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 7b 00 00 00 16 emplate);......if.(fd.<.0).{....
189a0 20 20 20 20 70 65 72 72 6f 72 28 22 6d 6b 73 74 65 6d 70 22 29 3b 00 00 00 0c 20 20 20 20 65 78 ....perror("mkstemp");........ex
189c0 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 13 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 it(1);......}......unlink(templa
189e0 74 65 29 3b 00 00 00 20 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 te);......if.(ftruncate(fd,.size
18a00 29 20 3c 20 30 29 20 7b 00 00 00 18 20 20 20 20 70 65 72 72 6f 72 28 22 66 74 72 75 6e 63 61 74 ).<.0).{........perror("ftruncat
18a20 65 22 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 0c 20 e");........exit(1);......}.....
18a40 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 76 .return.fd;....}.......Astatic.v
18a60 6f 69 64 20 77 6d 5f 62 61 73 65 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 oid.wm_base_ping(void.*data,.str
18a80 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 5f 62 61 73 65 2c 00 00 00 2b 20 20 20 uct.xdg_wm_base.*wm_base,...+...
18aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 73 ......................uint32_t.s
18ac0 65 72 69 61 6c 29 20 7b 00 00 00 24 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 erial).{...$..xdg_wm_base_pong(w
18ae0 6d 5f 62 61 73 65 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4b 73 74 61 m_base,.serial);....}.......Ksta
18b00 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 tic.const.struct.xdg_wm_base_lis
18b20 74 65 6e 65 72 20 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 77 6d 5f 62 61 73 tener.wm_base_listener.=.{wm_bas
18b40 65 5f 70 69 6e 67 7d 3b 00 00 00 00 00 00 00 4e 73 74 61 74 69 63 20 76 6f 69 64 20 78 64 67 5f e_ping};.......Nstatic.void.xdg_
18b60 73 75 72 66 61 63 65 5f 63 6f 6e 66 69 67 75 72 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 surface_configure(void.*data,.st
18b80 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 64 67 5f 73 75 72 66 61 63 65 2c 00 00 ruct.xdg_surface.*xdg_surface,..
18ba0 00 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .4..............................
18bc0 20 20 20 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 31 20 20 78 64 67 5f ....uint32_t.serial).{...1..xdg_
18be0 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 64 67 5f 73 75 72 66 61 63 surface_ack_configure(xdg_surfac
18c00 65 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 1d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d e,.serial);......wl_surface_comm
18c20 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 it(surface);....}.......Astatic.
18c40 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 const.struct.xdg_surface_listene
18c60 72 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 1b 20 20 r.xdg_surface_listener.=.{......
18c80 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 63 6f 6e 66 69 67 75 72 65 7d 3b 00 00 00 00 00 00 00 ..xdg_surface_configure};.......
18ca0 34 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 69 6e 74 4static.void.allocate_buffer(int
18cc0 20 77 69 64 74 68 2c 20 69 6e 74 20 68 65 69 67 68 74 29 20 7b 00 00 00 0f 20 20 69 66 20 28 62 .width,.int.height).{......if.(b
18ce0 75 66 66 65 72 29 20 7b 00 00 00 1e 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f uffer).{........wl_buffer_destro
18d00 79 28 62 75 66 66 65 72 29 3b 00 00 00 2f 20 20 20 20 6d 75 6e 6d 61 70 28 70 69 78 65 6c 73 2c y(buffer);.../....munmap(pixels,
18d20 20 62 75 66 5f 77 69 64 74 68 20 2a 20 62 75 66 5f 68 65 69 67 68 74 20 2a 20 34 29 3b 00 00 00 .buf_width.*.buf_height.*.4);...
18d40 03 20 20 7d 00 00 00 14 20 20 62 75 66 5f 77 69 64 74 68 20 3d 20 77 69 64 74 68 3b 00 00 00 16 ...}......buf_width.=.width;....
18d60 20 20 62 75 66 5f 68 65 69 67 68 74 20 3d 20 68 65 69 67 68 74 3b 00 00 00 19 20 20 69 6e 74 20 ..buf_height.=.height;......int.
18d80 73 74 72 69 64 65 20 3d 20 77 69 64 74 68 20 2a 20 34 3b 00 00 00 1d 20 20 69 6e 74 20 73 69 7a stride.=.width.*.4;......int.siz
18da0 65 20 3d 20 73 74 72 69 64 65 20 2a 20 68 65 69 67 68 74 3b 00 00 00 21 20 20 69 6e 74 20 66 64 e.=.stride.*.height;...!..int.fd
18dc0 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 47 20 20 70 .=.create_shm_file(size);...G..p
18de0 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 ixels.=.mmap(NULL,.size,.PROT_RE
18e00 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c AD.|.PROT_WRITE,.MAP_SHARED,.fd,
18e20 20 30 29 3b 00 00 00 1d 20 20 69 66 20 28 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c .0);......if.(pixels.==.MAP_FAIL
18e40 45 44 29 20 7b 00 00 00 13 20 20 20 20 70 65 72 72 6f 72 28 22 6d 6d 61 70 22 29 3b 00 00 00 0c ED).{........perror("mmap");....
18e60 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 3f 20 20 73 74 72 75 63 74 20 ....exit(1);......}...?..struct.
18e80 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 wl_shm_pool.*pool.=.wl_shm_creat
18ea0 65 5f 70 6f 6f 6c 28 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 44 20 20 62 75 66 66 e_pool(shm,.fd,.size);...D..buff
18ec0 65 72 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 er.=.wl_shm_pool_create_buffer(p
18ee0 6f 6f 6c 2c 20 30 2c 20 77 69 64 74 68 2c 20 68 65 69 67 68 74 2c 20 73 74 72 69 64 65 2c 00 00 ool,.0,.width,.height,.stride,..
18f00 00 3d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .=..............................
18f20 20 20 20 20 20 20 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 .......WL_SHM_FORMAT_ARGB8888);.
18f40 00 00 2b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 73 75 72 66 61 63 65 2c 20 ..+..wl_surface_attach(surface,.
18f60 62 75 66 66 65 72 2c 20 30 2c 20 30 29 3b 00 00 00 1d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 buffer,.0,.0);......wl_surface_c
18f80 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 49 73 74 61 74 ommit(surface);....}.......Istat
18fa0 69 63 20 76 6f 69 64 20 64 72 61 77 5f 6c 69 6e 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 ic.void.draw_line(uint32_t.*px,.
18fc0 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e int.w,.int.h,.int.x0,.int.y0,.in
18fe0 74 20 78 31 2c 00 00 00 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 t.x1,.../......................i
19000 6e 74 20 79 31 2c 20 75 69 6e 74 33 32 5f 74 20 63 6f 6c 6f 72 29 20 7b 00 00 00 2f 20 20 69 6e nt.y1,.uint32_t.color).{.../..in
19020 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 78 t.dx.=.abs(x1.-.x0),.sx.=.x0.<.x
19040 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 30 20 20 69 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 79 1.?.1.:.-1;...0..int.dy.=.-abs(y
19060 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b 00 1.-.y0),.sy.=.y0.<.y1.?.1.:.-1;.
19080 00 00 18 20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 2c 20 65 32 3b 00 00 00 0d 20 .....int.err.=.dx.+.dy,.e2;.....
190a0 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 2f 20 20 20 20 69 66 20 28 78 30 20 3e 3d 20 30 20 .while.(1).{.../....if.(x0.>=.0.
190c0 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 20 79 30 20 3c 20 68 29 00 &&.x0.<.w.&&.y0.>=.0.&&.y0.<.h).
190e0 00 00 1e 20 20 20 20 20 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 63 6f 6c 6f 72 .........px[y0.*.w.+.x0].=.color
19100 3b 00 00 00 1d 20 20 20 20 69 66 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 ;........if.(x0.==.x1.&&.y0.==.y
19120 31 29 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 11 20 20 20 20 65 32 20 3d 20 32 1)..........break;........e2.=.2
19140 20 2a 20 65 72 72 3b 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 00 00 .*.err;........if.(e2.>=.dy).{..
19160 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 79 3b 00 00 00 0f 20 20 20 20 20 20 78 30 20 2b ........err.+=.dy;..........x0.+
19180 3d 20 73 78 3b 00 00 00 05 20 20 20 20 7d 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3c 3d 20 =.sx;........}........if.(e2.<=.
191a0 64 78 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 78 3b 00 00 00 0f 20 20 20 dx).{..........err.+=.dx;.......
191c0 20 20 20 79 30 20 2b 3d 20 73 79 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 ...y0.+=.sy;........}......}....
191e0 7d 00 00 00 00 00 00 00 1a 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 6c 6f 63 6b 28 }........static.void.draw_clock(
19200 29 20 7b 00 00 00 0e 20 20 69 66 20 28 21 70 69 78 65 6c 73 29 00 00 00 0b 20 20 20 20 72 65 74 ).{......if.(!pixels)........ret
19220 75 72 6e 3b 00 00 00 18 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 70 69 78 65 6c 73 3b urn;......uint32_t.*px.=.pixels;
19240 00 00 00 14 20 20 69 6e 74 20 77 20 3d 20 62 75 66 5f 77 69 64 74 68 3b 00 00 00 15 20 20 69 6e ......int.w.=.buf_width;......in
19260 74 20 68 20 3d 20 62 75 66 5f 68 65 69 67 68 74 3b 00 00 00 1d 20 20 69 6e 74 20 63 78 20 3d 20 t.h.=.buf_height;......int.cx.=.
19280 77 20 2f 20 32 2c 20 63 79 20 3d 20 68 20 2f 20 32 3b 00 00 00 23 20 20 69 6e 74 20 72 20 3d 20 w./.2,.cy.=.h./.2;...#..int.r.=.
192a0 28 77 20 3c 20 68 20 3f 20 77 20 3a 20 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 21 20 20 66 (w.<.h.?.w.:.h)./.2.-.10;...!..f
192c0 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 77 20 2a 20 68 3b 20 69 2b 2b 29 00 00 or.(int.i.=.0;.i.<.w.*.h;.i++)..
192e0 00 17 20 20 20 20 70 78 5b 69 5d 20 3d 20 30 78 66 66 66 66 66 66 66 66 3b 00 00 00 18 20 20 74 ......px[i].=.0xffffffff;......t
19300 69 6d 65 5f 74 20 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 20 20 20 73 74 72 75 63 ime_t.t.=.time(NULL);......struc
19320 74 20 74 6d 20 2a 74 6d 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 26 74 29 3b 00 00 00 15 20 20 64 t.tm.*tm.=.localtime(&t);......d
19340 6f 75 62 6c 65 20 68 6f 75 72 5f 61 6e 67 6c 65 20 3d 00 00 00 45 20 20 20 20 20 20 28 74 6d 2d ouble.hour_angle.=...E......(tm-
19360 3e 74 6d 5f 68 6f 75 72 20 25 20 31 32 20 2b 20 74 6d 2d 3e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e >tm_hour.%.12.+.tm->tm_min./.60.
19380 30 29 20 2a 20 4d 5f 50 49 20 2f 20 36 2e 30 20 2d 20 4d 5f 50 49 20 2f 20 32 3b 00 00 00 4f 20 0).*.M_PI./.6.0.-.M_PI./.2;...O.
193a0 20 64 6f 75 62 6c 65 20 6d 69 6e 5f 61 6e 67 6c 65 20 3d 20 28 74 6d 2d 3e 74 6d 5f 6d 69 6e 20 .double.min_angle.=.(tm->tm_min.
193c0 2b 20 74 6d 2d 3e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2a 20 4d 5f 50 49 20 2f 20 33 30 +.tm->tm_sec./.60.0).*.M_PI./.30
193e0 2e 30 20 2d 20 4d 5f 50 49 20 2f 20 32 3b 00 00 00 39 20 20 64 6f 75 62 6c 65 20 73 65 63 5f 61 .0.-.M_PI./.2;...9..double.sec_a
19400 6e 67 6c 65 20 3d 20 74 6d 2d 3e 74 6d 5f 73 65 63 20 2a 20 4d 5f 50 49 20 2f 20 33 30 2e 30 20 ngle.=.tm->tm_sec.*.M_PI./.30.0.
19420 2d 20 4d 5f 50 49 20 2f 20 32 3b 00 00 00 44 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 77 -.M_PI./.2;...D..draw_line(px,.w
19440 2c 20 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 30 2e 35 20 ,.h,.cx,.cy,.cx.+.(int)(r.*.0.5.
19460 2a 20 63 6f 73 28 68 6f 75 72 5f 61 6e 67 6c 65 29 29 2c 00 00 00 3f 20 20 20 20 20 20 20 20 20 *.cos(hour_angle)),...?.........
19480 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 30 2e 35 20 2a 20 73 69 6e 28 68 6f 75 72 ...cy.+.(int)(r.*.0.5.*.sin(hour
194a0 5f 61 6e 67 6c 65 29 29 2c 20 30 78 66 66 30 30 30 30 30 30 29 3b 00 00 00 43 20 20 64 72 61 77 _angle)),.0xff000000);...C..draw
194c0 5f 6c 69 6e 65 28 70 78 2c 20 77 2c 20 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e _line(px,.w,.h,.cx,.cy,.cx.+.(in
194e0 74 29 28 72 20 2a 20 30 2e 37 20 2a 20 63 6f 73 28 6d 69 6e 5f 61 6e 67 6c 65 29 29 2c 00 00 00 t)(r.*.0.7.*.cos(min_angle)),...
19500 3e 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 30 2e 37 20 >............cy.+.(int)(r.*.0.7.
19520 2a 20 73 69 6e 28 6d 69 6e 5f 61 6e 67 6c 65 29 29 2c 20 30 78 66 66 30 30 30 30 30 30 29 3b 00 *.sin(min_angle)),.0xff000000);.
19540 00 00 43 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 77 2c 20 68 2c 20 63 78 2c 20 63 79 2c ..C..draw_line(px,.w,.h,.cx,.cy,
19560 20 63 78 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 30 2e 39 20 2a 20 63 6f 73 28 73 65 63 5f 61 6e .cx.+.(int)(r.*.0.9.*.cos(sec_an
19580 67 6c 65 29 29 2c 00 00 00 3e 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 gle)),...>............cy.+.(int)
195a0 28 72 20 2a 20 30 2e 39 20 2a 20 73 69 6e 28 73 65 63 5f 61 6e 67 6c 65 29 29 2c 20 30 78 66 66 (r.*.0.9.*.sin(sec_angle)),.0xff
195c0 66 66 30 30 30 30 29 3b 00 00 00 2b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 ff0000);...+..wl_surface_attach(
195e0 73 75 72 66 61 63 65 2c 20 62 75 66 66 65 72 2c 20 30 2c 20 30 29 3b 00 00 00 29 20 20 77 6c 5f surface,.buffer,.0,.0);...)..wl_
19600 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 28 73 75 72 66 61 63 65 2c 20 30 2c 20 30 2c 20 77 2c surface_damage(surface,.0,.0,.w,
19620 20 68 29 3b 00 00 00 1d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 .h);......wl_surface_commit(surf
19640 61 63 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 49 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f ace);....}.......Istatic.void.to
19660 70 6c 65 76 65 6c 5f 63 6f 6e 66 69 67 75 72 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 plevel_configure(void.*data,.str
19680 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 2c 00 00 00 3d 20 uct.xdg_toplevel.*toplevel,...=.
196a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e ..............................in
196c0 74 33 32 5f 74 20 77 69 64 74 68 2c 20 69 6e 74 33 32 5f 74 20 68 65 69 67 68 74 2c 00 00 00 39 t32_t.width,.int32_t.height,...9
196e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 ...............................s
19700 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 74 61 74 65 73 29 20 7b 00 00 00 1e 20 20 69 truct.wl_array.*states).{......i
19720 66 20 28 77 69 64 74 68 20 3e 20 30 20 26 26 20 68 65 69 67 68 74 20 3e 20 30 29 00 00 00 23 20 f.(width.>.0.&&.height.>.0)...#.
19740 20 20 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 77 69 64 74 68 2c 20 68 65 69 67 68 74 ...allocate_buffer(width,.height
19760 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 );....}.......Gstatic.void.tople
19780 76 65 6c 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 vel_close(void.*data,.struct.xdg
197a0 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 29 20 7b 00 00 00 0e 20 20 72 75 6e 6e _toplevel.*toplevel).{......runn
197c0 69 6e 67 20 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 3f 73 74 61 74 69 63 20 63 6f 6e 73 ing.=.0;....}.......?static.cons
197e0 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 74 t.struct.xdg_toplevel_listener.t
19800 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 3e 20 20 20 20 2e 63 6f 6e oplevel_listener.=.{...>.....con
19820 66 69 67 75 72 65 20 3d 20 74 6f 70 6c 65 76 65 6c 5f 63 6f 6e 66 69 67 75 72 65 2c 20 2e 63 6c figure.=.toplevel_configure,..cl
19840 6f 73 65 20 3d 20 74 6f 70 6c 65 76 65 6c 5f 63 6c 6f 73 65 7d 3b 00 00 00 00 00 00 00 46 73 74 ose.=.toplevel_close};.......Fst
19860 61 74 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 atic.void.registry_handler(void.
19880 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 *data,.struct.wl_registry.*regis
198a0 74 72 79 2c 00 00 00 40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 try,...@........................
198c0 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 6e .....uint32_t.id,.const.char.*in
198e0 74 65 72 66 61 63 65 2c 00 00 00 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 terface,...0....................
19900 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 76 65 72 73 69 6f 6e 29 20 7b 00 00 00 2e .........uint32_t.version).{....
19920 20 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 ..if.(strcmp(interface,."wl_comp
19940 6f 73 69 74 6f 72 22 29 20 3d 3d 20 30 29 00 00 00 4d 20 20 20 20 63 6f 6d 70 6f 73 69 74 6f 72 ositor").==.0)...M....compositor
19960 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 .=.wl_registry_bind(registry,.id
19980 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 ,.&wl_compositor_interface,.4);.
199a0 00 00 2c 20 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 ..,..else.if.(strcmp(interface,.
199c0 22 77 6c 5f 73 68 6d 22 29 20 3d 3d 20 30 29 00 00 00 3f 20 20 20 20 73 68 6d 20 3d 20 77 6c 5f "wl_shm").==.0)...?....shm.=.wl_
199e0 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 77 6c 5f registry_bind(registry,.id,.&wl_
19a00 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 33 20 20 65 6c 73 65 20 69 66 20 shm_interface,.1);...3..else.if.
19a20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 (strcmp(interface,."xdg_wm_base"
19a40 29 20 3d 3d 20 30 29 20 7b 00 00 00 48 20 20 20 20 77 6d 5f 62 61 73 65 20 3d 20 77 6c 5f 72 65 ).==.0).{...H....wm_base.=.wl_re
19a60 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 78 64 67 5f 77 gistry_bind(registry,.id,.&xdg_w
19a80 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 3f 20 20 20 20 78 64 67 m_base_interface,.1);...?....xdg
19aa0 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 77 6d 5f 62 61 73 65 2c 20 26 _wm_base_add_listener(wm_base,.&
19ac0 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 03 20 20 7d 00 wm_base_listener,.NULL);......}.
19ae0 00 00 01 7d 00 00 00 00 00 00 00 4f 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 ...}.......Ostatic.const.struct.
19b00 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 69 73 74 72 79 5f 6c 69 wl_registry_listener.registry_li
19b20 73 74 65 6e 65 72 20 3d 20 7b 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 2c 00 00 00 44 20 stener.=.{registry_handler,...D.
19b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
19b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4e 55 4c .............................NUL
19b80 4c 7d 3b 00 00 00 00 00 00 00 0c 69 6e 74 20 6d 61 69 6e 28 29 20 7b 00 00 00 25 20 20 64 69 73 L};........int.main().{...%..dis
19ba0 70 6c 61 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b play.=.wl_display_connect(NULL);
19bc0 00 00 00 11 20 20 69 66 20 28 21 64 69 73 70 6c 61 79 29 20 7b 00 00 00 3e 20 20 20 20 66 70 72 ......if.(!display).{...>....fpr
19be0 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 46 61 69 6c 65 64 20 74 6f 20 63 6f 6e 6e 65 63 74 20 intf(stderr,."Failed.to.connect.
19c00 74 6f 20 57 61 79 6c 61 6e 64 20 64 69 73 70 6c 61 79 5c 6e 22 29 3b 00 00 00 0d 20 20 20 20 72 to.Wayland.display\n");........r
19c20 65 74 75 72 6e 20 31 3b 00 00 00 03 20 20 7d 00 00 00 2e 20 20 72 65 67 69 73 74 72 79 20 3d 20 eturn.1;......}......registry.=.
19c40 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 64 69 73 70 6c 61 79 29 wl_display_get_registry(display)
19c60 3b 00 00 00 3f 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 ;...?..wl_registry_add_listener(
19c80 72 65 67 69 73 74 72 79 2c 20 26 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 registry,.&registry_listener,.NU
19ca0 4c 4c 29 3b 00 00 00 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 LL);......wl_display_roundtrip(d
19cc0 69 73 70 6c 61 79 29 3b 00 00 00 28 20 20 69 66 20 28 21 63 6f 6d 70 6f 73 69 74 6f 72 20 7c 7c isplay);...(..if.(!compositor.||
19ce0 20 21 73 68 6d 20 7c 7c 20 21 77 6d 5f 62 61 73 65 29 20 7b 00 00 00 3a 20 20 20 20 66 70 72 69 .!shm.||.!wm_base).{...:....fpri
19d00 6e 74 66 28 73 74 64 65 72 72 2c 20 22 4d 69 73 73 69 6e 67 20 72 65 71 75 69 72 65 64 20 57 61 ntf(stderr,."Missing.required.Wa
19d20 79 6c 61 6e 64 20 67 6c 6f 62 61 6c 73 5c 6e 22 29 3b 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e yland.globals\n");........return
19d40 20 31 3b 00 00 00 03 20 20 7d 00 00 00 35 20 20 73 75 72 66 61 63 65 20 3d 20 77 6c 5f 63 6f 6d .1;......}...5..surface.=.wl_com
19d60 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 63 6f 6d 70 6f 73 69 74 6f positor_create_surface(composito
19d80 72 29 3b 00 00 00 3e 20 20 78 64 67 5f 73 75 72 66 61 63 65 20 3d 20 78 64 67 5f 77 6d 5f 62 61 r);...>..xdg_surface.=.xdg_wm_ba
19da0 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 77 6d 5f 62 61 73 65 2c 20 73 75 72 66 se_get_xdg_surface(wm_base,.surf
19dc0 61 63 65 29 3b 00 00 00 45 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 ace);...E..xdg_surface_add_liste
19de0 6e 65 72 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 26 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 ner(xdg_surface,.&xdg_surface_li
19e00 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 33 20 20 74 6f 70 6c 65 76 65 6c 20 3d 20 78 stener,.NULL);...3..toplevel.=.x
19e20 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 78 64 67 5f 73 75 72 66 dg_surface_get_toplevel(xdg_surf
19e40 61 63 65 29 3b 00 00 00 40 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 ace);...@..xdg_toplevel_add_list
19e60 65 6e 65 72 28 74 6f 70 6c 65 76 65 6c 2c 20 26 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 ener(toplevel,.&toplevel_listene
19e80 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 1d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 r,.NULL);......wl_surface_commit
19ea0 28 73 75 72 66 61 63 65 29 3b 00 00 00 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 (surface);......wl_display_round
19ec0 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 00 13 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 trip(display);......while.(runni
19ee0 6e 67 29 20 7b 00 00 00 29 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 ng).{...)....wl_display_dispatch
19f00 5f 70 65 6e 64 69 6e 67 28 64 69 73 70 6c 61 79 29 3b 00 00 00 11 20 20 20 20 64 72 61 77 5f 63 _pending(display);........draw_c
19f20 6c 6f 63 6b 28 29 3b 00 00 00 19 20 20 20 20 75 73 6c 65 65 70 28 31 30 30 30 30 30 30 20 2f 20 lock();........usleep(1000000./.
19f40 36 30 29 3b 00 00 00 03 20 20 7d 00 00 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 60);......}......return.0;....}5
19f60 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 b8 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 ................................
19f80 00 00 00 00 00 00 00 ca 16 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 30 00 .......................5._....0.
19fa0 00 00 32 00 00 00 00 00 00 00 00 00 00 00 31 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 ..2...........1.................
19fc0 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d 88 .............................i..
1a120 51 04 01 00 00 00 00 00 f5 18 00 00 00 a4 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 1a 20 20 Q...............................
1a140 20 20 74 6f 70 6c 65 76 65 6c 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 f5 18 00 00 00 a5 00 00 ..toplevel.=.xdg_surface........
1a160 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 7a 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 46 ...............z...............F
1a180 20 20 20 20 64 6f 75 62 6c 65 20 68 6f 75 72 5f 61 6e 67 6c 65 20 3d 20 28 74 6d 2d 3e 74 6d 5f ....double.hour_angle.=.(tm->tm_
1a1a0 68 6f 75 72 20 25 20 31 32 20 2b 20 74 6d 2d 3e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 20 2a hour.%.12.+.tm->tm_min./.60.0).*
1a1c0 20 4d 5f 50 49 20 f5 18 00 00 00 7b 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 .M_PI......{....................
1a1e0 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a200 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7a 00 00 00 46 00 00 00 5.......................z...F...
1a220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 f5 18 00 00 00 00 7a 00 ..............................z.
1a240 00 00 46 00 00 00 00 00 00 00 00 00 00 00 2a 00 00 00 1a 00 00 00 00 10 00 00 00 00 00 00 00 00 ..F...........*.................
1a260 00 00 00 00 00 00 00 09 00 00 00 00 00 00 f5 18 00 00 00 00 a4 00 00 00 1a 00 00 00 00 00 00 00 ................................
1a280 00 00 00 00 0a 00 00 00 01 00 00 00 00 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2f 01 00 00 ............................/...
1a2a0 00 00 00 00 35 81 5f d0 00 00 00 31 00 00 00 33 00 00 00 00 00 00 00 00 00 00 00 32 00 00 00 af ....5._....1...3...........2....
1a2c0 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a420 00 00 00 00 00 00 00 00 00 00 69 9d 88 52 04 01 00 00 00 15 00 f5 18 00 00 00 1a 00 00 00 e2 00 ..........i..R..................
1a440 00 00 af 00 00 00 94 00 00 00 30 20 20 20 20 63 68 61 72 20 74 65 6d 70 6c 61 74 65 5b 5d 20 3d ..........0....char.template[].=
1a460 20 22 2f 74 6d 70 2f 77 61 79 6c 61 6e 64 2d 73 68 6d 2d 58 58 58 58 58 58 22 3b 00 00 00 1f 20 ."/tmp/wayland-shm-XXXXXX";.....
1a480 20 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 ...int.fd.=.mkstemp(template);..
1a4a0 00 2f 20 20 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 7b 20 70 65 72 72 6f 72 28 22 6d 6b 73 74 ./....if.(fd.<.0).{.perror("mkst
1a4c0 65 6d 70 22 29 3b 20 65 78 69 74 28 31 29 3b 20 7d 00 00 00 15 20 20 20 20 75 6e 6c 69 6e 6b 28 emp");.exit(1);.}........unlink(
1a4e0 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 42 20 20 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 template);...B....if.(ftruncate(
1a500 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 20 7b 20 70 65 72 72 6f 72 28 22 66 74 72 75 6e 63 61 fd,.size).<.0).{.perror("ftrunca
1a520 74 65 22 29 3b 20 65 78 69 74 28 31 29 3b 20 7d 00 00 00 0e 20 20 20 20 72 65 74 75 72 6e 20 66 te");.exit(1);.}........return.f
1a540 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 54 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 62 61 d;....}.......Tstatic.void.wm_ba
1a560 73 65 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 se_ping(void.*data,.struct.xdg_w
1a580 6d 5f 62 61 73 65 20 2a 77 6d 5f 62 61 73 65 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c m_base.*wm_base,.uint32_t.serial
1a5a0 29 20 7b 00 00 00 26 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 5f 62 ).{...&....xdg_wm_base_pong(wm_b
1a5c0 61 73 65 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4b 73 74 61 74 69 63 ase,.serial);....}.......Kstatic
1a5e0 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e .const.struct.xdg_wm_base_listen
1a600 65 72 20 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 77 6d 5f 62 61 73 65 5f 70 er.wm_base_listener.=.{wm_base_p
1a620 69 6e 67 7d 3b 00 00 00 00 00 00 00 61 73 74 61 74 69 63 20 76 6f 69 64 20 78 64 67 5f 73 75 72 ing};.......astatic.void.xdg_sur
1a640 66 61 63 65 5f 63 6f 6e 66 69 67 75 72 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 face_configure(void.*data,.struc
1a660 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 64 67 5f 73 75 72 66 61 63 65 2c 20 75 69 6e 74 t.xdg_surface.*xdg_surface,.uint
1a680 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 33 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 32_t.serial).{...3....xdg_surfac
1a6a0 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 73 65 72 e_ack_configure(xdg_surface,.ser
1a6c0 69 61 6c 29 3b 00 00 00 1f 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 ial);........wl_surface_commit(s
1a6e0 75 72 66 61 63 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 58 73 74 61 74 69 63 20 63 6f 6e 73 urface);....}.......Xstatic.cons
1a700 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 64 t.struct.xdg_surface_listener.xd
1a720 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 78 64 67 5f 73 75 72 66 61 63 g_surface_listener.=.{xdg_surfac
1a740 65 5f 63 6f 6e 66 69 67 75 72 65 7d 3b 00 00 00 00 00 00 00 34 73 74 61 74 69 63 20 76 6f 69 64 e_configure};.......4static.void
1a760 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 69 6e 74 20 77 69 64 74 68 2c 20 69 6e 74 20 .allocate_buffer(int.width,.int.
1a780 68 65 69 67 68 74 29 20 7b 00 00 00 11 20 20 20 20 69 66 20 28 62 75 66 66 65 72 29 20 7b 00 00 height).{........if.(buffer).{..
1a7a0 00 22 20 20 20 20 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 62 75 66 66 ."........wl_buffer_destroy(buff
1a7c0 65 72 29 3b 00 00 00 33 20 20 20 20 20 20 20 20 6d 75 6e 6d 61 70 28 70 69 78 65 6c 73 2c 20 62 er);...3........munmap(pixels,.b
1a7e0 75 66 5f 77 69 64 74 68 20 2a 20 62 75 66 5f 68 65 69 67 68 74 20 2a 20 34 29 3b 00 00 00 05 20 uf_width.*.buf_height.*.4);.....
1a800 20 20 20 7d 00 00 00 16 20 20 20 20 62 75 66 5f 77 69 64 74 68 20 3d 20 77 69 64 74 68 3b 00 00 ...}........buf_width.=.width;..
1a820 00 18 20 20 20 20 62 75 66 5f 68 65 69 67 68 74 20 3d 20 68 65 69 67 68 74 3b 00 00 00 1b 20 20 ......buf_height.=.height;......
1a840 20 20 69 6e 74 20 73 74 72 69 64 65 20 3d 20 77 69 64 74 68 20 2a 20 34 3b 00 00 00 1f 20 20 20 ..int.stride.=.width.*.4;.......
1a860 20 69 6e 74 20 73 69 7a 65 20 3d 20 73 74 72 69 64 65 20 2a 20 68 65 69 67 68 74 3b 00 00 00 23 .int.size.=.stride.*.height;...#
1a880 20 20 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a ....int.fd.=.create_shm_file(siz
1a8a0 65 29 3b 00 00 00 49 20 20 20 20 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 e);...I....pixels.=.mmap(NULL,.s
1a8c0 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 ize,.PROT_READ.|.PROT_WRITE,.MAP
1a8e0 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 3a 20 20 20 20 69 66 20 28 70 69 78 65 _SHARED,.fd,.0);...:....if.(pixe
1a900 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 20 7b 20 70 65 72 72 6f 72 28 22 6d 6d 61 70 ls.==.MAP_FAILED).{.perror("mmap
1a920 22 29 3b 20 65 78 69 74 28 31 29 3b 20 7d 00 00 00 41 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f ");.exit(1);.}...A....struct.wl_
1a940 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 shm_pool.*pool.=.wl_shm_create_p
1a960 6f 6f 6c 28 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 5f 20 20 20 20 62 75 66 66 65 ool(shm,.fd,.size);..._....buffe
1a980 72 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f r.=.wl_shm_pool_create_buffer(po
1a9a0 6f 6c 2c 20 30 2c 20 77 69 64 74 68 2c 20 68 65 69 67 68 74 2c 20 73 74 72 69 64 65 2c 20 57 4c ol,.0,.width,.height,.stride,.WL
1a9c0 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 2d 20 20 20 20 77 6c _SHM_FORMAT_ARGB8888);...-....wl
1a9e0 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 73 75 72 66 61 63 65 2c 20 62 75 66 66 65 72 2c _surface_attach(surface,.buffer,
1aa00 20 30 2c 20 30 29 3b 00 00 00 1f 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 .0,.0);........wl_surface_commit
1aa20 28 73 75 72 66 61 63 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 44 73 74 61 74 69 63 20 76 6f (surface);....}.......Dstatic.vo
1aa40 69 64 20 64 72 61 77 5f 70 69 78 65 6c 28 69 6e 74 20 78 2c 20 69 6e 74 20 79 2c 20 69 6e 74 20 id.draw_pixel(int.x,.int.y,.int.
1aa60 77 2c 20 69 6e 74 20 68 2c 20 75 69 6e 74 33 32 5f 74 20 63 6f 6c 6f 72 29 20 7b 00 00 00 2b 20 w,.int.h,.uint32_t.color).{...+.
1aa80 20 20 20 69 66 20 28 78 20 3e 3d 20 30 20 26 26 20 78 20 3c 20 77 20 26 26 20 79 20 3e 3d 20 30 ...if.(x.>=.0.&&.x.<.w.&&.y.>=.0
1aaa0 20 26 26 20 79 20 3c 20 68 29 00 00 00 30 20 20 20 20 20 20 20 20 28 28 75 69 6e 74 33 32 5f 74 .&&.y.<.h)...0........((uint32_t
1aac0 20 2a 29 70 69 78 65 6c 73 29 5b 79 20 2a 20 77 20 2b 20 78 5d 20 3d 20 63 6f 6c 6f 72 3b 00 00 .*)pixels)[y.*.w.+.x].=.color;..
1aae0 00 01 7d 00 00 00 00 00 00 00 63 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 6c 69 6e 65 ..}.......cstatic.void.draw_line
1ab00 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 (uint32_t.*px,.int.w,.int.h,.int
1ab20 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 20 75 69 6e .x0,.int.y0,.int.x1,.int.y1,.uin
1ab40 74 33 32 5f 74 20 63 6f 6c 6f 72 29 20 7b 00 00 00 31 20 20 20 20 69 6e 74 20 64 78 20 3d 20 61 t32_t.color).{...1....int.dx.=.a
1ab60 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 bs(x1.-.x0),.sx.=.x0.<.x1.?.1.:.
1ab80 2d 31 3b 00 00 00 32 20 20 20 20 69 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 30 -1;...2....int.dy.=.-abs(y1.-.y0
1aba0 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 1a 20 20 20 ),.sy.=.y0.<.y1.?.1.:.-1;.......
1abc0 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 2c 20 65 32 3b 00 00 00 0f 20 20 20 20 77 .int.err.=.dx.+.dy,.e2;........w
1abe0 68 69 6c 65 20 28 31 29 20 7b 00 00 00 4c 20 20 20 20 20 20 20 20 69 66 20 28 78 30 20 3e 3d 20 hile.(1).{...L........if.(x0.>=.
1ac00 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 20 79 30 20 3c 20 68 0.&&.x0.<.w.&&.y0.>=.0.&&.y0.<.h
1ac20 29 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 63 6f 6c 6f 72 3b 00 00 00 28 20 20 ).px[y0.*.w.+.x0].=.color;...(..
1ac40 20 20 20 20 20 20 69 66 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 20 ......if.(x0.==.x1.&&.y0.==.y1).
1ac60 62 72 65 61 6b 3b 00 00 00 15 20 20 20 20 20 20 20 20 65 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 break;............e2.=.2.*.err;.
1ac80 00 00 2e 20 20 20 20 20 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 20 65 72 72 20 2b ...........if.(e2.>=.dy).{.err.+
1aca0 3d 20 64 79 3b 20 78 30 20 2b 3d 20 73 78 3b 20 7d 00 00 00 2e 20 20 20 20 20 20 20 20 69 66 20 =.dy;.x0.+=.sx;.}............if.
1acc0 28 65 32 20 3c 3d 20 64 78 29 20 7b 20 65 72 72 20 2b 3d 20 64 78 3b 20 79 30 20 2b 3d 20 73 79 (e2.<=.dx).{.err.+=.dx;.y0.+=.sy
1ace0 3b 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 5c 73 74 61 74 69 63 20 ;.}........}....}.......\static.
1ad00 76 6f 69 64 20 64 72 61 77 5f 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 void.draw_circle(uint32_t.*px,.i
1ad20 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 nt.w,.int.h,.int.cx,.int.cy,.int
1ad40 20 72 2c 20 75 69 6e 74 33 32 5f 74 20 63 6f 6c 6f 72 29 20 7b 00 00 00 15 20 20 20 20 69 6e 74 .r,.uint32_t.color).{........int
1ad60 20 78 20 3d 20 72 2c 20 79 20 3d 20 30 3b 00 00 00 10 20 20 20 20 69 6e 74 20 65 72 72 20 3d 20 .x.=.r,.y.=.0;........int.err.=.
1ad80 30 3b 00 00 00 14 20 20 20 20 77 68 69 6c 65 20 28 78 20 3e 3d 20 79 29 20 7b 00 00 00 30 20 20 0;........while.(x.>=.y).{...0..
1ada0 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2b 20 78 2c 20 63 79 20 2b 20 79 2c ......draw_pixel(cx.+.x,.cy.+.y,
1adc0 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 30 20 20 20 20 20 20 20 20 64 72 61 77 5f 70 .w,.h,.color);...0........draw_p
1ade0 69 78 65 6c 28 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 78 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 ixel(cx.+.y,.cy.+.x,.w,.h,.color
1ae00 29 3b 00 00 00 30 20 20 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2d 20 79 2c );...0........draw_pixel(cx.-.y,
1ae20 20 63 79 20 2b 20 78 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 30 20 20 20 20 20 20 .cy.+.x,.w,.h,.color);...0......
1ae40 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 2c 20 77 2c 20 ..draw_pixel(cx.-.x,.cy.+.y,.w,.
1ae60 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 30 20 20 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c h,.color);...0........draw_pixel
1ae80 28 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 (cx.-.x,.cy.-.y,.w,.h,.color);..
1aea0 00 30 20 20 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2d 20 79 2c 20 63 79 20 .0........draw_pixel(cx.-.y,.cy.
1aec0 2d 20 78 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 30 20 20 20 20 20 20 20 20 64 72 -.x,.w,.h,.color);...0........dr
1aee0 61 77 5f 70 69 78 65 6c 28 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 2c 20 77 2c 20 68 2c 20 63 aw_pixel(cx.+.y,.cy.-.x,.w,.h,.c
1af00 6f 6c 6f 72 29 3b 00 00 00 30 20 20 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 olor);...0........draw_pixel(cx.
1af20 2b 20 78 2c 20 63 79 20 2d 20 79 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 0c 20 20 +.x,.cy.-.y,.w,.h,.color);......
1af40 20 20 20 20 20 20 79 2b 2b 3b 00 00 00 29 20 20 20 20 20 20 20 20 69 66 20 28 65 72 72 20 3c 3d ......y++;...)........if.(err.<=
1af60 20 30 29 20 7b 20 65 72 72 20 2b 3d 20 32 2a 79 20 2b 20 31 3b 20 7d 00 00 00 2d 20 20 20 20 20 .0).{.err.+=.2*y.+.1;.}...-.....
1af80 20 20 20 69 66 20 28 65 72 72 20 3e 20 30 29 20 7b 20 78 2d 2d 3b 20 65 72 72 20 2d 3d 20 32 2a ...if.(err.>.0).{.x--;.err.-=.2*
1afa0 78 20 2b 20 31 3b 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 1a 73 74 x.+.1;.}........}....}........st
1afc0 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 6c 6f 63 6b 28 29 20 7b 00 00 00 18 20 20 20 20 atic.void.draw_clock().{........
1afe0 69 66 20 28 21 70 69 78 65 6c 73 29 20 72 65 74 75 72 6e 3b 00 00 00 26 20 20 20 20 69 6e 74 20 if.(!pixels).return;...&....int.
1b000 77 20 3d 20 62 75 66 5f 77 69 64 74 68 2c 20 68 20 3d 20 62 75 66 5f 68 65 69 67 68 74 3b 00 00 w.=.buf_width,.h.=.buf_height;..
1b020 00 1a 20 20 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 70 69 78 65 6c 73 3b 00 00 00 1f ......uint32_t.*px.=.pixels;....
1b040 20 20 20 20 69 6e 74 20 63 78 20 3d 20 77 20 2f 20 32 2c 20 63 79 20 3d 20 68 20 2f 20 32 3b 00 ....int.cx.=.w./.2,.cy.=.h./.2;.
1b060 00 00 25 20 20 20 20 69 6e 74 20 72 20 3d 20 28 77 20 3c 20 68 20 3f 20 77 20 3a 20 68 29 20 2f ..%....int.r.=.(w.<.h.?.w.:.h)./
1b080 20 32 20 2d 20 31 30 3b 00 00 00 37 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 .2.-.10;...7....for.(int.i.=.0;.
1b0a0 69 20 3c 20 77 20 2a 20 68 3b 20 69 2b 2b 29 20 70 78 5b 69 5d 20 3d 20 30 78 66 66 66 66 66 66 i.<.w.*.h;.i++).px[i].=.0xffffff
1b0c0 66 66 3b 00 00 00 00 00 00 00 31 20 20 20 20 64 72 61 77 5f 63 69 72 63 6c 65 28 70 78 2c 20 77 ff;.......1....draw_circle(px,.w
1b0e0 2c 20 68 2c 20 63 78 2c 20 63 79 2c 20 72 2c 20 30 78 66 66 30 30 30 30 30 30 29 3b 00 00 00 00 ,.h,.cx,.cy,.r,.0xff000000);....
1b100 00 00 00 22 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 31 32 3b 20 ..."....for.(int.i.=.0;.i.<.12;.
1b120 69 2b 2b 29 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 6c 65 20 3d i++).{.../........double.angle.=
1b140 20 69 20 2a 20 4d 5f 50 49 20 2f 20 36 2e 30 20 2d 20 4d 5f 50 49 2f 32 3b 00 00 00 2e 20 20 20 .i.*.M_PI./.6.0.-.M_PI/2;.......
1b160 20 20 20 20 20 69 6e 74 20 78 30 20 3d 20 63 78 20 2b 20 28 69 6e 74 29 28 28 72 2d 35 29 2a 63 .....int.x0.=.cx.+.(int)((r-5)*c
1b180 6f 73 28 61 6e 67 6c 65 29 29 3b 00 00 00 2e 20 20 20 20 20 20 20 20 69 6e 74 20 79 30 20 3d 20 os(angle));............int.y0.=.
1b1a0 63 79 20 2b 20 28 69 6e 74 29 28 28 72 2d 35 29 2a 73 69 6e 28 61 6e 67 6c 65 29 29 3b 00 00 00 cy.+.(int)((r-5)*sin(angle));...
1b1c0 2a 20 20 20 20 20 20 20 20 69 6e 74 20 78 31 20 3d 20 63 78 20 2b 20 28 69 6e 74 29 28 72 2a 63 *........int.x1.=.cx.+.(int)(r*c
1b1e0 6f 73 28 61 6e 67 6c 65 29 29 3b 00 00 00 2a 20 20 20 20 20 20 20 20 69 6e 74 20 79 31 20 3d 20 os(angle));...*........int.y1.=.
1b200 63 79 20 2b 20 28 69 6e 74 29 28 72 2a 73 69 6e 28 61 6e 67 6c 65 29 29 3b 00 00 00 38 20 20 20 cy.+.(int)(r*sin(angle));...8...
1b220 20 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 77 2c 20 68 2c 20 78 30 2c 20 79 30 2c .....draw_line(px,.w,.h,.x0,.y0,
1b240 20 78 31 2c 20 79 31 2c 20 30 78 66 66 30 30 30 30 30 30 29 3b 00 00 00 05 20 20 20 20 7d 00 00 .x1,.y1,.0xff000000);........}..
1b260 00 00 00 00 00 1a 20 20 20 20 74 69 6d 65 5f 74 20 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b ..........time_t.t.=.time(NULL);
1b280 00 00 00 22 20 20 20 20 73 74 72 75 63 74 20 74 6d 20 2a 74 6d 20 3d 20 6c 6f 63 61 6c 74 69 6d ..."....struct.tm.*tm.=.localtim
1b2a0 65 28 26 74 29 3b 00 00 00 55 20 20 20 20 64 6f 75 62 6c 65 20 68 6f 75 72 5f 61 6e 67 6c 65 20 e(&t);...U....double.hour_angle.
1b2c0 3d 20 28 74 6d 2d 3e 74 6d 5f 68 6f 75 72 20 25 20 31 32 20 2b 20 74 6d 2d 3e 74 6d 5f 6d 69 6e =.(tm->tm_hour.%.12.+.tm->tm_min
1b2e0 20 2f 20 36 30 2e 30 29 20 2a 20 4d 5f 50 49 20 2f 20 36 2e 30 20 2d 20 4d 5f 50 49 2f 32 3b 00 ./.60.0).*.M_PI./.6.0.-.M_PI/2;.
1b300 00 00 4f 20 20 20 20 64 6f 75 62 6c 65 20 6d 69 6e 5f 61 6e 67 6c 65 20 3d 20 28 74 6d 2d 3e 74 ..O....double.min_angle.=.(tm->t
1b320 6d 5f 6d 69 6e 20 2b 20 74 6d 2d 3e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2a 20 4d 5f 50 m_min.+.tm->tm_sec./.60.0).*.M_P
1b340 49 20 2f 20 33 30 2e 30 20 2d 20 4d 5f 50 49 2f 32 3b 00 00 00 39 20 20 20 20 64 6f 75 62 6c 65 I./.30.0.-.M_PI/2;...9....double
1b360 20 73 65 63 5f 61 6e 67 6c 65 20 3d 20 74 6d 2d 3e 74 6d 5f 73 65 63 20 2a 20 4d 5f 50 49 20 2f .sec_angle.=.tm->tm_sec.*.M_PI./
1b380 20 33 30 2e 30 20 2d 20 4d 5f 50 49 2f 32 3b 00 00 00 00 00 00 00 72 20 20 20 20 64 72 61 77 5f .30.0.-.M_PI/2;.......r....draw_
1b3a0 6c 69 6e 65 28 70 78 2c 20 77 2c 20 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 line(px,.w,.h,.cx,.cy,.cx.+.(int
1b3c0 29 28 72 2a 30 2e 35 2a 63 6f 73 28 68 6f 75 72 5f 61 6e 67 6c 65 29 29 2c 20 63 79 20 2b 20 28 )(r*0.5*cos(hour_angle)),.cy.+.(
1b3e0 69 6e 74 29 28 72 2a 30 2e 35 2a 73 69 6e 28 68 6f 75 72 5f 61 6e 67 6c 65 29 29 2c 20 30 78 66 int)(r*0.5*sin(hour_angle)),.0xf
1b400 66 30 30 30 30 30 30 29 3b 00 00 00 71 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 77 f000000);...q....draw_line(px,.w
1b420 2c 20 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 72 2a 30 2e 37 2a 63 6f ,.h,.cx,.cy,.cx.+.(int)(r*0.7*co
1b440 73 28 6d 69 6e 5f 61 6e 67 6c 65 29 29 2c 20 20 63 79 20 2b 20 28 69 6e 74 29 28 72 2a 30 2e 37 s(min_angle)),..cy.+.(int)(r*0.7
1b460 2a 73 69 6e 28 6d 69 6e 5f 61 6e 67 6c 65 29 29 2c 20 30 78 66 66 30 30 30 30 30 30 29 3b 00 00 *sin(min_angle)),.0xff000000);..
1b480 00 71 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 77 2c 20 68 2c 20 63 78 2c 20 63 79 .q....draw_line(px,.w,.h,.cx,.cy
1b4a0 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 72 2a 30 2e 39 2a 63 6f 73 28 73 65 63 5f 61 6e 67 6c 65 ,.cx.+.(int)(r*0.9*cos(sec_angle
1b4c0 29 29 2c 20 20 63 79 20 2b 20 28 69 6e 74 29 28 72 2a 30 2e 39 2a 73 69 6e 28 73 65 63 5f 61 6e )),..cy.+.(int)(r*0.9*sin(sec_an
1b4e0 67 6c 65 29 29 2c 20 30 78 66 66 66 66 30 30 30 30 29 3b 00 00 00 00 00 00 00 2d 20 20 20 20 77 gle)),.0xffff0000);.......-....w
1b500 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 73 75 72 66 61 63 65 2c 20 62 75 66 66 65 72 l_surface_attach(surface,.buffer
1b520 2c 20 30 2c 20 30 29 3b 00 00 00 2b 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 ,.0,.0);...+....wl_surface_damag
1b540 65 28 73 75 72 66 61 63 65 2c 20 30 2c 20 30 2c 20 77 2c 20 68 29 3b 00 00 00 1f 20 20 20 20 77 e(surface,.0,.0,.w,.h);........w
1b560 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 01 7d 00 l_surface_commit(surface);....}.
1b580 00 00 00 00 00 00 83 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 6c 5f 63 6f 6e 66 .......static.void.toplevel_conf
1b5a0 69 67 75 72 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 igure(void.*data,.struct.xdg_top
1b5c0 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 2c 20 69 6e 74 33 32 5f 74 20 77 69 64 74 68 2c 20 level.*toplevel,.int32_t.width,.
1b5e0 69 6e 74 33 32 5f 74 20 68 65 69 67 68 74 2c 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 int32_t.height,.struct.wl_array.
1b600 2a 73 74 61 74 65 73 29 20 7b 00 00 00 40 20 20 20 20 69 66 20 28 77 69 64 74 68 20 3e 20 30 20 *states).{...@....if.(width.>.0.
1b620 26 26 20 68 65 69 67 68 74 20 3e 20 30 29 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 77 &&.height.>.0).allocate_buffer(w
1b640 69 64 74 68 2c 20 68 65 69 67 68 74 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 56 73 74 61 74 69 idth,.height);....}.......Vstati
1b660 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 6c 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 61 74 61 c.void.toplevel_close(void.*data
1b680 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 29 ,.struct.xdg_toplevel.*toplevel)
1b6a0 20 7b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 00 00 00 00 7b 73 74 61 74 69 63 20 .{.running.=.0;.}.......{static.
1b6c0 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e const.struct.xdg_toplevel_listen
1b6e0 65 72 20 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 20 2e 63 6f 6e 66 69 67 er.toplevel_listener.=.{..config
1b700 75 72 65 20 3d 20 74 6f 70 6c 65 76 65 6c 5f 63 6f 6e 66 69 67 75 72 65 2c 20 2e 63 6c 6f 73 65 ure.=.toplevel_configure,..close
1b720 20 3d 20 74 6f 70 6c 65 76 65 6c 5f 63 6c 6f 73 65 20 7d 3b 00 00 00 00 00 00 00 7e 73 74 61 74 .=.toplevel_close.};.......~stat
1b740 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 ic.void.registry_handler(void.*d
1b760 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 ata,.struct.wl_registry.*registr
1b780 79 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 6e 74 65 y,.uint32_t.id,.const.char.*inte
1b7a0 72 66 61 63 65 2c 20 75 69 6e 74 33 32 5f 74 20 76 65 72 73 69 6f 6e 29 20 7b 00 00 00 7a 20 20 rface,.uint32_t.version).{...z..
1b7c0 20 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 ..if.(strcmp(interface,."wl_comp
1b7e0 6f 73 69 74 6f 72 22 29 20 3d 3d 20 30 29 20 63 6f 6d 70 6f 73 69 74 6f 72 20 3d 20 77 6c 5f 72 ositor").==.0).compositor.=.wl_r
1b800 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 77 6c 5f 63 egistry_bind(registry,.id,.&wl_c
1b820 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 6a 20 20 20 20 ompositor_interface,.4);...j....
1b840 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 73 else.if.(strcmp(interface,."wl_s
1b860 68 6d 22 29 20 3d 3d 20 30 29 20 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e hm").==.0).shm.=.wl_registry_bin
1b880 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 d(registry,.id,.&wl_shm_interfac
1b8a0 65 2c 20 31 29 3b 00 00 00 35 20 20 20 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e e,.1);...5....else.if.(strcmp(in
1b8c0 74 65 72 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 20 3d 3d 20 30 29 20 7b 00 terface,."xdg_wm_base").==.0).{.
1b8e0 00 00 4c 20 20 20 20 20 20 20 20 77 6d 5f 62 61 73 65 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 ..L........wm_base.=.wl_registry
1b900 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 _bind(registry,.id,.&xdg_wm_base
1b920 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 43 20 20 20 20 20 20 20 20 78 64 67 5f 77 _interface,.1);...C........xdg_w
1b940 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 77 6d 5f 62 61 73 65 2c 20 26 77 6d m_base_add_listener(wm_base,.&wm
1b960 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 05 20 20 20 20 7d 00 _base_listener,.NULL);........}.
1b980 00 00 01 7d 00 00 00 00 00 00 00 56 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 ...}.......Vstatic.const.struct.
1b9a0 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 69 73 74 72 79 5f 6c 69 wl_registry_listener.registry_li
1b9c0 73 74 65 6e 65 72 20 3d 20 7b 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 2c 20 4e 55 4c 4c stener.=.{registry_handler,.NULL
1b9e0 7d 3b 00 00 00 00 00 00 00 0c 69 6e 74 20 6d 61 69 6e 28 29 20 7b 00 00 00 27 20 20 20 20 64 69 };........int.main().{...'....di
1ba00 73 70 6c 61 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 splay.=.wl_display_connect(NULL)
1ba20 3b 00 00 00 5a 20 20 20 20 69 66 20 28 21 64 69 73 70 6c 61 79 29 20 7b 20 66 70 72 69 6e 74 66 ;...Z....if.(!display).{.fprintf
1ba40 28 73 74 64 65 72 72 2c 20 22 46 61 69 6c 65 64 20 74 6f 20 63 6f 6e 6e 65 63 74 20 74 6f 20 57 (stderr,."Failed.to.connect.to.W
1ba60 61 79 6c 61 6e 64 20 64 69 73 70 6c 61 79 5c 6e 22 29 3b 20 72 65 74 75 72 6e 20 31 3b 20 7d 00 ayland.display\n");.return.1;.}.
1ba80 00 00 30 20 20 20 20 72 65 67 69 73 74 72 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 ..0....registry.=.wl_display_get
1baa0 5f 72 65 67 69 73 74 72 79 28 64 69 73 70 6c 61 79 29 3b 00 00 00 41 20 20 20 20 77 6c 5f 72 65 _registry(display);...A....wl_re
1bac0 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 72 65 67 69 73 74 72 79 2c 20 26 72 gistry_add_listener(registry,.&r
1bae0 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 22 20 20 20 20 egistry_listener,.NULL);..."....
1bb00 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 wl_display_roundtrip(display);..
1bb20 00 64 20 20 20 20 69 66 20 28 21 63 6f 6d 70 6f 73 69 74 6f 72 20 7c 7c 20 21 73 68 6d 20 7c 7c .d....if.(!compositor.||.!shm.||
1bb40 20 21 77 6d 5f 62 61 73 65 29 20 7b 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 4d 69 .!wm_base).{.fprintf(stderr,."Mi
1bb60 73 73 69 6e 67 20 57 61 79 6c 61 6e 64 20 67 6c 6f 62 61 6c 73 5c 6e 22 29 3b 20 72 65 74 75 72 ssing.Wayland.globals\n");.retur
1bb80 6e 20 31 3b 20 7d 00 00 00 37 20 20 20 20 73 75 72 66 61 63 65 20 3d 20 77 6c 5f 63 6f 6d 70 6f n.1;.}...7....surface.=.wl_compo
1bba0 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 63 6f 6d 70 6f 73 69 74 6f 72 29 sitor_create_surface(compositor)
1bbc0 3b 00 00 00 40 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 20 3d 20 78 64 67 5f 77 6d 5f 62 61 ;...@....xdg_surface.=.xdg_wm_ba
1bbe0 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 77 6d 5f 62 61 73 65 2c 20 73 75 72 66 se_get_xdg_surface(wm_base,.surf
1bc00 61 63 65 29 3b 00 00 00 47 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 ace);...G....xdg_surface_add_lis
1bc20 74 65 6e 65 72 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 26 78 64 67 5f 73 75 72 66 61 63 65 5f tener(xdg_surface,.&xdg_surface_
1bc40 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 35 20 20 20 20 74 6f 70 6c 65 76 65 6c listener,.NULL);...5....toplevel
1bc60 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 78 64 67 5f .=.xdg_surface_get_toplevel(xdg_
1bc80 73 75 72 66 61 63 65 29 3b 00 00 00 42 20 20 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 surface);...B....xdg_toplevel_ad
1bca0 64 5f 6c 69 73 74 65 6e 65 72 28 74 6f 70 6c 65 76 65 6c 2c 20 26 74 6f 70 6c 65 76 65 6c 5f 6c d_listener(toplevel,.&toplevel_l
1bcc0 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 1f 20 20 20 20 77 6c 5f 73 75 72 66 61 63 istener,.NULL);........wl_surfac
1bce0 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 22 20 20 20 20 77 6c 5f 64 69 73 e_commit(surface);..."....wl_dis
1bd00 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 00 15 20 20 20 20 play_roundtrip(display);........
1bd20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 2d 20 20 20 20 20 20 20 20 77 6c 5f while.(running).{...-........wl_
1bd40 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 64 69 73 70 6c 61 79 display_dispatch_pending(display
1bd60 29 3b 00 00 00 15 20 20 20 20 20 20 20 20 64 72 61 77 5f 63 6c 6f 63 6b 28 29 3b 00 00 00 1d 20 );............draw_clock();.....
1bd80 20 20 20 20 20 20 20 75 73 6c 65 65 70 28 31 30 30 30 30 30 30 20 2f 20 36 30 29 3b 00 00 00 05 .......usleep(1000000./.60);....
1bda0 20 20 20 20 7d 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 30 3b 35 81 f5 18 00 00 00 00 1a 00 ....}........return.0;5.........
1bdc0 00 00 02 00 00 00 93 00 00 00 02 00 00 00 c6 00 00 00 00 00 00 00 7d 02 00 00 00 00 00 00 a5 17 ......................}.........
1bde0 00 00 00 00 00 00 cd 18 00 00 00 00 00 00 35 81 5f d0 00 00 00 32 00 00 00 34 00 00 00 00 00 00 ..............5._....2...4......
1be00 00 00 00 00 00 33 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 .....3..........................
1be20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1be40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1be60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1be80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bf00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bf20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bf40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bf60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d 89 8b 04 01 00 00 00 00 00 f5 ....................i...........
1bf80 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 e2 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 ....................&#include."x
1bfa0 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 dg-shell-client-protocol.h"....#
1bfc0 69 6e 63 6c 75 64 65 20 3c 66 63 6e 74 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d include.<fcntl.h>....#include.<m
1bfe0 61 74 68 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 ath.h>....#include.<stdio.h>....
1c000 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 #include.<stdlib.h>....#include.
1c020 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e <string.h>....#include.<sys/mman
1c040 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 .h>....#include.<time.h>....#inc
1c060 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 lude.<unistd.h>....#include.<way
1c080 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e 68 3e 00 00 00 00 00 00 00 1b 73 74 72 75 63 74 20 77 6c 5f land-client.h>........struct.wl_
1c0a0 64 69 73 70 6c 61 79 20 2a 64 69 73 70 6c 61 79 3b 00 00 00 1d 73 74 72 75 63 74 20 77 6c 5f 72 display.*display;....struct.wl_r
1c0c0 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 79 3b 00 00 00 21 73 74 72 75 63 74 20 77 6c 5f egistry.*registry;...!struct.wl_
1c0e0 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 6f 73 69 74 6f 72 3b 00 00 00 13 73 74 72 75 63 compositor.*compositor;....struc
1c100 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 1c 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f t.wl_shm.*shm;....struct.xdg_wm_
1c120 62 61 73 65 20 2a 77 6d 5f 62 61 73 65 3b 00 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 base.*wm_base;....struct.wl_surf
1c140 61 63 65 20 2a 73 75 72 66 61 63 65 3b 00 00 00 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 ace.*surface;....struct.xdg_surf
1c160 61 63 65 20 2a 78 64 67 5f 73 75 72 66 61 63 65 3b 00 00 00 1e 73 74 72 75 63 74 20 78 64 67 5f ace.*xdg_surface;....struct.xdg_
1c180 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 3b 00 00 00 00 00 00 00 17 73 74 61 74 69 toplevel.*toplevel;........stati
1c1a0 63 20 69 6e 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 27 73 74 61 74 69 63 20 73 74 72 c.int.running.=.1;...'static.str
1c1c0 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 66 65 72 20 3d 20 4e 55 4c 4c 3b 00 00 00 uct.wl_buffer.*buffer.=.NULL;...
1c1e0 1b 73 74 61 74 69 63 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 29 .static.void.*pixels.=.NULL;...)
1c200 73 74 61 74 69 63 20 69 6e 74 20 62 75 66 5f 77 69 64 74 68 20 3d 20 30 2c 20 62 75 66 5f 68 65 static.int.buf_width.=.0,.buf_he
1c220 69 67 68 74 20 3d 20 30 3b 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 ight.=.0;.......)static.int.crea
1c240 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 2e 20 20 te_shm_file(size_t.size).{......
1c260 63 68 61 72 20 74 65 6d 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 61 79 6c 61 6e 64 2d char.template[].=."/tmp/wayland-
1c280 73 68 6d 2d 58 58 58 58 58 58 22 3b 00 00 00 1d 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 shm-XXXXXX";......int.fd.=.mkste
1c2a0 6d 70 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 0f 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 7b mp(template);......if.(fd.<.0).{
1c2c0 00 00 00 16 20 20 20 20 70 65 72 72 6f 72 28 22 6d 6b 73 74 65 6d 70 22 29 3b 00 00 00 0c 20 20 ........perror("mkstemp");......
1c2e0 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 13 20 20 75 6e 6c 69 6e 6b 28 74 65 ..exit(1);......}......unlink(te
1c300 6d 70 6c 61 74 65 29 3b 00 00 00 20 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 mplate);......if.(ftruncate(fd,.
1c320 73 69 7a 65 29 20 3c 20 30 29 20 7b 00 00 00 18 20 20 20 20 70 65 72 72 6f 72 28 22 66 74 72 75 size).<.0).{........perror("ftru
1c340 6e 63 61 74 65 22 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 ncate");........exit(1);......}.
1c360 00 00 0c 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 41 73 74 61 74 .....return.fd;....}.......Astat
1c380 69 63 20 76 6f 69 64 20 77 6d 5f 62 61 73 65 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 2c ic.void.wm_base_ping(void.*data,
1c3a0 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 5f 62 61 73 65 2c 00 00 00 .struct.xdg_wm_base.*wm_base,...
1c3c0 2b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 +.........................uint32
1c3e0 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 24 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f _t.serial).{...$..xdg_wm_base_po
1c400 6e 67 28 77 6d 5f 62 61 73 65 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 ng(wm_base,.serial);....}.......
1c420 4b 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 Kstatic.const.struct.xdg_wm_base
1c440 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 77 6d _listener.wm_base_listener.=.{wm
1c460 5f 62 61 73 65 5f 70 69 6e 67 7d 3b 00 00 00 00 00 00 00 4e 73 74 61 74 69 63 20 76 6f 69 64 20 _base_ping};.......Nstatic.void.
1c480 78 64 67 5f 73 75 72 66 61 63 65 5f 63 6f 6e 66 69 67 75 72 65 28 76 6f 69 64 20 2a 64 61 74 61 xdg_surface_configure(void.*data
1c4a0 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 64 67 5f 73 75 72 66 61 63 ,.struct.xdg_surface.*xdg_surfac
1c4c0 65 2c 00 00 00 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e,...4..........................
1c4e0 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 31 20 20 ........uint32_t.serial).{...1..
1c500 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 64 67 5f 73 75 xdg_surface_ack_configure(xdg_su
1c520 72 66 61 63 65 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 1d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f rface,.serial);......wl_surface_
1c540 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 41 73 74 61 commit(surface);....}.......Asta
1c560 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 tic.const.struct.xdg_surface_lis
1c580 74 65 6e 65 72 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 tener.xdg_surface_listener.=.{..
1c5a0 00 1b 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 63 6f 6e 66 69 67 75 72 65 7d 3b 00 00 00 ......xdg_surface_configure};...
1c5c0 00 00 00 00 34 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 ....4static.void.allocate_buffer
1c5e0 28 69 6e 74 20 77 69 64 74 68 2c 20 69 6e 74 20 68 65 69 67 68 74 29 20 7b 00 00 00 0f 20 20 69 (int.width,.int.height).{......i
1c600 66 20 28 62 75 66 66 65 72 29 20 7b 00 00 00 1e 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 f.(buffer).{........wl_buffer_de
1c620 73 74 72 6f 79 28 62 75 66 66 65 72 29 3b 00 00 00 2f 20 20 20 20 6d 75 6e 6d 61 70 28 70 69 78 stroy(buffer);.../....munmap(pix
1c640 65 6c 73 2c 20 62 75 66 5f 77 69 64 74 68 20 2a 20 62 75 66 5f 68 65 69 67 68 74 20 2a 20 34 29 els,.buf_width.*.buf_height.*.4)
1c660 3b 00 00 00 03 20 20 7d 00 00 00 14 20 20 62 75 66 5f 77 69 64 74 68 20 3d 20 77 69 64 74 68 3b ;......}......buf_width.=.width;
1c680 00 00 00 16 20 20 62 75 66 5f 68 65 69 67 68 74 20 3d 20 68 65 69 67 68 74 3b 00 00 00 19 20 20 ......buf_height.=.height;......
1c6a0 69 6e 74 20 73 74 72 69 64 65 20 3d 20 77 69 64 74 68 20 2a 20 34 3b 00 00 00 1d 20 20 69 6e 74 int.stride.=.width.*.4;......int
1c6c0 20 73 69 7a 65 20 3d 20 73 74 72 69 64 65 20 2a 20 68 65 69 67 68 74 3b 00 00 00 21 20 20 69 6e .size.=.stride.*.height;...!..in
1c6e0 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 t.fd.=.create_shm_file(size);...
1c700 47 20 20 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f G..pixels.=.mmap(NULL,.size,.PRO
1c720 54 5f 52 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c T_READ.|.PROT_WRITE,.MAP_SHARED,
1c740 20 66 64 2c 20 30 29 3b 00 00 00 1d 20 20 69 66 20 28 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f .fd,.0);......if.(pixels.==.MAP_
1c760 46 41 49 4c 45 44 29 20 7b 00 00 00 13 20 20 20 20 70 65 72 72 6f 72 28 22 6d 6d 61 70 22 29 3b FAILED).{........perror("mmap");
1c780 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 3f 20 20 73 74 72 ........exit(1);......}...?..str
1c7a0 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 uct.wl_shm_pool.*pool.=.wl_shm_c
1c7c0 72 65 61 74 65 5f 70 6f 6f 6c 28 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 44 20 20 reate_pool(shm,.fd,.size);...D..
1c7e0 62 75 66 66 65 72 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 buffer.=.wl_shm_pool_create_buff
1c800 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 77 69 64 74 68 2c 20 68 65 69 67 68 74 2c 20 73 74 72 69 64 er(pool,.0,.width,.height,.strid
1c820 65 2c 00 00 00 3d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e,...=..........................
1c840 20 20 20 20 20 20 20 20 20 20 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 ...........WL_SHM_FORMAT_ARGB888
1c860 38 29 3b 00 00 00 2b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 73 75 72 66 61 8);...+..wl_surface_attach(surfa
1c880 63 65 2c 20 62 75 66 66 65 72 2c 20 30 2c 20 30 29 3b 00 00 00 1d 20 20 77 6c 5f 73 75 72 66 61 ce,.buffer,.0,.0);......wl_surfa
1c8a0 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 44 ce_commit(surface);....}.......D
1c8c0 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 70 69 78 65 6c 28 69 6e 74 20 78 2c 20 69 6e static.void.draw_pixel(int.x,.in
1c8e0 74 20 79 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 75 69 6e 74 33 32 5f 74 20 63 6f 6c 6f t.y,.int.w,.int.h,.uint32_t.colo
1c900 72 29 20 7b 00 00 00 29 20 20 69 66 20 28 78 20 3e 3d 20 30 20 26 26 20 78 20 3c 20 77 20 26 26 r).{...)..if.(x.>=.0.&&.x.<.w.&&
1c920 20 79 20 3e 3d 20 30 20 26 26 20 79 20 3c 20 68 29 00 00 00 2c 20 20 20 20 28 28 75 69 6e 74 33 .y.>=.0.&&.y.<.h)...,....((uint3
1c940 32 5f 74 20 2a 29 70 69 78 65 6c 73 29 5b 79 20 2a 20 77 20 2b 20 78 5d 20 3d 20 63 6f 6c 6f 72 2_t.*)pixels)[y.*.w.+.x].=.color
1c960 3b 00 00 00 01 7d 00 00 00 00 00 00 00 49 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 6c ;....}.......Istatic.void.draw_l
1c980 69 6e 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 ine(uint32_t.*px,.int.w,.int.h,.
1c9a0 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 78 31 2c 00 00 00 2f 20 20 20 20 20 int.x0,.int.y0,.int.x1,.../.....
1c9c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 20 79 31 2c 20 75 69 6e 74 33 32 5f .................int.y1,.uint32_
1c9e0 74 20 63 6f 6c 6f 72 29 20 7b 00 00 00 2f 20 20 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 t.color).{.../..int.dx.=.abs(x1.
1ca00 2d 20 78 30 29 2c 20 73 78 20 3d 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 -.x0),.sx.=.x0.<.x1.?.1.:.-1;...
1ca20 30 20 20 69 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 0..int.dy.=.-abs(y1.-.y0),.sy.=.
1ca40 79 30 20 3c 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 18 20 20 69 6e 74 20 65 72 72 20 3d y0.<.y1.?.1.:.-1;......int.err.=
1ca60 20 64 78 20 2b 20 64 79 2c 20 65 32 3b 00 00 00 0d 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 .dx.+.dy,.e2;......while.(1).{..
1ca80 00 2f 20 20 20 20 69 66 20 28 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 ./....if.(x0.>=.0.&&.x0.<.w.&&.y
1caa0 30 20 3e 3d 20 30 20 26 26 20 79 30 20 3c 20 68 29 00 00 00 1e 20 20 20 20 20 20 70 78 5b 79 30 0.>=.0.&&.y0.<.h)..........px[y0
1cac0 20 2a 20 77 20 2b 20 78 30 5d 20 3d 20 63 6f 6c 6f 72 3b 00 00 00 1d 20 20 20 20 69 66 20 28 78 .*.w.+.x0].=.color;........if.(x
1cae0 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 00 00 00 0c 20 20 20 20 20 20 62 72 0.==.x1.&&.y0.==.y1)..........br
1cb00 65 61 6b 3b 00 00 00 11 20 20 20 20 65 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 00 00 13 20 20 20 eak;........e2.=.2.*.err;.......
1cb20 20 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d .if.(e2.>=.dy).{..........err.+=
1cb40 20 64 79 3b 00 00 00 0f 20 20 20 20 20 20 78 30 20 2b 3d 20 73 78 3b 00 00 00 05 20 20 20 20 7d .dy;..........x0.+=.sx;........}
1cb60 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3c 3d 20 64 78 29 20 7b 00 00 00 10 20 20 20 20 20 ........if.(e2.<=.dx).{.........
1cb80 20 65 72 72 20 2b 3d 20 64 78 3b 00 00 00 0f 20 20 20 20 20 20 79 30 20 2b 3d 20 73 79 3b 00 00 .err.+=.dx;..........y0.+=.sy;..
1cba0 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 4a 73 74 61 74 69 ......}......}....}.......Jstati
1cbc0 63 20 76 6f 69 64 20 64 72 61 77 5f 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c c.void.draw_circle(uint32_t.*px,
1cbe0 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 .int.w,.int.h,.int.cx,.int.cy,.i
1cc00 6e 74 20 72 2c 00 00 00 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt.r,...).......................
1cc20 20 75 69 6e 74 33 32 5f 74 20 63 6f 6c 6f 72 29 20 7b 00 00 00 13 20 20 69 6e 74 20 78 20 3d 20 .uint32_t.color).{......int.x.=.
1cc40 72 2c 20 79 20 3d 20 30 3b 00 00 00 0e 20 20 69 6e 74 20 65 72 72 20 3d 20 30 3b 00 00 00 12 20 r,.y.=.0;......int.err.=.0;.....
1cc60 20 77 68 69 6c 65 20 28 78 20 3e 3d 20 79 29 20 7b 00 00 00 2c 20 20 20 20 64 72 61 77 5f 70 69 .while.(x.>=.y).{...,....draw_pi
1cc80 78 65 6c 28 63 78 20 2b 20 78 2c 20 63 79 20 2b 20 79 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 xel(cx.+.x,.cy.+.y,.w,.h,.color)
1cca0 3b 00 00 00 2c 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2b 20 79 2c 20 63 79 20 2b ;...,....draw_pixel(cx.+.y,.cy.+
1ccc0 20 78 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 2c 20 20 20 20 64 72 61 77 5f 70 69 .x,.w,.h,.color);...,....draw_pi
1cce0 78 65 6c 28 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 xel(cx.-.y,.cy.+.x,.w,.h,.color)
1cd00 3b 00 00 00 2c 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2d 20 78 2c 20 63 79 20 2b ;...,....draw_pixel(cx.-.x,.cy.+
1cd20 20 79 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 2c 20 20 20 20 64 72 61 77 5f 70 69 .y,.w,.h,.color);...,....draw_pi
1cd40 78 65 6c 28 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 xel(cx.-.x,.cy.-.y,.w,.h,.color)
1cd60 3b 00 00 00 2c 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2d 20 79 2c 20 63 79 20 2d ;...,....draw_pixel(cx.-.y,.cy.-
1cd80 20 78 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 2c 20 20 20 20 64 72 61 77 5f 70 69 .x,.w,.h,.color);...,....draw_pi
1cda0 78 65 6c 28 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 xel(cx.+.y,.cy.-.x,.w,.h,.color)
1cdc0 3b 00 00 00 2c 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2b 20 78 2c 20 63 79 20 2d ;...,....draw_pixel(cx.+.x,.cy.-
1cde0 20 79 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 08 20 20 20 20 79 2b 2b 3b 00 00 00 .y,.w,.h,.color);........y++;...
1ce00 13 20 20 20 20 69 66 20 28 65 72 72 20 3c 3d 20 30 29 20 7b 00 00 00 17 20 20 20 20 20 20 65 72 .....if.(err.<=.0).{..........er
1ce20 72 20 2b 3d 20 32 20 2a 20 79 20 2b 20 31 3b 00 00 00 05 20 20 20 20 7d 00 00 00 12 20 20 20 20 r.+=.2.*.y.+.1;........}........
1ce40 69 66 20 28 65 72 72 20 3e 20 30 29 20 7b 00 00 00 0a 20 20 20 20 20 20 78 2d 2d 3b 00 00 00 17 if.(err.>.0).{..........x--;....
1ce60 20 20 20 20 20 20 65 72 72 20 2d 3d 20 32 20 2a 20 78 20 2b 20 31 3b 00 00 00 05 20 20 20 20 7d ......err.-=.2.*.x.+.1;........}
1ce80 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 1a 73 74 61 74 69 63 20 76 6f 69 64 20 ......}....}........static.void.
1cea0 64 72 61 77 5f 63 6c 6f 63 6b 28 29 20 7b 00 00 00 0e 20 20 69 66 20 28 21 70 69 78 65 6c 73 29 draw_clock().{......if.(!pixels)
1cec0 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 24 20 20 69 6e 74 20 77 20 3d 20 62 75 66 ........return;...$..int.w.=.buf
1cee0 5f 77 69 64 74 68 2c 20 68 20 3d 20 62 75 66 5f 68 65 69 67 68 74 3b 00 00 00 18 20 20 75 69 6e _width,.h.=.buf_height;......uin
1cf00 74 33 32 5f 74 20 2a 70 78 20 3d 20 70 69 78 65 6c 73 3b 00 00 00 1d 20 20 69 6e 74 20 63 78 20 t32_t.*px.=.pixels;......int.cx.
1cf20 3d 20 77 20 2f 20 32 2c 20 63 79 20 3d 20 68 20 2f 20 32 3b 00 00 00 23 20 20 69 6e 74 20 72 20 =.w./.2,.cy.=.h./.2;...#..int.r.
1cf40 3d 20 28 77 20 3c 20 68 20 3f 20 77 20 3a 20 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 21 20 =.(w.<.h.?.w.:.h)./.2.-.10;...!.
1cf60 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 77 20 2a 20 68 3b 20 69 2b 2b 29 .for.(int.i.=.0;.i.<.w.*.h;.i++)
1cf80 00 00 00 17 20 20 20 20 70 78 5b 69 5d 20 3d 20 30 78 66 66 66 66 66 66 66 66 3b 00 00 00 00 00 ........px[i].=.0xffffffff;.....
1cfa0 00 00 2f 20 20 64 72 61 77 5f 63 69 72 63 6c 65 28 70 78 2c 20 77 2c 20 68 2c 20 63 78 2c 20 63 ../..draw_circle(px,.w,.h,.cx,.c
1cfc0 79 2c 20 72 2c 20 30 78 66 66 30 30 30 30 30 30 29 3b 00 00 00 00 00 00 00 20 20 20 66 6f 72 20 y,.r,.0xff000000);..........for.
1cfe0 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 31 32 3b 20 69 2b 2b 29 20 7b 00 00 00 2d 20 20 (int.i.=.0;.i.<.12;.i++).{...-..
1d000 20 20 64 6f 75 62 6c 65 20 61 6e 67 6c 65 20 3d 20 69 20 2a 20 4d 5f 50 49 20 2f 20 36 2e 30 20 ..double.angle.=.i.*.M_PI./.6.0.
1d020 2d 20 4d 5f 50 49 20 2f 20 32 3b 00 00 00 2e 20 20 20 20 69 6e 74 20 78 30 20 3d 20 63 78 20 2b -.M_PI./.2;........int.x0.=.cx.+
1d040 20 28 69 6e 74 29 28 28 72 20 2d 20 35 29 20 2a 20 63 6f 73 28 61 6e 67 6c 65 29 29 3b 00 00 00 .(int)((r.-.5).*.cos(angle));...
1d060 2e 20 20 20 20 69 6e 74 20 79 30 20 3d 20 63 79 20 2b 20 28 69 6e 74 29 28 28 72 20 2d 20 35 29 .....int.y0.=.cy.+.(int)((r.-.5)
1d080 20 2a 20 73 69 6e 28 61 6e 67 6c 65 29 29 3b 00 00 00 28 20 20 20 20 69 6e 74 20 78 31 20 3d 20 .*.sin(angle));...(....int.x1.=.
1d0a0 63 78 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 63 6f 73 28 61 6e 67 6c 65 29 29 3b 00 00 00 28 20 cx.+.(int)(r.*.cos(angle));...(.
1d0c0 20 20 20 69 6e 74 20 79 31 20 3d 20 63 79 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 73 69 6e 28 61 ...int.y1.=.cy.+.(int)(r.*.sin(a
1d0e0 6e 67 6c 65 29 29 3b 00 00 00 34 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 77 2c 20 ngle));...4....draw_line(px,.w,.
1d100 68 2c 20 78 30 2c 20 79 30 2c 20 78 31 2c 20 79 31 2c 20 30 78 66 66 30 30 30 30 30 30 29 3b 00 h,.x0,.y0,.x1,.y1,.0xff000000);.
1d120 00 00 03 20 20 7d 00 00 00 00 00 00 00 18 20 20 74 69 6d 65 5f 74 20 74 20 3d 20 74 69 6d 65 28 .....}..........time_t.t.=.time(
1d140 4e 55 4c 4c 29 3b 00 00 00 20 20 20 73 74 72 75 63 74 20 74 6d 20 2a 74 6d 20 3d 20 6c 6f 63 61 NULL);......struct.tm.*tm.=.loca
1d160 6c 74 69 6d 65 28 26 74 29 3b 00 00 00 15 20 20 64 6f 75 62 6c 65 20 68 6f 75 72 5f 61 6e 67 6c ltime(&t);......double.hour_angl
1d180 65 20 3d 00 00 00 45 20 20 20 20 20 20 28 74 6d 2d 3e 74 6d 5f 68 6f 75 72 20 25 20 31 32 20 2b e.=...E......(tm->tm_hour.%.12.+
1d1a0 20 74 6d 2d 3e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 20 2a 20 4d 5f 50 49 20 2f 20 36 2e 30 .tm->tm_min./.60.0).*.M_PI./.6.0
1d1c0 20 2d 20 4d 5f 50 49 20 2f 20 32 3b 00 00 00 4f 20 20 64 6f 75 62 6c 65 20 6d 69 6e 5f 61 6e 67 .-.M_PI./.2;...O..double.min_ang
1d1e0 6c 65 20 3d 20 28 74 6d 2d 3e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 2d 3e 74 6d 5f 73 65 63 20 2f 20 le.=.(tm->tm_min.+.tm->tm_sec./.
1d200 36 30 2e 30 29 20 2a 20 4d 5f 50 49 20 2f 20 33 30 2e 30 20 2d 20 4d 5f 50 49 20 2f 20 32 3b 00 60.0).*.M_PI./.30.0.-.M_PI./.2;.
1d220 00 00 39 20 20 64 6f 75 62 6c 65 20 73 65 63 5f 61 6e 67 6c 65 20 3d 20 74 6d 2d 3e 74 6d 5f 73 ..9..double.sec_angle.=.tm->tm_s
1d240 65 63 20 2a 20 4d 5f 50 49 20 2f 20 33 30 2e 30 20 2d 20 4d 5f 50 49 20 2f 20 32 3b 00 00 00 00 ec.*.M_PI./.30.0.-.M_PI./.2;....
1d260 00 00 00 44 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 77 2c 20 68 2c 20 63 78 2c 20 63 79 ...D..draw_line(px,.w,.h,.cx,.cy
1d280 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 30 2e 35 20 2a 20 63 6f 73 28 68 6f 75 72 5f ,.cx.+.(int)(r.*.0.5.*.cos(hour_
1d2a0 61 6e 67 6c 65 29 29 2c 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e angle)),...?............cy.+.(in
1d2c0 74 29 28 72 20 2a 20 30 2e 35 20 2a 20 73 69 6e 28 68 6f 75 72 5f 61 6e 67 6c 65 29 29 2c 20 30 t)(r.*.0.5.*.sin(hour_angle)),.0
1d2e0 78 66 66 30 30 30 30 30 30 29 3b 00 00 00 43 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 77 xff000000);...C..draw_line(px,.w
1d300 2c 20 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 30 2e 37 20 ,.h,.cx,.cy,.cx.+.(int)(r.*.0.7.
1d320 2a 20 63 6f 73 28 6d 69 6e 5f 61 6e 67 6c 65 29 29 2c 00 00 00 3e 20 20 20 20 20 20 20 20 20 20 *.cos(min_angle)),...>..........
1d340 20 20 63 79 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 30 2e 37 20 2a 20 73 69 6e 28 6d 69 6e 5f 61 ..cy.+.(int)(r.*.0.7.*.sin(min_a
1d360 6e 67 6c 65 29 29 2c 20 30 78 66 66 30 30 30 30 30 30 29 3b 00 00 00 43 20 20 64 72 61 77 5f 6c ngle)),.0xff000000);...C..draw_l
1d380 69 6e 65 28 70 78 2c 20 77 2c 20 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 ine(px,.w,.h,.cx,.cy,.cx.+.(int)
1d3a0 28 72 20 2a 20 30 2e 39 20 2a 20 63 6f 73 28 73 65 63 5f 61 6e 67 6c 65 29 29 2c 00 00 00 3e 20 (r.*.0.9.*.cos(sec_angle)),...>.
1d3c0 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 30 2e 39 20 2a 20 ...........cy.+.(int)(r.*.0.9.*.
1d3e0 73 69 6e 28 73 65 63 5f 61 6e 67 6c 65 29 29 2c 20 30 78 66 66 66 66 30 30 30 30 29 3b 00 00 00 sin(sec_angle)),.0xffff0000);...
1d400 00 00 00 00 2b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 73 75 72 66 61 63 65 ....+..wl_surface_attach(surface
1d420 2c 20 62 75 66 66 65 72 2c 20 30 2c 20 30 29 3b 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 ,.buffer,.0,.0);...)..wl_surface
1d440 5f 64 61 6d 61 67 65 28 73 75 72 66 61 63 65 2c 20 30 2c 20 30 2c 20 77 2c 20 68 29 3b 00 00 00 _damage(surface,.0,.0,.w,.h);...
1d460 1d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 ...wl_surface_commit(surface);..
1d480 00 01 7d 00 00 00 00 00 00 00 49 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 6c 5f ..}.......Istatic.void.toplevel_
1d4a0 63 6f 6e 66 69 67 75 72 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 configure(void.*data,.struct.xdg
1d4c0 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 2c 00 00 00 3d 20 20 20 20 20 20 20 20 _toplevel.*toplevel,...=........
1d4e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 33 32 5f 74 20 77 .......................int32_t.w
1d500 69 64 74 68 2c 20 69 6e 74 33 32 5f 74 20 68 65 69 67 68 74 2c 00 00 00 39 20 20 20 20 20 20 20 idth,.int32_t.height,...9.......
1d520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 ........................struct.w
1d540 6c 5f 61 72 72 61 79 20 2a 73 74 61 74 65 73 29 20 7b 00 00 00 1e 20 20 69 66 20 28 77 69 64 74 l_array.*states).{......if.(widt
1d560 68 20 3e 20 30 20 26 26 20 68 65 69 67 68 74 20 3e 20 30 29 00 00 00 23 20 20 20 20 61 6c 6c 6f h.>.0.&&.height.>.0)...#....allo
1d580 63 61 74 65 5f 62 75 66 66 65 72 28 77 69 64 74 68 2c 20 68 65 69 67 68 74 29 3b 00 00 00 01 7d cate_buffer(width,.height);....}
1d5a0 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 6c 5f 63 6c 6f .......Gstatic.void.toplevel_clo
1d5c0 73 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 se(void.*data,.struct.xdg_toplev
1d5e0 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 29 20 7b 00 00 00 0e 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 el.*toplevel).{......running.=.0
1d600 3b 00 00 00 01 7d 00 00 00 00 00 00 00 3f 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 ;....}.......?static.const.struc
1d620 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 74 6f 70 6c 65 76 65 6c t.xdg_toplevel_listener.toplevel
1d640 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 3e 20 20 20 20 2e 63 6f 6e 66 69 67 75 72 65 20 _listener.=.{...>.....configure.
1d660 3d 20 74 6f 70 6c 65 76 65 6c 5f 63 6f 6e 66 69 67 75 72 65 2c 20 2e 63 6c 6f 73 65 20 3d 20 74 =.toplevel_configure,..close.=.t
1d680 6f 70 6c 65 76 65 6c 5f 63 6c 6f 73 65 7d 3b 00 00 00 00 00 00 00 46 73 74 61 74 69 63 20 76 6f oplevel_close};.......Fstatic.vo
1d6a0 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 id.registry_handler(void.*data,.
1d6c0 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 79 2c 00 00 00 struct.wl_registry.*registry,...
1d6e0 40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 @.............................ui
1d700 6e 74 33 32 5f 74 20 69 64 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 6e 74 65 72 66 61 63 65 nt32_t.id,.const.char.*interface
1d720 2c 00 00 00 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,...0...........................
1d740 20 20 75 69 6e 74 33 32 5f 74 20 76 65 72 73 69 6f 6e 29 20 7b 00 00 00 2e 20 20 69 66 20 28 73 ..uint32_t.version).{......if.(s
1d760 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 trcmp(interface,."wl_compositor"
1d780 29 20 3d 3d 20 30 29 00 00 00 4d 20 20 20 20 63 6f 6d 70 6f 73 69 74 6f 72 20 3d 20 77 6c 5f 72 ).==.0)...M....compositor.=.wl_r
1d7a0 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 77 6c 5f 63 egistry_bind(registry,.id,.&wl_c
1d7c0 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 2c 20 20 65 6c ompositor_interface,.4);...,..el
1d7e0 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d se.if.(strcmp(interface,."wl_shm
1d800 22 29 20 3d 3d 20 30 29 00 00 00 3f 20 20 20 20 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 ").==.0)...?....shm.=.wl_registr
1d820 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 y_bind(registry,.id,.&wl_shm_int
1d840 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 33 20 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 erface,.1);...3..else.if.(strcmp
1d860 28 69 6e 74 65 72 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 20 3d 3d 20 30 29 (interface,."xdg_wm_base").==.0)
1d880 20 7b 00 00 00 48 20 20 20 20 77 6d 5f 62 61 73 65 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f .{...H....wm_base.=.wl_registry_
1d8a0 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f bind(registry,.id,.&xdg_wm_base_
1d8c0 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 3f 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 interface,.1);...?....xdg_wm_bas
1d8e0 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 77 6d 5f 62 61 73 65 2c 20 26 77 6d 5f 62 61 73 65 e_add_listener(wm_base,.&wm_base
1d900 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 _listener,.NULL);......}....}...
1d920 00 00 00 00 4f 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 ....Ostatic.const.struct.wl_regi
1d940 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 stry_listener.registry_listener.
1d960 3d 20 7b 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 2c 00 00 00 44 20 20 20 20 20 20 20 20 =.{registry_handler,...D........
1d980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1d9a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4e 55 4c 4c 7d 3b 00 00 00 00 ......................NULL};....
1d9c0 00 00 00 0c 69 6e 74 20 6d 61 69 6e 28 29 20 7b 00 00 00 25 20 20 64 69 73 70 6c 61 79 20 3d 20 ....int.main().{...%..display.=.
1d9e0 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 11 20 20 69 wl_display_connect(NULL);......i
1da00 66 20 28 21 64 69 73 70 6c 61 79 29 20 7b 00 00 00 3e 20 20 20 20 66 70 72 69 6e 74 66 28 73 74 f.(!display).{...>....fprintf(st
1da20 64 65 72 72 2c 20 22 46 61 69 6c 65 64 20 74 6f 20 63 6f 6e 6e 65 63 74 20 74 6f 20 57 61 79 6c derr,."Failed.to.connect.to.Wayl
1da40 61 6e 64 20 64 69 73 70 6c 61 79 5c 6e 22 29 3b 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 and.display\n");........return.1
1da60 3b 00 00 00 03 20 20 7d 00 00 00 2e 20 20 72 65 67 69 73 74 72 79 20 3d 20 77 6c 5f 64 69 73 70 ;......}......registry.=.wl_disp
1da80 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 64 69 73 70 6c 61 79 29 3b 00 00 00 3f 20 20 lay_get_registry(display);...?..
1daa0 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 72 65 67 69 73 74 72 wl_registry_add_listener(registr
1dac0 79 2c 20 26 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 y,.&registry_listener,.NULL);...
1dae0 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 ...wl_display_roundtrip(display)
1db00 3b 00 00 00 28 20 20 69 66 20 28 21 63 6f 6d 70 6f 73 69 74 6f 72 20 7c 7c 20 21 73 68 6d 20 7c ;...(..if.(!compositor.||.!shm.|
1db20 7c 20 21 77 6d 5f 62 61 73 65 29 20 7b 00 00 00 31 20 20 20 20 66 70 72 69 6e 74 66 28 73 74 64 |.!wm_base).{...1....fprintf(std
1db40 65 72 72 2c 20 22 4d 69 73 73 69 6e 67 20 57 61 79 6c 61 6e 64 20 67 6c 6f 62 61 6c 73 5c 6e 22 err,."Missing.Wayland.globals\n"
1db60 29 3b 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 03 20 20 7d 00 00 00 35 20 20 );........return.1;......}...5..
1db80 73 75 72 66 61 63 65 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 surface.=.wl_compositor_create_s
1dba0 75 72 66 61 63 65 28 63 6f 6d 70 6f 73 69 74 6f 72 29 3b 00 00 00 3e 20 20 78 64 67 5f 73 75 72 urface(compositor);...>..xdg_sur
1dbc0 66 61 63 65 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 face.=.xdg_wm_base_get_xdg_surfa
1dbe0 63 65 28 77 6d 5f 62 61 73 65 2c 20 73 75 72 66 61 63 65 29 3b 00 00 00 45 20 20 78 64 67 5f 73 ce(wm_base,.surface);...E..xdg_s
1dc00 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 78 64 67 5f 73 75 72 66 61 63 65 2c urface_add_listener(xdg_surface,
1dc20 20 26 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 .&xdg_surface_listener,.NULL);..
1dc40 00 33 20 20 74 6f 70 6c 65 76 65 6c 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 .3..toplevel.=.xdg_surface_get_t
1dc60 6f 70 6c 65 76 65 6c 28 78 64 67 5f 73 75 72 66 61 63 65 29 3b 00 00 00 40 20 20 78 64 67 5f 74 oplevel(xdg_surface);...@..xdg_t
1dc80 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 74 6f 70 6c 65 76 65 6c 2c 20 26 oplevel_add_listener(toplevel,.&
1dca0 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 1d 20 20 77 toplevel_listener,.NULL);......w
1dcc0 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 20 20 20 l_surface_commit(surface);......
1dce0 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 wl_display_roundtrip(display);..
1dd00 00 13 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 29 20 20 20 20 77 6c 5f ....while.(running).{...)....wl_
1dd20 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 64 69 73 70 6c 61 79 display_dispatch_pending(display
1dd40 29 3b 00 00 00 11 20 20 20 20 64 72 61 77 5f 63 6c 6f 63 6b 28 29 3b 00 00 00 19 20 20 20 20 75 );........draw_clock();........u
1dd60 73 6c 65 65 70 28 31 30 30 30 30 30 30 20 2f 20 36 30 29 3b 00 00 00 03 20 20 7d 00 00 00 0b 20 sleep(1000000./.60);......}.....
1dd80 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 e2 .return.0;....}5................
1dda0 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 58 1b 00 00 00 00 00 00 01 .......................X........
1ddc0 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 33 00 00 00 35 00 00 00 00 00 00 00 00 00 00 00 34 00 .......5._....3...5...........4.
1dde0 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1de00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1de20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1de40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1de60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1de80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1df00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1df20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1df40 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d 89 fb 04 01 00 00 00 00 00 f5 18 00 00 00 aa 00 00 .............i..................
1df60 00 00 00 00 00 00 00 00 00 01 00 00 00 01 7d f5 18 00 00 00 ab 00 00 00 00 00 00 00 00 00 00 00 ..............}.................
1df80 00 f5 18 00 00 00 97 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 36 20 20 20 20 69 66 20 28 21 ......................6....if.(!
1dfa0 64 69 73 70 6c 61 79 29 20 7b 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 46 61 69 6c display).{.fprintf(stderr,."Fail
1dfc0 65 64 20 74 6f 20 63 6f 6e 6e 65 63 74 f5 18 00 00 00 98 00 00 00 00 00 00 00 00 00 00 00 00 f5 ed.to.connect...................
1dfe0 18 00 00 00 83 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 11 20 20 20 20 69 66 20 28 77 69 64 .........................if.(wid
1e000 74 68 20 3e 20 30 f5 18 00 00 00 84 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 6b 00 00 th.>.0.......................k..
1e020 00 00 00 00 00 00 00 00 00 01 00 00 00 37 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 .............7....for.(int.i.=.0
1e040 3b 20 69 20 3c 20 77 20 2a 20 68 3b 20 69 2b 2b 29 20 70 78 5b 69 5d 20 3d 20 30 78 66 66 66 66 ;.i.<.w.*.h;.i++).px[i].=.0xffff
1e060 66 66 66 66 3b f5 18 00 00 00 6c 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 ffff;.....l.....................
1e080 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 ...............................5
1e0a0 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6b 00 00 00 37 00 00 00 00 .......................k...7....
1e0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0e 00 00 00 00 00 00 f5 18 00 00 00 00 6b 00 00 .............................k..
1e0e0 00 37 00 00 00 00 00 00 00 00 00 00 00 18 00 00 00 11 00 00 00 00 0e 00 00 00 00 00 00 00 00 00 .7..............................
1e100 00 00 00 00 00 00 05 00 00 00 00 00 00 f5 18 00 00 00 00 83 00 00 00 11 00 00 00 00 00 00 00 00 ................................
1e120 00 00 00 14 00 00 00 36 00 00 00 00 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 .......6........................
1e140 00 00 00 f5 18 00 00 00 00 97 00 00 00 36 00 00 00 00 00 00 00 00 00 00 00 13 00 00 00 01 00 00 .............6..................
1e160 00 00 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5a 03 00 00 00 00 00 00 35 81 5f d0 00 00 00 .................Z.......5._....
1e180 34 00 00 00 36 00 00 00 00 00 00 00 00 00 00 00 35 00 00 00 ab 00 00 00 00 00 00 00 00 ff ff ff 4...6...........5...............
1e1a0 ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 ...............................i
1e300 9d 89 fc 04 01 00 00 00 17 00 f5 18 00 00 00 1a 00 00 00 de 00 00 00 ab 00 00 00 90 00 00 00 30 ...............................0
1e320 20 20 20 20 63 68 61 72 20 74 65 6d 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 61 79 6c ....char.template[].=."/tmp/wayl
1e340 61 6e 64 2d 73 68 6d 2d 58 58 58 58 58 58 22 3b 00 00 00 1f 20 20 20 20 69 6e 74 20 66 64 20 3d and-shm-XXXXXX";........int.fd.=
1e360 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 2f 20 20 20 20 69 66 20 28 66 .mkstemp(template);.../....if.(f
1e380 64 20 3c 20 30 29 20 7b 20 70 65 72 72 6f 72 28 22 6d 6b 73 74 65 6d 70 22 29 3b 20 65 78 69 74 d.<.0).{.perror("mkstemp");.exit
1e3a0 28 31 29 3b 20 7d 00 00 00 15 20 20 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 (1);.}........unlink(template);.
1e3c0 00 00 42 20 20 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c ..B....if.(ftruncate(fd,.size).<
1e3e0 20 30 29 20 7b 20 70 65 72 72 6f 72 28 22 66 74 72 75 6e 63 61 74 65 22 29 3b 20 65 78 69 74 28 .0).{.perror("ftruncate");.exit(
1e400 31 29 3b 20 7d 00 00 00 0e 20 20 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 1);.}........return.fd;....}....
1e420 00 00 00 54 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 62 61 73 65 5f 70 69 6e 67 28 76 6f 69 ...Tstatic.void.wm_base_ping(voi
1e440 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 5f d.*data,.struct.xdg_wm_base.*wm_
1e460 62 61 73 65 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 26 20 20 20 20 base,.uint32_t.serial).{...&....
1e480 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 5f 62 61 73 65 2c 20 73 65 72 69 61 6c xdg_wm_base_pong(wm_base,.serial
1e4a0 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4b 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 );....}.......Kstatic.const.stru
1e4c0 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 62 61 73 65 5f ct.xdg_wm_base_listener.wm_base_
1e4e0 6c 69 73 74 65 6e 65 72 20 3d 20 7b 77 6d 5f 62 61 73 65 5f 70 69 6e 67 7d 3b 00 00 00 00 00 00 listener.=.{wm_base_ping};......
1e500 00 61 73 74 61 74 69 63 20 76 6f 69 64 20 78 64 67 5f 73 75 72 66 61 63 65 5f 63 6f 6e 66 69 67 .astatic.void.xdg_surface_config
1e520 75 72 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 ure(void.*data,.struct.xdg_surfa
1e540 63 65 20 2a 78 64 67 5f 73 75 72 66 61 63 65 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c ce.*xdg_surface,.uint32_t.serial
1e560 29 20 7b 00 00 00 33 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 ).{...3....xdg_surface_ack_confi
1e580 67 75 72 65 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 1f 20 20 gure(xdg_surface,.serial);......
1e5a0 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 ..wl_surface_commit(surface);...
1e5c0 01 7d 00 00 00 00 00 00 00 58 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 .}.......Xstatic.const.struct.xd
1e5e0 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c g_surface_listener.xdg_surface_l
1e600 69 73 74 65 6e 65 72 20 3d 20 7b 78 64 67 5f 73 75 72 66 61 63 65 5f 63 6f 6e 66 69 67 75 72 65 istener.=.{xdg_surface_configure
1e620 7d 3b 00 00 00 00 00 00 00 34 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 61 74 65 5f 62 };.......4static.void.allocate_b
1e640 75 66 66 65 72 28 69 6e 74 20 77 69 64 74 68 2c 20 69 6e 74 20 68 65 69 67 68 74 29 20 7b 00 00 uffer(int.width,.int.height).{..
1e660 00 11 20 20 20 20 69 66 20 28 62 75 66 66 65 72 29 20 7b 00 00 00 22 20 20 20 20 20 20 20 20 77 ......if.(buffer).{..."........w
1e680 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 62 75 66 66 65 72 29 3b 00 00 00 33 20 20 20 l_buffer_destroy(buffer);...3...
1e6a0 20 20 20 20 20 6d 75 6e 6d 61 70 28 70 69 78 65 6c 73 2c 20 62 75 66 5f 77 69 64 74 68 20 2a 20 .....munmap(pixels,.buf_width.*.
1e6c0 62 75 66 5f 68 65 69 67 68 74 20 2a 20 34 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 16 20 20 20 buf_height.*.4);........}.......
1e6e0 20 62 75 66 5f 77 69 64 74 68 20 3d 20 77 69 64 74 68 3b 00 00 00 18 20 20 20 20 62 75 66 5f 68 .buf_width.=.width;........buf_h
1e700 65 69 67 68 74 20 3d 20 68 65 69 67 68 74 3b 00 00 00 1b 20 20 20 20 69 6e 74 20 73 74 72 69 64 eight.=.height;........int.strid
1e720 65 20 3d 20 77 69 64 74 68 20 2a 20 34 3b 00 00 00 1f 20 20 20 20 69 6e 74 20 73 69 7a 65 20 3d e.=.width.*.4;........int.size.=
1e740 20 73 74 72 69 64 65 20 2a 20 68 65 69 67 68 74 3b 00 00 00 23 20 20 20 20 69 6e 74 20 66 64 20 .stride.*.height;...#....int.fd.
1e760 3d 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 49 20 20 20 20 =.create_shm_file(size);...I....
1e780 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 pixels.=.mmap(NULL,.size,.PROT_R
1e7a0 45 41 44 20 7c 20 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 EAD.|.PROT_WRITE,.MAP_SHARED,.fd
1e7c0 2c 20 30 29 3b 00 00 00 3a 20 20 20 20 69 66 20 28 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 ,.0);...:....if.(pixels.==.MAP_F
1e7e0 41 49 4c 45 44 29 20 7b 20 70 65 72 72 6f 72 28 22 6d 6d 61 70 22 29 3b 20 65 78 69 74 28 31 29 AILED).{.perror("mmap");.exit(1)
1e800 3b 20 7d 00 00 00 41 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 ;.}...A....struct.wl_shm_pool.*p
1e820 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 73 68 6d 2c 20 66 64 ool.=.wl_shm_create_pool(shm,.fd
1e840 2c 20 73 69 7a 65 29 3b 00 00 00 5f 20 20 20 20 62 75 66 66 65 72 20 3d 20 77 6c 5f 73 68 6d 5f ,.size);..._....buffer.=.wl_shm_
1e860 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 77 69 64 74 pool_create_buffer(pool,.0,.widt
1e880 68 2c 20 68 65 69 67 68 74 2c 20 73 74 72 69 64 65 2c 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 h,.height,.stride,.WL_SHM_FORMAT
1e8a0 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 2d 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 _ARGB8888);...-....wl_surface_at
1e8c0 74 61 63 68 28 73 75 72 66 61 63 65 2c 20 62 75 66 66 65 72 2c 20 30 2c 20 30 29 3b 00 00 00 1f tach(surface,.buffer,.0,.0);....
1e8e0 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 ....wl_surface_commit(surface);.
1e900 00 00 01 7d 00 00 00 00 00 00 00 44 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 70 69 78 ...}.......Dstatic.void.draw_pix
1e920 65 6c 28 69 6e 74 20 78 2c 20 69 6e 74 20 79 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 75 el(int.x,.int.y,.int.w,.int.h,.u
1e940 69 6e 74 33 32 5f 74 20 63 6f 6c 6f 72 29 20 7b 00 00 00 2b 20 20 20 20 69 66 20 28 78 20 3e 3d int32_t.color).{...+....if.(x.>=
1e960 20 30 20 26 26 20 78 20 3c 20 77 20 26 26 20 79 20 3e 3d 20 30 20 26 26 20 79 20 3c 20 68 29 00 .0.&&.x.<.w.&&.y.>=.0.&&.y.<.h).
1e980 00 00 30 20 20 20 20 20 20 20 20 28 28 75 69 6e 74 33 32 5f 74 20 2a 29 70 69 78 65 6c 73 29 5b ..0........((uint32_t.*)pixels)[
1e9a0 79 20 2a 20 77 20 2b 20 78 5d 20 3d 20 63 6f 6c 6f 72 3b 00 00 00 01 7d 00 00 00 00 00 00 00 63 y.*.w.+.x].=.color;....}.......c
1e9c0 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 6c 69 6e 65 28 75 69 6e 74 33 32 5f 74 20 2a static.void.draw_line(uint32_t.*
1e9e0 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 px,.int.w,.int.h,.int.x0,.int.y0
1ea00 2c 20 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 20 75 69 6e 74 33 32 5f 74 20 63 6f 6c 6f 72 ,.int.x1,.int.y1,.uint32_t.color
1ea20 29 20 7b 00 00 00 31 20 20 20 20 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 78 30 29 ).{...1....int.dx.=.abs(x1.-.x0)
1ea40 2c 20 73 78 20 3d 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 32 20 20 20 20 ,.sx.=.x0.<.x1.?.1.:.-1;...2....
1ea60 69 6e 74 20 64 79 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 20 int.dy.=.-abs(y1.-.y0),.sy.=.y0.
1ea80 3c 20 79 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 1a 20 20 20 20 69 6e 74 20 65 72 72 20 3d 20 <.y1.?.1.:.-1;........int.err.=.
1eaa0 64 78 20 2b 20 64 79 2c 20 65 32 3b 00 00 00 0f 20 20 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 dx.+.dy,.e2;........while.(1).{.
1eac0 00 00 4c 20 20 20 20 20 20 20 20 69 66 20 28 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 77 ..L........if.(x0.>=.0.&&.x0.<.w
1eae0 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 20 79 30 20 3c 20 68 29 20 70 78 5b 79 30 20 2a 20 77 .&&.y0.>=.0.&&.y0.<.h).px[y0.*.w
1eb00 20 2b 20 78 30 5d 20 3d 20 63 6f 6c 6f 72 3b 00 00 00 28 20 20 20 20 20 20 20 20 69 66 20 28 78 .+.x0].=.color;...(........if.(x
1eb20 30 20 3d 3d 20 78 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 20 62 72 65 61 6b 3b 00 00 00 15 20 0.==.x1.&&.y0.==.y1).break;.....
1eb40 20 20 20 20 20 20 20 65 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 00 00 2e 20 20 20 20 20 20 20 20 .......e2.=.2.*.err;............
1eb60 69 66 20 28 65 32 20 3e 3d 20 64 79 29 20 7b 20 65 72 72 20 2b 3d 20 64 79 3b 20 78 30 20 2b 3d if.(e2.>=.dy).{.err.+=.dy;.x0.+=
1eb80 20 73 78 3b 20 7d 00 00 00 2e 20 20 20 20 20 20 20 20 69 66 20 28 65 32 20 3c 3d 20 64 78 29 20 .sx;.}............if.(e2.<=.dx).
1eba0 7b 20 65 72 72 20 2b 3d 20 64 78 3b 20 79 30 20 2b 3d 20 73 79 3b 20 7d 00 00 00 05 20 20 20 20 {.err.+=.dx;.y0.+=.sy;.}........
1ebc0 7d 00 00 00 01 7d 00 00 00 00 00 00 00 5c 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 }....}.......\static.void.draw_c
1ebe0 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 ircle(uint32_t.*px,.int.w,.int.h
1ec00 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 20 75 69 6e 74 33 32 5f ,.int.cx,.int.cy,.int.r,.uint32_
1ec20 74 20 63 6f 6c 6f 72 29 20 7b 00 00 00 15 20 20 20 20 69 6e 74 20 78 20 3d 20 72 2c 20 79 20 3d t.color).{........int.x.=.r,.y.=
1ec40 20 30 3b 00 00 00 10 20 20 20 20 69 6e 74 20 65 72 72 20 3d 20 30 3b 00 00 00 14 20 20 20 20 77 .0;........int.err.=.0;........w
1ec60 68 69 6c 65 20 28 78 20 3e 3d 20 79 29 20 7b 00 00 00 30 20 20 20 20 20 20 20 20 64 72 61 77 5f hile.(x.>=.y).{...0........draw_
1ec80 70 69 78 65 6c 28 63 78 20 2b 20 78 2c 20 63 79 20 2b 20 79 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f pixel(cx.+.x,.cy.+.y,.w,.h,.colo
1eca0 72 29 3b 00 00 00 30 20 20 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2b 20 79 r);...0........draw_pixel(cx.+.y
1ecc0 2c 20 63 79 20 2b 20 78 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 30 20 20 20 20 20 ,.cy.+.x,.w,.h,.color);...0.....
1ece0 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 2c 20 77 2c ...draw_pixel(cx.-.y,.cy.+.x,.w,
1ed00 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 30 20 20 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 .h,.color);...0........draw_pixe
1ed20 6c 28 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 l(cx.-.x,.cy.+.y,.w,.h,.color);.
1ed40 00 00 30 20 20 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2d 20 78 2c 20 63 79 ..0........draw_pixel(cx.-.x,.cy
1ed60 20 2d 20 79 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 30 20 20 20 20 20 20 20 20 64 .-.y,.w,.h,.color);...0........d
1ed80 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 2c 20 77 2c 20 68 2c 20 raw_pixel(cx.-.y,.cy.-.x,.w,.h,.
1eda0 63 6f 6c 6f 72 29 3b 00 00 00 30 20 20 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 color);...0........draw_pixel(cx
1edc0 20 2b 20 79 2c 20 63 79 20 2d 20 78 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 30 20 .+.y,.cy.-.x,.w,.h,.color);...0.
1ede0 20 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 .......draw_pixel(cx.+.x,.cy.-.y
1ee00 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 0c 20 20 20 20 20 20 20 20 79 2b 2b 3b 00 ,.w,.h,.color);............y++;.
1ee20 00 00 29 20 20 20 20 20 20 20 20 69 66 20 28 65 72 72 20 3c 3d 20 30 29 20 7b 20 65 72 72 20 2b ..)........if.(err.<=.0).{.err.+
1ee40 3d 20 32 2a 79 20 2b 20 31 3b 20 7d 00 00 00 2d 20 20 20 20 20 20 20 20 69 66 20 28 65 72 72 20 =.2*y.+.1;.}...-........if.(err.
1ee60 3e 20 30 29 20 7b 20 78 2d 2d 3b 20 65 72 72 20 2d 3d 20 32 2a 78 20 2b 20 31 3b 20 7d 00 00 00 >.0).{.x--;.err.-=.2*x.+.1;.}...
1ee80 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 1a 73 74 61 74 69 63 20 76 6f 69 64 20 64 .....}....}........static.void.d
1eea0 72 61 77 5f 63 6c 6f 63 6b 28 29 20 7b 00 00 00 18 20 20 20 20 69 66 20 28 21 70 69 78 65 6c 73 raw_clock().{........if.(!pixels
1eec0 29 20 72 65 74 75 72 6e 3b 00 00 00 26 20 20 20 20 69 6e 74 20 77 20 3d 20 62 75 66 5f 77 69 64 ).return;...&....int.w.=.buf_wid
1eee0 74 68 2c 20 68 20 3d 20 62 75 66 5f 68 65 69 67 68 74 3b 00 00 00 1a 20 20 20 20 75 69 6e 74 33 th,.h.=.buf_height;........uint3
1ef00 32 5f 74 20 2a 70 78 20 3d 20 70 69 78 65 6c 73 3b 00 00 00 1f 20 20 20 20 69 6e 74 20 63 78 20 2_t.*px.=.pixels;........int.cx.
1ef20 3d 20 77 20 2f 20 32 2c 20 63 79 20 3d 20 68 20 2f 20 32 3b 00 00 00 25 20 20 20 20 69 6e 74 20 =.w./.2,.cy.=.h./.2;...%....int.
1ef40 72 20 3d 20 28 77 20 3c 20 68 20 3f 20 77 20 3a 20 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 r.=.(w.<.h.?.w.:.h)./.2.-.10;...
1ef60 37 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 77 20 2a 20 68 3b 20 7....for.(int.i.=.0;.i.<.w.*.h;.
1ef80 69 2b 2b 29 20 70 78 5b 69 5d 20 3d 20 30 78 66 66 66 66 66 66 66 66 3b 00 00 00 31 20 20 20 20 i++).px[i].=.0xffffffff;...1....
1efa0 64 72 61 77 5f 63 69 72 63 6c 65 28 70 78 2c 20 77 2c 20 68 2c 20 63 78 2c 20 63 79 2c 20 72 2c draw_circle(px,.w,.h,.cx,.cy,.r,
1efc0 20 30 78 66 66 30 30 30 30 30 30 29 3b 00 00 00 22 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 .0xff000000);..."....for.(int.i.
1efe0 3d 20 30 3b 20 69 20 3c 20 31 32 3b 20 69 2b 2b 29 20 7b 00 00 00 2f 20 20 20 20 20 20 20 20 64 =.0;.i.<.12;.i++).{.../........d
1f000 6f 75 62 6c 65 20 61 6e 67 6c 65 20 3d 20 69 20 2a 20 4d 5f 50 49 20 2f 20 36 2e 30 20 2d 20 4d ouble.angle.=.i.*.M_PI./.6.0.-.M
1f020 5f 50 49 2f 32 3b 00 00 00 2e 20 20 20 20 20 20 20 20 69 6e 74 20 78 30 20 3d 20 63 78 20 2b 20 _PI/2;............int.x0.=.cx.+.
1f040 28 69 6e 74 29 28 28 72 2d 35 29 2a 63 6f 73 28 61 6e 67 6c 65 29 29 3b 00 00 00 2e 20 20 20 20 (int)((r-5)*cos(angle));........
1f060 20 20 20 20 69 6e 74 20 79 30 20 3d 20 63 79 20 2b 20 28 69 6e 74 29 28 28 72 2d 35 29 2a 73 69 ....int.y0.=.cy.+.(int)((r-5)*si
1f080 6e 28 61 6e 67 6c 65 29 29 3b 00 00 00 2a 20 20 20 20 20 20 20 20 69 6e 74 20 78 31 20 3d 20 63 n(angle));...*........int.x1.=.c
1f0a0 78 20 2b 20 28 69 6e 74 29 28 72 2a 63 6f 73 28 61 6e 67 6c 65 29 29 3b 00 00 00 2a 20 20 20 20 x.+.(int)(r*cos(angle));...*....
1f0c0 20 20 20 20 69 6e 74 20 79 31 20 3d 20 63 79 20 2b 20 28 69 6e 74 29 28 72 2a 73 69 6e 28 61 6e ....int.y1.=.cy.+.(int)(r*sin(an
1f0e0 67 6c 65 29 29 3b 00 00 00 38 20 20 20 20 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 gle));...8........draw_line(px,.
1f100 77 2c 20 68 2c 20 78 30 2c 20 79 30 2c 20 78 31 2c 20 79 31 2c 20 30 78 66 66 30 30 30 30 30 30 w,.h,.x0,.y0,.x1,.y1,.0xff000000
1f120 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 1a 20 20 20 20 74 69 6d 65 5f 74 20 74 20 3d 20 74 69 );........}........time_t.t.=.ti
1f140 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 22 20 20 20 20 73 74 72 75 63 74 20 74 6d 20 2a 74 6d 20 3d me(NULL);..."....struct.tm.*tm.=
1f160 20 6c 6f 63 61 6c 74 69 6d 65 28 26 74 29 3b 00 00 00 55 20 20 20 20 64 6f 75 62 6c 65 20 68 6f .localtime(&t);...U....double.ho
1f180 75 72 5f 61 6e 67 6c 65 20 3d 20 28 74 6d 2d 3e 74 6d 5f 68 6f 75 72 20 25 20 31 32 20 2b 20 74 ur_angle.=.(tm->tm_hour.%.12.+.t
1f1a0 6d 2d 3e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 20 2a 20 4d 5f 50 49 20 2f 20 36 2e 30 20 2d m->tm_min./.60.0).*.M_PI./.6.0.-
1f1c0 20 4d 5f 50 49 2f 32 3b 00 00 00 4f 20 20 20 20 64 6f 75 62 6c 65 20 6d 69 6e 5f 61 6e 67 6c 65 .M_PI/2;...O....double.min_angle
1f1e0 20 3d 20 28 74 6d 2d 3e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 2d 3e 74 6d 5f 73 65 63 20 2f 20 36 30 .=.(tm->tm_min.+.tm->tm_sec./.60
1f200 2e 30 29 20 2a 20 4d 5f 50 49 20 2f 20 33 30 2e 30 20 2d 20 4d 5f 50 49 2f 32 3b 00 00 00 39 20 .0).*.M_PI./.30.0.-.M_PI/2;...9.
1f220 20 20 20 64 6f 75 62 6c 65 20 73 65 63 5f 61 6e 67 6c 65 20 3d 20 74 6d 2d 3e 74 6d 5f 73 65 63 ...double.sec_angle.=.tm->tm_sec
1f240 20 2a 20 4d 5f 50 49 20 2f 20 33 30 2e 30 20 2d 20 4d 5f 50 49 2f 32 3b 00 00 00 72 20 20 20 20 .*.M_PI./.30.0.-.M_PI/2;...r....
1f260 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 77 2c 20 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b draw_line(px,.w,.h,.cx,.cy,.cx.+
1f280 20 28 69 6e 74 29 28 72 2a 30 2e 35 2a 63 6f 73 28 68 6f 75 72 5f 61 6e 67 6c 65 29 29 2c 20 63 .(int)(r*0.5*cos(hour_angle)),.c
1f2a0 79 20 2b 20 28 69 6e 74 29 28 72 2a 30 2e 35 2a 73 69 6e 28 68 6f 75 72 5f 61 6e 67 6c 65 29 29 y.+.(int)(r*0.5*sin(hour_angle))
1f2c0 2c 20 30 78 66 66 30 30 30 30 30 30 29 3b 00 00 00 71 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 ,.0xff000000);...q....draw_line(
1f2e0 70 78 2c 20 77 2c 20 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 72 2a 30 px,.w,.h,.cx,.cy,.cx.+.(int)(r*0
1f300 2e 37 2a 63 6f 73 28 6d 69 6e 5f 61 6e 67 6c 65 29 29 2c 20 20 63 79 20 2b 20 28 69 6e 74 29 28 .7*cos(min_angle)),..cy.+.(int)(
1f320 72 2a 30 2e 37 2a 73 69 6e 28 6d 69 6e 5f 61 6e 67 6c 65 29 29 2c 20 30 78 66 66 30 30 30 30 30 r*0.7*sin(min_angle)),.0xff00000
1f340 30 29 3b 00 00 00 71 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 77 2c 20 68 2c 20 63 0);...q....draw_line(px,.w,.h,.c
1f360 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 72 2a 30 2e 39 2a 63 6f 73 28 73 65 63 5f x,.cy,.cx.+.(int)(r*0.9*cos(sec_
1f380 61 6e 67 6c 65 29 29 2c 20 20 63 79 20 2b 20 28 69 6e 74 29 28 72 2a 30 2e 39 2a 73 69 6e 28 73 angle)),..cy.+.(int)(r*0.9*sin(s
1f3a0 65 63 5f 61 6e 67 6c 65 29 29 2c 20 30 78 66 66 66 66 30 30 30 30 29 3b 00 00 00 2d 20 20 20 20 ec_angle)),.0xffff0000);...-....
1f3c0 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 73 75 72 66 61 63 65 2c 20 62 75 66 66 65 wl_surface_attach(surface,.buffe
1f3e0 72 2c 20 30 2c 20 30 29 3b 00 00 00 2b 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 r,.0,.0);...+....wl_surface_dama
1f400 67 65 28 73 75 72 66 61 63 65 2c 20 30 2c 20 30 2c 20 77 2c 20 68 29 3b 00 00 00 1f 20 20 20 20 ge(surface,.0,.0,.w,.h);........
1f420 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 01 7d wl_surface_commit(surface);....}
1f440 00 00 00 00 00 00 00 83 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 6c 5f 63 6f 6e ........static.void.toplevel_con
1f460 66 69 67 75 72 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f figure(void.*data,.struct.xdg_to
1f480 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 2c 20 69 6e 74 33 32 5f 74 20 77 69 64 74 68 2c plevel.*toplevel,.int32_t.width,
1f4a0 20 69 6e 74 33 32 5f 74 20 68 65 69 67 68 74 2c 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 .int32_t.height,.struct.wl_array
1f4c0 20 2a 73 74 61 74 65 73 29 20 7b 00 00 00 40 20 20 20 20 69 66 20 28 77 69 64 74 68 20 3e 20 30 .*states).{...@....if.(width.>.0
1f4e0 20 26 26 20 68 65 69 67 68 74 20 3e 20 30 29 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 .&&.height.>.0).allocate_buffer(
1f500 77 69 64 74 68 2c 20 68 65 69 67 68 74 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 56 73 74 61 74 width,.height);....}.......Vstat
1f520 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 6c 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 61 74 ic.void.toplevel_close(void.*dat
1f540 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c a,.struct.xdg_toplevel.*toplevel
1f560 29 20 7b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 00 00 00 00 7b 73 74 61 74 69 63 ).{.running.=.0;.}.......{static
1f580 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 .const.struct.xdg_toplevel_liste
1f5a0 6e 65 72 20 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 20 2e 63 6f 6e 66 69 ner.toplevel_listener.=.{..confi
1f5c0 67 75 72 65 20 3d 20 74 6f 70 6c 65 76 65 6c 5f 63 6f 6e 66 69 67 75 72 65 2c 20 2e 63 6c 6f 73 gure.=.toplevel_configure,..clos
1f5e0 65 20 3d 20 74 6f 70 6c 65 76 65 6c 5f 63 6c 6f 73 65 20 7d 3b 00 00 00 00 00 00 00 7e 73 74 61 e.=.toplevel_close.};.......~sta
1f600 74 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a tic.void.registry_handler(void.*
1f620 64 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 data,.struct.wl_registry.*regist
1f640 72 79 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 6e 74 ry,.uint32_t.id,.const.char.*int
1f660 65 72 66 61 63 65 2c 20 75 69 6e 74 33 32 5f 74 20 76 65 72 73 69 6f 6e 29 20 7b 00 00 00 7a 20 erface,.uint32_t.version).{...z.
1f680 20 20 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d ...if.(strcmp(interface,."wl_com
1f6a0 70 6f 73 69 74 6f 72 22 29 20 3d 3d 20 30 29 20 63 6f 6d 70 6f 73 69 74 6f 72 20 3d 20 77 6c 5f positor").==.0).compositor.=.wl_
1f6c0 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 77 6c 5f registry_bind(registry,.id,.&wl_
1f6e0 63 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 6a 20 20 20 compositor_interface,.4);...j...
1f700 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f .else.if.(strcmp(interface,."wl_
1f720 73 68 6d 22 29 20 3d 3d 20 30 29 20 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 shm").==.0).shm.=.wl_registry_bi
1f740 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 nd(registry,.id,.&wl_shm_interfa
1f760 63 65 2c 20 31 29 3b 00 00 00 35 20 20 20 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 ce,.1);...5....else.if.(strcmp(i
1f780 6e 74 65 72 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 20 3d 3d 20 30 29 20 7b nterface,."xdg_wm_base").==.0).{
1f7a0 00 00 00 4c 20 20 20 20 20 20 20 20 77 6d 5f 62 61 73 65 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 ...L........wm_base.=.wl_registr
1f7c0 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 y_bind(registry,.id,.&xdg_wm_bas
1f7e0 65 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 43 20 20 20 20 20 20 20 20 78 64 67 5f e_interface,.1);...C........xdg_
1f800 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 77 6d 5f 62 61 73 65 2c 20 26 77 wm_base_add_listener(wm_base,.&w
1f820 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 05 20 20 20 20 7d m_base_listener,.NULL);........}
1f840 00 00 00 01 7d 00 00 00 00 00 00 00 56 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 ....}.......Vstatic.const.struct
1f860 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 69 73 74 72 79 5f 6c .wl_registry_listener.registry_l
1f880 69 73 74 65 6e 65 72 20 3d 20 7b 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 2c 20 4e 55 4c istener.=.{registry_handler,.NUL
1f8a0 4c 7d 3b 00 00 00 00 00 00 00 0c 69 6e 74 20 6d 61 69 6e 28 29 20 7b 00 00 00 27 20 20 20 20 64 L};........int.main().{...'....d
1f8c0 69 73 70 6c 61 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c isplay.=.wl_display_connect(NULL
1f8e0 29 3b 00 00 00 5a 20 20 20 20 69 66 20 28 21 64 69 73 70 6c 61 79 29 20 7b 20 66 70 72 69 6e 74 );...Z....if.(!display).{.fprint
1f900 66 28 73 74 64 65 72 72 2c 20 22 46 61 69 6c 65 64 20 74 6f 20 63 6f 6e 6e 65 63 74 20 74 6f 20 f(stderr,."Failed.to.connect.to.
1f920 57 61 79 6c 61 6e 64 20 64 69 73 70 6c 61 79 5c 6e 22 29 3b 20 72 65 74 75 72 6e 20 31 3b 20 7d Wayland.display\n");.return.1;.}
1f940 00 00 00 30 20 20 20 20 72 65 67 69 73 74 72 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 ...0....registry.=.wl_display_ge
1f960 74 5f 72 65 67 69 73 74 72 79 28 64 69 73 70 6c 61 79 29 3b 00 00 00 41 20 20 20 20 77 6c 5f 72 t_registry(display);...A....wl_r
1f980 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 72 65 67 69 73 74 72 79 2c 20 26 egistry_add_listener(registry,.&
1f9a0 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 22 20 20 20 registry_listener,.NULL);..."...
1f9c0 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 .wl_display_roundtrip(display);.
1f9e0 00 00 64 20 20 20 20 69 66 20 28 21 63 6f 6d 70 6f 73 69 74 6f 72 20 7c 7c 20 21 73 68 6d 20 7c ..d....if.(!compositor.||.!shm.|
1fa00 7c 20 21 77 6d 5f 62 61 73 65 29 20 7b 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 4d |.!wm_base).{.fprintf(stderr,."M
1fa20 69 73 73 69 6e 67 20 57 61 79 6c 61 6e 64 20 67 6c 6f 62 61 6c 73 5c 6e 22 29 3b 20 72 65 74 75 issing.Wayland.globals\n");.retu
1fa40 72 6e 20 31 3b 20 7d 00 00 00 37 20 20 20 20 73 75 72 66 61 63 65 20 3d 20 77 6c 5f 63 6f 6d 70 rn.1;.}...7....surface.=.wl_comp
1fa60 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 63 6f 6d 70 6f 73 69 74 6f 72 ositor_create_surface(compositor
1fa80 29 3b 00 00 00 40 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 20 3d 20 78 64 67 5f 77 6d 5f 62 );...@....xdg_surface.=.xdg_wm_b
1faa0 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 77 6d 5f 62 61 73 65 2c 20 73 75 72 ase_get_xdg_surface(wm_base,.sur
1fac0 66 61 63 65 29 3b 00 00 00 47 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 face);...G....xdg_surface_add_li
1fae0 73 74 65 6e 65 72 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 26 78 64 67 5f 73 75 72 66 61 63 65 stener(xdg_surface,.&xdg_surface
1fb00 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 35 20 20 20 20 74 6f 70 6c 65 76 65 _listener,.NULL);...5....topleve
1fb20 6c 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 78 64 67 l.=.xdg_surface_get_toplevel(xdg
1fb40 5f 73 75 72 66 61 63 65 29 3b 00 00 00 42 20 20 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 _surface);...B....xdg_toplevel_a
1fb60 64 64 5f 6c 69 73 74 65 6e 65 72 28 74 6f 70 6c 65 76 65 6c 2c 20 26 74 6f 70 6c 65 76 65 6c 5f dd_listener(toplevel,.&toplevel_
1fb80 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 2f 20 20 20 20 78 64 67 5f 74 6f 70 6c listener,.NULL);.../....xdg_topl
1fba0 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 74 6f 70 6c 65 76 65 6c 2c 20 22 78 63 6c 6f 63 6b evel_set_title(toplevel,."xclock
1fbc0 22 29 3b 00 00 00 1f 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 ");........wl_surface_commit(sur
1fbe0 66 61 63 65 29 3b 00 00 00 22 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 face);..."....wl_display_roundtr
1fc00 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 00 15 20 20 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 ip(display);........while.(runni
1fc20 6e 67 29 20 7b 00 00 00 2d 20 20 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 ng).{...-........wl_display_disp
1fc40 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 64 69 73 70 6c 61 79 29 3b 00 00 00 15 20 20 20 20 20 20 atch_pending(display);..........
1fc60 20 20 64 72 61 77 5f 63 6c 6f 63 6b 28 29 3b 00 00 00 1d 20 20 20 20 20 20 20 20 75 73 6c 65 65 ..draw_clock();............uslee
1fc80 70 28 31 30 30 30 30 30 30 20 2f 20 36 30 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 0d 20 20 20 p(1000000./.60);........}.......
1fca0 20 72 65 74 75 72 6e 20 30 3b 35 81 f5 18 00 00 00 00 1a 00 00 00 02 00 00 00 8f 00 00 00 02 00 .return.0;5.....................
1fcc0 00 00 c2 00 00 00 00 00 00 00 7d 02 00 00 00 00 00 00 d0 17 00 00 00 00 00 00 f6 18 00 00 00 00 ..........}.....................
1fce0 00 00 35 81 5f d0 00 00 00 35 00 00 00 37 00 00 00 00 00 00 00 00 00 00 00 36 00 00 00 01 00 00 ..5._....5...7...........6......
1fd00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fd20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fd40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fdc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fe00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fe20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fe40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fe60 00 00 00 00 00 00 00 00 69 9d 8a 75 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 ........i..u....................
1fe80 00 00 00 00 de 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c 2d 63 6c 69 ........&#include."xdg-shell-cli
1fea0 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 66 63 6e ent-protocol.h"....#include.<fcn
1fec0 74 6c 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 12 23 69 tl.h>....#include.<math.h>....#i
1fee0 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 nclude.<stdio.h>....#include.<st
1ff00 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 dlib.h>....#include.<string.h>..
1ff20 00 15 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 11 23 69 6e 63 6c ..#include.<sys/mman.h>....#incl
1ff40 75 64 65 20 3c 74 69 6d 65 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 74 64 ude.<time.h>....#include.<unistd
1ff60 2e 68 3e 00 00 00 1b 23 69 6e 63 6c 75 64 65 20 3c 77 61 79 6c 61 6e 64 2d 63 6c 69 65 6e 74 2e .h>....#include.<wayland-client.
1ff80 68 3e 00 00 00 00 00 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 69 73 h>........struct.wl_display.*dis
1ffa0 70 6c 61 79 3b 00 00 00 1d 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 play;....struct.wl_registry.*reg
1ffc0 69 73 74 72 79 3b 00 00 00 21 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a istry;...!struct.wl_compositor.*
1ffe0 63 6f 6d 70 6f 73 69 74 6f 72 3b 00 00 00 13 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 compositor;....struct.wl_shm.*sh
20000 6d 3b 00 00 00 1c 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 5f 62 61 73 m;....struct.xdg_wm_base.*wm_bas
20020 65 3b 00 00 00 1b 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 73 75 72 66 61 63 65 e;....struct.wl_surface.*surface
20040 3b 00 00 00 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 64 67 5f 73 75 72 ;....struct.xdg_surface.*xdg_sur
20060 66 61 63 65 3b 00 00 00 1e 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f face;....struct.xdg_toplevel.*to
20080 70 6c 65 76 65 6c 3b 00 00 00 00 00 00 00 17 73 74 61 74 69 63 20 69 6e 74 20 72 75 6e 6e 69 6e plevel;........static.int.runnin
200a0 67 20 3d 20 31 3b 00 00 00 27 73 74 61 74 69 63 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 g.=.1;...'static.struct.wl_buffe
200c0 72 20 2a 62 75 66 66 65 72 20 3d 20 4e 55 4c 4c 3b 00 00 00 1b 73 74 61 74 69 63 20 76 6f 69 64 r.*buffer.=.NULL;....static.void
200e0 20 2a 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 62 .*pixels.=.NULL;...)static.int.b
20100 75 66 5f 77 69 64 74 68 20 3d 20 30 2c 20 62 75 66 5f 68 65 69 67 68 74 20 3d 20 30 3b 00 00 00 uf_width.=.0,.buf_height.=.0;...
20120 00 00 00 00 29 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 5f 66 69 6c 65 28 ....)static.int.create_shm_file(
20140 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 2e 20 20 63 68 61 72 20 74 65 6d 70 6c 61 74 size_t.size).{......char.templat
20160 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 61 79 6c 61 6e 64 2d 73 68 6d 2d 58 58 58 58 58 58 22 3b e[].=."/tmp/wayland-shm-XXXXXX";
20180 00 00 00 1d 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 65 6d 70 6c 61 74 65 29 ......int.fd.=.mkstemp(template)
201a0 3b 00 00 00 0f 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 7b 00 00 00 16 20 20 20 20 70 65 72 72 ;......if.(fd.<.0).{........perr
201c0 6f 72 28 22 6d 6b 73 74 65 6d 70 22 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 or("mkstemp");........exit(1);..
201e0 00 03 20 20 7d 00 00 00 13 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 20 ....}......unlink(template);....
20200 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 20 7b ..if.(ftruncate(fd,.size).<.0).{
20220 00 00 00 18 20 20 20 20 70 65 72 72 6f 72 28 22 66 74 72 75 6e 63 61 74 65 22 29 3b 00 00 00 0c ........perror("ftruncate");....
20240 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 0c 20 20 72 65 74 75 72 6e 20 ....exit(1);......}......return.
20260 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 62 fd;....}.......Astatic.void.wm_b
20280 61 73 65 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f ase_ping(void.*data,.struct.xdg_
202a0 77 6d 5f 62 61 73 65 20 2a 77 6d 5f 62 61 73 65 2c 00 00 00 2b 20 20 20 20 20 20 20 20 20 20 20 wm_base.*wm_base,...+...........
202c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b ..............uint32_t.serial).{
202e0 00 00 00 24 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 5f 62 61 73 65 2c 20 ...$..xdg_wm_base_pong(wm_base,.
20300 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 4b 73 74 61 74 69 63 20 63 6f 6e 73 serial);....}.......Kstatic.cons
20320 74 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d t.struct.xdg_wm_base_listener.wm
20340 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 77 6d 5f 62 61 73 65 5f 70 69 6e 67 7d 3b _base_listener.=.{wm_base_ping};
20360 00 00 00 00 00 00 00 4e 73 74 61 74 69 63 20 76 6f 69 64 20 78 64 67 5f 73 75 72 66 61 63 65 5f .......Nstatic.void.xdg_surface_
20380 63 6f 6e 66 69 67 75 72 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 configure(void.*data,.struct.xdg
203a0 5f 73 75 72 66 61 63 65 20 2a 78 64 67 5f 73 75 72 66 61 63 65 2c 00 00 00 34 20 20 20 20 20 20 _surface.*xdg_surface,...4......
203c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 ............................uint
203e0 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 31 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 32_t.serial).{...1..xdg_surface_
20400 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 64 67 5f 73 75 72 66 61 63 65 2c 20 73 65 72 69 61 ack_configure(xdg_surface,.seria
20420 6c 29 3b 00 00 00 1d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 l);......wl_surface_commit(surfa
20440 63 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 41 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 ce);....}.......Astatic.const.st
20460 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 64 67 5f 73 75 ruct.xdg_surface_listener.xdg_su
20480 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 1b 20 20 20 20 78 64 67 5f 73 75 rface_listener.=.{........xdg_su
204a0 72 66 61 63 65 5f 63 6f 6e 66 69 67 75 72 65 7d 3b 00 00 00 00 00 00 00 34 73 74 61 74 69 63 20 rface_configure};.......4static.
204c0 76 6f 69 64 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 69 6e 74 20 77 69 64 74 68 2c 20 void.allocate_buffer(int.width,.
204e0 69 6e 74 20 68 65 69 67 68 74 29 20 7b 00 00 00 0f 20 20 69 66 20 28 62 75 66 66 65 72 29 20 7b int.height).{......if.(buffer).{
20500 00 00 00 1e 20 20 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 62 75 66 66 65 72 ........wl_buffer_destroy(buffer
20520 29 3b 00 00 00 2f 20 20 20 20 6d 75 6e 6d 61 70 28 70 69 78 65 6c 73 2c 20 62 75 66 5f 77 69 64 );.../....munmap(pixels,.buf_wid
20540 74 68 20 2a 20 62 75 66 5f 68 65 69 67 68 74 20 2a 20 34 29 3b 00 00 00 03 20 20 7d 00 00 00 14 th.*.buf_height.*.4);......}....
20560 20 20 62 75 66 5f 77 69 64 74 68 20 3d 20 77 69 64 74 68 3b 00 00 00 16 20 20 62 75 66 5f 68 65 ..buf_width.=.width;......buf_he
20580 69 67 68 74 20 3d 20 68 65 69 67 68 74 3b 00 00 00 19 20 20 69 6e 74 20 73 74 72 69 64 65 20 3d ight.=.height;......int.stride.=
205a0 20 77 69 64 74 68 20 2a 20 34 3b 00 00 00 1d 20 20 69 6e 74 20 73 69 7a 65 20 3d 20 73 74 72 69 .width.*.4;......int.size.=.stri
205c0 64 65 20 2a 20 68 65 69 67 68 74 3b 00 00 00 21 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 de.*.height;...!..int.fd.=.creat
205e0 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 47 20 20 70 69 78 65 6c 73 20 3d 20 e_shm_file(size);...G..pixels.=.
20600 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 50 52 4f mmap(NULL,.size,.PROT_READ.|.PRO
20620 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 1d T_WRITE,.MAP_SHARED,.fd,.0);....
20640 20 20 69 66 20 28 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 20 7b 00 00 00 ..if.(pixels.==.MAP_FAILED).{...
20660 13 20 20 20 20 70 65 72 72 6f 72 28 22 6d 6d 61 70 22 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 .....perror("mmap");........exit
20680 28 31 29 3b 00 00 00 03 20 20 7d 00 00 00 3f 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 (1);......}...?..struct.wl_shm_p
206a0 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 73 ool.*pool.=.wl_shm_create_pool(s
206c0 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 44 20 20 62 75 66 66 65 72 20 3d 20 77 6c 5f hm,.fd,.size);...D..buffer.=.wl_
206e0 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 shm_pool_create_buffer(pool,.0,.
20700 77 69 64 74 68 2c 20 68 65 69 67 68 74 2c 20 73 74 72 69 64 65 2c 00 00 00 3d 20 20 20 20 20 20 width,.height,.stride,...=......
20720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 57 ...............................W
20740 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 38 38 38 29 3b 00 00 00 2b 20 20 77 6c 5f L_SHM_FORMAT_ARGB8888);...+..wl_
20760 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 73 75 72 66 61 63 65 2c 20 62 75 66 66 65 72 2c 20 surface_attach(surface,.buffer,.
20780 30 2c 20 30 29 3b 00 00 00 1d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 0,.0);......wl_surface_commit(su
207a0 72 66 61 63 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 44 73 74 61 74 69 63 20 76 6f 69 64 20 rface);....}.......Dstatic.void.
207c0 64 72 61 77 5f 70 69 78 65 6c 28 69 6e 74 20 78 2c 20 69 6e 74 20 79 2c 20 69 6e 74 20 77 2c 20 draw_pixel(int.x,.int.y,.int.w,.
207e0 69 6e 74 20 68 2c 20 75 69 6e 74 33 32 5f 74 20 63 6f 6c 6f 72 29 20 7b 00 00 00 29 20 20 69 66 int.h,.uint32_t.color).{...)..if
20800 20 28 78 20 3e 3d 20 30 20 26 26 20 78 20 3c 20 77 20 26 26 20 79 20 3e 3d 20 30 20 26 26 20 79 .(x.>=.0.&&.x.<.w.&&.y.>=.0.&&.y
20820 20 3c 20 68 29 00 00 00 2c 20 20 20 20 28 28 75 69 6e 74 33 32 5f 74 20 2a 29 70 69 78 65 6c 73 .<.h)...,....((uint32_t.*)pixels
20840 29 5b 79 20 2a 20 77 20 2b 20 78 5d 20 3d 20 63 6f 6c 6f 72 3b 00 00 00 01 7d 00 00 00 00 00 00 )[y.*.w.+.x].=.color;....}......
20860 00 49 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 6c 69 6e 65 28 75 69 6e 74 33 32 5f 74 .Istatic.void.draw_line(uint32_t
20880 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 .*px,.int.w,.int.h,.int.x0,.int.
208a0 79 30 2c 20 69 6e 74 20 78 31 2c 00 00 00 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y0,.int.x1,.../.................
208c0 20 20 20 20 20 69 6e 74 20 79 31 2c 20 75 69 6e 74 33 32 5f 74 20 63 6f 6c 6f 72 29 20 7b 00 00 .....int.y1,.uint32_t.color).{..
208e0 00 2f 20 20 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 20 3d 20 ./..int.dx.=.abs(x1.-.x0),.sx.=.
20900 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 30 20 20 69 6e 74 20 64 79 20 3d 20 x0.<.x1.?.1.:.-1;...0..int.dy.=.
20920 2d 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 31 20 -abs(y1.-.y0),.sy.=.y0.<.y1.?.1.
20940 3a 20 2d 31 3b 00 00 00 18 20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 79 2c 20 65 32 :.-1;......int.err.=.dx.+.dy,.e2
20960 3b 00 00 00 0d 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 2f 20 20 20 20 69 66 20 28 78 30 ;......while.(1).{.../....if.(x0
20980 20 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 20 3e 3d 20 30 20 26 26 20 79 30 .>=.0.&&.x0.<.w.&&.y0.>=.0.&&.y0
209a0 20 3c 20 68 29 00 00 00 1e 20 20 20 20 20 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d 20 3d .<.h)..........px[y0.*.w.+.x0].=
209c0 20 63 6f 6c 6f 72 3b 00 00 00 1d 20 20 20 20 69 66 20 28 78 30 20 3d 3d 20 78 31 20 26 26 20 79 .color;........if.(x0.==.x1.&&.y
209e0 30 20 3d 3d 20 79 31 29 00 00 00 0c 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 11 20 20 20 20 0.==.y1)..........break;........
20a00 65 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 00 00 13 20 20 20 20 69 66 20 28 65 32 20 3e 3d 20 64 e2.=.2.*.err;........if.(e2.>=.d
20a20 79 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 79 3b 00 00 00 0f 20 20 20 20 y).{..........err.+=.dy;........
20a40 20 20 78 30 20 2b 3d 20 73 78 3b 00 00 00 05 20 20 20 20 7d 00 00 00 13 20 20 20 20 69 66 20 28 ..x0.+=.sx;........}........if.(
20a60 65 32 20 3c 3d 20 64 78 29 20 7b 00 00 00 10 20 20 20 20 20 20 65 72 72 20 2b 3d 20 64 78 3b 00 e2.<=.dx).{..........err.+=.dx;.
20a80 00 00 0f 20 20 20 20 20 20 79 30 20 2b 3d 20 73 79 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 .........y0.+=.sy;........}.....
20aa0 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f .}....}.......Jstatic.void.draw_
20ac0 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 circle(uint32_t.*px,.int.w,.int.
20ae0 68 2c 20 69 6e 74 20 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 00 00 00 29 20 20 20 h,.int.cx,.int.cy,.int.r,...)...
20b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 6f .....................uint32_t.co
20b20 6c 6f 72 29 20 7b 00 00 00 13 20 20 69 6e 74 20 78 20 3d 20 72 2c 20 79 20 3d 20 30 3b 00 00 00 lor).{......int.x.=.r,.y.=.0;...
20b40 0e 20 20 69 6e 74 20 65 72 72 20 3d 20 30 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 78 20 3e 3d ...int.err.=.0;......while.(x.>=
20b60 20 79 29 20 7b 00 00 00 2c 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2b 20 78 2c 20 .y).{...,....draw_pixel(cx.+.x,.
20b80 63 79 20 2b 20 79 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 2c 20 20 20 20 64 72 61 cy.+.y,.w,.h,.color);...,....dra
20ba0 77 5f 70 69 78 65 6c 28 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 78 2c 20 77 2c 20 68 2c 20 63 6f w_pixel(cx.+.y,.cy.+.x,.w,.h,.co
20bc0 6c 6f 72 29 3b 00 00 00 2c 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2d 20 79 2c 20 lor);...,....draw_pixel(cx.-.y,.
20be0 63 79 20 2b 20 78 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 2c 20 20 20 20 64 72 61 cy.+.x,.w,.h,.color);...,....dra
20c00 77 5f 70 69 78 65 6c 28 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 2c 20 77 2c 20 68 2c 20 63 6f w_pixel(cx.-.x,.cy.+.y,.w,.h,.co
20c20 6c 6f 72 29 3b 00 00 00 2c 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2d 20 78 2c 20 lor);...,....draw_pixel(cx.-.x,.
20c40 63 79 20 2d 20 79 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 2c 20 20 20 20 64 72 61 cy.-.y,.w,.h,.color);...,....dra
20c60 77 5f 70 69 78 65 6c 28 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 2c 20 77 2c 20 68 2c 20 63 6f w_pixel(cx.-.y,.cy.-.x,.w,.h,.co
20c80 6c 6f 72 29 3b 00 00 00 2c 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2b 20 79 2c 20 lor);...,....draw_pixel(cx.+.y,.
20ca0 63 79 20 2d 20 78 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 2c 20 20 20 20 64 72 61 cy.-.x,.w,.h,.color);...,....dra
20cc0 77 5f 70 69 78 65 6c 28 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 2c 20 77 2c 20 68 2c 20 63 6f w_pixel(cx.+.x,.cy.-.y,.w,.h,.co
20ce0 6c 6f 72 29 3b 00 00 00 08 20 20 20 20 79 2b 2b 3b 00 00 00 13 20 20 20 20 69 66 20 28 65 72 72 lor);........y++;........if.(err
20d00 20 3c 3d 20 30 29 20 7b 00 00 00 17 20 20 20 20 20 20 65 72 72 20 2b 3d 20 32 20 2a 20 79 20 2b .<=.0).{..........err.+=.2.*.y.+
20d20 20 31 3b 00 00 00 05 20 20 20 20 7d 00 00 00 12 20 20 20 20 69 66 20 28 65 72 72 20 3e 20 30 29 .1;........}........if.(err.>.0)
20d40 20 7b 00 00 00 0a 20 20 20 20 20 20 78 2d 2d 3b 00 00 00 17 20 20 20 20 20 20 65 72 72 20 2d 3d .{..........x--;..........err.-=
20d60 20 32 20 2a 20 78 20 2b 20 31 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d .2.*.x.+.1;........}......}....}
20d80 00 00 00 00 00 00 00 1a 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 6c 6f 63 6b 28 29 ........static.void.draw_clock()
20da0 20 7b 00 00 00 0e 20 20 69 66 20 28 21 70 69 78 65 6c 73 29 00 00 00 0b 20 20 20 20 72 65 74 75 .{......if.(!pixels)........retu
20dc0 72 6e 3b 00 00 00 24 20 20 69 6e 74 20 77 20 3d 20 62 75 66 5f 77 69 64 74 68 2c 20 68 20 3d 20 rn;...$..int.w.=.buf_width,.h.=.
20de0 62 75 66 5f 68 65 69 67 68 74 3b 00 00 00 18 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 buf_height;......uint32_t.*px.=.
20e00 70 69 78 65 6c 73 3b 00 00 00 1d 20 20 69 6e 74 20 63 78 20 3d 20 77 20 2f 20 32 2c 20 63 79 20 pixels;......int.cx.=.w./.2,.cy.
20e20 3d 20 68 20 2f 20 32 3b 00 00 00 23 20 20 69 6e 74 20 72 20 3d 20 28 77 20 3c 20 68 20 3f 20 77 =.h./.2;...#..int.r.=.(w.<.h.?.w
20e40 20 3a 20 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 21 20 20 66 6f 72 20 28 69 6e 74 20 69 20 .:.h)./.2.-.10;...!..for.(int.i.
20e60 3d 20 30 3b 20 69 20 3c 20 77 20 2a 20 68 3b 20 69 2b 2b 29 00 00 00 17 20 20 20 20 70 78 5b 69 =.0;.i.<.w.*.h;.i++)........px[i
20e80 5d 20 3d 20 30 78 66 66 66 66 66 66 66 66 3b 00 00 00 2f 20 20 64 72 61 77 5f 63 69 72 63 6c 65 ].=.0xffffffff;.../..draw_circle
20ea0 28 70 78 2c 20 77 2c 20 68 2c 20 63 78 2c 20 63 79 2c 20 72 2c 20 30 78 66 66 30 30 30 30 30 30 (px,.w,.h,.cx,.cy,.r,.0xff000000
20ec0 29 3b 00 00 00 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 31 32 3b 20 );......for.(int.i.=.0;.i.<.12;.
20ee0 69 2b 2b 29 20 7b 00 00 00 2d 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 6c 65 20 3d 20 69 20 2a i++).{...-....double.angle.=.i.*
20f00 20 4d 5f 50 49 20 2f 20 36 2e 30 20 2d 20 4d 5f 50 49 20 2f 20 32 3b 00 00 00 2e 20 20 20 20 69 .M_PI./.6.0.-.M_PI./.2;........i
20f20 6e 74 20 78 30 20 3d 20 63 78 20 2b 20 28 69 6e 74 29 28 28 72 20 2d 20 35 29 20 2a 20 63 6f 73 nt.x0.=.cx.+.(int)((r.-.5).*.cos
20f40 28 61 6e 67 6c 65 29 29 3b 00 00 00 2e 20 20 20 20 69 6e 74 20 79 30 20 3d 20 63 79 20 2b 20 28 (angle));........int.y0.=.cy.+.(
20f60 69 6e 74 29 28 28 72 20 2d 20 35 29 20 2a 20 73 69 6e 28 61 6e 67 6c 65 29 29 3b 00 00 00 28 20 int)((r.-.5).*.sin(angle));...(.
20f80 20 20 20 69 6e 74 20 78 31 20 3d 20 63 78 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 63 6f 73 28 61 ...int.x1.=.cx.+.(int)(r.*.cos(a
20fa0 6e 67 6c 65 29 29 3b 00 00 00 28 20 20 20 20 69 6e 74 20 79 31 20 3d 20 63 79 20 2b 20 28 69 6e ngle));...(....int.y1.=.cy.+.(in
20fc0 74 29 28 72 20 2a 20 73 69 6e 28 61 6e 67 6c 65 29 29 3b 00 00 00 34 20 20 20 20 64 72 61 77 5f t)(r.*.sin(angle));...4....draw_
20fe0 6c 69 6e 65 28 70 78 2c 20 77 2c 20 68 2c 20 78 30 2c 20 79 30 2c 20 78 31 2c 20 79 31 2c 20 30 line(px,.w,.h,.x0,.y0,.x1,.y1,.0
21000 78 66 66 30 30 30 30 30 30 29 3b 00 00 00 03 20 20 7d 00 00 00 18 20 20 74 69 6d 65 5f 74 20 74 xff000000);......}......time_t.t
21020 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 20 20 20 73 74 72 75 63 74 20 74 6d 20 2a 74 .=.time(NULL);......struct.tm.*t
21040 6d 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 26 74 29 3b 00 00 00 15 20 20 64 6f 75 62 6c 65 20 68 m.=.localtime(&t);......double.h
21060 6f 75 72 5f 61 6e 67 6c 65 20 3d 00 00 00 45 20 20 20 20 20 20 28 74 6d 2d 3e 74 6d 5f 68 6f 75 our_angle.=...E......(tm->tm_hou
21080 72 20 25 20 31 32 20 2b 20 74 6d 2d 3e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 20 2a 20 4d 5f r.%.12.+.tm->tm_min./.60.0).*.M_
210a0 50 49 20 2f 20 36 2e 30 20 2d 20 4d 5f 50 49 20 2f 20 32 3b 00 00 00 4f 20 20 64 6f 75 62 6c 65 PI./.6.0.-.M_PI./.2;...O..double
210c0 20 6d 69 6e 5f 61 6e 67 6c 65 20 3d 20 28 74 6d 2d 3e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 2d 3e 74 .min_angle.=.(tm->tm_min.+.tm->t
210e0 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2a 20 4d 5f 50 49 20 2f 20 33 30 2e 30 20 2d 20 4d 5f m_sec./.60.0).*.M_PI./.30.0.-.M_
21100 50 49 20 2f 20 32 3b 00 00 00 39 20 20 64 6f 75 62 6c 65 20 73 65 63 5f 61 6e 67 6c 65 20 3d 20 PI./.2;...9..double.sec_angle.=.
21120 74 6d 2d 3e 74 6d 5f 73 65 63 20 2a 20 4d 5f 50 49 20 2f 20 33 30 2e 30 20 2d 20 4d 5f 50 49 20 tm->tm_sec.*.M_PI./.30.0.-.M_PI.
21140 2f 20 32 3b 00 00 00 44 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 77 2c 20 68 2c 20 63 78 /.2;...D..draw_line(px,.w,.h,.cx
21160 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 30 2e 35 20 2a 20 63 6f 73 28 68 ,.cy,.cx.+.(int)(r.*.0.5.*.cos(h
21180 6f 75 72 5f 61 6e 67 6c 65 29 29 2c 00 00 00 3f 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b our_angle)),...?............cy.+
211a0 20 28 69 6e 74 29 28 72 20 2a 20 30 2e 35 20 2a 20 73 69 6e 28 68 6f 75 72 5f 61 6e 67 6c 65 29 .(int)(r.*.0.5.*.sin(hour_angle)
211c0 29 2c 20 30 78 66 66 30 30 30 30 30 30 29 3b 00 00 00 43 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 ),.0xff000000);...C..draw_line(p
211e0 78 2c 20 77 2c 20 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 x,.w,.h,.cx,.cy,.cx.+.(int)(r.*.
21200 30 2e 37 20 2a 20 63 6f 73 28 6d 69 6e 5f 61 6e 67 6c 65 29 29 2c 00 00 00 3e 20 20 20 20 20 20 0.7.*.cos(min_angle)),...>......
21220 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 30 2e 37 20 2a 20 73 69 6e 28 6d ......cy.+.(int)(r.*.0.7.*.sin(m
21240 69 6e 5f 61 6e 67 6c 65 29 29 2c 20 30 78 66 66 30 30 30 30 30 30 29 3b 00 00 00 43 20 20 64 72 in_angle)),.0xff000000);...C..dr
21260 61 77 5f 6c 69 6e 65 28 70 78 2c 20 77 2c 20 68 2c 20 63 78 2c 20 63 79 2c 20 63 78 20 2b 20 28 aw_line(px,.w,.h,.cx,.cy,.cx.+.(
21280 69 6e 74 29 28 72 20 2a 20 30 2e 39 20 2a 20 63 6f 73 28 73 65 63 5f 61 6e 67 6c 65 29 29 2c 00 int)(r.*.0.9.*.cos(sec_angle)),.
212a0 00 00 3e 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 28 69 6e 74 29 28 72 20 2a 20 30 2e ..>............cy.+.(int)(r.*.0.
212c0 39 20 2a 20 73 69 6e 28 73 65 63 5f 61 6e 67 6c 65 29 29 2c 20 30 78 66 66 66 66 30 30 30 30 29 9.*.sin(sec_angle)),.0xffff0000)
212e0 3b 00 00 00 2b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 73 75 72 66 61 63 65 ;...+..wl_surface_attach(surface
21300 2c 20 62 75 66 66 65 72 2c 20 30 2c 20 30 29 3b 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 ,.buffer,.0,.0);...)..wl_surface
21320 5f 64 61 6d 61 67 65 28 73 75 72 66 61 63 65 2c 20 30 2c 20 30 2c 20 77 2c 20 68 29 3b 00 00 00 _damage(surface,.0,.0,.w,.h);...
21340 1d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 ...wl_surface_commit(surface);..
21360 00 01 7d 00 00 00 00 00 00 00 49 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 6c 5f ..}.......Istatic.void.toplevel_
21380 63 6f 6e 66 69 67 75 72 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 configure(void.*data,.struct.xdg
213a0 5f 74 6f 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 2c 00 00 00 3d 20 20 20 20 20 20 20 20 _toplevel.*toplevel,...=........
213c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 33 32 5f 74 20 77 .......................int32_t.w
213e0 69 64 74 68 2c 20 69 6e 74 33 32 5f 74 20 68 65 69 67 68 74 2c 00 00 00 39 20 20 20 20 20 20 20 idth,.int32_t.height,...9.......
21400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 77 ........................struct.w
21420 6c 5f 61 72 72 61 79 20 2a 73 74 61 74 65 73 29 20 7b 00 00 00 1e 20 20 69 66 20 28 77 69 64 74 l_array.*states).{......if.(widt
21440 68 20 3e 20 30 20 26 26 20 68 65 69 67 68 74 20 3e 20 30 29 00 00 00 23 20 20 20 20 61 6c 6c 6f h.>.0.&&.height.>.0)...#....allo
21460 63 61 74 65 5f 62 75 66 66 65 72 28 77 69 64 74 68 2c 20 68 65 69 67 68 74 29 3b 00 00 00 01 7d cate_buffer(width,.height);....}
21480 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 6c 5f 63 6c 6f .......Gstatic.void.toplevel_clo
214a0 73 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 se(void.*data,.struct.xdg_toplev
214c0 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 29 20 7b 00 00 00 0e 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 el.*toplevel).{......running.=.0
214e0 3b 00 00 00 01 7d 00 00 00 00 00 00 00 3f 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 ;....}.......?static.const.struc
21500 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 74 6f 70 6c 65 76 65 6c t.xdg_toplevel_listener.toplevel
21520 5f 6c 69 73 74 65 6e 65 72 20 3d 20 7b 00 00 00 3e 20 20 20 20 2e 63 6f 6e 66 69 67 75 72 65 20 _listener.=.{...>.....configure.
21540 3d 20 74 6f 70 6c 65 76 65 6c 5f 63 6f 6e 66 69 67 75 72 65 2c 20 2e 63 6c 6f 73 65 20 3d 20 74 =.toplevel_configure,..close.=.t
21560 6f 70 6c 65 76 65 6c 5f 63 6c 6f 73 65 7d 3b 00 00 00 00 00 00 00 46 73 74 61 74 69 63 20 76 6f oplevel_close};.......Fstatic.vo
21580 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 id.registry_handler(void.*data,.
215a0 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 69 73 74 72 79 2c 00 00 00 struct.wl_registry.*registry,...
215c0 40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 @.............................ui
215e0 6e 74 33 32 5f 74 20 69 64 2c 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 6e 74 65 72 66 61 63 65 nt32_t.id,.const.char.*interface
21600 2c 00 00 00 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,...0...........................
21620 20 20 75 69 6e 74 33 32 5f 74 20 76 65 72 73 69 6f 6e 29 20 7b 00 00 00 2e 20 20 69 66 20 28 73 ..uint32_t.version).{......if.(s
21640 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 trcmp(interface,."wl_compositor"
21660 29 20 3d 3d 20 30 29 00 00 00 4d 20 20 20 20 63 6f 6d 70 6f 73 69 74 6f 72 20 3d 20 77 6c 5f 72 ).==.0)...M....compositor.=.wl_r
21680 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 77 6c 5f 63 egistry_bind(registry,.id,.&wl_c
216a0 6f 6d 70 6f 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 2c 20 20 65 6c ompositor_interface,.4);...,..el
216c0 73 65 20 69 66 20 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 20 22 77 6c 5f 73 68 6d se.if.(strcmp(interface,."wl_shm
216e0 22 29 20 3d 3d 20 30 29 00 00 00 3f 20 20 20 20 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 ").==.0)...?....shm.=.wl_registr
21700 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 y_bind(registry,.id,.&wl_shm_int
21720 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 33 20 20 65 6c 73 65 20 69 66 20 28 73 74 72 63 6d 70 erface,.1);...3..else.if.(strcmp
21740 28 69 6e 74 65 72 66 61 63 65 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 20 3d 3d 20 30 29 (interface,."xdg_wm_base").==.0)
21760 20 7b 00 00 00 48 20 20 20 20 77 6d 5f 62 61 73 65 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f .{...H....wm_base.=.wl_registry_
21780 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f bind(registry,.id,.&xdg_wm_base_
217a0 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 3f 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 interface,.1);...?....xdg_wm_bas
217c0 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 77 6d 5f 62 61 73 65 2c 20 26 77 6d 5f 62 61 73 65 e_add_listener(wm_base,.&wm_base
217e0 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 _listener,.NULL);......}....}...
21800 00 00 00 00 4f 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 ....Ostatic.const.struct.wl_regi
21820 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 stry_listener.registry_listener.
21840 3d 20 7b 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 2c 00 00 00 44 20 20 20 20 20 20 20 20 =.{registry_handler,...D........
21860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
21880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4e 55 4c 4c 7d 3b 00 00 00 00 ......................NULL};....
218a0 00 00 00 0c 69 6e 74 20 6d 61 69 6e 28 29 20 7b 00 00 00 25 20 20 64 69 73 70 6c 61 79 20 3d 20 ....int.main().{...%..display.=.
218c0 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 11 20 20 69 wl_display_connect(NULL);......i
218e0 66 20 28 21 64 69 73 70 6c 61 79 29 20 7b 00 00 00 3e 20 20 20 20 66 70 72 69 6e 74 66 28 73 74 f.(!display).{...>....fprintf(st
21900 64 65 72 72 2c 20 22 46 61 69 6c 65 64 20 74 6f 20 63 6f 6e 6e 65 63 74 20 74 6f 20 57 61 79 6c derr,."Failed.to.connect.to.Wayl
21920 61 6e 64 20 64 69 73 70 6c 61 79 5c 6e 22 29 3b 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 and.display\n");........return.1
21940 3b 00 00 00 03 20 20 7d 00 00 00 2e 20 20 72 65 67 69 73 74 72 79 20 3d 20 77 6c 5f 64 69 73 70 ;......}......registry.=.wl_disp
21960 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 64 69 73 70 6c 61 79 29 3b 00 00 00 3f 20 20 lay_get_registry(display);...?..
21980 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 72 65 67 69 73 74 72 wl_registry_add_listener(registr
219a0 79 2c 20 26 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 y,.&registry_listener,.NULL);...
219c0 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 ...wl_display_roundtrip(display)
219e0 3b 00 00 00 28 20 20 69 66 20 28 21 63 6f 6d 70 6f 73 69 74 6f 72 20 7c 7c 20 21 73 68 6d 20 7c ;...(..if.(!compositor.||.!shm.|
21a00 7c 20 21 77 6d 5f 62 61 73 65 29 20 7b 00 00 00 31 20 20 20 20 66 70 72 69 6e 74 66 28 73 74 64 |.!wm_base).{...1....fprintf(std
21a20 65 72 72 2c 20 22 4d 69 73 73 69 6e 67 20 57 61 79 6c 61 6e 64 20 67 6c 6f 62 61 6c 73 5c 6e 22 err,."Missing.Wayland.globals\n"
21a40 29 3b 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 03 20 20 7d 00 00 00 35 20 20 );........return.1;......}...5..
21a60 73 75 72 66 61 63 65 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f 63 72 65 61 74 65 5f 73 surface.=.wl_compositor_create_s
21a80 75 72 66 61 63 65 28 63 6f 6d 70 6f 73 69 74 6f 72 29 3b 00 00 00 3e 20 20 78 64 67 5f 73 75 72 urface(compositor);...>..xdg_sur
21aa0 66 61 63 65 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 face.=.xdg_wm_base_get_xdg_surfa
21ac0 63 65 28 77 6d 5f 62 61 73 65 2c 20 73 75 72 66 61 63 65 29 3b 00 00 00 45 20 20 78 64 67 5f 73 ce(wm_base,.surface);...E..xdg_s
21ae0 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 78 64 67 5f 73 75 72 66 61 63 65 2c urface_add_listener(xdg_surface,
21b00 20 26 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 .&xdg_surface_listener,.NULL);..
21b20 00 33 20 20 74 6f 70 6c 65 76 65 6c 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 .3..toplevel.=.xdg_surface_get_t
21b40 6f 70 6c 65 76 65 6c 28 78 64 67 5f 73 75 72 66 61 63 65 29 3b 00 00 00 40 20 20 78 64 67 5f 74 oplevel(xdg_surface);...@..xdg_t
21b60 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 74 6f 70 6c 65 76 65 6c 2c 20 26 oplevel_add_listener(toplevel,.&
21b80 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 2c 20 4e 55 4c 4c 29 3b 00 00 00 2d 20 20 78 toplevel_listener,.NULL);...-..x
21ba0 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 74 6f 70 6c 65 76 65 6c 2c 20 dg_toplevel_set_title(toplevel,.
21bc0 22 78 63 6c 6f 63 6b 22 29 3b 00 00 00 1d 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 "xclock");......wl_surface_commi
21be0 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e t(surface);......wl_display_roun
21c00 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 00 13 20 20 77 68 69 6c 65 20 28 72 75 6e 6e dtrip(display);......while.(runn
21c20 69 6e 67 29 20 7b 00 00 00 29 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 ing).{...)....wl_display_dispatc
21c40 68 5f 70 65 6e 64 69 6e 67 28 64 69 73 70 6c 61 79 29 3b 00 00 00 11 20 20 20 20 64 72 61 77 5f h_pending(display);........draw_
21c60 63 6c 6f 63 6b 28 29 3b 00 00 00 19 20 20 20 20 75 73 6c 65 65 70 28 31 30 30 30 30 30 30 20 2f clock();........usleep(1000000./
21c80 20 36 30 29 3b 00 00 00 03 20 20 7d 00 00 00 0b 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d .60);......}......return.0;....}
21ca0 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 de 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 5...............................
21cc0 00 00 00 00 00 00 00 00 81 1b 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 36 ........................5._....6
21ce0 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 37 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff ...8...........7................
21d00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d ..............................i.
21e60 8a 75 04 01 00 00 00 00 00 f5 18 00 00 00 a9 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 7d .u.............................}
21e80 f5 18 00 00 00 aa 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 77 00 00 00 00 00 00 00 00 .......................w........
21ea0 00 00 00 01 00 00 00 03 20 20 20 f5 18 00 00 00 78 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 ................x...............
21ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 ................................
21ee0 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 77 00 00 .....5.......................w..
21f00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 f5 18 00 ................................
21f20 00 00 00 77 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 32 00 00 00 01 00 00 00 00 10 00 00 00 ...w...............2............
21f40 00 00 00 00 00 00 00 00 00 00 00 d3 09 00 00 00 00 00 00 35 81 5f d0 00 00 00 37 00 00 00 00 00 ...................5._....7.....
21f60 00 00 00 00 00 00 00 00 00 00 38 00 00 00 aa 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 ..........8.....................
21f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
220a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
220c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 69 9d 8a 76 04 01 00 .........................i..v...
220e0 00 00 18 00 f5 18 00 00 00 1a 00 00 00 dd 00 00 00 aa 00 00 00 8f 00 00 00 30 20 20 20 20 63 68 .........................0....ch
22100 61 72 20 74 65 6d 70 6c 61 74 65 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 61 79 6c 61 6e 64 2d 73 68 ar.template[].=."/tmp/wayland-sh
22120 6d 2d 58 58 58 58 58 58 22 3b 00 00 00 1f 20 20 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 m-XXXXXX";........int.fd.=.mkste
22140 6d 70 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 2f 20 20 20 20 69 66 20 28 66 64 20 3c 20 30 29 mp(template);.../....if.(fd.<.0)
22160 20 7b 20 70 65 72 72 6f 72 28 22 6d 6b 73 74 65 6d 70 22 29 3b 20 65 78 69 74 28 31 29 3b 20 7d .{.perror("mkstemp");.exit(1);.}
22180 00 00 00 15 20 20 20 20 75 6e 6c 69 6e 6b 28 74 65 6d 70 6c 61 74 65 29 3b 00 00 00 42 20 20 20 ........unlink(template);...B...
221a0 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 20 7b 20 .if.(ftruncate(fd,.size).<.0).{.
221c0 70 65 72 72 6f 72 28 22 66 74 72 75 6e 63 61 74 65 22 29 3b 20 65 78 69 74 28 31 29 3b 20 7d 00 perror("ftruncate");.exit(1);.}.
221e0 00 00 0e 20 20 20 20 72 65 74 75 72 6e 20 66 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 54 73 74 .......return.fd;....}.......Tst
22200 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 62 61 73 65 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 atic.void.wm_base_ping(void.*dat
22220 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 5f 62 61 73 65 2c 20 a,.struct.xdg_wm_base.*wm_base,.
22240 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 26 20 20 20 20 78 64 67 5f 77 6d uint32_t.serial).{...&....xdg_wm
22260 5f 62 61 73 65 5f 70 6f 6e 67 28 77 6d 5f 62 61 73 65 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 01 _base_pong(wm_base,.serial);....
22280 7d 00 00 00 00 00 00 00 4b 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 }.......Kstatic.const.struct.xdg
222a0 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e _wm_base_listener.wm_base_listen
222c0 65 72 20 3d 20 7b 77 6d 5f 62 61 73 65 5f 70 69 6e 67 7d 3b 00 00 00 00 00 00 00 61 73 74 61 74 er.=.{wm_base_ping};.......astat
222e0 69 63 20 76 6f 69 64 20 78 64 67 5f 73 75 72 66 61 63 65 5f 63 6f 6e 66 69 67 75 72 65 28 76 6f ic.void.xdg_surface_configure(vo
22300 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 64 id.*data,.struct.xdg_surface.*xd
22320 67 5f 73 75 72 66 61 63 65 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 g_surface,.uint32_t.serial).{...
22340 33 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 3....xdg_surface_ack_configure(x
22360 64 67 5f 73 75 72 66 61 63 65 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 1f 20 20 20 20 77 6c 5f 73 dg_surface,.serial);........wl_s
22380 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 01 7d 00 00 00 00 urface_commit(surface);....}....
223a0 00 00 00 58 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 ...Xstatic.const.struct.xdg_surf
223c0 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 ace_listener.xdg_surface_listene
223e0 72 20 3d 20 7b 78 64 67 5f 73 75 72 66 61 63 65 5f 63 6f 6e 66 69 67 75 72 65 7d 3b 00 00 00 00 r.=.{xdg_surface_configure};....
22400 00 00 00 34 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 ...4static.void.allocate_buffer(
22420 69 6e 74 20 77 69 64 74 68 2c 20 69 6e 74 20 68 65 69 67 68 74 29 20 7b 00 00 00 11 20 20 20 20 int.width,.int.height).{........
22440 69 66 20 28 62 75 66 66 65 72 29 20 7b 00 00 00 22 20 20 20 20 20 20 20 20 77 6c 5f 62 75 66 66 if.(buffer).{..."........wl_buff
22460 65 72 5f 64 65 73 74 72 6f 79 28 62 75 66 66 65 72 29 3b 00 00 00 33 20 20 20 20 20 20 20 20 6d er_destroy(buffer);...3........m
22480 75 6e 6d 61 70 28 70 69 78 65 6c 73 2c 20 62 75 66 5f 77 69 64 74 68 20 2a 20 62 75 66 5f 68 65 unmap(pixels,.buf_width.*.buf_he
224a0 69 67 68 74 20 2a 20 34 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 16 20 20 20 20 62 75 66 5f 77 ight.*.4);........}........buf_w
224c0 69 64 74 68 20 3d 20 77 69 64 74 68 3b 00 00 00 18 20 20 20 20 62 75 66 5f 68 65 69 67 68 74 20 idth.=.width;........buf_height.
224e0 3d 20 68 65 69 67 68 74 3b 00 00 00 1b 20 20 20 20 69 6e 74 20 73 74 72 69 64 65 20 3d 20 77 69 =.height;........int.stride.=.wi
22500 64 74 68 20 2a 20 34 3b 00 00 00 1f 20 20 20 20 69 6e 74 20 73 69 7a 65 20 3d 20 73 74 72 69 64 dth.*.4;........int.size.=.strid
22520 65 20 2a 20 68 65 69 67 68 74 3b 00 00 00 23 20 20 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 e.*.height;...#....int.fd.=.crea
22540 74 65 5f 73 68 6d 5f 66 69 6c 65 28 73 69 7a 65 29 3b 00 00 00 49 20 20 20 20 70 69 78 65 6c 73 te_shm_file(size);...I....pixels
22560 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 69 7a 65 2c 20 50 52 4f 54 5f 52 45 41 44 20 7c 20 .=.mmap(NULL,.size,.PROT_READ.|.
22580 50 52 4f 54 5f 57 52 49 54 45 2c 20 4d 41 50 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 PROT_WRITE,.MAP_SHARED,.fd,.0);.
225a0 00 00 3a 20 20 20 20 69 66 20 28 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 ..:....if.(pixels.==.MAP_FAILED)
225c0 20 7b 20 70 65 72 72 6f 72 28 22 6d 6d 61 70 22 29 3b 20 65 78 69 74 28 31 29 3b 20 7d 00 00 00 .{.perror("mmap");.exit(1);.}...
225e0 41 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 20 2a 70 6f 6f 6c 20 3d 20 A....struct.wl_shm_pool.*pool.=.
22600 77 6c 5f 73 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 wl_shm_create_pool(shm,.fd,.size
22620 29 3b 00 00 00 5f 20 20 20 20 62 75 66 66 65 72 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 );..._....buffer.=.wl_shm_pool_c
22640 72 65 61 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 77 69 64 74 68 2c 20 68 65 69 reate_buffer(pool,.0,.width,.hei
22660 67 68 74 2c 20 73 74 72 69 64 65 2c 20 57 4c 5f 53 48 4d 5f 46 4f 52 4d 41 54 5f 41 52 47 42 38 ght,.stride,.WL_SHM_FORMAT_ARGB8
22680 38 38 38 29 3b 00 00 00 2d 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 73 888);...-....wl_surface_attach(s
226a0 75 72 66 61 63 65 2c 20 62 75 66 66 65 72 2c 20 30 2c 20 30 29 3b 00 00 00 1f 20 20 20 20 77 6c urface,.buffer,.0,.0);........wl
226c0 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 01 7d 00 00 _surface_commit(surface);....}..
226e0 00 00 00 00 00 44 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 70 69 78 65 6c 28 69 6e 74 .....Dstatic.void.draw_pixel(int
22700 20 78 2c 20 69 6e 74 20 79 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 75 69 6e 74 33 32 5f .x,.int.y,.int.w,.int.h,.uint32_
22720 74 20 63 6f 6c 6f 72 29 20 7b 00 00 00 2b 20 20 20 20 69 66 20 28 78 20 3e 3d 20 30 20 26 26 20 t.color).{...+....if.(x.>=.0.&&.
22740 78 20 3c 20 77 20 26 26 20 79 20 3e 3d 20 30 20 26 26 20 79 20 3c 20 68 29 00 00 00 30 20 20 20 x.<.w.&&.y.>=.0.&&.y.<.h)...0...
22760 20 20 20 20 20 28 28 75 69 6e 74 33 32 5f 74 20 2a 29 70 69 78 65 6c 73 29 5b 79 20 2a 20 77 20 .....((uint32_t.*)pixels)[y.*.w.
22780 2b 20 78 5d 20 3d 20 63 6f 6c 6f 72 3b 00 00 00 01 7d 00 00 00 00 00 00 00 63 73 74 61 74 69 63 +.x].=.color;....}.......cstatic
227a0 20 76 6f 69 64 20 64 72 61 77 5f 6c 69 6e 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e .void.draw_line(uint32_t.*px,.in
227c0 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 78 30 2c 20 69 6e 74 20 79 30 2c 20 69 6e 74 20 t.w,.int.h,.int.x0,.int.y0,.int.
227e0 78 31 2c 20 69 6e 74 20 79 31 2c 20 75 69 6e 74 33 32 5f 74 20 63 6f 6c 6f 72 29 20 7b 00 00 00 x1,.int.y1,.uint32_t.color).{...
22800 31 20 20 20 20 69 6e 74 20 64 78 20 3d 20 61 62 73 28 78 31 20 2d 20 78 30 29 2c 20 73 78 20 3d 1....int.dx.=.abs(x1.-.x0),.sx.=
22820 20 78 30 20 3c 20 78 31 20 3f 20 31 20 3a 20 2d 31 3b 00 00 00 32 20 20 20 20 69 6e 74 20 64 79 .x0.<.x1.?.1.:.-1;...2....int.dy
22840 20 3d 20 2d 61 62 73 28 79 31 20 2d 20 79 30 29 2c 20 73 79 20 3d 20 79 30 20 3c 20 79 31 20 3f .=.-abs(y1.-.y0),.sy.=.y0.<.y1.?
22860 20 31 20 3a 20 2d 31 3b 00 00 00 1a 20 20 20 20 69 6e 74 20 65 72 72 20 3d 20 64 78 20 2b 20 64 .1.:.-1;........int.err.=.dx.+.d
22880 79 2c 20 65 32 3b 00 00 00 0f 20 20 20 20 77 68 69 6c 65 20 28 31 29 20 7b 00 00 00 4c 20 20 20 y,.e2;........while.(1).{...L...
228a0 20 20 20 20 20 69 66 20 28 78 30 20 3e 3d 20 30 20 26 26 20 78 30 20 3c 20 77 20 26 26 20 79 30 .....if.(x0.>=.0.&&.x0.<.w.&&.y0
228c0 20 3e 3d 20 30 20 26 26 20 79 30 20 3c 20 68 29 20 70 78 5b 79 30 20 2a 20 77 20 2b 20 78 30 5d .>=.0.&&.y0.<.h).px[y0.*.w.+.x0]
228e0 20 3d 20 63 6f 6c 6f 72 3b 00 00 00 28 20 20 20 20 20 20 20 20 69 66 20 28 78 30 20 3d 3d 20 78 .=.color;...(........if.(x0.==.x
22900 31 20 26 26 20 79 30 20 3d 3d 20 79 31 29 20 62 72 65 61 6b 3b 00 00 00 15 20 20 20 20 20 20 20 1.&&.y0.==.y1).break;...........
22920 20 65 32 20 3d 20 32 20 2a 20 65 72 72 3b 00 00 00 2e 20 20 20 20 20 20 20 20 69 66 20 28 65 32 .e2.=.2.*.err;............if.(e2
22940 20 3e 3d 20 64 79 29 20 7b 20 65 72 72 20 2b 3d 20 64 79 3b 20 78 30 20 2b 3d 20 73 78 3b 20 7d .>=.dy).{.err.+=.dy;.x0.+=.sx;.}
22960 00 00 00 2e 20 20 20 20 20 20 20 20 69 66 20 28 65 32 20 3c 3d 20 64 78 29 20 7b 20 65 72 72 20 ............if.(e2.<=.dx).{.err.
22980 2b 3d 20 64 78 3b 20 79 30 20 2b 3d 20 73 79 3b 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d +=.dx;.y0.+=.sy;.}........}....}
229a0 00 00 00 00 00 00 00 5c 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 69 72 63 6c 65 28 .......\static.void.draw_circle(
229c0 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 6e 74 20 77 2c 20 69 6e 74 20 68 2c 20 69 6e 74 20 uint32_t.*px,.int.w,.int.h,.int.
229e0 63 78 2c 20 69 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 20 75 69 6e 74 33 32 5f 74 20 63 6f 6c 6f cx,.int.cy,.int.r,.uint32_t.colo
22a00 72 29 20 7b 00 00 00 1e 20 20 20 20 69 6e 74 20 78 20 3d 20 72 2c 20 79 20 3d 20 30 2c 20 65 72 r).{........int.x.=.r,.y.=.0,.er
22a20 72 20 3d 20 30 3b 00 00 00 14 20 20 20 20 77 68 69 6c 65 20 28 78 20 3e 3d 20 79 29 20 7b 00 00 r.=.0;........while.(x.>=.y).{..
22a40 00 30 20 20 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2b 20 78 2c 20 63 79 20 .0........draw_pixel(cx.+.x,.cy.
22a60 2b 20 79 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 30 20 20 20 20 20 20 20 20 64 72 +.y,.w,.h,.color);...0........dr
22a80 61 77 5f 70 69 78 65 6c 28 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 78 2c 20 77 2c 20 68 2c 20 63 aw_pixel(cx.+.y,.cy.+.x,.w,.h,.c
22aa0 6f 6c 6f 72 29 3b 00 00 00 30 20 20 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 olor);...0........draw_pixel(cx.
22ac0 2d 20 79 2c 20 63 79 20 2b 20 78 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 30 20 20 -.y,.cy.+.x,.w,.h,.color);...0..
22ae0 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 2c ......draw_pixel(cx.-.x,.cy.+.y,
22b00 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 30 20 20 20 20 20 20 20 20 64 72 61 77 5f 70 .w,.h,.color);...0........draw_p
22b20 69 78 65 6c 28 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 ixel(cx.-.x,.cy.-.y,.w,.h,.color
22b40 29 3b 00 00 00 30 20 20 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2d 20 79 2c );...0........draw_pixel(cx.-.y,
22b60 20 63 79 20 2d 20 78 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 30 20 20 20 20 20 20 .cy.-.x,.w,.h,.color);...0......
22b80 20 20 64 72 61 77 5f 70 69 78 65 6c 28 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 78 2c 20 77 2c 20 ..draw_pixel(cx.+.y,.cy.-.x,.w,.
22ba0 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 00 30 20 20 20 20 20 20 20 20 64 72 61 77 5f 70 69 78 65 6c h,.color);...0........draw_pixel
22bc0 28 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 2c 20 77 2c 20 68 2c 20 63 6f 6c 6f 72 29 3b 00 00 (cx.+.x,.cy.-.y,.w,.h,.color);..
22be0 00 0c 20 20 20 20 20 20 20 20 79 2b 2b 3b 00 00 00 29 20 20 20 20 20 20 20 20 69 66 20 28 65 72 ..........y++;...)........if.(er
22c00 72 20 3c 3d 20 30 29 20 7b 20 65 72 72 20 2b 3d 20 32 2a 79 20 2b 20 31 3b 20 7d 00 00 00 2d 20 r.<=.0).{.err.+=.2*y.+.1;.}...-.
22c20 20 20 20 20 20 20 20 69 66 20 28 65 72 72 20 3e 20 30 29 20 7b 20 78 2d 2d 3b 20 65 72 72 20 2d .......if.(err.>.0).{.x--;.err.-
22c40 3d 20 32 2a 78 20 2b 20 31 3b 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 =.2*x.+.1;.}........}....}......
22c60 00 1a 73 74 61 74 69 63 20 76 6f 69 64 20 64 72 61 77 5f 63 6c 6f 63 6b 28 29 20 7b 00 00 00 18 ..static.void.draw_clock().{....
22c80 20 20 20 20 69 66 20 28 21 70 69 78 65 6c 73 29 20 72 65 74 75 72 6e 3b 00 00 00 26 20 20 20 20 ....if.(!pixels).return;...&....
22ca0 69 6e 74 20 77 20 3d 20 62 75 66 5f 77 69 64 74 68 2c 20 68 20 3d 20 62 75 66 5f 68 65 69 67 68 int.w.=.buf_width,.h.=.buf_heigh
22cc0 74 3b 00 00 00 1a 20 20 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 70 69 78 65 6c 73 3b t;........uint32_t.*px.=.pixels;
22ce0 00 00 00 1f 20 20 20 20 69 6e 74 20 63 78 20 3d 20 77 20 2f 20 32 2c 20 63 79 20 3d 20 68 20 2f ........int.cx.=.w./.2,.cy.=.h./
22d00 20 32 3b 00 00 00 25 20 20 20 20 69 6e 74 20 72 20 3d 20 28 77 20 3c 20 68 20 3f 20 77 20 3a 20 .2;...%....int.r.=.(w.<.h.?.w.:.
22d20 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 35 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d h)./.2.-.10;...5....for.(int.i.=
22d40 20 30 3b 20 69 20 3c 20 77 2a 68 3b 20 69 2b 2b 29 20 70 78 5b 69 5d 20 3d 20 30 78 66 66 66 66 .0;.i.<.w*h;.i++).px[i].=.0xffff
22d60 66 66 66 66 3b 00 00 00 31 20 20 20 20 64 72 61 77 5f 63 69 72 63 6c 65 28 70 78 2c 20 77 2c 20 ffff;...1....draw_circle(px,.w,.
22d80 68 2c 20 63 78 2c 20 63 79 2c 20 72 2c 20 30 78 66 66 30 30 30 30 30 30 29 3b 00 00 00 22 20 20 h,.cx,.cy,.r,.0xff000000);..."..
22da0 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 31 32 3b 20 69 2b 2b 29 20 7b ..for.(int.i.=.0;.i.<.12;.i++).{
22dc0 00 00 00 2f 20 20 20 20 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 6c 65 20 3d 20 69 20 2a 20 4d .../........double.angle.=.i.*.M
22de0 5f 50 49 20 2f 20 36 2e 30 20 2d 20 4d 5f 50 49 2f 32 3b 00 00 00 2e 20 20 20 20 20 20 20 20 69 _PI./.6.0.-.M_PI/2;............i
22e00 6e 74 20 78 30 20 3d 20 63 78 20 2b 20 28 69 6e 74 29 28 28 72 2d 35 29 2a 63 6f 73 28 61 6e 67 nt.x0.=.cx.+.(int)((r-5)*cos(ang
22e20 6c 65 29 29 3b 00 00 00 2e 20 20 20 20 20 20 20 20 69 6e 74 20 79 30 20 3d 20 63 79 20 2b 20 28 le));............int.y0.=.cy.+.(
22e40 69 6e 74 29 28 28 72 2d 35 29 2a 73 69 6e 28 61 6e 67 6c 65 29 29 3b 00 00 00 2a 20 20 20 20 20 int)((r-5)*sin(angle));...*.....
22e60 20 20 20 69 6e 74 20 78 31 20 3d 20 63 78 20 2b 20 28 69 6e 74 29 28 72 2a 63 6f 73 28 61 6e 67 ...int.x1.=.cx.+.(int)(r*cos(ang
22e80 6c 65 29 29 3b 00 00 00 2a 20 20 20 20 20 20 20 20 69 6e 74 20 79 31 20 3d 20 63 79 20 2b 20 28 le));...*........int.y1.=.cy.+.(
22ea0 69 6e 74 29 28 72 2a 73 69 6e 28 61 6e 67 6c 65 29 29 3b 00 00 00 38 20 20 20 20 20 20 20 20 64 int)(r*sin(angle));...8........d
22ec0 72 61 77 5f 6c 69 6e 65 28 70 78 2c 20 77 2c 20 68 2c 20 78 30 2c 20 79 30 2c 20 78 31 2c 20 79 raw_line(px,.w,.h,.x0,.y0,.x1,.y
22ee0 31 2c 20 30 78 66 66 30 30 30 30 30 30 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 1a 20 20 20 20 1,.0xff000000);........}........
22f00 74 69 6d 65 5f 74 20 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 22 20 20 20 20 73 74 time_t.t.=.time(NULL);..."....st
22f20 72 75 63 74 20 74 6d 20 2a 74 6d 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 26 74 29 3b 00 00 00 4f ruct.tm.*tm.=.localtime(&t);...O
22f40 20 20 20 20 64 6f 75 62 6c 65 20 68 6f 75 72 5f 61 6e 67 6c 65 20 3d 20 28 74 6d 2d 3e 74 6d 5f ....double.hour_angle.=.(tm->tm_
22f60 68 6f 75 72 20 25 20 31 32 20 2b 20 74 6d 2d 3e 74 6d 5f 6d 69 6e 2f 36 30 2e 30 29 2a 4d 5f 50 hour.%.12.+.tm->tm_min/60.0)*M_P
22f80 49 2f 36 2e 30 20 2d 20 4d 5f 50 49 2f 32 3b 00 00 00 49 20 20 20 20 64 6f 75 62 6c 65 20 6d 69 I/6.0.-.M_PI/2;...I....double.mi
22fa0 6e 5f 61 6e 67 6c 65 20 3d 20 28 74 6d 2d 3e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 2d 3e 74 6d 5f 73 n_angle.=.(tm->tm_min.+.tm->tm_s
22fc0 65 63 2f 36 30 2e 30 29 2a 4d 5f 50 49 2f 33 30 2e 30 20 2d 20 4d 5f 50 49 2f 32 3b 00 00 00 37 ec/60.0)*M_PI/30.0.-.M_PI/2;...7
22fe0 20 20 20 20 64 6f 75 62 6c 65 20 73 65 63 5f 61 6e 67 6c 65 20 3d 20 74 6d 2d 3e 74 6d 5f 73 65 ....double.sec_angle.=.tm->tm_se
23000 63 20 2a 20 4d 5f 50 49 2f 33 30 2e 30 20 2d 20 4d 5f 50 49 2f 32 3b 00 00 00 67 20 20 20 20 64 c.*.M_PI/30.0.-.M_PI/2;...g....d
23020 72 61 77 5f 6c 69 6e 65 28 70 78 2c 77 2c 68 2c 63 78 2c 63 79 2c 63 78 2b 28 69 6e 74 29 28 72 raw_line(px,w,h,cx,cy,cx+(int)(r
23040 2a 30 2e 35 2a 63 6f 73 28 68 6f 75 72 5f 61 6e 67 6c 65 29 29 2c 63 79 2b 28 69 6e 74 29 28 72 *0.5*cos(hour_angle)),cy+(int)(r
23060 2a 30 2e 35 2a 73 69 6e 28 68 6f 75 72 5f 61 6e 67 6c 65 29 29 2c 30 78 66 66 30 30 30 30 30 30 *0.5*sin(hour_angle)),0xff000000
23080 29 3b 00 00 00 65 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c 77 2c 68 2c 63 78 2c 63 79 );...e....draw_line(px,w,h,cx,cy
230a0 2c 63 78 2b 28 69 6e 74 29 28 72 2a 30 2e 37 2a 63 6f 73 28 6d 69 6e 5f 61 6e 67 6c 65 29 29 2c ,cx+(int)(r*0.7*cos(min_angle)),
230c0 63 79 2b 28 69 6e 74 29 28 72 2a 30 2e 37 2a 73 69 6e 28 6d 69 6e 5f 61 6e 67 6c 65 29 29 2c 30 cy+(int)(r*0.7*sin(min_angle)),0
230e0 78 66 66 30 30 30 30 30 30 29 3b 00 00 00 65 20 20 20 20 64 72 61 77 5f 6c 69 6e 65 28 70 78 2c xff000000);...e....draw_line(px,
23100 77 2c 68 2c 63 78 2c 63 79 2c 63 78 2b 28 69 6e 74 29 28 72 2a 30 2e 39 2a 63 6f 73 28 73 65 63 w,h,cx,cy,cx+(int)(r*0.9*cos(sec
23120 5f 61 6e 67 6c 65 29 29 2c 63 79 2b 28 69 6e 74 29 28 72 2a 30 2e 39 2a 73 69 6e 28 73 65 63 5f _angle)),cy+(int)(r*0.9*sin(sec_
23140 61 6e 67 6c 65 29 29 2c 30 78 66 66 66 66 30 30 30 30 29 3b 00 00 00 2d 20 20 20 20 77 6c 5f 73 angle)),0xffff0000);...-....wl_s
23160 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 73 75 72 66 61 63 65 2c 20 62 75 66 66 65 72 2c 20 30 urface_attach(surface,.buffer,.0
23180 2c 20 30 29 3b 00 00 00 27 20 20 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 28 73 ,.0);...'....wl_surface_damage(s
231a0 75 72 66 61 63 65 2c 30 2c 30 2c 77 2c 68 29 3b 00 00 00 1f 20 20 20 20 77 6c 5f 73 75 72 66 61 urface,0,0,w,h);........wl_surfa
231c0 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 80 ce_commit(surface);....}........
231e0 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 6c 5f 63 6f 6e 66 69 67 75 72 65 28 76 static.void.toplevel_configure(v
23200 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a oid.*data,.struct.xdg_toplevel.*
23220 74 6f 70 6c 65 76 65 6c 2c 69 6e 74 33 32 5f 74 20 77 69 64 74 68 2c 69 6e 74 33 32 5f 74 20 68 toplevel,int32_t.width,int32_t.h
23240 65 69 67 68 74 2c 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 74 61 74 65 73 29 20 7b eight,struct.wl_array.*states).{
23260 00 00 00 3b 20 20 20 20 69 66 20 28 77 69 64 74 68 3e 30 20 26 26 20 68 65 69 67 68 74 3e 30 29 ...;....if.(width>0.&&.height>0)
23280 20 61 6c 6c 6f 63 61 74 65 5f 62 75 66 66 65 72 28 77 69 64 74 68 2c 68 65 69 67 68 74 29 3b 00 .allocate_buffer(width,height);.
232a0 00 00 01 7d 00 00 00 00 00 00 00 54 73 74 61 74 69 63 20 76 6f 69 64 20 74 6f 70 6c 65 76 65 6c ...}.......Tstatic.void.toplevel
232c0 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f _close(void.*data,.struct.xdg_to
232e0 70 6c 65 76 65 6c 20 2a 74 6f 70 6c 65 76 65 6c 29 20 7b 20 72 75 6e 6e 69 6e 67 3d 30 3b 20 7d plevel.*toplevel).{.running=0;.}
23300 00 00 00 00 00 00 00 74 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 5f .......tstatic.const.struct.xdg_
23320 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 toplevel_listener.toplevel_liste
23340 6e 65 72 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 3d 74 6f 70 6c 65 76 65 6c 5f 63 6f 6e 66 69 ner.=.{.configure=toplevel_confi
23360 67 75 72 65 2c 2e 63 6c 6f 73 65 3d 74 6f 70 6c 65 76 65 6c 5f 63 6c 6f 73 65 7d 3b 00 00 00 00 gure,.close=toplevel_close};....
23380 00 00 00 7a 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 ...zstatic.void.registry_handler
233a0 28 76 6f 69 64 20 2a 64 61 74 61 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 (void.*data,.struct.wl_registry.
233c0 2a 72 65 67 69 73 74 72 79 2c 75 69 6e 74 33 32 5f 74 20 69 64 2c 63 6f 6e 73 74 20 63 68 61 72 *registry,uint32_t.id,const.char
233e0 20 2a 69 6e 74 65 72 66 61 63 65 2c 75 69 6e 74 33 32 5f 74 20 76 65 72 73 69 6f 6e 29 7b 00 00 .*interface,uint32_t.version){..
23400 00 71 20 20 20 20 69 66 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 22 77 6c 5f 63 6f .q....if(strcmp(interface,"wl_co
23420 6d 70 6f 73 69 74 6f 72 22 29 3d 3d 30 29 20 63 6f 6d 70 6f 73 69 74 6f 72 3d 77 6c 5f 72 65 67 mpositor")==0).compositor=wl_reg
23440 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 69 64 2c 26 77 6c 5f 63 6f 6d 70 6f istry_bind(registry,id,&wl_compo
23460 73 69 74 6f 72 5f 69 6e 74 65 72 66 61 63 65 2c 34 29 3b 00 00 00 61 20 20 20 20 65 6c 73 65 20 sitor_interface,4);...a....else.
23480 69 66 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 22 77 6c 5f 73 68 6d 22 29 3d 3d 30 if(strcmp(interface,"wl_shm")==0
234a0 29 20 73 68 6d 3d 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c ).shm=wl_registry_bind(registry,
234c0 69 64 2c 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 31 29 3b 00 00 00 30 20 20 20 20 id,&wl_shm_interface,1);...0....
234e0 65 6c 73 65 20 69 66 28 73 74 72 63 6d 70 28 69 6e 74 65 72 66 61 63 65 2c 22 78 64 67 5f 77 6d else.if(strcmp(interface,"xdg_wm
23500 5f 62 61 73 65 22 29 3d 3d 30 29 7b 00 00 00 47 20 20 20 20 20 20 20 20 77 6d 5f 62 61 73 65 3d _base")==0){...G........wm_base=
23520 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 65 67 69 73 74 72 79 2c 69 64 2c 26 78 64 wl_registry_bind(registry,id,&xd
23540 67 5f 77 6d 5f 62 61 73 65 5f 69 6e 74 65 72 66 61 63 65 2c 31 29 3b 00 00 00 41 20 20 20 20 20 g_wm_base_interface,1);...A.....
23560 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 77 6d 5f 62 ...xdg_wm_base_add_listener(wm_b
23580 61 73 65 2c 26 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 2c 4e 55 4c 4c 29 3b 00 00 00 05 ase,&wm_base_listener,NULL);....
235a0 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 53 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 ....}....}.......Sstatic.const.s
235c0 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 65 67 69 73 truct.wl_registry_listener.regis
235e0 74 72 79 5f 6c 69 73 74 65 6e 65 72 3d 7b 72 65 67 69 73 74 72 79 5f 68 61 6e 64 6c 65 72 2c 4e try_listener={registry_handler,N
23600 55 4c 4c 7d 3b 00 00 00 00 00 00 00 0c 69 6e 74 20 6d 61 69 6e 28 29 20 7b 00 00 00 27 20 20 20 ULL};........int.main().{...'...
23620 20 64 69 73 70 6c 61 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e 6e 65 63 74 28 4e 55 .display.=.wl_display_connect(NU
23640 4c 4c 29 3b 00 00 00 57 20 20 20 20 69 66 28 21 64 69 73 70 6c 61 79 29 7b 20 66 70 72 69 6e 74 LL);...W....if(!display){.fprint
23660 66 28 73 74 64 65 72 72 2c 22 46 61 69 6c 65 64 20 74 6f 20 63 6f 6e 6e 65 63 74 20 74 6f 20 57 f(stderr,"Failed.to.connect.to.W
23680 61 79 6c 61 6e 64 20 64 69 73 70 6c 61 79 5c 6e 22 29 3b 20 72 65 74 75 72 6e 20 31 3b 20 7d 00 ayland.display\n");.return.1;.}.
236a0 00 00 30 20 20 20 20 72 65 67 69 73 74 72 79 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 ..0....registry.=.wl_display_get
236c0 5f 72 65 67 69 73 74 72 79 28 64 69 73 70 6c 61 79 29 3b 00 00 00 3f 20 20 20 20 77 6c 5f 72 65 _registry(display);...?....wl_re
236e0 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 72 65 67 69 73 74 72 79 2c 26 72 65 gistry_add_listener(registry,&re
23700 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 2c 4e 55 4c 4c 29 3b 00 00 00 22 20 20 20 20 77 6c gistry_listener,NULL);..."....wl
23720 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b 00 00 00 61 _display_roundtrip(display);...a
23740 20 20 20 20 69 66 28 21 63 6f 6d 70 6f 73 69 74 6f 72 20 7c 7c 20 21 73 68 6d 20 7c 7c 20 21 77 ....if(!compositor.||.!shm.||.!w
23760 6d 5f 62 61 73 65 29 7b 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 22 4d 69 73 73 69 6e 67 m_base){.fprintf(stderr,"Missing
23780 20 57 61 79 6c 61 6e 64 20 67 6c 6f 62 61 6c 73 5c 6e 22 29 3b 20 72 65 74 75 72 6e 20 31 3b 20 .Wayland.globals\n");.return.1;.
237a0 7d 00 00 00 37 20 20 20 20 73 75 72 66 61 63 65 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 }...7....surface.=.wl_compositor
237c0 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 63 6f 6d 70 6f 73 69 74 6f 72 29 3b 00 00 00 3f _create_surface(compositor);...?
237e0 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 ....xdg_surface.=.xdg_wm_base_ge
23800 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 77 6d 5f 62 61 73 65 2c 73 75 72 66 61 63 65 29 3b 00 t_xdg_surface(wm_base,surface);.
23820 00 00 45 20 20 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 ..E....xdg_surface_add_listener(
23840 78 64 67 5f 73 75 72 66 61 63 65 2c 26 78 64 67 5f 73 75 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 xdg_surface,&xdg_surface_listene
23860 72 2c 4e 55 4c 4c 29 3b 00 00 00 35 20 20 20 20 74 6f 70 6c 65 76 65 6c 20 3d 20 78 64 67 5f 73 r,NULL);...5....toplevel.=.xdg_s
23880 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 78 64 67 5f 73 75 72 66 61 63 65 29 urface_get_toplevel(xdg_surface)
238a0 3b 00 00 00 40 20 20 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e ;...@....xdg_toplevel_add_listen
238c0 65 72 28 74 6f 70 6c 65 76 65 6c 2c 26 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 2c 4e er(toplevel,&toplevel_listener,N
238e0 55 4c 4c 29 3b 00 00 00 2e 20 20 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 ULL);........xdg_toplevel_set_ti
23900 74 6c 65 28 74 6f 70 6c 65 76 65 6c 2c 22 78 63 6c 6f 63 6b 22 29 3b 00 00 00 1f 20 20 20 20 77 tle(toplevel,"xclock");........w
23920 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 73 75 72 66 61 63 65 29 3b 00 00 00 22 20 20 l_surface_commit(surface);..."..
23940 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 64 69 73 70 6c 61 79 29 3b ..wl_display_roundtrip(display);
23960 00 00 00 13 20 20 20 20 77 68 69 6c 65 28 72 75 6e 6e 69 6e 67 29 7b 00 00 00 2d 20 20 20 20 20 ........while(running){...-.....
23980 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 64 ...wl_display_dispatch_pending(d
239a0 69 73 70 6c 61 79 29 3b 00 00 00 15 20 20 20 20 20 20 20 20 64 72 61 77 5f 63 6c 6f 63 6b 28 29 isplay);............draw_clock()
239c0 3b 00 00 00 1b 20 20 20 20 20 20 20 20 75 73 6c 65 65 70 28 31 30 30 30 30 30 30 2f 36 30 29 3b ;............usleep(1000000/60);
239e0 00 00 00 05 20 20 20 20 7d 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 30 3b 35 81 f5 18 00 00 ........}........return.0;5.....
23a00 00 00 1a 00 00 00 02 00 00 00 8e 00 00 00 02 00 00 00 c1 00 00 00 00 00 00 00 7d 02 00 00 00 00 ..........................}.....
23a20 00 00 49 17 00 00 00 00 00 00 f0 18 00 00 00 00 00 00 35 81 e7 aa ..I...............5...