summaryrefslogtreecommitdiff
path: root/config/nvim-1/undo/%home%coast%Projects%wayland%wlclock%main.c
blob: ec97d25a9209b716fb7178e98d2aa9e96c4a86f6 (plain)
ofshex dumpascii
0000 56 69 6d 9f 55 6e 44 6f e5 00 03 b6 4d ac 5f 95 a1 19 9a b4 af c2 3f 19 b6 d0 26 cb 56 d8 55 91 Vim.UnDo....M._.......?...&.V.U.
0020 ff c3 2b 32 42 01 61 c9 d8 a4 47 00 00 01 35 00 00 00 1b 20 20 20 20 20 20 20 20 70 72 69 6e 74 ..+2B.a...G...5............print
0040 66 28 22 5c 72 54 69 6d 65 20 69 73 20 25 00 00 00 e6 00 00 00 1b 00 00 00 01 00 00 00 06 00 00 f("\rTime.is.%..................
0060 00 00 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 00 69 9d ae 2e 04 01 00 00 00 05 00 5f d0 00 ..................i.........._..
0080 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 00 00 00 00 00 ff ................................
00a0 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 ................................
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0200 00 69 9d ad 68 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 01 3f 00 00 .i..h........................?..
0220 00 1f 23 64 65 66 69 6e 65 20 5f 50 4f 53 49 58 5f 43 5f 53 4f 55 52 43 45 20 32 30 30 38 30 39 ..#define._POSIX_C_SOURCE.200809
0240 4c 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 L...&#include."xdg-shell-client-
0260 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 6c 2e 68 protocol.h"....#include.<fcntl.h
0280 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 11 23 69 6e 63 6c 75 >....#include.<math.h>....#inclu
02a0 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 6c 2e de.<poll.h>....#include.<signal.
02c0 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 13 23 69 h>....#include.<stdbool.h>....#i
02e0 6e 63 6c 75 64 65 20 3c 73 74 64 69 6e 74 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 nclude.<stdint.h>....#include.<s
0300 74 64 69 6f 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 tdio.h>....#include.<stdlib.h>..
0320 00 13 23 69 6e 63 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 ..#include.<string.h>....#includ
0340 65 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f e.<sys/mman.h>....#include.<sys/
0360 74 69 6d 65 72 66 64 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 timerfd.h>....#include.<time.h>.
0380 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 6c 75 ...#include.<unistd.h>....#inclu
03a0 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 1c 2f 2a 20 de.<wayland-client.h>......../*.
03c0 2d 2d 2d 20 54 48 45 4d 45 20 53 45 54 54 49 4e 47 53 20 2d 2d 2d 20 2a 2f 00 00 00 31 23 64 65 ---.THEME.SETTINGS.---.*/...1#de
03e0 66 69 6e 65 20 43 4f 4c 4f 52 5f 42 47 20 30 78 46 46 31 41 31 41 31 41 20 20 20 2f 2a 20 44 61 fine.COLOR_BG.0xFF1A1A1A.../*.Da
0400 72 6b 20 43 68 61 72 63 6f 61 6c 20 2a 2f 00 00 00 2f 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f rk.Charcoal.*/.../#define.COLOR_
0420 44 49 41 4c 20 30 78 46 46 46 46 46 46 46 46 20 2f 2a 20 57 68 69 74 65 20 54 69 63 6b 73 20 2a DIAL.0xFFFFFFFF./*.White.Ticks.*
0440 2f 00 00 00 2d 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 48 4f 55 52 20 30 78 46 46 45 45 45 45 /...-#define.COLOR_HOUR.0xFFEEEE
0460 45 45 20 2f 2a 20 4f 66 66 2d 77 68 69 74 65 20 2a 2f 00 00 00 2e 23 64 65 66 69 6e 65 20 43 4f EE./*.Off-white.*/....#define.CO
0480 4c 4f 52 5f 4d 49 4e 20 30 78 46 46 43 43 43 43 43 43 20 20 2f 2a 20 4c 69 67 68 74 20 47 72 65 LOR_MIN.0xFFCCCCCC../*.Light.Gre
04a0 79 20 2a 2f 00 00 00 2e 23 64 65 66 69 6e 65 20 43 4f 4c 4f 52 5f 53 45 43 20 30 78 46 46 46 46 y.*/....#define.COLOR_SEC.0xFFFF
04c0 30 30 30 30 20 20 2f 2a 20 42 72 69 67 68 74 20 52 65 64 20 2a 2f 00 00 00 30 23 64 65 66 69 6e 0000../*.Bright.Red.*/...0#defin
04e0 65 20 43 4f 4c 4f 52 5f 48 55 42 20 30 78 46 46 34 34 34 34 34 34 20 20 2f 2a 20 48 75 62 20 43 e.COLOR_HUB.0xFF444444../*.Hub.C
0500 61 70 20 47 72 65 79 20 2a 2f 00 00 00 00 00 00 00 3b 23 64 65 66 69 6e 65 20 48 41 4e 44 5f 54 ap.Grey.*/.......;#define.HAND_T
0520 48 49 43 4b 5f 48 20 30 2e 30 35 20 20 2f 2a 20 48 6f 75 72 20 68 61 6e 64 20 74 68 69 63 6b 6e HICK_H.0.05../*.Hour.hand.thickn
0540 65 73 73 20 66 61 63 74 6f 72 20 2a 2f 00 00 00 3d 23 64 65 66 69 6e 65 20 48 41 4e 44 5f 54 48 ess.factor.*/...=#define.HAND_TH
0560 49 43 4b 5f 4d 20 30 2e 30 33 35 20 2f 2a 20 4d 69 6e 75 74 65 20 68 61 6e 64 20 74 68 69 63 6b ICK_M.0.035./*.Minute.hand.thick
0580 6e 65 73 73 20 66 61 63 74 6f 72 20 2a 2f 00 00 00 3d 23 64 65 66 69 6e 65 20 48 41 4e 44 5f 54 ness.factor.*/...=#define.HAND_T
05a0 48 49 43 4b 5f 53 20 30 2e 30 34 20 20 2f 2a 20 53 65 63 6f 6e 64 20 68 61 6e 64 20 74 68 69 63 HICK_S.0.04../*.Second.hand.thic
05c0 6b 6e 65 73 73 20 66 61 63 74 6f 72 20 2a 2f 00 00 00 00 00 00 00 43 23 64 65 66 69 6e 65 20 48 kness.factor.*/.......C#define.H
05e0 41 4e 44 5f 4c 45 4e 5f 48 20 30 2e 35 35 20 2f 2a 20 48 6f 75 72 20 68 61 6e 64 20 6c 65 6e 67 AND_LEN_H.0.55./*.Hour.hand.leng
0600 74 68 20 28 66 72 61 63 74 69 6f 6e 20 6f 66 20 72 61 64 69 75 73 29 20 2a 2f 00 00 00 30 23 64 th.(fraction.of.radius).*/...0#d
0620 65 66 69 6e 65 20 48 41 4e 44 5f 4c 45 4e 5f 4d 20 30 2e 38 30 20 2f 2a 20 4d 69 6e 75 74 65 20 efine.HAND_LEN_M.0.80./*.Minute.
0640 68 61 6e 64 20 6c 65 6e 67 74 68 20 2a 2f 00 00 00 30 23 64 65 66 69 6e 65 20 48 41 4e 44 5f 4c hand.length.*/...0#define.HAND_L
0660 45 4e 5f 53 20 30 2e 38 30 20 2f 2a 20 53 65 63 6f 6e 64 20 68 61 6e 64 20 6c 65 6e 67 74 68 20 EN_S.0.80./*.Second.hand.length.
0680 2a 2f 00 00 00 1c 2f 2a 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 20 */..../*.----------------------.
06a0 2a 2f 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 66 69 6e */........#ifndef.M_PI...##defin
06c0 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 38 39 37 39 33 32 33 38 34 36 00 00 00 e.M_PI.3.14159265358979323846...
06e0 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 23 64 65 .#endif....#ifndef.M_PI_2...%#de
0700 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 36 33 32 36 37 39 34 38 39 36 36 31 39 fine.M_PI_2.1.570796326794896619
0720 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 6c 61 74 23....#endif.......)static.volat
0740 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 ile.sig_atomic_t.running.=.1;...
0760 1b 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 00 00 00 0a .static.void.on_sig(int.s).{....
0780 20 20 28 76 6f 69 64 29 73 3b 00 00 00 0e 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 00 00 01 ..(void)s;......running.=.0;....
07a0 7d 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 }........struct.app.{......struc
07c0 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f t.wl_display.*d;......struct.wl_
07e0 72 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f registry.*reg;......struct.wl_co
0800 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 mpositor.*comp;......struct.wl_s
0820 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 hm.*shm;......struct.xdg_wm_base
0840 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 .*wm;......struct.wl_surface.*ws
0860 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 ;......struct.xdg_surface.*xs;..
0880 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f ....struct.xdg_toplevel.*xt;....
08a0 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 ..void.*pixels;......struct.wl_b
08c0 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 0d 20 20 uffer.*buf;......int.w,.h;......
08e0 69 6e 74 20 62 77 2c 20 62 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 int.bw,.bh;......bool.configured
0900 3b 00 00 00 0e 20 20 62 6f 6f 6c 20 72 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 ;......bool.redraw;....};.......
0920 4a 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 74 61 2c Jstatic.void.wm_ping(void.*data,
0940 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 32 5f .struct.xdg_wm_base.*wm,.uint32_
0960 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 1f 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e t.serial).{......xdg_wm_base_pon
0980 67 28 77 6d 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 24 73 74 61 74 69 g(wm,.serial);....}.......$stati
09a0 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 c.int.create_shm(size_t.size).{.
09c0 00 00 23 20 20 63 68 61 72 20 74 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 58 58 ..#..char.t[].=."/tmp/wlclock-XX
09e0 58 58 58 58 22 3b 00 00 00 16 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 29 3b XXXX";......int.fd.=.mkstemp(t);
0a00 00 00 00 0d 20 20 69 66 20 28 66 64 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 ......if.(fd.<.0)........exit(1)
0a20 3b 00 00 00 0c 20 20 75 6e 6c 69 6e 6b 28 74 29 3b 00 00 00 1e 20 20 69 66 20 28 66 74 72 75 6e ;......unlink(t);......if.(ftrun
0a40 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 cate(fd,.size).<.0)........exit(
0a60 31 29 3b 00 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 28 1);......return.fd;....}.......(
0a80 73 74 61 74 69 63 20 76 6f 69 64 20 64 65 73 74 72 6f 79 5f 62 75 66 28 73 74 72 75 63 74 20 61 static.void.destroy_buf(struct.a
0aa0 70 70 20 2a 61 29 20 7b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 0b 20 20 pp.*a).{......if.(!a->buf)......
0ac0 20 20 72 65 74 75 72 6e 3b 00 00 00 2a 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 ..return;...*..size_t.size.=.(si
0ae0 7a 65 5f 74 29 61 2d 3e 62 77 20 2a 20 61 2d 3e 62 68 20 2a 20 34 3b 00 00 00 1c 20 20 77 6c 5f ze_t)a->bw.*.a->bh.*.4;......wl_
0b00 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 1a 20 20 6d 75 6e buffer_destroy(a->buf);......mun
0b20 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 73 69 7a 65 29 3b 00 00 00 10 20 20 61 2d 3e 62 75 map(a->pixels,.size);......a->bu
0b40 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 13 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b f.=.NULL;......a->pixels.=.NULL;
0b60 00 00 00 01 7d 00 00 00 00 00 00 00 26 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f 63 5f 62 ....}.......&static.void.alloc_b
0b80 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 11 20 20 64 65 73 74 72 6f 79 uf(struct.app.*a).{......destroy
0ba0 5f 62 75 66 28 61 29 3b 00 00 00 28 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a _buf(a);...(..size_t.size.=.(siz
0bc0 65 5f 74 29 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 3b 00 00 00 1c 20 20 69 6e 74 20 66 64 e_t)a->w.*.a->h.*.4;......int.fd
0be0 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 .=.create_shm(size);...J..a->pix
0c00 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 41 44 els.=.mmap(NULL,.size,.PROT_READ
0c20 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
0c40 29 3b 00 00 00 1e 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 );......if.(a->pixels.==.MAP_FAI
0c60 4c 45 44 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 42 20 20 73 74 72 75 63 74 LED)........exit(1);...B..struct
0c80 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 72 65 61 .wl_shm_pool.*pool.=.wl_shm_crea
0ca0 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 43 20 20 te_pool(a->shm,.fd,.size);...C..
0cc0 61 2d 3e 62 75 66 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 a->buf.=.wl_shm_pool_create_buff
0ce0 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 2a 20 34 er(pool,.0,.a->w,.a->h,.a->w.*.4
0d00 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 20 ,...=...........................
0d20 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
0d40 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c );......wl_shm_pool_destroy(pool
0d60 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 0f 20 20 61 2d 3e 62 77 20 3d 20 );......close(fd);......a->bw.=.
0d80 61 2d 3e 77 3b 00 00 00 0f 20 20 61 2d 3e 62 68 20 3d 20 61 2d 3e 68 3b 00 00 00 01 7d 00 00 00 a->w;......a->bh.=.a->h;....}...
0da0 00 00 00 00 45 73 74 61 74 69 63 20 76 6f 69 64 20 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 ....Estatic.void.circle(uint32_t
0dc0 20 2a 70 78 2c 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 .*px,.int.w,.int.h,.int.cx,.int.
0de0 63 79 2c 20 69 6e 74 20 72 2c 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cy,.int.r,......................
0e00 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 .uint32_t.c).{..."..int.x.=.0,.y
0e20 20 3d 20 72 2c 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 .=.r,.d.=.3.-.2.*.r;......while.
0e40 28 79 20 3e 3d 20 78 29 20 7b 00 00 00 48 20 20 20 20 69 6e 74 20 70 5b 38 5d 5b 32 5d 20 3d 20 (y.>=.x).{...H....int.p[8][2].=.
0e60 7b 7b 63 78 20 2b 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2b {{cx.+.x,.cy.+.y},.{cx.-.x,.cy.+
0e80 20 79 7d 2c 20 7b 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 48 20 20 20 20 20 20 .y},.{cx.+.x,.cy.-.y},...H......
0ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 7d 2c 20 7b .............{cx.-.x,.cy.-.y},.{
0ec0 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 cx.+.y,.cy.+.x},.{cx.-.y,.cy.+.x
0ee0 7d 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2b 20 79 },...7...................{cx.+.y
0f00 2c 20 63 79 20 2d 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d 7d 3b 00 00 00 ,.cy.-.x},.{cx.-.y,.cy.-.x}};...
0f20 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b 29 .....for.(int.i.=.0;.i.<.8;.i++)
0f40 00 00 00 45 20 20 20 20 20 20 69 66 20 28 70 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 20 70 5b ...E......if.(p[i][0].>=.0.&&.p[
0f60 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 i][0].<.w.&&.p[i][1].>=.0.&&.p[i
0f80 5d 5b 31 5d 20 3c 20 68 29 00 00 00 26 20 20 20 20 20 20 20 20 70 78 5b 70 5b 69 5d 5b 31 5d 20 ][1].<.h)...&........px[p[i][1].
0fa0 2a 20 77 20 2b 20 70 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 10 20 20 20 20 69 66 20 28 64 *.w.+.p[i][0]].=.c;........if.(d
0fc0 20 3e 20 30 29 20 7b 00 00 00 1c 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 .>.0).{..........d.+=.4.*.(x.-.y
0fe0 29 20 2b 20 31 30 3b 00 00 00 0a 20 20 20 20 20 20 79 2d 2d 3b 00 00 00 0a 20 20 20 20 7d 20 65 ).+.10;..........y--;........}.e
1000 6c 73 65 00 00 00 15 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 lse..........d.+=.4.*.x.+.6;....
1020 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 50 73 74 61 74 ....x++;......}....}.......Pstat
1040 69 63 20 76 6f 69 64 20 66 69 6c 6c 5f 74 72 69 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 69 ic.void.fill_tri(uint32_t.*px,.i
1060 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 74 nt.w,.int.h,.int.x0,.int.y0,.int
1080 20 78 31 2c 20 69 6e 74 20 79 31 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .x1,.int.y1,...2................
10a0 20 20 20 20 20 69 6e 74 20 78 32 2c 20 69 6e 74 20 79 32 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 .....int.x2,.int.y2,.uint32_t.c)
10c0 20 7b 00 00 00 42 20 20 69 6e 74 20 6d 69 6e 5f 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 28 79 .{...B..int.min_y.=.y0.<.y1.?.(y
10e0 30 20 3c 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3c 20 79 32 20 3f 20 79 0.<.y2.?.y0.:.y2).:.(y1.<.y2.?.y
1100 31 20 3a 20 79 32 29 3b 00 00 00 42 20 20 69 6e 74 20 6d 61 78 5f 79 20 3d 20 79 30 20 3e 20 79 1.:.y2);...B..int.max_y.=.y0.>.y
1120 31 20 3f 20 28 79 30 20 3e 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3e 20 1.?.(y0.>.y2.?.y0.:.y2).:.(y1.>.
1140 79 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 10 20 20 69 66 20 28 6d 69 6e 5f 79 20 3c 20 y2.?.y1.:.y2);......if.(min_y.<.
1160 30 29 00 00 00 0e 20 20 20 20 6d 69 6e 5f 79 20 3d 20 30 3b 00 00 00 11 20 20 69 66 20 28 6d 61 0)........min_y.=.0;......if.(ma
1180 78 5f 79 20 3e 3d 20 68 29 00 00 00 12 20 20 20 20 6d 61 78 5f 79 20 3d 20 68 20 2d 20 31 3b 00 x_y.>=.h)........max_y.=.h.-.1;.
11a0 00 00 28 20 20 66 6f 72 20 28 69 6e 74 20 79 20 3d 20 6d 69 6e 5f 79 3b 20 79 20 3c 3d 20 6d 61 ..(..for.(int.y.=.min_y;.y.<=.ma
11c0 78 5f 79 3b 20 79 2b 2b 29 20 7b 00 00 00 1f 20 20 20 20 69 6e 74 20 78 5f 73 74 61 72 74 20 3d x_y;.y++).{........int.x_start.=
11e0 20 77 2c 20 78 5f 65 6e 64 20 3d 20 30 3b 00 00 00 33 20 20 20 20 69 6e 74 20 78 73 5b 33 5d 20 .w,.x_end.=.0;...3....int.xs[3].
1200 3d 20 7b 78 30 2c 20 78 31 2c 20 78 32 7d 2c 20 79 73 5b 33 5d 20 3d 20 7b 79 30 2c 20 79 31 2c =.{x0,.x1,.x2},.ys[3].=.{y0,.y1,
1220 20 79 32 7d 3b 00 00 00 15 20 20 20 20 62 6f 6f 6c 20 68 69 74 20 3d 20 66 61 6c 73 65 3b 00 00 .y2};........bool.hit.=.false;..
1240 00 21 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 33 3b 20 69 2b 2b .!....for.(int.i.=.0;.i.<.3;.i++
1260 29 20 7b 00 00 00 1a 20 20 20 20 20 20 69 6e 74 20 6a 20 3d 20 28 69 20 2b 20 31 29 20 25 20 33 ).{..........int.j.=.(i.+.1).%.3
1280 3b 00 00 00 43 20 20 20 20 20 20 69 66 20 28 28 79 73 5b 69 5d 20 3c 3d 20 79 20 26 26 20 79 73 ;...C......if.((ys[i].<=.y.&&.ys
12a0 5b 6a 5d 20 3e 20 79 29 20 7c 7c 20 28 79 73 5b 6a 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 69 5d [j].>.y).||.(ys[j].<=.y.&&.ys[i]
12c0 20 3e 20 79 29 29 20 7b 00 00 00 48 20 20 20 20 20 20 20 20 69 6e 74 20 78 20 3d 20 78 73 5b 69 .>.y)).{...H........int.x.=.xs[i
12e0 5d 20 2b 20 28 79 20 2d 20 79 73 5b 69 5d 29 20 2a 20 28 78 73 5b 6a 5d 20 2d 20 78 73 5b 69 5d ].+.(y.-.ys[i]).*.(xs[j].-.xs[i]
1300 29 20 2f 20 28 79 73 5b 6a 5d 20 2d 20 79 73 5b 69 5d 29 3b 00 00 00 18 20 20 20 20 20 20 20 20 )./.(ys[j].-.ys[i]);............
1320 69 66 20 28 78 20 3c 20 78 5f 73 74 61 72 74 29 00 00 00 16 20 20 20 20 20 20 20 20 20 20 78 5f if.(x.<.x_start)..............x_
1340 73 74 61 72 74 20 3d 20 78 3b 00 00 00 16 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3e 20 78 5f start.=.x;............if.(x.>.x_
1360 65 6e 64 29 00 00 00 14 20 20 20 20 20 20 20 20 20 20 78 5f 65 6e 64 20 3d 20 78 3b 00 00 00 13 end)..............x_end.=.x;....
1380 20 20 20 20 20 20 20 20 68 69 74 20 3d 20 74 72 75 65 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 ........hit.=.true;..........}..
13a0 00 05 20 20 20 20 7d 00 00 00 0e 20 20 20 20 69 66 20 28 68 69 74 29 20 7b 00 00 00 16 20 20 20 ......}........if.(hit).{.......
13c0 20 20 20 69 66 20 28 78 5f 73 74 61 72 74 20 3c 20 30 29 00 00 00 14 20 20 20 20 20 20 20 20 78 ...if.(x_start.<.0)............x
13e0 5f 73 74 61 72 74 20 3d 20 30 3b 00 00 00 15 20 20 20 20 20 20 69 66 20 28 78 5f 65 6e 64 20 3e _start.=.0;..........if.(x_end.>
1400 3d 20 77 29 00 00 00 16 20 20 20 20 20 20 20 20 78 5f 65 6e 64 20 3d 20 77 20 2d 20 31 3b 00 00 =.w)............x_end.=.w.-.1;..
1420 00 2c 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 78 20 3d 20 78 5f 73 74 61 72 74 3b 20 78 20 .,......for.(int.x.=.x_start;.x.
1440 3c 3d 20 78 5f 65 6e 64 3b 20 78 2b 2b 29 00 00 00 1a 20 20 20 20 20 20 20 20 70 78 5b 79 20 2a <=.x_end;.x++)............px[y.*
1460 20 77 20 2b 20 78 5d 20 3d 20 63 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 .w.+.x].=.c;........}......}....
1480 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 }.......#static.void.render(stru
14a0 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 2f 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 ct.app.*a).{.../..if.(!a->config
14c0 75 72 65 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 00 ured.||.a->w.<=.0.||.a->h.<=.0).
14e0 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 .......return;......if.(!a->buf)
1500 00 00 00 11 20 20 20 20 61 6c 6c 6f 63 5f 62 75 66 28 61 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 ........alloc_buf(a);......uint3
1520 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 27 20 20 66 6f 72 20 28 69 2_t.*px.=.a->pixels;...'..for.(i
1540 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 61 2d 3e 77 20 2a 20 61 2d 3e 68 3b 20 69 2b 2b 29 00 nt.i.=.0;.i.<.a->w.*.a->h;.i++).
1560 00 00 15 20 20 20 20 70 78 5b 69 5d 20 3d 20 43 4f 4c 4f 52 5f 42 47 3b 00 00 00 00 00 00 00 19 .......px[i].=.COLOR_BG;........
1580 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 10 20 20 73 ..time_t.tt.=.time(NULL);......s
15a0 74 72 75 63 74 20 74 6d 20 74 6d 76 3b 00 00 00 19 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 truct.tm.tmv;......localtime_r(&
15c0 74 74 2c 20 26 74 6d 76 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 tt,.&tmv);...#..int.cx.=.a->w./.
15e0 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 2,.cy.=.a->h./.2;.../..int.r.=.(
1600 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d a->w.<.a->h.?.a->w.:.a->h)./.2.-
1620 20 31 30 3b 00 00 00 0c 20 20 69 66 20 28 72 20 3c 20 35 29 00 00 00 0a 20 20 20 20 72 20 3d 20 .10;......if.(r.<.5)........r.=.
1640 35 3b 00 00 00 00 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 5;..........for.(int.i.=.0;.i.<.
1660 36 30 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 60;.i++).{........double.ang.=.i
1680 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 31 ./.60.0.*.2.*.M_PI.-.M_PI_2;...1
16a0 20 20 20 20 69 6e 74 20 6c 65 6e 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 72 20 2a ....int.len.=.(i.%.5.==.0).?.r.*
16c0 20 30 2e 31 32 20 3a 20 72 20 2a 20 30 2e 30 34 3b 00 00 00 30 20 20 20 20 64 6f 75 62 6c 65 20 .0.12.:.r.*.0.04;...0....double.
16e0 74 5f 61 6e 67 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 30 2e 30 31 32 20 3a 20 30 t_ang.=.(i.%.5.==.0).?.0.012.:.0
1700 2e 30 30 35 3b 00 00 00 37 20 20 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 .005;...7....fill_tri(px,.a->w,.
1720 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 20 2d 20 74 5f 61 6e 67 29 20 2a 20 72 2c a->h,.cx.+.cos(ang.-.t_ang).*.r,
1740 00 00 00 42 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 20 2d 20 ...B.............cy.+.sin(ang.-.
1760 74 5f 61 6e 67 29 20 2a 20 72 2c 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 20 2b 20 74 5f 61 6e 67 t_ang).*.r,.cx.+.cos(ang.+.t_ang
1780 29 20 2a 20 72 2c 00 00 00 42 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 ).*.r,...B.............cy.+.sin(
17a0 61 6e 67 20 2b 20 74 5f 61 6e 67 29 20 2a 20 72 2c 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 29 20 ang.+.t_ang).*.r,.cx.+.cos(ang).
17c0 2a 20 28 72 20 2d 20 6c 65 6e 29 2c 00 00 00 34 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 *.(r.-.len),...4.............cy.
17e0 2b 20 73 69 6e 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 6c 65 6e 29 2c 20 43 4f 4c 4f 52 5f 44 49 +.sin(ang).*.(r.-.len),.COLOR_DI
1800 41 4c 29 3b 00 00 00 03 20 20 7d 00 00 00 00 00 00 00 34 20 20 64 6f 75 62 6c 65 20 73 61 20 3d AL);......}.......4..double.sa.=
1820 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 .tmv.tm_sec./.60.0.*.2.*.M_PI.-.
1840 4d 5f 50 49 5f 32 3b 00 00 00 4a 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 76 2e 74 6d M_PI_2;...J..double.ma.=.(tmv.tm
1860 5f 6d 69 6e 20 2b 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 _min.+.tmv.tm_sec./.60.0)./.60.0
1880 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 0d 20 20 64 6f 75 62 6c .*.2.*.M_PI.-.M_PI_2;......doubl
18a0 65 20 68 61 20 3d 00 00 00 4c 20 20 20 20 20 20 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 20 25 20 e.ha.=...L......((tmv.tm_hour.%.
18c0 31 32 29 20 2b 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 12).+.(tmv.tm_min./.60.0))./.12.
18e0 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 00 00 00 00 42 20 20 0.*.2.*.M_PI.-.M_PI_2;.......B..
1900 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f fill_tri(px,.a->w,.a->h,.cx.+.co
1920 73 28 68 61 20 2d 20 30 2e 31 32 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 48 2c s(ha.-.0.12).*.r.*.HAND_THICK_H,
1940 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 68 61 20 2d 20 30 2e 31 ...2...........cy.+.sin(ha.-.0.1
1960 32 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 48 2c 00 00 00 32 20 20 20 20 20 20 2).*.r.*.HAND_THICK_H,...2......
1980 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 68 61 20 2b 20 30 2e 31 32 29 20 2a 20 72 20 2a 20 48 .....cx.+.cos(ha.+.0.12).*.r.*.H
19a0 41 4e 44 5f 54 48 49 43 4b 5f 48 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 AND_THICK_H,...2...........cy.+.
19c0 73 69 6e 28 68 61 20 2b 20 30 2e 31 32 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f sin(ha.+.0.12).*.r.*.HAND_THICK_
19e0 48 2c 00 00 00 48 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 68 61 29 20 2a 20 H,...H...........cx.+.cos(ha).*.
1a00 72 20 2a 20 48 41 4e 44 5f 4c 45 4e 5f 48 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 29 20 2a 20 72 r.*.HAND_LEN_H,.cy.+.sin(ha).*.r
1a20 20 2a 20 48 41 4e 44 5f 4c 45 4e 5f 48 2c 00 00 00 17 20 20 20 20 20 20 20 20 20 20 20 43 4f 4c .*.HAND_LEN_H,...............COL
1a40 4f 52 5f 48 4f 55 52 29 3b 00 00 00 42 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 OR_HOUR);...B..fill_tri(px,.a->w
1a60 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 20 2d 20 30 2e 30 38 29 20 2a 20 72 20 ,.a->h,.cx.+.cos(ma.-.0.08).*.r.
1a80 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 4d 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 63 79 *.HAND_THICK_M,...2...........cy
1aa0 20 2b 20 73 69 6e 28 6d 61 20 2d 20 30 2e 30 38 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 .+.sin(ma.-.0.08).*.r.*.HAND_THI
1ac0 43 4b 5f 4d 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 20 CK_M,...2...........cx.+.cos(ma.
1ae0 2b 20 30 2e 30 38 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 4d 2c 00 00 00 32 20 +.0.08).*.r.*.HAND_THICK_M,...2.
1b00 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 6d 61 20 2b 20 30 2e 30 38 29 20 2a 20 ..........cy.+.sin(ma.+.0.08).*.
1b20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 4d 2c 00 00 00 48 20 20 20 20 20 20 20 20 20 20 20 r.*.HAND_THICK_M,...H...........
1b40 63 78 20 2b 20 63 6f 73 28 6d 61 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 4c 45 4e 5f 4d 2c 20 63 cx.+.cos(ma).*.r.*.HAND_LEN_M,.c
1b60 79 20 2b 20 73 69 6e 28 6d 61 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 4c 45 4e 5f 4d 2c 00 00 00 y.+.sin(ma).*.r.*.HAND_LEN_M,...
1b80 16 20 20 20 20 20 20 20 20 20 20 20 43 4f 4c 4f 52 5f 4d 49 4e 29 3b 00 00 00 42 20 20 66 69 6c ............COLOR_MIN);...B..fil
1ba0 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 73 l_tri(px,.a->w,.a->h,.cx.+.cos(s
1bc0 61 20 2d 20 30 2e 30 35 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 53 2c 00 00 00 a.-.0.05).*.r.*.HAND_THICK_S,...
1be0 32 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 73 61 20 2d 20 30 2e 30 35 29 20 2...........cy.+.sin(sa.-.0.05).
1c00 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 53 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 *.r.*.HAND_THICK_S,...2.........
1c20 20 20 63 78 20 2b 20 63 6f 73 28 73 61 20 2b 20 30 2e 30 35 29 20 2a 20 72 20 2a 20 48 41 4e 44 ..cx.+.cos(sa.+.0.05).*.r.*.HAND
1c40 5f 54 48 49 43 4b 5f 53 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e _THICK_S,...2...........cy.+.sin
1c60 28 73 61 20 2b 20 30 2e 30 35 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 53 2c 00 (sa.+.0.05).*.r.*.HAND_THICK_S,.
1c80 00 00 48 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 73 61 29 20 2a 20 72 20 2a ..H...........cx.+.cos(sa).*.r.*
1ca0 20 48 41 4e 44 5f 4c 45 4e 5f 53 2c 20 63 79 20 2b 20 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 .HAND_LEN_S,.cy.+.sin(sa).*.r.*.
1cc0 48 41 4e 44 5f 4c 45 4e 5f 53 2c 00 00 00 16 20 20 20 20 20 20 20 20 20 20 20 43 4f 4c 4f 52 5f HAND_LEN_S,...............COLOR_
1ce0 53 45 43 29 3b 00 00 00 00 00 00 00 17 20 20 69 6e 74 20 68 75 62 5f 72 20 3d 20 72 20 2a 20 30 SEC);..........int.hub_r.=.r.*.0
1d00 2e 30 34 3b 00 00 00 10 20 20 69 66 20 28 68 75 62 5f 72 20 3c 20 34 29 00 00 00 0e 20 20 20 20 .04;......if.(hub_r.<.4)........
1d20 68 75 62 5f 72 20 3d 20 34 3b 00 00 00 28 20 20 66 6f 72 20 28 69 6e 74 20 69 72 20 3d 20 30 3b hub_r.=.4;...(..for.(int.ir.=.0;
1d40 20 69 72 20 3c 20 68 75 62 5f 72 20 2d 20 32 3b 20 69 72 2b 2b 29 00 00 00 31 20 20 20 20 63 69 .ir.<.hub_r.-.2;.ir++)...1....ci
1d60 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 69 72 2c rcle(px,.a->w,.a->h,.cx,.cy,.ir,
1d80 20 43 4f 4c 4f 52 5f 42 47 29 3b 00 00 00 33 20 20 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 .COLOR_BG);...3..circle(px,.a->w
1da0 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 68 75 62 5f 72 2c 20 43 4f 4c 4f 52 5f 48 55 42 ,.a->h,.cx,.cy,.hub_r,.COLOR_HUB
1dc0 29 3b 00 00 00 00 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d );.......)..wl_surface_attach(a-
1de0 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 20 20 77 6c 5f 73 75 72 66 >ws,.a->buf,.0,.0);...4..wl_surf
1e00 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 61 ace_damage_buffer(a->ws,.0,.0,.a
1e20 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d ->w,.a->h);......wl_surface_comm
1e40 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 14 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 66 61 6c 73 it(a->ws);......a->redraw.=.fals
1e60 65 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 78 74 5f 63 6c e;....}.......Gstatic.void.xt_cl
1e80 6f 73 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c ose(void.*d,.struct.xdg_toplevel
1ea0 20 2a 78 74 29 20 7b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 4a 73 74 61 74 69 63 .*xt).{.running.=.0;.}...Jstatic
1ec0 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 .void.xt_cfg(void.*d,.struct.xdg
1ee0 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f _toplevel.*xt,.int32_t.w,.int32_
1f00 74 20 68 2c 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 75 63 t.h,...(...................struc
1f20 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 t.wl_array.*s).{......struct.app
1f40 20 2a 61 20 3d 20 64 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 20 3e 20 30 .*a.=.d;...3..if.(w.>.0.&&.h.>.0
1f60 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 29 20 7b 00 .&&.(w.!=.a->w.||.h.!=.a->h)).{.
1f80 00 00 0d 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 00 00 00 0d 20 20 20 20 61 2d 3e 68 20 3d 20 68 .......a->w.=.w;........a->h.=.h
1fa0 3b 00 00 00 13 20 20 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 15 20 20 20 20 ;........destroy_buf(a);........
1fc0 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 a->redraw.=.true;......}....}...
1fe0 46 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 Fstatic.void.xs_cfg(void.*d,.str
2000 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 uct.xdg_surface.*xs,.uint32_t.se
2020 72 69 61 6c 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 rial).{......struct.app.*a.=.d;.
2040 00 00 28 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 ..(..xdg_surface_ack_configure(x
2060 73 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 17 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d s,.serial);......a->configured.=
2080 20 74 72 75 65 3b 00 00 00 13 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 .true;......a->redraw.=.true;...
20a0 01 7d 00 00 00 43 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 5f 67 6c 6f 62 61 6c 28 76 6f 69 .}...Cstatic.void.reg_global(voi
20c0 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 2c 20 75 69 6e d.*d,.struct.wl_registry.*r,.uin
20e0 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 20 20 20 20 20 20 20 t32_t.id,...3...................
2100 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 69 2c 20 75 69 6e 74 33 32 5f 74 20 76 29 20 7b ....const.char.*i,.uint32_t.v).{
2120 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 22 20 20 69 66 ......struct.app.*a.=.d;..."..if
2140 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 00 00 .(!strcmp(i,."wl_compositor"))..
2160 00 43 20 20 20 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 .C....a->comp.=.wl_registry_bind
2180 28 72 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 (r,.id,.&wl_compositor_interface
21a0 2c 20 34 29 3b 00 00 00 20 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 ,.4);......else.if.(!strcmp(i,."
21c0 77 6c 5f 73 68 6d 22 29 29 00 00 00 3b 20 20 20 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 wl_shm"))...;....a->shm.=.wl_reg
21e0 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 73 68 6d 5f 69 6e 74 65 72 66 istry_bind(r,.id,.&wl_shm_interf
2200 61 63 65 2c 20 31 29 3b 00 00 00 27 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 ace,.1);...'..else.if.(!strcmp(i
2220 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 00 3f 20 20 20 20 61 2d 3e 77 6d ,."xdg_wm_base")).{...?....a->wm
2240 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 78 64 67 5f .=.wl_registry_bind(r,.id,.&xdg_
2260 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 73 74 wm_base_interface,.1);...C....st
2280 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 6c 69 atic.const.struct.xdg_wm_base_li
22a0 73 74 65 6e 65 72 20 6c 20 3d 20 7b 2e 70 69 6e 67 20 3d 20 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 stener.l.=.{.ping.=.wm_ping};...
22c0 2b 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 61 2d +....xdg_wm_base_add_listener(a-
22e0 3e 77 6d 2c 20 26 6c 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 >wm,.&l,.a);......}....}........
2300 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 15 20 20 73 74 72 75 63 74 20 61 70 70 int.main(void).{......struct.app
2320 20 61 20 3d 20 7b 30 7d 3b 00 00 00 0c 20 20 61 2e 77 20 3d 20 34 30 30 3b 00 00 00 0c 20 20 61 .a.=.{0};......a.w.=.400;......a
2340 2e 68 20 3d 20 34 30 30 3b 00 00 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e .h.=.400;......signal(SIGINT,.on
2360 5f 73 69 67 29 3b 00 00 00 21 20 20 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f 6e _sig);...!..a.d.=.wl_display_con
2380 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 0b 20 20 69 66 20 28 21 61 2e 64 29 00 00 00 0d 20 20 nect(NULL);......if.(!a.d)......
23a0 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 65 67 20 3d 20 77 6c 5f 64 69 73 70 ..return.1;...'..a.reg.=.wl_disp
23c0 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 47 20 20 73 74 61 74 lay_get_registry(a.d);...G..stat
23e0 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 69 73 74 ic.const.struct.wl_registry_list
2400 65 6e 65 72 20 72 6c 20 3d 20 7b 2e 67 6c 6f 62 61 6c 20 3d 20 72 65 67 5f 67 6c 6f 62 61 6c 7d ener.rl.=.{.global.=.reg_global}
2420 3b 00 00 00 2b 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(
2440 61 2e 72 65 67 2c 20 26 72 6c 2c 20 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 a.reg,.&rl,.&a);......wl_display
2460 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 21 20 20 69 66 20 28 21 61 2e 63 6f 6d _roundtrip(a.d);...!..if.(!a.com
2480 70 20 7c 7c 20 21 61 2e 73 68 6d 20 7c 7c 20 21 61 2e 77 6d 29 00 00 00 0d 20 20 20 20 72 65 74 p.||.!a.shm.||.!a.wm)........ret
24a0 75 72 6e 20 31 3b 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 urn.1;......a.ws.=.wl_compositor
24c0 5f 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e _create_surface(a.comp);...1..a.
24e0 78 73 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 xs.=.xdg_wm_base_get_xdg_surface
2500 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 (a.wm,.a.ws);...G..static.const.
2520 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 73 6c 20 struct.xdg_surface_listener.xsl.
2540 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 73 5f 63 66 67 7d 3b 00 00 00 2b 20 20 78 64 =.{.configure.=.xs_cfg};...+..xd
2560 67 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 78 73 g_surface_add_listener(a.xs,.&xs
2580 6c 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f l,.&a);...(..a.xt.=.xdg_surface_
25a0 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 get_toplevel(a.xs);...G..static.
25c0 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
25e0 65 72 20 78 74 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 74 5f 63 66 67 2c 00 00 er.xtl.=.{.configure.=.xt_cfg,..
2600 00 46 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .F..............................
2620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 63 6c 6f 73 65 20 3d 20 78 74 ......................close.=.xt
2640 5f 63 6c 6f 73 65 7d 3b 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c _close};...,..xdg_toplevel_add_l
2660 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 6c 2c 20 26 61 29 3b 00 00 00 2a 20 20 78 64 istener(a.xt,.&xtl,.&a);...*..xd
2680 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c 63 6c g_toplevel_set_title(a.xt,."wlcl
26a0 6f 63 6b 22 29 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e ock");......wl_surface_commit(a.
26c0 77 73 29 3b 00 00 00 17 20 20 77 68 69 6c 65 20 28 21 61 2e 63 6f 6e 66 69 67 75 72 65 64 29 00 ws);......while.(!a.configured).
26e0 00 00 1d 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 3b .......wl_display_dispatch(a.d);
2700 00 00 00 00 00 00 00 32 20 20 70 75 74 73 28 22 77 61 79 6c 61 6e 64 20 73 75 72 66 61 63 65 20 .......2..puts("wayland.surface.
2720 73 75 63 63 65 73 73 66 75 6c 6c 79 20 63 6f 6e 66 69 67 75 72 65 64 22 29 3b 00 00 00 00 00 00 successfully.configured");......
2740 00 0d 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 39 20 20 69 6e 74 20 74 66 64 20 3d 20 74 ....render(&a);...9..int.tfd.=.t
2760 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 imerfd_create(CLOCK_MONOTONIC,.T
2780 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d FD_CLOEXEC);...F..timerfd_settim
27a0 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 29 7b 7b e(tfd,.0,.&(struct.itimerspec){{
27c0 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 00 00 13 20 20 63 68 61 72 1,.0},.{1,.0}},.NULL);......char
27e0 20 62 75 66 66 65 72 5b 31 30 30 5d 3b 00 00 00 13 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e .buffer[100];......while.(runnin
2800 67 29 20 7b 00 00 00 2d 20 20 20 20 77 68 69 6c 65 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 70 72 g).{...-....while.(wl_display_pr
2820 65 70 61 72 65 5f 72 65 61 64 28 61 2e 64 29 20 21 3d 20 30 29 00 00 00 27 20 20 20 20 20 20 77 epare_read(a.d).!=.0)...'......w
2840 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 61 2e 64 29 3b l_display_dispatch_pending(a.d);
2860 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 66 6c 75 73 68 28 61 2e 64 29 3b 00 00 ........wl_display_flush(a.d);..
2880 00 4d 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 66 64 73 5b 32 5d 20 3d 20 7b 7b 77 .M....struct.pollfd.fds[2].=.{{w
28a0 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e 7d 2c 20 l_display_get_fd(a.d),.POLLIN},.
28c0 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 1f 20 20 20 20 69 66 20 28 70 6f 6c 6c 28 {tfd,.POLLIN}};........if.(poll(
28e0 66 64 73 2c 20 32 2c 20 2d 31 29 20 3c 20 30 29 20 7b 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 fds,.2,.-1).<.0).{..."......wl_d
2900 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 0f 20 20 20 20 isplay_cancel_read(a.d);........
2920 20 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 20 20 20 20 20 69 66 20 28 ..continue;........}........if.(
2940 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 00 00 00 22 20 20 20 20 fds[0].revents.&.POLLIN)..."....
2960 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 65 61 64 5f 65 76 65 6e 74 73 28 61 2e 64 29 3b 00 00 ..wl_display_read_events(a.d);..
2980 00 08 20 20 20 20 65 6c 73 65 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 ......else..."......wl_display_c
29a0 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 25 20 20 20 20 77 6c 5f 64 69 73 70 6c ancel_read(a.d);...%....wl_displ
29c0 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 22 20 20 20 ay_dispatch_pending(a.d);..."...
29e0 20 69 66 20 28 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 .if.(fds[1].revents.&.POLLIN).{.
2a00 00 00 15 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 5f 65 78 70 3b 00 00 00 27 20 20 20 20 .........uint64_t.t_exp;...'....
2a20 20 20 72 65 61 64 28 74 66 64 2c 20 26 74 5f 65 78 70 2c 20 73 69 7a 65 6f 66 28 74 5f 65 78 70 ..read(tfd,.&t_exp,.sizeof(t_exp
2a40 29 29 3b 00 00 00 1e 20 20 20 20 20 20 74 69 6d 65 5f 74 20 63 6c 69 20 3d 20 74 69 6d 65 28 4e ));..........time_t.cli.=.time(N
2a60 55 4c 4c 29 3b 00 00 00 2c 20 20 20 20 20 20 73 74 72 75 63 74 20 74 6d 20 2a 74 5f 73 74 72 75 ULL);...,......struct.tm.*t_stru
2a80 63 74 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 26 63 6c 69 29 3b 00 00 00 49 20 20 20 20 20 20 73 ct.=.localtime(&cli);...I......s
2aa0 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 2c 20 trftime(buffer,.sizeof(buffer),.
2ac0 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a 25 4d 3a 25 53 20 25 70 22 2c 20 74 5f 73 74 72 75 63 74 "%d-%m-%Y.%I:%M:%S.%p",.t_struct
2ae0 29 3b 00 00 00 25 20 20 20 20 20 20 70 72 69 6e 74 66 28 22 5c 72 54 69 6d 65 20 69 73 20 25 73 );...%......printf("\rTime.is.%s
2b00 22 2c 20 62 75 66 66 65 72 29 3b 00 00 00 15 20 20 20 20 20 20 66 66 6c 75 73 68 28 73 74 64 6f ",.buffer);..........fflush(stdo
2b20 75 74 29 3b 00 00 00 16 20 20 20 20 20 20 61 2e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 ut);..........a.redraw.=.true;..
2b40 00 05 20 20 20 20 7d 00 00 00 11 20 20 20 20 69 66 20 28 61 2e 72 65 64 72 61 77 29 00 00 00 11 ......}........if.(a.redraw)....
2b60 20 20 20 20 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 03 20 20 7d 00 00 00 0f 20 20 70 72 ......render(&a);......}......pr
2b80 69 6e 74 66 28 22 5c 6e 22 29 3b 00 00 00 0d 20 20 63 6c 6f 73 65 28 74 66 64 29 3b 00 00 00 12 intf("\n");......close(tfd);....
2ba0 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 26 61 29 3b 00 00 00 1d 20 20 77 6c 5f 64 69 73 70 6c ..destroy_buf(&a);......wl_displ
2bc0 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 61 2e 64 29 3b 00 00 00 0b 20 20 72 65 74 75 72 6e 20 ay_disconnect(a.d);......return.
2be0 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 3f 01 00 00 00 00 00 00 01 0;....}5...............?........
2c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0c 26 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 ................&..............5
2c20 81 5f d0 00 00 00 01 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 01 00 00 00 00 00 ._..............................
2c40 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 00 00 ................................
2c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2da0 00 00 00 00 00 69 9d ad 69 04 01 00 00 00 00 00 f5 18 00 00 00 dc 00 00 00 00 00 00 00 00 00 00 .....i..i.......................
2dc0 00 01 00 00 00 01 7d f5 18 00 00 00 dd 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 cf 00 ......}.........................
2de0 00 00 00 00 00 00 00 00 00 00 01 00 00 00 10 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 f5 ...................wl_display_d.
2e00 18 00 00 00 d0 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 cc 00 00 00 00 00 00 00 00 00 ................................
2e20 00 00 01 00 00 00 07 20 20 20 20 73 74 72 f5 18 00 00 00 cd 00 00 00 00 00 00 00 00 00 00 00 00 ...........str..................
2e40 f5 18 00 00 00 c0 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 20 f5 18 00 00 00 c1 00 00 00 ................................
2e60 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 b6 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 18 20 ................................
2e80 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 77 6c f5 18 00 00 00 b7 00 00 00 .static.const.struct.wl.........
2ea0 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 a8 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 07 20 ................................
2ec0 20 65 6c 73 65 20 f5 18 00 00 00 a9 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 9d 00 00 .else...........................
2ee0 00 00 00 00 00 00 00 00 00 01 00 00 00 03 20 20 69 f5 18 00 00 00 9e 00 00 00 00 00 00 00 00 00 ................i...............
2f00 00 00 00 f5 18 00 00 00 95 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 2a 20 20 77 6c 5f 73 75 ........................*..wl_su
2f20 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c rface_damage_buffer(a->ws,.0,.0,
2f40 20 61 2d f5 18 00 00 00 96 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 8e 00 00 00 00 00 .a-.............................
2f60 00 00 00 00 00 00 01 00 00 00 0c 20 20 66 69 6c 6c 5f 74 72 69 28 70 f5 18 00 00 00 8f 00 00 00 .............fill_tri(p.........
2f80 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 88 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 07 20 ................................
2fa0 20 66 69 6c 6c 5f f5 18 00 00 00 89 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 7f 00 00 .fill_..........................
2fc0 00 00 00 00 00 00 00 00 00 01 00 00 00 11 20 20 20 20 69 6e 74 20 6c 65 6e 20 3d 20 28 69 20 f5 ..................int.len.=.(i..
2fe0 18 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 6d 00 00 00 00 00 00 00 00 00 ......................m.........
3000 00 00 01 00 00 00 27 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 78 20 3d 20 78 5f 73 74 61 72 ......'......for.(int.x.=.x_star
3020 74 3b 20 78 20 3c 3d 20 78 5f 65 6e 64 3b f5 18 00 00 00 6e 00 00 00 00 00 00 00 00 00 00 00 00 t;.x.<=.x_end;.....n............
3040 f5 18 00 00 00 60 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0f 20 20 20 20 69 6e 74 20 78 5f .....`....................int.x_
3060 73 74 61 72 74 f5 18 00 00 00 61 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 5b 00 00 00 start.....a.................[...
3080 00 00 00 00 00 00 00 00 01 00 00 00 68 73 74 61 74 69 63 20 76 6f 69 64 20 66 69 6c 6c 5f 74 72 ............hstatic.void.fill_tr
30a0 69 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 i(uint32_t.*px,.int.w,.int.h,.in
30c0 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 31 2c 20 69 6e t.x0,.int.y0,.int.x1,.int.y1,.in
30e0 74 20 78 32 2c 20 69 6e 74 20 79 32 2c 20 75 69 6e 74 33 32 5f f5 18 00 00 00 5c 00 00 00 00 00 t.x2,.int.y2,.uint32_.....\.....
3100 00 00 00 00 00 00 00 f5 18 00 00 00 3a 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 03 20 20 73 ............:..................s
3120 f5 18 00 00 00 3b 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 .....;..........................
3140 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.....
3160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3a 00 00 00 03 00 00 00 00 00 00 00 00 00 ..................:.............
3180 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 00 00 00 f5 18 00 00 00 00 3a 00 00 00 03 00 00 00 ........................:.......
31a0 00 00 00 00 00 00 00 00 21 00 00 00 68 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........!...h...................
31c0 00 05 00 00 00 00 00 00 f5 18 00 00 00 00 5b 00 00 00 68 00 00 00 00 00 00 00 00 00 00 00 05 00 ..............[...h.............
31e0 00 00 0f 00 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 ................................
3200 00 00 00 00 60 00 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 0d 00 00 00 27 00 00 00 00 0b 00 00 ....`...................'.......
3220 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 00 6d 00 00 00 27 00 ..........................m...'.
3240 00 00 00 00 00 00 00 00 00 00 12 00 00 00 11 00 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3260 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 7f 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 ................................
3280 09 00 00 00 07 00 00 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 ................................
32a0 f5 18 00 00 00 00 88 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 0c 00 00 00 00 11 ................................
32c0 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 00 8e 00 00 00 ................................
32e0 0c 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 2a 00 00 00 00 13 00 00 00 00 00 00 00 00 00 00 ................*...............
3300 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 95 00 00 00 2a 00 00 00 00 00 00 00 00 00 ......................*.........
3320 00 00 08 00 00 00 03 00 00 00 00 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 ................................
3340 00 00 f5 18 00 00 00 00 9d 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 0b 00 00 00 07 00 00 00 ................................
3360 00 16 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 00 a8 00 ................................
3380 00 00 07 00 00 00 00 00 00 00 00 00 00 00 0e 00 00 00 18 00 00 00 00 18 00 00 00 00 00 00 00 00 ................................
33a0 00 00 00 00 00 00 00 02 00 00 00 00 00 00 f5 18 00 00 00 00 b6 00 00 00 18 00 00 00 00 00 00 00 ................................
33c0 00 00 00 00 0a 00 00 00 01 00 00 00 00 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 ................................
33e0 00 00 00 00 f5 18 00 00 00 00 c0 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 0c 00 00 00 07 00 ................................
3400 00 00 00 1c 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 00 ................................
3420 cc 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 10 00 00 00 00 1e 00 00 00 00 00 00 ................................
3440 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 f5 18 00 00 00 00 cf 00 00 00 10 00 00 00 00 00 ................................
3460 00 00 00 00 00 00 0d 00 00 00 01 00 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d2 01 ................................
3480 00 00 00 00 00 00 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 ......5._.......................
34a0 00 dd 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 ................................
34c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3600 00 00 00 00 00 00 00 00 00 00 00 00 69 9d ad 69 04 01 00 00 00 02 00 f5 18 00 00 00 01 00 00 01 ............i..i................
3620 26 00 00 00 dd 00 00 00 da 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 64 67 2d 73 68 65 6c 6c &...........&#include."xdg-shell
3640 2d 63 6c 69 65 6e 74 2d 70 72 6f 74 6f 63 6f 6c 2e 68 22 00 00 00 13 23 69 6e 63 6c 75 64 65 20 -client-protocol.h"....#include.
3660 22 63 6f 6e 66 69 67 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 "config.h"....#include.<fcntl.h>
3680 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 ....#include.<math.h>....#includ
36a0 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 6c 2e 68 e.<poll.h>....#include.<signal.h
36c0 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 13 23 69 6e >....#include.<stdbool.h>....#in
36e0 63 6c 75 64 65 20 3c 73 74 64 69 6e 74 2e 68 3e 00 00 00 12 23 69 6e 63 6c 75 64 65 20 3c 73 74 clude.<stdint.h>....#include.<st
3700 64 69 6f 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 00 dio.h>....#include.<stdlib.h>...
3720 13 23 69 6e 63 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 .#include.<string.h>....#include
3740 20 3c 73 79 73 2f 6d 6d 61 6e 2e 68 3e 00 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 .<sys/mman.h>....#include.<sys/t
3760 69 6d 65 72 66 64 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 imerfd.h>....#include.<time.h>..
3780 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 6c 75 64 ..#include.<unistd.h>....#includ
37a0 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 0c 23 69 66 6e e.<wayland-client.h>........#ifn
37c0 64 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 def.M_PI...##define.M_PI.3.14159
37e0 32 36 35 33 35 38 39 37 39 33 32 33 38 34 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 265358979323846....#endif....#if
3800 6e 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e ndef.M_PI_2...%#define.M_PI_2.1.
3820 35 37 30 37 39 36 33 32 36 37 39 34 38 39 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 57079632679489661923....#endif..
3840 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 .....)static.volatile.sig_atomic
3860 5f 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 00 00 33 73 74 61 74 69 63 20 76 6f 69 64 20 6f _t.running.=.1;...3static.void.o
3880 6e 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 20 28 76 6f 69 64 29 73 3b 20 72 75 6e 6e 69 6e 67 20 n_sig(int.s).{.(void)s;.running.
38a0 3d 20 30 3b 20 7d 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 =.0;.}........struct.app.{......
38c0 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 struct.wl_display.*d;......struc
38e0 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 t.wl_registry.*reg;......struct.
3900 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 wl_compositor.*comp;......struct
3920 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d .wl_shm.*shm;......struct.xdg_wm
3940 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 _base.*wm;......struct.wl_surfac
3960 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a e.*ws;......struct.xdg_surface.*
3980 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 xs;......struct.xdg_toplevel.*xt
39a0 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 ;......void.*pixels;......struct
39c0 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 .wl_buffer.*buf;......int.w,.h;.
39e0 00 00 0d 20 20 69 6e 74 20 62 77 2c 20 62 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 .....int.bw,.bh;......bool.confi
3a00 67 75 72 65 64 3b 00 00 00 0e 20 20 62 6f 6f 6c 20 72 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 00 gured;......bool.redraw;....};..
3a20 00 00 00 00 00 6a 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a .....jstatic.void.wm_ping(void.*
3a40 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 2c 20 75 69 data,.struct.xdg_wm_base.*wm,.ui
3a60 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 70 6f 6e nt32_t.serial).{.xdg_wm_base_pon
3a80 67 28 77 6d 2c 20 73 65 72 69 61 6c 29 3b 20 7d 00 00 00 00 00 00 00 24 73 74 61 74 69 63 20 69 g(wm,.serial);.}.......$static.i
3aa0 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 20 7b 00 00 00 23 nt.create_shm(size_t.size).{...#
3ac0 20 20 63 68 61 72 20 74 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b 2d 58 58 58 58 58 ..char.t[].=."/tmp/wlclock-XXXXX
3ae0 58 22 3b 00 00 00 16 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 74 29 3b 00 00 00 X";......int.fd.=.mkstemp(t);...
3b00 16 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 75 6e 6c ...if.(fd.<.0).exit(1);......unl
3b20 69 6e 6b 28 74 29 3b 00 00 00 27 20 20 69 66 20 28 66 74 72 75 6e 63 61 74 65 28 66 64 2c 20 73 ink(t);...'..if.(ftruncate(fd,.s
3b40 69 7a 65 29 20 3c 20 30 29 20 65 78 69 74 28 31 29 3b 00 00 00 0c 20 20 72 65 74 75 72 6e 20 66 ize).<.0).exit(1);......return.f
3b60 64 3b 00 00 00 01 7d 00 00 00 00 00 00 00 28 73 74 61 74 69 63 20 76 6f 69 64 20 64 65 73 74 72 d;....}.......(static.void.destr
3b80 6f 79 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 16 20 20 69 66 20 oy_buf(struct.app.*a).{......if.
3ba0 28 21 61 2d 3e 62 75 66 29 20 72 65 74 75 72 6e 3b 00 00 00 2a 20 20 73 69 7a 65 5f 74 20 73 69 (!a->buf).return;...*..size_t.si
3bc0 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 62 77 20 2a 20 61 2d 3e 62 68 20 2a 20 34 3b 00 ze.=.(size_t)a->bw.*.a->bh.*.4;.
3be0 00 00 1c 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 .....wl_buffer_destroy(a->buf);.
3c00 00 00 1a 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 73 69 7a 65 29 3b 00 00 00 .....munmap(a->pixels,.size);...
3c20 22 20 20 61 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 "..a->buf.=.NULL;.a->pixels.=.NU
3c40 4c 4c 3b 00 00 00 01 7d 00 00 00 00 00 00 00 26 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f LL;....}.......&static.void.allo
3c60 63 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 11 20 20 64 65 73 74 c_buf(struct.app.*a).{......dest
3c80 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 28 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 roy_buf(a);...(..size_t.size.=.(
3ca0 73 69 7a 65 5f 74 29 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 3b 00 00 00 1c 20 20 69 6e 74 size_t)a->w.*.a->h.*.4;......int
3cc0 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e .fd.=.create_shm(size);...J..a->
3ce0 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
3d00 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
3d20 2c 20 30 29 3b 00 00 00 27 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f ,.0);...'..if.(a->pixels.==.MAP_
3d40 46 41 49 4c 45 44 29 20 65 78 69 74 28 31 29 3b 00 00 00 42 20 20 73 74 72 75 63 74 20 77 6c 5f FAILED).exit(1);...B..struct.wl_
3d60 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
3d80 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 5c 20 20 61 2d 3e 62 ool(a->shm,.fd,.size);...\..a->b
3da0 75 66 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 uf.=.wl_shm_pool_create_buffer(p
3dc0 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 2a 20 34 2c 20 57 4c ool,.0,.a->w,.a->h,.a->w.*.4,.WL
3de0 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 1c 20 20 77 6c 5f 73 _SHM_FORMAT_ARGB8888);......wl_s
3e00 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 hm_pool_destroy(pool);......clos
3e20 65 28 66 64 29 3b 00 00 00 1d 20 20 61 2d 3e 62 77 20 3d 20 61 2d 3e 77 3b 20 61 2d 3e 62 68 20 e(fd);......a->bw.=.a->w;.a->bh.
3e40 3d 20 61 2d 3e 68 3b 00 00 00 01 7d 00 00 00 00 00 00 00 53 73 74 61 74 69 63 20 76 6f 69 64 20 =.a->h;....}.......Sstatic.void.
3e60 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.
3e80 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 20 75 69 6e 74 33 32 h,.int.cx,.int.cy,.int.r,.uint32
3ea0 5f 74 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 2c 20 79 20 3d 20 72 2c 20 64 _t.c).{..."..int.x.=.0,.y.=.r,.d
3ec0 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 6c 65 20 28 79 20 3e 3d 20 78 .=.3.-.2.*.r;......while.(y.>=.x
3ee0 29 20 7b 00 00 00 48 20 20 20 20 69 6e 74 20 70 5b 38 5d 5b 32 5d 20 3d 20 7b 7b 63 78 20 2b 20 ).{...H....int.p[8][2].=.{{cx.+.
3f00 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 x,.cy.+.y},.{cx.-.x,.cy.+.y},.{c
3f20 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 48 20 20 20 20 20 20 20 20 20 20 20 20 20 x.+.x,.cy.-.y},...H.............
3f40 20 20 20 20 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 7d 2c 20 7b 63 78 20 2b 20 79 2c ......{cx.-.x,.cy.-.y},.{cx.+.y,
3f60 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2b 20 78 7d 2c 00 00 00 37 20 .cy.+.x},.{cx.-.y,.cy.+.x},...7.
3f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2d 20 ..................{cx.+.y,.cy.-.
3fa0 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d 7d 3b 00 00 00 1f 20 20 20 20 66 6f x},.{cx.-.y,.cy.-.x}};........fo
3fc0 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 2b 2b 29 00 00 00 45 20 20 20 r.(int.i.=.0;.i.<.8;.i++)...E...
3fe0 20 20 20 69 66 20 28 70 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 30 5d 20 3c ...if.(p[i][0].>=.0.&&.p[i][0].<
4000 20 77 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3c 20 .w.&&.p[i][1].>=.0.&&.p[i][1].<.
4020 68 29 00 00 00 26 20 20 20 20 20 20 20 20 70 78 5b 70 5b 69 5d 5b 31 5d 20 2a 20 77 20 2b 20 70 h)...&........px[p[i][1].*.w.+.p
4040 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 43 20 20 20 20 69 66 20 28 64 20 3e 20 30 29 20 7b [i][0]].=.c;...C....if.(d.>.0).{
4060 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 30 3b 20 79 2d 2d 3b 20 7d 20 65 .d.+=.4.*.(x.-.y).+.10;.y--;.}.e
4080 6c 73 65 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 00 08 20 20 20 20 78 2b 2b 3b 00 lse.d.+=.4.*.x.+.6;........x++;.
40a0 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 6e 73 74 61 74 69 63 20 76 6f 69 64 20 66 .....}....}.......nstatic.void.f
40c0 69 6c 6c 5f 74 72 69 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 ill_tri(uint32_t.*px,.int.w,.int
40e0 20 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 .h,.int.x0,.int.y0,.int.x1,.int.
4100 79 31 2c 20 69 6e 74 20 78 32 2c 20 69 6e 74 20 79 32 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 y1,.int.x2,.int.y2,.uint32_t.c).
4120 7b 00 00 00 42 20 20 69 6e 74 20 6d 69 6e 5f 79 20 3d 20 79 30 20 3c 20 79 31 20 3f 20 28 79 30 {...B..int.min_y.=.y0.<.y1.?.(y0
4140 20 3c 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3c 20 79 32 20 3f 20 79 31 .<.y2.?.y0.:.y2).:.(y1.<.y2.?.y1
4160 20 3a 20 79 32 29 3b 00 00 00 42 20 20 69 6e 74 20 6d 61 78 5f 79 20 3d 20 79 30 20 3e 20 79 31 .:.y2);...B..int.max_y.=.y0.>.y1
4180 20 3f 20 28 79 30 20 3e 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3e 20 79 .?.(y0.>.y2.?.y0.:.y2).:.(y1.>.y
41a0 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 3a 20 20 69 66 20 28 6d 69 6e 5f 79 20 3c 20 30 2.?.y1.:.y2);...:..if.(min_y.<.0
41c0 29 20 6d 69 6e 5f 79 20 3d 20 30 3b 20 69 66 20 28 6d 61 78 5f 79 20 3e 3d 20 68 29 20 6d 61 78 ).min_y.=.0;.if.(max_y.>=.h).max
41e0 5f 79 20 3d 20 68 20 2d 20 31 3b 00 00 00 28 20 20 66 6f 72 20 28 69 6e 74 20 79 20 3d 20 6d 69 _y.=.h.-.1;...(..for.(int.y.=.mi
4200 6e 5f 79 3b 20 79 20 3c 3d 20 6d 61 78 5f 79 3b 20 79 2b 2b 29 20 7b 00 00 00 1f 20 20 20 20 69 n_y;.y.<=.max_y;.y++).{........i
4220 6e 74 20 78 5f 73 74 61 72 74 20 3d 20 77 2c 20 78 5f 65 6e 64 20 3d 20 30 3b 00 00 00 33 20 20 nt.x_start.=.w,.x_end.=.0;...3..
4240 20 20 69 6e 74 20 78 73 5b 33 5d 20 3d 20 7b 78 30 2c 20 78 31 2c 20 78 32 7d 2c 20 79 73 5b 33 ..int.xs[3].=.{x0,.x1,.x2},.ys[3
4260 5d 20 3d 20 7b 79 30 2c 20 79 31 2c 20 79 32 7d 3b 00 00 00 15 20 20 20 20 62 6f 6f 6c 20 68 69 ].=.{y0,.y1,.y2};........bool.hi
4280 74 20 3d 20 66 61 6c 73 65 3b 00 00 00 21 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 t.=.false;...!....for.(int.i.=.0
42a0 3b 20 69 20 3c 20 33 3b 20 69 2b 2b 29 20 7b 00 00 00 1a 20 20 20 20 20 20 69 6e 74 20 6a 20 3d ;.i.<.3;.i++).{..........int.j.=
42c0 20 28 69 20 2b 20 31 29 20 25 20 33 3b 00 00 00 43 20 20 20 20 20 20 69 66 20 28 28 79 73 5b 69 .(i.+.1).%.3;...C......if.((ys[i
42e0 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 6a 5d 20 3e 20 79 29 20 7c 7c 20 28 79 73 5b 6a 5d 20 3c ].<=.y.&&.ys[j].>.y).||.(ys[j].<
4300 3d 20 79 20 26 26 20 79 73 5b 69 5d 20 3e 20 79 29 29 20 7b 00 00 00 48 20 20 20 20 20 20 20 20 =.y.&&.ys[i].>.y)).{...H........
4320 69 6e 74 20 78 20 3d 20 78 73 5b 69 5d 20 2b 20 28 79 20 2d 20 79 73 5b 69 5d 29 20 2a 20 28 78 int.x.=.xs[i].+.(y.-.ys[i]).*.(x
4340 73 5b 6a 5d 20 2d 20 78 73 5b 69 5d 29 20 2f 20 28 79 73 5b 6a 5d 20 2d 20 79 73 5b 69 5d 29 3b s[j].-.xs[i])./.(ys[j].-.ys[i]);
4360 00 00 00 3f 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3c 20 78 5f 73 74 61 72 74 29 20 78 5f 73 ...?........if.(x.<.x_start).x_s
4380 74 61 72 74 20 3d 20 78 3b 20 69 66 20 28 78 20 3e 20 78 5f 65 6e 64 29 20 78 5f 65 6e 64 20 3d tart.=.x;.if.(x.>.x_end).x_end.=
43a0 20 78 3b 00 00 00 13 20 20 20 20 20 20 20 20 68 69 74 20 3d 20 74 72 75 65 3b 00 00 00 07 20 20 .x;............hit.=.true;......
43c0 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 0e 20 20 20 20 69 66 20 28 68 69 74 29 20 7b ....}........}........if.(hit).{
43e0 00 00 00 42 20 20 20 20 20 20 69 66 20 28 78 5f 73 74 61 72 74 20 3c 20 30 29 20 78 5f 73 74 61 ...B......if.(x_start.<.0).x_sta
4400 72 74 20 3d 20 30 3b 20 69 66 20 28 78 5f 65 6e 64 20 3e 3d 20 77 29 20 78 5f 65 6e 64 20 3d 20 rt.=.0;.if.(x_end.>=.w).x_end.=.
4420 77 20 2d 20 31 3b 00 00 00 3f 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 78 20 3d 20 78 5f 73 w.-.1;...?......for.(int.x.=.x_s
4440 74 61 72 74 3b 20 78 20 3c 3d 20 78 5f 65 6e 64 3b 20 78 2b 2b 29 20 70 78 5b 79 20 2a 20 77 20 tart;.x.<=.x_end;.x++).px[y.*.w.
4460 2b 20 78 5d 20 3d 20 63 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 +.x].=.c;........}......}....}..
4480 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 6e 64 65 72 28 73 74 72 75 63 74 20 .....#static.void.render(struct.
44a0 61 70 70 20 2a 61 29 20 7b 00 00 00 37 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e 66 69 67 75 72 65 app.*a).{...7..if.(!a->configure
44c0 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 30 29 20 72 65 74 d.||.a->w.<=.0.||.a->h.<=.0).ret
44e0 75 72 6e 3b 00 00 00 1c 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 20 61 6c 6c 6f 63 5f 62 75 66 urn;......if.(!a->buf).alloc_buf
4500 28 61 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 (a);......uint32_t.*px.=.a->pixe
4520 6c 73 3b 00 00 00 36 20 20 66 6f 72 28 69 6e 74 20 69 3d 30 3b 20 69 20 3c 20 61 2d 3e 77 20 2a ls;...6..for(int.i=0;.i.<.a->w.*
4540 20 61 2d 3e 68 3b 20 69 2b 2b 29 20 70 78 5b 69 5d 20 3d 20 43 4f 4c 4f 52 5f 42 47 3b 00 00 00 .a->h;.i++).px[i].=.COLOR_BG;...
4560 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 10 20 20 ...time_t.tt.=.time(NULL);......
4580 73 74 72 75 63 74 20 74 6d 20 74 6d 76 3b 00 00 00 19 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 struct.tm.tmv;......localtime_r(
45a0 26 74 74 2c 20 26 74 6d 76 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f &tt,.&tmv);...#..int.cx.=.a->w./
45c0 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 .2,.cy.=.a->h./.2;.../..int.r.=.
45e0 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 (a->w.<.a->h.?.a->w.:.a->h)./.2.
4600 2d 20 31 30 3b 00 00 00 13 20 20 69 66 20 28 72 20 3c 20 35 29 20 72 20 3d 20 35 3b 00 00 00 20 -.10;......if.(r.<.5).r.=.5;....
4620 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 36 30 3b 20 69 2b 2b 29 20 7b ..for.(int.i.=.0;.i.<.60;.i++).{
4640 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 36 30 2e 30 20 2a 20 ........double.ang.=.i./.60.0.*.
4660 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 31 20 20 20 20 69 6e 74 20 6c 65 2.*.M_PI.-.M_PI_2;...1....int.le
4680 6e 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 72 20 2a 20 30 2e 31 32 20 3a 20 72 20 n.=.(i.%.5.==.0).?.r.*.0.12.:.r.
46a0 2a 20 30 2e 30 34 3b 00 00 00 30 20 20 20 20 64 6f 75 62 6c 65 20 74 5f 61 6e 67 20 3d 20 28 69 *.0.04;...0....double.t_ang.=.(i
46c0 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 30 2e 30 31 32 20 3a 20 30 2e 30 30 35 3b 00 00 00 4a 20 .%.5.==.0).?.0.012.:.0.005;...J.
46e0 20 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b ...fill_tri(px,.a->w,.a->h,.cx.+
4700 20 63 6f 73 28 61 6e 67 2d 74 5f 61 6e 67 29 2a 72 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 2d .cos(ang-t_ang)*r,.cy.+.sin(ang-
4720 74 5f 61 6e 67 29 2a 72 2c 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 t_ang)*r,...:.............cx.+.c
4740 6f 73 28 61 6e 67 2b 74 5f 61 6e 67 29 2a 72 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 2b 74 5f os(ang+t_ang)*r,.cy.+.sin(ang+t_
4760 61 6e 67 29 2a 72 2c 00 00 00 47 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 ang)*r,...G.............cx.+.cos
4780 28 61 6e 67 29 2a 28 72 2d 6c 65 6e 29 2c 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 29 2a 28 72 2d (ang)*(r-len),.cy.+.sin(ang)*(r-
47a0 6c 65 6e 29 2c 20 43 4f 4c 4f 52 5f 44 49 41 4c 29 3b 00 00 00 03 20 20 7d 00 00 00 34 20 20 64 len),.COLOR_DIAL);......}...4..d
47c0 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 ouble.sa.=.tmv.tm_sec./.60.0.*.2
47e0 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4a 20 20 64 6f 75 62 6c 65 20 6d 61 .*.M_PI.-.M_PI_2;...J..double.ma
4800 20 3d 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 .=.(tmv.tm_min.+.tmv.tm_sec./.60
4820 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 .0)./.60.0.*.2.*.M_PI.-.M_PI_2;.
4840 00 00 54 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 20 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 20 25 ..T..double.ha.=.((tmv.tm_hour.%
4860 20 31 32 29 20 2b 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 .12).+.(tmv.tm_min./.60.0))./.12
4880 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 5f 20 20 66 69 6c .0.*.2.*.M_PI.-.M_PI_2;..._..fil
48a0 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 68 l_tri(px,.a->w,.a->h,.cx.+.cos(h
48c0 61 2d 30 2e 31 32 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 48 2c 20 63 79 20 2b 20 73 69 6e a-0.12)*r*HAND_THICK_H,.cy.+.sin
48e0 28 68 61 2d 30 2e 31 32 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 48 2c 20 00 00 00 4f 20 20 (ha-0.12)*r*HAND_THICK_H,....O..
4900 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 68 61 2b 30 2e 31 32 29 2a 72 2a 48 41 4e .........cx.+.cos(ha+0.12)*r*HAN
4920 44 5f 54 48 49 43 4b 5f 48 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 2b 30 2e 31 32 29 2a 72 2a 48 D_THICK_H,.cy.+.sin(ha+0.12)*r*H
4940 41 4e 44 5f 54 48 49 43 4b 5f 48 2c 20 00 00 00 4d 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b AND_THICK_H,....M...........cx.+
4960 20 63 6f 73 28 68 61 29 2a 72 2a 48 41 4e 44 5f 4c 45 4e 5f 48 2c 20 63 79 20 2b 20 73 69 6e 28 .cos(ha)*r*HAND_LEN_H,.cy.+.sin(
4980 68 61 29 2a 72 2a 48 41 4e 44 5f 4c 45 4e 5f 48 2c 20 43 4f 4c 4f 52 5f 48 4f 55 52 29 3b 00 00 ha)*r*HAND_LEN_H,.COLOR_HOUR);..
49a0 00 5f 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 ._..fill_tri(px,.a->w,.a->h,.cx.
49c0 2b 20 63 6f 73 28 6d 61 2d 30 2e 30 38 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 4d 2c 20 63 +.cos(ma-0.08)*r*HAND_THICK_M,.c
49e0 79 20 2b 20 73 69 6e 28 6d 61 2d 30 2e 30 38 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 4d 2c y.+.sin(ma-0.08)*r*HAND_THICK_M,
4a00 20 00 00 00 4f 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 2b 30 2e 30 38 ....O...........cx.+.cos(ma+0.08
4a20 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 4d 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 2b 30 2e )*r*HAND_THICK_M,.cy.+.sin(ma+0.
4a40 30 38 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 4d 2c 20 00 00 00 4c 20 20 20 20 20 20 20 20 08)*r*HAND_THICK_M,....L........
4a60 20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 29 2a 72 2a 48 41 4e 44 5f 4c 45 4e 5f 4d 2c 20 63 79 ...cx.+.cos(ma)*r*HAND_LEN_M,.cy
4a80 20 2b 20 73 69 6e 28 6d 61 29 2a 72 2a 48 41 4e 44 5f 4c 45 4e 5f 4d 2c 20 43 4f 4c 4f 52 5f 4d .+.sin(ma)*r*HAND_LEN_M,.COLOR_M
4aa0 49 4e 29 3b 00 00 00 5e 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e IN);...^..fill_tri(px,.a->w,.a->
4ac0 68 2c 20 63 78 20 2b 20 63 6f 73 28 73 61 2d 30 2e 30 35 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 h,.cx.+.cos(sa-0.05)*r*HAND_THIC
4ae0 4b 5f 53 2c 20 63 79 20 2b 20 73 69 6e 28 73 61 2d 30 2e 30 35 29 2a 72 2a 48 41 4e 44 5f 54 48 K_S,.cy.+.sin(sa-0.05)*r*HAND_TH
4b00 49 43 4b 5f 53 2c 00 00 00 4e 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 73 61 ICK_S,...N...........cx.+.cos(sa
4b20 2b 30 2e 30 35 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 53 2c 20 63 79 20 2b 20 73 69 6e 28 +0.05)*r*HAND_THICK_S,.cy.+.sin(
4b40 73 61 2b 30 2e 30 35 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 53 2c 00 00 00 4c 20 20 20 20 sa+0.05)*r*HAND_THICK_S,...L....
4b60 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 73 61 29 2a 72 2a 48 41 4e 44 5f 4c 45 4e 5f 53 .......cx.+.cos(sa)*r*HAND_LEN_S
4b80 2c 20 63 79 20 2b 20 73 69 6e 28 73 61 29 2a 72 2a 48 41 4e 44 5f 4c 45 4e 5f 53 2c 20 43 4f 4c ,.cy.+.sin(sa)*r*HAND_LEN_S,.COL
4ba0 4f 52 5f 53 45 43 29 3b 00 00 00 31 20 20 69 6e 74 20 68 75 62 5f 72 20 3d 20 72 20 2a 20 30 2e OR_SEC);...1..int.hub_r.=.r.*.0.
4bc0 30 34 3b 20 69 66 20 28 68 75 62 5f 72 20 3c 20 34 29 20 68 75 62 5f 72 20 3d 20 34 3b 00 00 00 04;.if.(hub_r.<.4).hub_r.=.4;...
4be0 56 20 20 66 6f 72 20 28 69 6e 74 20 69 72 20 3d 20 30 3b 20 69 72 20 3c 20 68 75 62 5f 72 20 2d V..for.(int.ir.=.0;.ir.<.hub_r.-
4c00 20 32 3b 20 69 72 2b 2b 29 20 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c .2;.ir++).circle(px,.a->w,.a->h,
4c20 20 63 78 2c 20 63 79 2c 20 69 72 2c 20 43 4f 4c 4f 52 5f 42 47 29 3b 00 00 00 33 20 20 63 69 72 .cx,.cy,.ir,.COLOR_BG);...3..cir
4c40 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 68 75 62 5f cle(px,.a->w,.a->h,.cx,.cy,.hub_
4c60 72 2c 20 43 4f 4c 4f 52 5f 48 55 42 29 3b 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 61 r,.COLOR_HUB);...)..wl_surface_a
4c80 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 00 34 20 ttach(a->ws,.a->buf,.0,.0);...4.
4ca0 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e 77 73 2c .wl_surface_damage_buffer(a->ws,
4cc0 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 75 72 66 .0,.0,.a->w,.a->h);......wl_surf
4ce0 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 14 20 20 61 2d 3e 72 65 64 72 61 ace_commit(a->ws);......a->redra
4d00 77 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 20 76 6f w.=.false;....}.......Gstatic.vo
4d20 69 64 20 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f id.xt_close(void.*d,.struct.xdg_
4d40 74 6f 70 6c 65 76 65 6c 20 2a 78 74 29 20 7b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 toplevel.*xt).{.running.=.0;.}..
4d60 00 60 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 .`static.void.xt_cfg(void.*d,.st
4d80 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 ruct.xdg_toplevel.*xt,.int32_t.w
4da0 2c 20 69 6e 74 33 32 5f 74 20 68 2c 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 ,.int32_t.h,.struct.wl_array.*s)
4dc0 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 33 20 20 .{......struct.app.*a.=.d;...3..
4de0 69 66 20 28 77 20 3e 20 30 20 26 26 20 68 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 if.(w.>.0.&&.h.>.0.&&.(w.!=.a->w
4e00 20 7c 7c 20 68 20 21 3d 20 61 2d 3e 68 29 29 20 7b 00 00 00 39 20 20 20 20 61 2d 3e 77 20 3d 20 .||.h.!=.a->h)).{...9....a->w.=.
4e20 77 3b 20 61 2d 3e 68 20 3d 20 68 3b 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 20 61 2d 3e w;.a->h.=.h;.destroy_buf(a);.a->
4e40 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 46 73 74 redraw.=.true;......}....}...Fst
4e60 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 atic.void.xs_cfg(void.*d,.struct
4e80 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 .xdg_surface.*xs,.uint32_t.seria
4ea0 6c 29 20 7b 00 00 00 3b 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 20 78 64 67 l).{...;..struct.app.*a.=.d;.xdg
4ec0 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 65 72 69 61 _surface_ack_configure(xs,.seria
4ee0 6c 29 3b 00 00 00 29 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 20 61 l);...)..a->configured.=.true;.a
4f00 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 01 7d 00 00 00 60 73 74 61 74 69 63 20 ->redraw.=.true;....}...`static.
4f20 76 6f 69 64 20 72 65 67 5f 67 6c 6f 62 61 6c 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 void.reg_global(void.*d,.struct.
4f40 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 2c 20 75 69 6e 74 33 32 5f 74 20 69 64 2c 20 63 6f 6e wl_registry.*r,.uint32_t.id,.con
4f60 73 74 20 63 68 61 72 20 2a 69 2c 20 75 69 6e 74 33 32 5f 74 20 76 29 20 7b 00 00 00 14 20 20 73 st.char.*i,.uint32_t.v).{......s
4f80 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 62 20 20 69 66 20 28 21 73 74 72 63 truct.app.*a.=.d;...b..if.(!strc
4fa0 6d 70 28 69 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 22 29 29 20 61 2d 3e 63 6f 6d 70 20 mp(i,."wl_compositor")).a->comp.
4fc0 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 63 6f =.wl_registry_bind(r,.id,.&wl_co
4fe0 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 58 20 20 65 6c 73 mpositor_interface,.4);...X..els
5000 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 73 68 6d 22 29 29 20 61 2d 3e 73 e.if.(!strcmp(i,."wl_shm")).a->s
5020 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c hm.=.wl_registry_bind(r,.id,.&wl
5040 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 27 20 20 65 6c 73 65 20 69 66 _shm_interface,.1);...'..else.if
5060 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 .(!strcmp(i,."xdg_wm_base")).{..
5080 00 3f 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 .?....a->wm.=.wl_registry_bind(r
50a0 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 29 ,.id,.&xdg_wm_base_interface,.1)
50c0 3b 00 00 00 43 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 ;...C....static.const.struct.xdg
50e0 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 6c 20 3d 20 7b 2e 70 69 6e 67 20 3d 20 77 _wm_base_listener.l.=.{.ping.=.w
5100 6d 5f 70 69 6e 67 7d 3b 00 00 00 2b 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f m_ping};...+....xdg_wm_base_add_
5120 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 6c 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 00 listener(a->wm,.&l,.a);......}..
5140 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 2b 20 ..}........int.main(void).{...+.
5160 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 30 7d 3b 20 61 2e 77 20 3d 20 34 30 30 3b 20 .struct.app.a.=.{0};.a.w.=.400;.
5180 61 2e 68 20 3d 20 34 30 30 3b 00 00 00 19 20 20 73 69 67 6e 61 6c 28 53 49 47 49 4e 54 2c 20 6f a.h.=.400;......signal(SIGINT,.o
51a0 6e 5f 73 69 67 29 3b 00 00 00 21 20 20 61 2e 64 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 6f n_sig);...!..a.d.=.wl_display_co
51c0 6e 6e 65 63 74 28 4e 55 4c 4c 29 3b 00 00 00 15 20 20 69 66 20 28 21 61 2e 64 29 20 72 65 74 75 nnect(NULL);......if.(!a.d).retu
51e0 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 65 67 20 3d 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 rn.1;...'..a.reg.=.wl_display_ge
5200 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e t_registry(a.d);...G..static.con
5220 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 6e 65 72 20 72 st.struct.wl_registry_listener.r
5240 6c 20 3d 20 7b 2e 67 6c 6f 62 61 6c 20 3d 20 72 65 67 5f 67 6c 6f 62 61 6c 7d 3b 00 00 00 2b 20 l.=.{.global.=.reg_global};...+.
5260 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 61 2e 72 65 67 2c .wl_registry_add_listener(a.reg,
5280 20 26 72 6c 2c 20 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 .&rl,.&a);......wl_display_round
52a0 74 72 69 70 28 61 2e 64 29 3b 00 00 00 2b 20 20 69 66 20 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 trip(a.d);...+..if.(!a.comp.||.!
52c0 61 2e 73 68 6d 20 7c 7c 20 21 61 2e 77 6d 29 20 72 65 74 75 72 6e 20 31 3b 00 00 00 2e 20 20 61 a.shm.||.!a.wm).return.1;......a
52e0 2e 77 73 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 .ws.=.wl_compositor_create_surfa
5300 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 ce(a.comp);...1..a.xs.=.xdg_wm_b
5320 61 73 65 5f 67 65 74 5f 78 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b ase_get_xdg_surface(a.wm,.a.ws);
5340 00 00 00 47 20 20 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 ...G..static.const.struct.xdg_su
5360 72 66 61 63 65 5f 6c 69 73 74 65 6e 65 72 20 78 73 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 rface_listener.xsl.=.{.configure
5380 20 3d 20 78 73 5f 63 66 67 7d 3b 00 00 00 2b 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 64 64 .=.xs_cfg};...+..xdg_surface_add
53a0 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 78 73 6c 2c 20 26 61 29 3b 00 00 00 28 20 20 _listener(a.xs,.&xsl,.&a);...(..
53c0 61 2e 78 74 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 a.xt.=.xdg_surface_get_toplevel(
53e0 61 2e 78 73 29 3b 00 00 00 5b 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 a.xs);...[..static.const.struct.
5400 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 6c 20 3d 20 7b 2e 63 6f xdg_toplevel_listener.xtl.=.{.co
5420 6e 66 69 67 75 72 65 20 3d 20 78 74 5f 63 66 67 2c 20 2e 63 6c 6f 73 65 20 3d 20 78 74 5f 63 6c nfigure.=.xt_cfg,..close.=.xt_cl
5440 6f 73 65 7d 3b 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 ose};...,..xdg_toplevel_add_list
5460 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 6c 2c 20 26 61 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 ener(a.xt,.&xtl,.&a);...*..xdg_t
5480 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b oplevel_set_title(a.xt,."wlclock
54a0 22 29 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 ");......wl_surface_commit(a.ws)
54c0 3b 00 00 00 31 20 20 77 68 69 6c 65 20 28 21 61 2e 63 6f 6e 66 69 67 75 72 65 64 29 20 77 6c 5f ;...1..while.(!a.configured).wl_
54e0 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 29 3b 00 00 00 32 20 20 70 75 74 73 display_dispatch(a.d);...2..puts
5500 28 22 77 61 79 6c 61 6e 64 20 73 75 72 66 61 63 65 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 63 ("wayland.surface.successfully.c
5520 6f 6e 66 69 67 75 72 65 64 22 29 3b 00 00 00 0d 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 onfigured");......render(&a);...
5540 39 20 20 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 9..int.tfd.=.timerfd_create(CLOC
5560 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 K_MONOTONIC,.TFD_CLOEXEC);...F..
5580 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 timerfd_settime(tfd,.0,.&(struct
55a0 20 69 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 .itimerspec){{1,.0},.{1,.0}},.NU
55c0 4c 4c 29 3b 00 00 00 13 20 20 63 68 61 72 20 62 75 66 66 65 72 5b 31 30 30 5d 3b 00 00 00 13 20 LL);......char.buffer[100];.....
55e0 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 4f 20 20 20 20 77 68 69 6c 65 20 .while.(running).{...O....while.
5600 28 77 6c 5f 64 69 73 70 6c 61 79 5f 70 72 65 70 61 72 65 5f 72 65 61 64 28 61 2e 64 29 20 21 3d (wl_display_prepare_read(a.d).!=
5620 20 30 29 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 .0).wl_display_dispatch_pending(
5640 61 2e 64 29 3b 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 66 6c 75 73 68 28 61 2e a.d);........wl_display_flush(a.
5660 64 29 3b 00 00 00 4d 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 66 64 73 5b 32 5d 20 d);...M....struct.pollfd.fds[2].
5680 3d 20 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c 4c =.{{wl_display_get_fd(a.d),.POLL
56a0 49 4e 7d 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 48 20 20 20 20 69 66 20 28 IN},.{tfd,.POLLIN}};...H....if.(
56c0 70 6f 6c 6c 28 66 64 73 2c 20 32 2c 20 2d 31 29 20 3c 20 30 29 20 7b 20 77 6c 5f 64 69 73 70 6c poll(fds,.2,.-1).<.0).{.wl_displ
56e0 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 20 63 6f 6e 74 69 6e 75 65 3b 20 7d ay_cancel_read(a.d);.continue;.}
5700 00 00 00 5f 20 20 20 20 69 66 20 28 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c ..._....if.(fds[0].revents.&.POL
5720 4c 49 4e 29 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 65 61 64 5f 65 76 65 6e 74 73 28 61 2e 64 29 LIN).wl_display_read_events(a.d)
5740 3b 20 65 6c 73 65 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e ;.else.wl_display_cancel_read(a.
5760 64 29 3b 00 00 00 25 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 d);...%....wl_display_dispatch_p
5780 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 22 20 20 20 20 69 66 20 28 66 64 73 5b 31 5d 2e 72 ending(a.d);..."....if.(fds[1].r
57a0 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 37 20 20 20 20 20 20 75 69 6e 74 events.&.POLLIN).{...7......uint
57c0 36 34 5f 74 20 74 5f 65 78 70 3b 20 72 65 61 64 28 74 66 64 2c 20 26 74 5f 65 78 70 2c 20 73 69 64_t.t_exp;.read(tfd,.&t_exp,.si
57e0 7a 65 6f 66 28 74 5f 65 78 70 29 29 3b 00 00 00 1e 20 20 20 20 20 20 74 69 6d 65 5f 74 20 63 6c zeof(t_exp));..........time_t.cl
5800 69 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 2c 20 20 20 20 20 20 73 74 72 75 63 74 20 i.=.time(NULL);...,......struct.
5820 74 6d 20 2a 74 5f 73 74 72 75 63 74 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 26 63 6c 69 29 3b 00 tm.*t_struct.=.localtime(&cli);.
5840 00 00 49 20 20 20 20 20 20 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 ..I......strftime(buffer,.sizeof
5860 28 62 75 66 66 65 72 29 2c 20 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a 25 4d 3a 25 53 20 25 70 22 (buffer),."%d-%m-%Y.%I:%M:%S.%p"
5880 2c 20 74 5f 73 74 72 75 63 74 29 3b 00 00 00 35 20 20 20 20 20 20 70 72 69 6e 74 66 28 22 5c 72 ,.t_struct);...5......printf("\r
58a0 54 69 6d 65 20 69 73 20 25 73 22 2c 20 62 75 66 66 65 72 29 3b 20 66 66 6c 75 73 68 28 73 74 64 Time.is.%s",.buffer);.fflush(std
58c0 6f 75 74 29 3b 00 00 00 16 20 20 20 20 20 20 61 2e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 out);..........a.redraw.=.true;.
58e0 00 00 05 20 20 20 20 7d 00 00 00 1d 20 20 20 20 69 66 20 28 61 2e 72 65 64 72 61 77 29 20 72 65 .......}........if.(a.redraw).re
5900 6e 64 65 72 28 26 61 29 3b 00 00 00 03 20 20 7d 00 00 00 48 20 20 70 72 69 6e 74 66 28 22 5c 6e nder(&a);......}...H..printf("\n
5920 22 29 3b 20 63 6c 6f 73 65 28 74 66 64 29 3b 20 64 65 73 74 72 6f 79 5f 62 75 66 28 26 61 29 3b ");.close(tfd);.destroy_buf(&a);
5940 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 61 2e 64 29 3b 35 81 f5 18 .wl_display_disconnect(a.d);5...
5960 00 00 00 00 01 00 00 00 0a 00 00 00 d9 00 00 00 2c 00 00 00 23 01 00 00 01 00 00 00 2a 00 00 00 ................,...#.......*...
5980 00 00 00 00 7e 20 00 00 00 00 00 00 09 23 00 00 00 00 00 00 35 81 5f d0 00 00 00 03 00 00 00 05 ....~........#......5._.........
59a0 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 ................................
59c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
59e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5b00 00 00 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 ae 2b 04 01 ..........................i..+..
5b20 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 02 00 00 00 00 00 00 01 27 00 00 00 1f 23 64 65 66 69 ......................'....#defi
5b40 6e 65 20 5f 50 4f 53 49 58 5f 43 5f 53 4f 55 52 43 45 20 32 30 30 38 30 39 4c 00 00 00 13 23 69 ne._POSIX_C_SOURCE.200809L....#i
5b60 6e 63 6c 75 64 65 20 22 63 6f 6e 66 69 67 2e 68 22 00 00 00 26 23 69 6e 63 6c 75 64 65 20 22 78 nclude."config.h"...&#include."x
5b80 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"....#
5ba0 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
5bc0 61 74 68 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 23 ath.h>....#include.<poll.h>....#
5be0 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 3c include.<signal.h>....#include.<
5c00 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6e 74 2e 68 stdbool.h>....#include.<stdint.h
5c20 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 6c >....#include.<stdio.h>....#incl
5c40 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 69 ude.<stdlib.h>....#include.<stri
5c60 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 00 ng.h>....#include.<sys/mman.h>..
5c80 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 69 ..#include.<sys/timerfd.h>....#i
5ca0 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 20 3c 75 6e 69 nclude.<time.h>....#include.<uni
5cc0 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 2d 63 6c 69 65 std.h>....#include.<wayland-clie
5ce0 6e 74 2e 68 3e 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 49 00 00 00 23 23 64 65 nt.h>........#ifndef.M_PI...##de
5d00 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 38 39 37 39 33 32 33 38 34 36 fine.M_PI.3.14159265358979323846
5d20 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 25 ....#endif....#ifndef.M_PI_2...%
5d40 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 36 33 32 36 37 39 34 38 39 36 #define.M_PI_2.1.570796326794896
5d60 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 6f 61923....#endif.......)static.vo
5d80 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b latile.sig_atomic_t.running.=.1;
5da0 00 00 00 1b 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 20 7b 00 ....static.void.on_sig(int.s).{.
5dc0 00 00 0a 20 20 28 76 6f 69 64 29 73 3b 00 00 00 0e 20 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 00 .....(void)s;......running.=.0;.
5de0 00 00 01 7d 00 00 00 00 00 00 00 0c 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 ...}........struct.app.{......st
5e00 72 75 63 74 20 77 6c 5f 64 69 73 70 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 ruct.wl_display.*d;......struct.
5e20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c wl_registry.*reg;......struct.wl
5e40 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 _compositor.*comp;......struct.w
5e60 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 l_shm.*shm;......struct.xdg_wm_b
5e80 61 73 65 20 2a 77 6d 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 ase.*wm;......struct.wl_surface.
5ea0 2a 77 73 3b 00 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 *ws;......struct.xdg_surface.*xs
5ec0 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 ;......struct.xdg_toplevel.*xt;.
5ee0 00 00 0f 20 20 76 6f 69 64 20 2a 70 69 78 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 .....void.*pixels;......struct.w
5f00 6c 5f 62 75 66 66 65 72 20 2a 62 75 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 l_buffer.*buf;......int.w,.h;...
5f20 0d 20 20 69 6e 74 20 62 77 2c 20 62 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 ...int.bw,.bh;......bool.configu
5f40 72 65 64 3b 00 00 00 0e 20 20 62 6f 6f 6c 20 72 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 00 00 00 red;......bool.redraw;....};....
5f60 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 77 6d 5f 70 69 6e 67 28 76 6f 69 64 20 2a 64 61 ...Jstatic.void.wm_ping(void.*da
5f80 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 2c 20 75 69 6e 74 ta,.struct.xdg_wm_base.*wm,.uint
5fa0 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 1f 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 32_t.serial).{......xdg_wm_base_
5fc0 70 6f 6e 67 28 77 6d 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 24 73 74 pong(wm,.serial);....}.......$st
5fe0 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 5f 74 20 73 69 7a 65 29 atic.int.create_shm(size_t.size)
6000 20 7b 00 00 00 23 20 20 63 68 61 72 20 74 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c 63 6c 6f 63 6b .{...#..char.t[].=."/tmp/wlclock
6020 2d 58 58 58 58 58 58 22 3b 00 00 00 16 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 74 65 6d 70 28 -XXXXXX";......int.fd.=.mkstemp(
6040 74 29 3b 00 00 00 0d 20 20 69 66 20 28 66 64 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 69 74 t);......if.(fd.<.0)........exit
6060 28 31 29 3b 00 00 00 0c 20 20 75 6e 6c 69 6e 6b 28 74 29 3b 00 00 00 1e 20 20 69 66 20 28 66 74 (1);......unlink(t);......if.(ft
6080 72 75 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 00 00 00 0c 20 20 20 20 65 78 runcate(fd,.size).<.0)........ex
60a0 69 74 28 31 29 3b 00 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 it(1);......return.fd;....}.....
60c0 00 00 28 73 74 61 74 69 63 20 76 6f 69 64 20 64 65 73 74 72 6f 79 5f 62 75 66 28 73 74 72 75 63 ..(static.void.destroy_buf(struc
60e0 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 00 00 00 t.app.*a).{......if.(!a->buf)...
6100 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 2a 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 .....return;...*..size_t.size.=.
6120 28 73 69 7a 65 5f 74 29 61 2d 3e 62 77 20 2a 20 61 2d 3e 62 68 20 2a 20 34 3b 00 00 00 1c 20 20 (size_t)a->bw.*.a->bh.*.4;......
6140 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 1a 20 20 wl_buffer_destroy(a->buf);......
6160 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 2c 20 73 69 7a 65 29 3b 00 00 00 10 20 20 61 2d munmap(a->pixels,.size);......a-
6180 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 00 00 00 13 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 4e 55 >buf.=.NULL;......a->pixels.=.NU
61a0 4c 4c 3b 00 00 00 01 7d 00 00 00 00 00 00 00 26 73 74 61 74 69 63 20 76 6f 69 64 20 61 6c 6c 6f LL;....}.......&static.void.allo
61c0 63 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 11 20 20 64 65 73 74 c_buf(struct.app.*a).{......dest
61e0 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 28 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 roy_buf(a);...(..size_t.size.=.(
6200 73 69 7a 65 5f 74 29 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 34 3b 00 00 00 1c 20 20 69 6e 74 size_t)a->w.*.a->h.*.4;......int
6220 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 29 3b 00 00 00 4a 20 20 61 2d 3e .fd.=.create_shm(size);...J..a->
6240 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
6260 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
6280 2c 20 30 29 3b 00 00 00 1e 20 20 69 66 20 28 61 2d 3e 70 69 78 65 6c 73 20 3d 3d 20 4d 41 50 5f ,.0);......if.(a->pixels.==.MAP_
62a0 46 41 49 4c 45 44 29 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 42 20 20 73 74 72 FAILED)........exit(1);...B..str
62c0 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
62e0 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 3b 00 00 00 reate_pool(a->shm,.fd,.size);...
6300 43 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 74 65 5f 62 C..a->buf.=.wl_shm_pool_create_b
6320 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 61 2d 3e 77 20 uffer(pool,.0,.a->w,.a->h,.a->w.
6340 2a 20 34 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 *.4,...=........................
6360 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
6380 38 38 38 29 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 888);......wl_shm_pool_destroy(p
63a0 6f 6f 6c 29 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 0f 20 20 61 2d 3e 62 77 ool);......close(fd);......a->bw
63c0 20 3d 20 61 2d 3e 77 3b 00 00 00 0f 20 20 61 2d 3e 62 68 20 3d 20 61 2d 3e 68 3b 00 00 00 01 7d .=.a->w;......a->bh.=.a->h;....}
63e0 00 00 00 00 00 00 00 45 73 74 61 74 69 63 20 76 6f 69 64 20 63 69 72 63 6c 65 28 75 69 6e 74 33 .......Estatic.void.circle(uint3
6400 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 63 78 2c 20 69 2_t.*px,.int.w,.int.h,.int.cx,.i
6420 6e 74 20 63 79 2c 20 69 6e 74 20 72 2c 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt.cy,.int.r,...................
6440 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 30 ....uint32_t.c).{..."..int.x.=.0
6460 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 69 ,.y.=.r,.d.=.3.-.2.*.r;......whi
6480 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 00 00 48 20 20 20 20 69 6e 74 20 70 5b 38 5d 5b 32 5d le.(y.>=.x).{...H....int.p[8][2]
64a0 20 3d 20 7b 7b 63 78 20 2b 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 63 .=.{{cx.+.x,.cy.+.y},.{cx.-.x,.c
64c0 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 48 20 20 20 y.+.y},.{cx.+.x,.cy.-.y},...H...
64e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 7d ................{cx.-.x,.cy.-.y}
6500 2c 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 ,.{cx.+.y,.cy.+.x},.{cx.-.y,.cy.
6520 2b 20 78 7d 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 +.x},...7...................{cx.
6540 2b 20 79 2c 20 63 79 20 2d 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d 7d 3b +.y,.cy.-.x},.{cx.-.y,.cy.-.x}};
6560 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 69 ........for.(int.i.=.0;.i.<.8;.i
6580 2b 2b 29 00 00 00 45 20 20 20 20 20 20 69 66 20 28 70 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 26 ++)...E......if.(p[i][0].>=.0.&&
65a0 20 70 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 20 .p[i][0].<.w.&&.p[i][1].>=.0.&&.
65c0 70 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 26 20 20 20 20 20 20 20 20 70 78 5b 70 5b 69 5d 5b p[i][1].<.h)...&........px[p[i][
65e0 31 5d 20 2a 20 77 20 2b 20 70 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 10 20 20 20 20 69 66 1].*.w.+.p[i][0]].=.c;........if
6600 20 28 64 20 3e 20 30 29 20 7b 00 00 00 1c 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 .(d.>.0).{..........d.+=.4.*.(x.
6620 2d 20 79 29 20 2b 20 31 30 3b 00 00 00 0a 20 20 20 20 20 20 79 2d 2d 3b 00 00 00 0a 20 20 20 20 -.y).+.10;..........y--;........
6640 7d 20 65 6c 73 65 00 00 00 15 20 20 20 20 20 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 }.else..........d.+=.4.*.x.+.6;.
6660 00 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 50 73 .......x++;......}....}.......Ps
6680 74 61 74 69 63 20 76 6f 69 64 20 66 69 6c 6c 5f 74 72 69 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 tatic.void.fill_tri(uint32_t.*px
66a0 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 2c 20 ,.int.w,.int.h,.int.x0,.int.y0,.
66c0 69 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 20 20 int.x1,.int.y1,...2.............
66e0 20 20 20 20 20 20 20 20 69 6e 74 20 78 32 2c 20 69 6e 74 20 79 32 2c 20 75 69 6e 74 33 32 5f 74 ........int.x2,.int.y2,.uint32_t
6700 20 63 29 20 7b 00 00 00 42 20 20 69 6e 74 20 6d 69 6e 5f 79 20 3d 20 79 30 20 3c 20 79 31 20 3f .c).{...B..int.min_y.=.y0.<.y1.?
6720 20 28 79 30 20 3c 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 20 3c 20 79 32 20 .(y0.<.y2.?.y0.:.y2).:.(y1.<.y2.
6740 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 42 20 20 69 6e 74 20 6d 61 78 5f 79 20 3d 20 79 30 20 ?.y1.:.y2);...B..int.max_y.=.y0.
6760 3e 20 79 31 20 3f 20 28 79 30 20 3e 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 31 >.y1.?.(y0.>.y2.?.y0.:.y2).:.(y1
6780 20 3e 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 10 20 20 69 66 20 28 6d 69 6e 5f 79 .>.y2.?.y1.:.y2);......if.(min_y
67a0 20 3c 20 30 29 00 00 00 0e 20 20 20 20 6d 69 6e 5f 79 20 3d 20 30 3b 00 00 00 11 20 20 69 66 20 .<.0)........min_y.=.0;......if.
67c0 28 6d 61 78 5f 79 20 3e 3d 20 68 29 00 00 00 12 20 20 20 20 6d 61 78 5f 79 20 3d 20 68 20 2d 20 (max_y.>=.h)........max_y.=.h.-.
67e0 31 3b 00 00 00 28 20 20 66 6f 72 20 28 69 6e 74 20 79 20 3d 20 6d 69 6e 5f 79 3b 20 79 20 3c 3d 1;...(..for.(int.y.=.min_y;.y.<=
6800 20 6d 61 78 5f 79 3b 20 79 2b 2b 29 20 7b 00 00 00 1f 20 20 20 20 69 6e 74 20 78 5f 73 74 61 72 .max_y;.y++).{........int.x_star
6820 74 20 3d 20 77 2c 20 78 5f 65 6e 64 20 3d 20 30 3b 00 00 00 33 20 20 20 20 69 6e 74 20 78 73 5b t.=.w,.x_end.=.0;...3....int.xs[
6840 33 5d 20 3d 20 7b 78 30 2c 20 78 31 2c 20 78 32 7d 2c 20 79 73 5b 33 5d 20 3d 20 7b 79 30 2c 20 3].=.{x0,.x1,.x2},.ys[3].=.{y0,.
6860 79 31 2c 20 79 32 7d 3b 00 00 00 15 20 20 20 20 62 6f 6f 6c 20 68 69 74 20 3d 20 66 61 6c 73 65 y1,.y2};........bool.hit.=.false
6880 3b 00 00 00 21 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 33 3b 20 ;...!....for.(int.i.=.0;.i.<.3;.
68a0 69 2b 2b 29 20 7b 00 00 00 1a 20 20 20 20 20 20 69 6e 74 20 6a 20 3d 20 28 69 20 2b 20 31 29 20 i++).{..........int.j.=.(i.+.1).
68c0 25 20 33 3b 00 00 00 43 20 20 20 20 20 20 69 66 20 28 28 79 73 5b 69 5d 20 3c 3d 20 79 20 26 26 %.3;...C......if.((ys[i].<=.y.&&
68e0 20 79 73 5b 6a 5d 20 3e 20 79 29 20 7c 7c 20 28 79 73 5b 6a 5d 20 3c 3d 20 79 20 26 26 20 79 73 .ys[j].>.y).||.(ys[j].<=.y.&&.ys
6900 5b 69 5d 20 3e 20 79 29 29 20 7b 00 00 00 48 20 20 20 20 20 20 20 20 69 6e 74 20 78 20 3d 20 78 [i].>.y)).{...H........int.x.=.x
6920 73 5b 69 5d 20 2b 20 28 79 20 2d 20 79 73 5b 69 5d 29 20 2a 20 28 78 73 5b 6a 5d 20 2d 20 78 73 s[i].+.(y.-.ys[i]).*.(xs[j].-.xs
6940 5b 69 5d 29 20 2f 20 28 79 73 5b 6a 5d 20 2d 20 79 73 5b 69 5d 29 3b 00 00 00 18 20 20 20 20 20 [i])./.(ys[j].-.ys[i]);.........
6960 20 20 20 69 66 20 28 78 20 3c 20 78 5f 73 74 61 72 74 29 00 00 00 16 20 20 20 20 20 20 20 20 20 ...if.(x.<.x_start).............
6980 20 78 5f 73 74 61 72 74 20 3d 20 78 3b 00 00 00 16 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3e .x_start.=.x;............if.(x.>
69a0 20 78 5f 65 6e 64 29 00 00 00 14 20 20 20 20 20 20 20 20 20 20 78 5f 65 6e 64 20 3d 20 78 3b 00 .x_end)..............x_end.=.x;.
69c0 00 00 13 20 20 20 20 20 20 20 20 68 69 74 20 3d 20 74 72 75 65 3b 00 00 00 07 20 20 20 20 20 20 ...........hit.=.true;..........
69e0 7d 00 00 00 05 20 20 20 20 7d 00 00 00 0e 20 20 20 20 69 66 20 28 68 69 74 29 20 7b 00 00 00 16 }........}........if.(hit).{....
6a00 20 20 20 20 20 20 69 66 20 28 78 5f 73 74 61 72 74 20 3c 20 30 29 00 00 00 14 20 20 20 20 20 20 ......if.(x_start.<.0)..........
6a20 20 20 78 5f 73 74 61 72 74 20 3d 20 30 3b 00 00 00 15 20 20 20 20 20 20 69 66 20 28 78 5f 65 6e ..x_start.=.0;..........if.(x_en
6a40 64 20 3e 3d 20 77 29 00 00 00 16 20 20 20 20 20 20 20 20 78 5f 65 6e 64 20 3d 20 77 20 2d 20 31 d.>=.w)............x_end.=.w.-.1
6a60 3b 00 00 00 2c 20 20 20 20 20 20 66 6f 72 20 28 69 6e 74 20 78 20 3d 20 78 5f 73 74 61 72 74 3b ;...,......for.(int.x.=.x_start;
6a80 20 78 20 3c 3d 20 78 5f 65 6e 64 3b 20 78 2b 2b 29 00 00 00 1a 20 20 20 20 20 20 20 20 70 78 5b .x.<=.x_end;.x++)............px[
6aa0 79 20 2a 20 77 20 2b 20 78 5d 20 3d 20 63 3b 00 00 00 05 20 20 20 20 7d 00 00 00 03 20 20 7d 00 y.*.w.+.x].=.c;........}......}.
6ac0 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 6e 64 65 72 28 73 ...}.......#static.void.render(s
6ae0 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 2f 20 20 69 66 20 28 21 61 2d 3e 63 6f 6e truct.app.*a).{.../..if.(!a->con
6b00 66 69 67 75 72 65 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e 68 20 3c 3d 20 figured.||.a->w.<=.0.||.a->h.<=.
6b20 30 29 00 00 00 0b 20 20 20 20 72 65 74 75 72 6e 3b 00 00 00 0e 20 20 69 66 20 28 21 61 2d 3e 62 0)........return;......if.(!a->b
6b40 75 66 29 00 00 00 11 20 20 20 20 61 6c 6c 6f 63 5f 62 75 66 28 61 29 3b 00 00 00 1b 20 20 75 69 uf)........alloc_buf(a);......ui
6b60 6e 74 33 32 5f 74 20 2a 70 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 27 20 20 66 6f 72 nt32_t.*px.=.a->pixels;...'..for
6b80 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 61 2d 3e 77 20 2a 20 61 2d 3e 68 3b 20 69 2b .(int.i.=.0;.i.<.a->w.*.a->h;.i+
6ba0 2b 29 00 00 00 15 20 20 20 20 70 78 5b 69 5d 20 3d 20 43 4f 4c 4f 52 5f 42 47 3b 00 00 00 19 20 +)........px[i].=.COLOR_BG;.....
6bc0 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 10 20 20 73 74 .time_t.tt.=.time(NULL);......st
6be0 72 75 63 74 20 74 6d 20 74 6d 76 3b 00 00 00 19 20 20 6c 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 ruct.tm.tmv;......localtime_r(&t
6c00 74 2c 20 26 74 6d 76 29 3b 00 00 00 23 20 20 69 6e 74 20 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 t,.&tmv);...#..int.cx.=.a->w./.2
6c20 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 ,.cy.=.a->h./.2;.../..int.r.=.(a
6c40 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 ->w.<.a->h.?.a->w.:.a->h)./.2.-.
6c60 31 30 3b 00 00 00 0c 20 20 69 66 20 28 72 20 3c 20 35 29 00 00 00 0a 20 20 20 20 72 20 3d 20 35 10;......if.(r.<.5)........r.=.5
6c80 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 36 30 3b 20 69 ;......for.(int.i.=.0;.i.<.60;.i
6ca0 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 69 20 2f 20 36 30 ++).{........double.ang.=.i./.60
6cc0 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 31 20 20 20 20 69 .0.*.2.*.M_PI.-.M_PI_2;...1....i
6ce0 6e 74 20 6c 65 6e 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 72 20 2a 20 30 2e 31 32 nt.len.=.(i.%.5.==.0).?.r.*.0.12
6d00 20 3a 20 72 20 2a 20 30 2e 30 34 3b 00 00 00 30 20 20 20 20 64 6f 75 62 6c 65 20 74 5f 61 6e 67 .:.r.*.0.04;...0....double.t_ang
6d20 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 30 2e 30 31 32 20 3a 20 30 2e 30 30 35 3b .=.(i.%.5.==.0).?.0.012.:.0.005;
6d40 00 00 00 37 20 20 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c ...7....fill_tri(px,.a->w,.a->h,
6d60 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 20 2d 20 74 5f 61 6e 67 29 20 2a 20 72 2c 00 00 00 42 20 .cx.+.cos(ang.-.t_ang).*.r,...B.
6d80 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 20 2d 20 74 5f 61 6e 67 ............cy.+.sin(ang.-.t_ang
6da0 29 20 2a 20 72 2c 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 20 2b 20 74 5f 61 6e 67 29 20 2a 20 72 ).*.r,.cx.+.cos(ang.+.t_ang).*.r
6dc0 2c 00 00 00 42 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 61 6e 67 20 2b ,...B.............cy.+.sin(ang.+
6de0 20 74 5f 61 6e 67 29 20 2a 20 72 2c 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 29 20 2a 20 28 72 20 .t_ang).*.r,.cx.+.cos(ang).*.(r.
6e00 2d 20 6c 65 6e 29 2c 00 00 00 34 20 20 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e -.len),...4.............cy.+.sin
6e20 28 61 6e 67 29 20 2a 20 28 72 20 2d 20 6c 65 6e 29 2c 20 43 4f 4c 4f 52 5f 44 49 41 4c 29 3b 00 (ang).*.(r.-.len),.COLOR_DIAL);.
6e40 00 00 03 20 20 7d 00 00 00 34 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 76 2e 74 6d 5f 73 .....}...4..double.sa.=.tmv.tm_s
6e60 65 63 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 ec./.60.0.*.2.*.M_PI.-.M_PI_2;..
6e80 00 4a 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d .J..double.ma.=.(tmv.tm_min.+.tm
6ea0 76 2e 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f v.tm_sec./.60.0)./.60.0.*.2.*.M_
6ec0 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 0d 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 00 00 00 PI.-.M_PI_2;......double.ha.=...
6ee0 4c 20 20 20 20 20 20 28 28 74 6d 76 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d L......((tmv.tm_hour.%.12).+.(tm
6f00 76 2e 74 6d 5f 6d 69 6e 20 2f 20 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d v.tm_min./.60.0))./.12.0.*.2.*.M
6f20 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 42 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 _PI.-.M_PI_2;...B..fill_tri(px,.
6f40 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 68 61 20 2d 20 30 2e 31 32 29 20 a->w,.a->h,.cx.+.cos(ha.-.0.12).
6f60 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 48 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 *.r.*.HAND_THICK_H,...2.........
6f80 20 20 63 79 20 2b 20 73 69 6e 28 68 61 20 2d 20 30 2e 31 32 29 20 2a 20 72 20 2a 20 48 41 4e 44 ..cy.+.sin(ha.-.0.12).*.r.*.HAND
6fa0 5f 54 48 49 43 4b 5f 48 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 _THICK_H,...2...........cx.+.cos
6fc0 28 68 61 20 2b 20 30 2e 31 32 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 48 2c 00 (ha.+.0.12).*.r.*.HAND_THICK_H,.
6fe0 00 00 32 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 68 61 20 2b 20 30 2e 31 32 ..2...........cy.+.sin(ha.+.0.12
7000 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 48 2c 00 00 00 48 20 20 20 20 20 20 20 ).*.r.*.HAND_THICK_H,...H.......
7020 20 20 20 20 63 78 20 2b 20 63 6f 73 28 68 61 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 4c 45 4e 5f ....cx.+.cos(ha).*.r.*.HAND_LEN_
7040 48 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 4c 45 4e 5f 48 H,.cy.+.sin(ha).*.r.*.HAND_LEN_H
7060 2c 00 00 00 17 20 20 20 20 20 20 20 20 20 20 20 43 4f 4c 4f 52 5f 48 4f 55 52 29 3b 00 00 00 42 ,...............COLOR_HOUR);...B
7080 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 ..fill_tri(px,.a->w,.a->h,.cx.+.
70a0 63 6f 73 28 6d 61 20 2d 20 30 2e 30 38 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f cos(ma.-.0.08).*.r.*.HAND_THICK_
70c0 4d 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 6d 61 20 2d 20 30 M,...2...........cy.+.sin(ma.-.0
70e0 2e 30 38 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 4d 2c 00 00 00 32 20 20 20 20 .08).*.r.*.HAND_THICK_M,...2....
7100 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 20 2b 20 30 2e 30 38 29 20 2a 20 72 20 2a .......cx.+.cos(ma.+.0.08).*.r.*
7120 20 48 41 4e 44 5f 54 48 49 43 4b 5f 4d 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 63 79 20 .HAND_THICK_M,...2...........cy.
7140 2b 20 73 69 6e 28 6d 61 20 2b 20 30 2e 30 38 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 +.sin(ma.+.0.08).*.r.*.HAND_THIC
7160 4b 5f 4d 2c 00 00 00 48 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 29 20 K_M,...H...........cx.+.cos(ma).
7180 2a 20 72 20 2a 20 48 41 4e 44 5f 4c 45 4e 5f 4d 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 29 20 2a *.r.*.HAND_LEN_M,.cy.+.sin(ma).*
71a0 20 72 20 2a 20 48 41 4e 44 5f 4c 45 4e 5f 4d 2c 00 00 00 16 20 20 20 20 20 20 20 20 20 20 20 43 .r.*.HAND_LEN_M,...............C
71c0 4f 4c 4f 52 5f 4d 49 4e 29 3b 00 00 00 42 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e OLOR_MIN);...B..fill_tri(px,.a->
71e0 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 73 61 20 2d 20 30 2e 30 35 29 20 2a 20 72 w,.a->h,.cx.+.cos(sa.-.0.05).*.r
7200 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 53 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 63 .*.HAND_THICK_S,...2...........c
7220 79 20 2b 20 73 69 6e 28 73 61 20 2d 20 30 2e 30 35 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 y.+.sin(sa.-.0.05).*.r.*.HAND_TH
7240 49 43 4b 5f 53 2c 00 00 00 32 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 73 61 ICK_S,...2...........cx.+.cos(sa
7260 20 2b 20 30 2e 30 35 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 53 2c 00 00 00 32 .+.0.05).*.r.*.HAND_THICK_S,...2
7280 20 20 20 20 20 20 20 20 20 20 20 63 79 20 2b 20 73 69 6e 28 73 61 20 2b 20 30 2e 30 35 29 20 2a ...........cy.+.sin(sa.+.0.05).*
72a0 20 72 20 2a 20 48 41 4e 44 5f 54 48 49 43 4b 5f 53 2c 00 00 00 48 20 20 20 20 20 20 20 20 20 20 .r.*.HAND_THICK_S,...H..........
72c0 20 63 78 20 2b 20 63 6f 73 28 73 61 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 4c 45 4e 5f 53 2c 20 .cx.+.cos(sa).*.r.*.HAND_LEN_S,.
72e0 63 79 20 2b 20 73 69 6e 28 73 61 29 20 2a 20 72 20 2a 20 48 41 4e 44 5f 4c 45 4e 5f 53 2c 00 00 cy.+.sin(sa).*.r.*.HAND_LEN_S,..
7300 00 16 20 20 20 20 20 20 20 20 20 20 20 43 4f 4c 4f 52 5f 53 45 43 29 3b 00 00 00 17 20 20 69 6e .............COLOR_SEC);......in
7320 74 20 68 75 62 5f 72 20 3d 20 72 20 2a 20 30 2e 30 34 3b 00 00 00 10 20 20 69 66 20 28 68 75 62 t.hub_r.=.r.*.0.04;......if.(hub
7340 5f 72 20 3c 20 34 29 00 00 00 0e 20 20 20 20 68 75 62 5f 72 20 3d 20 34 3b 00 00 00 28 20 20 66 _r.<.4)........hub_r.=.4;...(..f
7360 6f 72 20 28 69 6e 74 20 69 72 20 3d 20 30 3b 20 69 72 20 3c 20 68 75 62 5f 72 20 2d 20 32 3b 20 or.(int.ir.=.0;.ir.<.hub_r.-.2;.
7380 69 72 2b 2b 29 00 00 00 31 20 20 20 20 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d ir++)...1....circle(px,.a->w,.a-
73a0 3e 68 2c 20 63 78 2c 20 63 79 2c 20 69 72 2c 20 43 4f 4c 4f 52 5f 42 47 29 3b 00 00 00 33 20 20 >h,.cx,.cy,.ir,.COLOR_BG);...3..
73c0 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 68 circle(px,.a->w,.a->h,.cx,.cy,.h
73e0 75 62 5f 72 2c 20 43 4f 4c 4f 52 5f 48 55 42 29 3b 00 00 00 29 20 20 77 6c 5f 73 75 72 66 61 63 ub_r,.COLOR_HUB);...)..wl_surfac
7400 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 30 2c 20 30 29 3b 00 00 e_attach(a->ws,.a->buf,.0,.0);..
7420 00 34 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 66 66 65 72 28 61 2d 3e .4..wl_surface_damage_buffer(a->
7440 77 73 2c 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 00 1b 20 20 77 6c 5f 73 ws,.0,.0,.a->w,.a->h);......wl_s
7460 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 14 20 20 61 2d 3e 72 65 urface_commit(a->ws);......a->re
7480 64 72 61 77 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 00 47 73 74 61 74 69 63 draw.=.false;....}.......Gstatic
74a0 20 76 6f 69 64 20 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 .void.xt_close(void.*d,.struct.x
74c0 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 29 20 7b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 dg_toplevel.*xt).{.running.=.0;.
74e0 7d 00 00 00 4a 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c }...Jstatic.void.xt_cfg(void.*d,
7500 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 2c 20 69 6e 74 33 32 5f .struct.xdg_toplevel.*xt,.int32_
7520 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 00 00 00 28 20 20 20 20 20 20 20 20 20 20 20 20 20 t.w,.int32_t.h,...(.............
7540 20 20 20 20 20 20 73 74 72 75 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 20 7b 00 00 00 14 20 ......struct.wl_array.*s).{.....
7560 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e .struct.app.*a.=.d;...3..if.(w.>
7580 20 30 20 26 26 20 68 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 .0.&&.h.>.0.&&.(w.!=.a->w.||.h.!
75a0 3d 20 61 2d 3e 68 29 29 20 7b 00 00 00 0d 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 00 00 00 0d 20 =.a->h)).{........a->w.=.w;.....
75c0 20 20 20 61 2d 3e 68 20 3d 20 68 3b 00 00 00 13 20 20 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 ...a->h.=.h;........destroy_buf(
75e0 61 29 3b 00 00 00 15 20 20 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 03 a);........a->redraw.=.true;....
7600 20 20 7d 00 00 00 01 7d 00 00 00 46 73 74 61 74 69 63 20 76 6f 69 64 20 78 73 5f 63 66 67 28 76 ..}....}...Fstatic.void.xs_cfg(v
7620 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 2c 20 oid.*d,.struct.xdg_surface.*xs,.
7640 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 uint32_t.serial).{......struct.a
7660 70 70 20 2a 61 20 3d 20 64 3b 00 00 00 28 20 20 78 64 67 5f 73 75 72 66 61 63 65 5f 61 63 6b 5f pp.*a.=.d;...(..xdg_surface_ack_
7680 63 6f 6e 66 69 67 75 72 65 28 78 73 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 17 20 20 61 2d 3e 63 configure(xs,.serial);......a->c
76a0 6f 6e 66 69 67 75 72 65 64 20 3d 20 74 72 75 65 3b 00 00 00 13 20 20 61 2d 3e 72 65 64 72 61 77 onfigured.=.true;......a->redraw
76c0 20 3d 20 74 72 75 65 3b 00 00 00 01 7d 00 00 00 43 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 .=.true;....}...Cstatic.void.reg
76e0 5f 67 6c 6f 62 61 6c 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 _global(void.*d,.struct.wl_regis
7700 74 72 79 20 2a 72 2c 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 try.*r,.uint32_t.id,...3........
7720 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 2c 20 75 69 ...............const.char.*i,.ui
7740 6e 74 33 32 5f 74 20 76 29 20 7b 00 00 00 14 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d nt32_t.v).{......struct.app.*a.=
7760 20 64 3b 00 00 00 22 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 63 6f 6d 70 .d;..."..if.(!strcmp(i,."wl_comp
7780 6f 73 69 74 6f 72 22 29 29 00 00 00 43 20 20 20 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 ositor"))...C....a->comp.=.wl_re
77a0 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f gistry_bind(r,.id,.&wl_composito
77c0 72 5f 69 6e 74 65 72 66 61 63 65 2c 20 34 29 3b 00 00 00 20 20 20 65 6c 73 65 20 69 66 20 28 21 r_interface,.4);......else.if.(!
77e0 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 73 68 6d 22 29 29 00 00 00 3b 20 20 20 20 61 2d 3e 73 strcmp(i,."wl_shm"))...;....a->s
7800 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 77 6c hm.=.wl_registry_bind(r,.id,.&wl
7820 5f 73 68 6d 5f 69 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 27 20 20 65 6c 73 65 20 69 66 _shm_interface,.1);...'..else.if
7840 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 78 64 67 5f 77 6d 5f 62 61 73 65 22 29 29 20 7b 00 00 .(!strcmp(i,."xdg_wm_base")).{..
7860 00 3f 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 .?....a->wm.=.wl_registry_bind(r
7880 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 29 ,.id,.&xdg_wm_base_interface,.1)
78a0 3b 00 00 00 43 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72 75 63 74 20 78 64 67 ;...C....static.const.struct.xdg
78c0 5f 77 6d 5f 62 61 73 65 5f 6c 69 73 74 65 6e 65 72 20 6c 20 3d 20 7b 2e 70 69 6e 67 20 3d 20 77 _wm_base_listener.l.=.{.ping.=.w
78e0 6d 5f 70 69 6e 67 7d 3b 00 00 00 2b 20 20 20 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 61 64 64 5f m_ping};...+....xdg_wm_base_add_
7900 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 6c 2c 20 61 29 3b 00 00 00 03 20 20 7d 00 00 listener(a->wm,.&l,.a);......}..
7920 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 76 6f 69 64 29 20 7b 00 00 00 15 20 ..}........int.main(void).{.....
7940 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 30 7d 3b 00 00 00 0c 20 20 61 2e 77 20 3d 20 .struct.app.a.=.{0};......a.w.=.
7960 34 30 30 3b 00 00 00 0c 20 20 61 2e 68 20 3d 20 34 30 30 3b 00 00 00 19 20 20 73 69 67 6e 61 6c 400;......a.h.=.400;......signal
7980 28 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 21 20 20 61 2e 64 20 3d 20 77 6c 5f (SIGINT,.on_sig);...!..a.d.=.wl_
79a0 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 0b 20 20 69 66 20 28 display_connect(NULL);......if.(
79c0 21 61 2e 64 29 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 65 !a.d)........return.1;...'..a.re
79e0 67 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 61 2e 64 29 g.=.wl_display_get_registry(a.d)
7a00 3b 00 00 00 47 20 20 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 ;...G..static.const.struct.wl_re
7a20 67 69 73 74 72 79 5f 6c 69 73 74 65 6e 65 72 20 72 6c 20 3d 20 7b 2e 67 6c 6f 62 61 6c 20 3d 20 gistry_listener.rl.=.{.global.=.
7a40 72 65 67 5f 67 6c 6f 62 61 6c 7d 3b 00 00 00 2b 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 reg_global};...+..wl_registry_ad
7a60 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 6c 2c 20 26 61 29 3b 00 00 00 1c 20 d_listener(a.reg,.&rl,.&a);.....
7a80 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 21 20 .wl_display_roundtrip(a.d);...!.
7aa0 20 69 66 20 28 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d 20 7c 7c 20 21 61 2e 77 6d 29 .if.(!a.comp.||.!a.shm.||.!a.wm)
7ac0 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 31 3b 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c ........return.1;......a.ws.=.wl
7ae0 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 61 2e 63 6f 6d _compositor_create_surface(a.com
7b00 70 29 3b 00 00 00 31 20 20 61 2e 78 73 20 3d 20 78 64 67 5f 77 6d 5f 62 61 73 65 5f 67 65 74 5f p);...1..a.xs.=.xdg_wm_base_get_
7b20 78 64 67 5f 73 75 72 66 61 63 65 28 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 47 20 20 73 74 xdg_surface(a.wm,.a.ws);...G..st
7b40 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 6c 69 atic.const.struct.xdg_surface_li
7b60 73 74 65 6e 65 72 20 78 73 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 73 5f 63 66 stener.xsl.=.{.configure.=.xs_cf
7b80 67 7d 3b 00 00 00 2b 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
7ba0 72 28 61 2e 78 73 2c 20 26 78 73 6c 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 r(a.xs,.&xsl,.&a);...(..a.xt.=.x
7bc0 64 67 5f 73 75 72 66 61 63 65 5f 67 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 dg_surface_get_toplevel(a.xs);..
7be0 00 47 20 20 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 6c .G..static.const.struct.xdg_topl
7c00 65 76 65 6c 5f 6c 69 73 74 65 6e 65 72 20 78 74 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 evel_listener.xtl.=.{.configure.
7c20 3d 20 78 74 5f 63 66 67 2c 00 00 00 46 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 =.xt_cfg,...F...................
7c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
7c60 2e 63 6c 6f 73 65 20 3d 20 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 .close.=.xt_close};...,..xdg_top
7c80 6c 65 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 6c 2c 20 26 level_add_listener(a.xt,.&xtl,.&
7ca0 61 29 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 a);...*..xdg_toplevel_set_title(
7cc0 61 2e 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 a.xt,."wlclock");......wl_surfac
7ce0 65 5f 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 17 20 20 77 68 69 6c 65 20 28 21 61 2e 63 e_commit(a.ws);......while.(!a.c
7d00 6f 6e 66 69 67 75 72 65 64 29 00 00 00 1d 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 onfigured)........wl_display_dis
7d20 70 61 74 63 68 28 61 2e 64 29 3b 00 00 00 32 20 20 70 75 74 73 28 22 77 61 79 6c 61 6e 64 20 73 patch(a.d);...2..puts("wayland.s
7d40 75 72 66 61 63 65 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 63 6f 6e 66 69 67 75 72 65 64 22 29 urface.successfully.configured")
7d60 3b 00 00 00 0d 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 39 20 20 69 6e 74 20 74 66 64 20 ;......render(&a);...9..int.tfd.
7d80 3d 20 74 69 6d 65 72 66 64 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 =.timerfd_create(CLOCK_MONOTONIC
7da0 2c 20 54 46 44 5f 43 4c 4f 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 6d 65 72 66 64 5f 73 65 74 ,.TFD_CLOEXEC);...F..timerfd_set
7dc0 74 69 6d 65 28 74 66 64 2c 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 time(tfd,.0,.&(struct.itimerspec
7de0 29 7b 7b 31 2c 20 30 7d 2c 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 00 00 13 20 20 63 ){{1,.0},.{1,.0}},.NULL);......c
7e00 68 61 72 20 62 75 66 66 65 72 5b 31 30 30 5d 3b 00 00 00 13 20 20 77 68 69 6c 65 20 28 72 75 6e har.buffer[100];......while.(run
7e20 6e 69 6e 67 29 20 7b 00 00 00 2d 20 20 20 20 77 68 69 6c 65 20 28 77 6c 5f 64 69 73 70 6c 61 79 ning).{...-....while.(wl_display
7e40 5f 70 72 65 70 61 72 65 5f 72 65 61 64 28 61 2e 64 29 20 21 3d 20 30 29 00 00 00 27 20 20 20 20 _prepare_read(a.d).!=.0)...'....
7e60 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 61 2e ..wl_display_dispatch_pending(a.
7e80 64 29 3b 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 66 6c 75 73 68 28 61 2e 64 29 d);........wl_display_flush(a.d)
7ea0 3b 00 00 00 4d 20 20 20 20 73 74 72 75 63 74 20 70 6f 6c 6c 66 64 20 66 64 73 5b 32 5d 20 3d 20 ;...M....struct.pollfd.fds[2].=.
7ec0 7b 7b 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 50 4f 4c 4c 49 4e {{wl_display_get_fd(a.d),.POLLIN
7ee0 7d 2c 20 7b 74 66 64 2c 20 50 4f 4c 4c 49 4e 7d 7d 3b 00 00 00 1f 20 20 20 20 69 66 20 28 70 6f },.{tfd,.POLLIN}};........if.(po
7f00 6c 6c 28 66 64 73 2c 20 32 2c 20 2d 31 29 20 3c 20 30 29 20 7b 00 00 00 22 20 20 20 20 20 20 77 ll(fds,.2,.-1).<.0).{..."......w
7f20 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 0f 20 l_display_cancel_read(a.d);.....
7f40 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 00 00 00 05 20 20 20 20 7d 00 00 00 20 20 20 20 20 69 .....continue;........}........i
7f60 66 20 28 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 00 00 00 22 20 f.(fds[0].revents.&.POLLIN)...".
7f80 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 65 61 64 5f 65 76 65 6e 74 73 28 61 2e 64 29 .....wl_display_read_events(a.d)
7fa0 3b 00 00 00 08 20 20 20 20 65 6c 73 65 00 00 00 22 20 20 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 ;........else..."......wl_displa
7fc0 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 00 00 00 25 20 20 20 20 77 6c 5f 64 69 y_cancel_read(a.d);...%....wl_di
7fe0 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 22 splay_dispatch_pending(a.d);..."
8000 20 20 20 20 69 66 20 28 66 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 ....if.(fds[1].revents.&.POLLIN)
8020 20 7b 00 00 00 15 20 20 20 20 20 20 75 69 6e 74 36 34 5f 74 20 74 5f 65 78 70 3b 00 00 00 27 20 .{..........uint64_t.t_exp;...'.
8040 20 20 20 20 20 72 65 61 64 28 74 66 64 2c 20 26 74 5f 65 78 70 2c 20 73 69 7a 65 6f 66 28 74 5f .....read(tfd,.&t_exp,.sizeof(t_
8060 65 78 70 29 29 3b 00 00 00 1e 20 20 20 20 20 20 74 69 6d 65 5f 74 20 63 6c 69 20 3d 20 74 69 6d exp));..........time_t.cli.=.tim
8080 65 28 4e 55 4c 4c 29 3b 00 00 00 2c 20 20 20 20 20 20 73 74 72 75 63 74 20 74 6d 20 2a 74 5f 73 e(NULL);...,......struct.tm.*t_s
80a0 74 72 75 63 74 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 26 63 6c 69 29 3b 00 00 00 49 20 20 20 20 truct.=.localtime(&cli);...I....
80c0 20 20 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 ..strftime(buffer,.sizeof(buffer
80e0 29 2c 20 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a 25 4d 3a 25 53 20 25 70 22 2c 20 74 5f 73 74 72 ),."%d-%m-%Y.%I:%M:%S.%p",.t_str
8100 75 63 74 29 3b 00 00 00 25 20 20 20 20 20 20 70 72 69 6e 74 66 28 22 5c 72 54 69 6d 65 20 69 73 uct);...%......printf("\rTime.is
8120 20 25 73 22 2c 20 62 75 66 66 65 72 29 3b 00 00 00 15 20 20 20 20 20 20 66 66 6c 75 73 68 28 73 .%s",.buffer);..........fflush(s
8140 74 64 6f 75 74 29 3b 00 00 00 16 20 20 20 20 20 20 61 2e 72 65 64 72 61 77 20 3d 20 74 72 75 65 tdout);..........a.redraw.=.true
8160 3b 00 00 00 05 20 20 20 20 7d 00 00 00 11 20 20 20 20 69 66 20 28 61 2e 72 65 64 72 61 77 29 00 ;........}........if.(a.redraw).
8180 00 00 11 20 20 20 20 20 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 03 20 20 7d 00 00 00 0f 20 .........render(&a);......}.....
81a0 20 70 72 69 6e 74 66 28 22 5c 6e 22 29 3b 00 00 00 0d 20 20 63 6c 6f 73 65 28 74 66 64 29 3b 00 .printf("\n");......close(tfd);.
81c0 00 00 12 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 26 61 29 3b 00 00 00 1d 20 20 77 6c 5f 64 69 .....destroy_buf(&a);......wl_di
81e0 73 70 6c 61 79 5f 64 69 73 63 6f 6e 6e 65 63 74 28 61 2e 64 29 3b 00 00 00 0b 20 20 72 65 74 75 splay_disconnect(a.d);......retu
8200 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 27 01 00 00 00 00 rn.0;....}5...............'.....
8220 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5e 23 00 00 00 00 00 00 01 00 00 00 00 00 ..................^#............
8240 00 00 35 81 5f d0 00 00 00 04 00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 01 00 00 ..5._...........................
8260 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 00 00 ................................
8280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
82a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
82c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
82e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8380 00 00 00 00 00 00 00 00 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 69 9d ae 2c 04 01 00 00 00 00 00 f5 18 00 00 00 e5 00 00 00 00 00 00 00 ........i..,....................
83e0 00 00 00 00 01 00 00 00 1b 20 20 20 20 20 20 20 20 70 72 69 6e 74 66 28 22 5c 72 54 69 6d 65 20 .................printf("\rTime.
8400 69 73 20 25 f5 18 00 00 00 e6 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 cf 00 00 00 00 is.%............................
8420 00 00 00 00 00 00 00 01 00 00 00 18 20 20 77 68 69 6c 65 20 28 21 61 2e 63 6f 6e 66 69 67 75 72 ..............while.(!a.configur
8440 65 64 29 20 f5 18 00 00 00 d0 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 86 00 00 00 00 ed).............................
8460 00 00 00 00 00 00 00 01 00 00 00 18 20 20 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f .........................cx.+.co
8480 73 28 61 6e f5 18 00 00 00 87 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 s(an............................
84a0 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 81 ..............................5.
84c0 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 86 00 00 00 18 00 00 00 00 00 ................................
84e0 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 86 00 00 00 ................................
8500 18 00 00 00 00 00 00 00 00 00 00 00 49 00 00 00 18 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 ............I...................
8520 00 00 00 00 00 0d 00 00 00 00 00 00 f5 18 00 00 00 00 cf 00 00 00 18 00 00 00 00 00 00 00 00 00 ................................
8540 00 00 16 00 00 00 1b 00 00 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 ................................
8560 00 00 f5 18 00 00 00 00 e5 00 00 00 1b 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 01 00 00 00 ................................
8580 00 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 05 .!......................5._.....
85a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 ee 00 00 00 00 00 00 00 00 ff ff ff ff ................................
85c0 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 ................................
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
86c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
86e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8700 00 00 00 00 00 00 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.
8720 ae 2d 04 01 00 00 00 05 00 f5 18 00 00 00 01 00 00 01 34 00 00 00 ee 00 00 00 eb 00 00 00 26 23 .-................4...........&#
8740 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 6f 63 include."xdg-shell-client-protoc
8760 6f 6c 2e 68 22 00 00 00 13 23 69 6e 63 6c 75 64 65 20 22 63 6f 6e 66 69 67 2e 68 22 00 00 00 12 ol.h"....#include."config.h"....
8780 23 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 #include.<fcntl.h>....#include.<
87a0 6d 61 74 68 2e 68 3e 00 00 00 11 23 69 6e 63 6c 75 64 65 20 3c 70 6f 6c 6c 2e 68 3e 00 00 00 13 math.h>....#include.<poll.h>....
87c0 23 69 6e 63 6c 75 64 65 20 3c 73 69 67 6e 61 6c 2e 68 3e 00 00 00 14 23 69 6e 63 6c 75 64 65 20 #include.<signal.h>....#include.
87e0 3c 73 74 64 62 6f 6f 6c 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6e 74 2e <stdbool.h>....#include.<stdint.
8800 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
8820 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
8840 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>.
8860 00 00 18 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 74 69 6d 65 72 66 64 2e 68 3e 00 00 00 11 23 ...#include.<sys/timerfd.h>....#
8880 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 20 3c 75 6e include.<time.h>....#include.<un
88a0 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 2d 63 6c 69 istd.h>....#include.<wayland-cli
88c0 65 6e 74 2e 68 3e 00 00 00 00 00 00 00 0c 23 69 66 6e 64 65 66 20 4d 5f 50 49 00 00 00 23 23 64 ent.h>........#ifndef.M_PI...##d
88e0 65 66 69 6e 65 20 4d 5f 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 38 39 37 39 33 32 33 38 34 efine.M_PI.3.1415926535897932384
8900 36 00 00 00 06 23 65 6e 64 69 66 00 00 00 0e 23 69 66 6e 64 65 66 20 4d 5f 50 49 5f 32 00 00 00 6....#endif....#ifndef.M_PI_2...
8920 25 23 64 65 66 69 6e 65 20 4d 5f 50 49 5f 32 20 31 2e 35 37 30 37 39 36 33 32 36 37 39 34 38 39 %#define.M_PI_2.1.57079632679489
8940 36 36 31 39 32 33 00 00 00 06 23 65 6e 64 69 66 00 00 00 00 00 00 00 29 73 74 61 74 69 63 20 76 661923....#endif.......)static.v
8960 6f 6c 61 74 69 6c 65 20 73 69 67 5f 61 74 6f 6d 69 63 5f 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 olatile.sig_atomic_t.running.=.1
8980 3b 00 00 00 33 73 74 61 74 69 63 20 76 6f 69 64 20 6f 6e 5f 73 69 67 28 69 6e 74 20 73 29 20 7b ;...3static.void.on_sig(int.s).{
89a0 20 28 76 6f 69 64 29 73 3b 20 72 75 6e 6e 69 6e 67 20 3d 20 30 3b 20 7d 00 00 00 00 00 00 00 0c .(void)s;.running.=.0;.}........
89c0 73 74 72 75 63 74 20 61 70 70 20 7b 00 00 00 17 20 20 73 74 72 75 63 74 20 77 6c 5f 64 69 73 70 struct.app.{......struct.wl_disp
89e0 6c 61 79 20 2a 64 3b 00 00 00 1a 20 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 lay.*d;......struct.wl_registry.
8a00 2a 72 65 67 3b 00 00 00 1d 20 20 73 74 72 75 63 74 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 20 *reg;......struct.wl_compositor.
8a20 2a 63 6f 6d 70 3b 00 00 00 15 20 20 73 74 72 75 63 74 20 77 6c 5f 73 68 6d 20 2a 73 68 6d 3b 00 *comp;......struct.wl_shm.*shm;.
8a40 00 00 19 20 20 73 74 72 75 63 74 20 78 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 3b 00 00 00 18 .....struct.xdg_wm_base.*wm;....
8a60 20 20 73 74 72 75 63 74 20 77 6c 5f 73 75 72 66 61 63 65 20 2a 77 73 3b 00 00 00 19 20 20 73 74 ..struct.wl_surface.*ws;......st
8a80 72 75 63 74 20 78 64 67 5f 73 75 72 66 61 63 65 20 2a 78 73 3b 00 00 00 1a 20 20 73 74 72 75 63 ruct.xdg_surface.*xs;......struc
8aa0 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 3b 00 00 00 0f 20 20 76 6f 69 64 20 2a 70 t.xdg_toplevel.*xt;......void.*p
8ac0 69 78 65 6c 73 3b 00 00 00 18 20 20 73 74 72 75 63 74 20 77 6c 5f 62 75 66 66 65 72 20 2a 62 75 ixels;......struct.wl_buffer.*bu
8ae0 66 3b 00 00 00 0b 20 20 69 6e 74 20 77 2c 20 68 3b 00 00 00 0d 20 20 69 6e 74 20 62 77 2c 20 62 f;......int.w,.h;......int.bw,.b
8b00 68 3b 00 00 00 12 20 20 62 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 65 64 3b 00 00 00 0e 20 20 62 6f h;......bool.configured;......bo
8b20 6f 6c 20 72 65 64 72 61 77 3b 00 00 00 02 7d 3b 00 00 00 00 00 00 00 4a 73 74 61 74 69 63 20 76 ol.redraw;....};.......Jstatic.v
8b40 6f 69 64 20 77 6d 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 oid.wm_ping(void.*data,.struct.x
8b60 64 67 5f 77 6d 5f 62 61 73 65 20 2a 77 6d 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 dg_wm_base.*wm,.uint32_t.serial)
8b80 20 7b 00 00 00 0d 20 20 28 76 6f 69 64 29 64 61 74 61 3b 00 00 00 1f 20 20 78 64 67 5f 77 6d 5f .{......(void)data;......xdg_wm_
8ba0 62 61 73 65 5f 70 6f 6e 67 28 77 6d 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 01 7d 00 00 00 00 00 base_pong(wm,.serial);....}.....
8bc0 00 00 24 73 74 61 74 69 63 20 69 6e 74 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 5f 74 20 ..$static.int.create_shm(size_t.
8be0 73 69 7a 65 29 20 7b 00 00 00 23 20 20 63 68 61 72 20 74 5b 5d 20 3d 20 22 2f 74 6d 70 2f 77 6c size).{...#..char.t[].=."/tmp/wl
8c00 63 6c 6f 63 6b 2d 58 58 58 58 58 58 22 3b 00 00 00 16 20 20 69 6e 74 20 66 64 20 3d 20 6d 6b 73 clock-XXXXXX";......int.fd.=.mks
8c20 74 65 6d 70 28 74 29 3b 00 00 00 16 20 20 69 66 20 28 66 64 20 3c 20 30 29 20 65 78 69 74 28 31 temp(t);......if.(fd.<.0).exit(1
8c40 29 3b 00 00 00 0c 20 20 75 6e 6c 69 6e 6b 28 74 29 3b 00 00 00 27 20 20 69 66 20 28 66 74 72 75 );......unlink(t);...'..if.(ftru
8c60 6e 63 61 74 65 28 66 64 2c 20 73 69 7a 65 29 20 3c 20 30 29 20 65 78 69 74 28 31 29 3b 00 00 00 ncate(fd,.size).<.0).exit(1);...
8c80 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 28 73 74 61 74 69 63 ...return.fd;....}.......(static
8ca0 20 76 6f 69 64 20 64 65 73 74 72 6f 79 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 .void.destroy_buf(struct.app.*a)
8cc0 20 7b 00 00 00 16 20 20 69 66 20 28 21 61 2d 3e 62 75 66 29 20 72 65 74 75 72 6e 3b 00 00 00 2a .{......if.(!a->buf).return;...*
8ce0 20 20 73 69 7a 65 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 62 77 20 2a 20 ..size_t.size.=.(size_t)a->bw.*.
8d00 61 2d 3e 62 68 20 2a 20 34 3b 00 00 00 1c 20 20 77 6c 5f 62 75 66 66 65 72 5f 64 65 73 74 72 6f a->bh.*.4;......wl_buffer_destro
8d20 79 28 61 2d 3e 62 75 66 29 3b 00 00 00 1a 20 20 6d 75 6e 6d 61 70 28 61 2d 3e 70 69 78 65 6c 73 y(a->buf);......munmap(a->pixels
8d40 2c 20 73 69 7a 65 29 3b 00 00 00 22 20 20 61 2d 3e 62 75 66 20 3d 20 4e 55 4c 4c 3b 20 61 2d 3e ,.size);..."..a->buf.=.NULL;.a->
8d60 70 69 78 65 6c 73 20 3d 20 4e 55 4c 4c 3b 00 00 00 01 7d 00 00 00 00 00 00 00 26 73 74 61 74 69 pixels.=.NULL;....}.......&stati
8d80 63 20 76 6f 69 64 20 61 6c 6c 6f 63 5f 62 75 66 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 c.void.alloc_buf(struct.app.*a).
8da0 7b 00 00 00 11 20 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 00 00 00 28 20 20 73 69 7a 65 {......destroy_buf(a);...(..size
8dc0 5f 74 20 73 69 7a 65 20 3d 20 28 73 69 7a 65 5f 74 29 61 2d 3e 77 20 2a 20 61 2d 3e 68 20 2a 20 _t.size.=.(size_t)a->w.*.a->h.*.
8de0 34 3b 00 00 00 1c 20 20 69 6e 74 20 66 64 20 3d 20 63 72 65 61 74 65 5f 73 68 6d 28 73 69 7a 65 4;......int.fd.=.create_shm(size
8e00 29 3b 00 00 00 4a 20 20 61 2d 3e 70 69 78 65 6c 73 20 3d 20 6d 6d 61 70 28 4e 55 4c 4c 2c 20 73 );...J..a->pixels.=.mmap(NULL,.s
8e20 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
8e40 5f 53 48 41 52 45 44 2c 20 66 64 2c 20 30 29 3b 00 00 00 27 20 20 69 66 20 28 61 2d 3e 70 69 78 _SHARED,.fd,.0);...'..if.(a->pix
8e60 65 6c 73 20 3d 3d 20 4d 41 50 5f 46 41 49 4c 45 44 29 20 65 78 69 74 28 31 29 3b 00 00 00 42 20 els.==.MAP_FAILED).exit(1);...B.
8e80 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
8ea0 68 6d 5f 63 72 65 61 74 65 5f 70 6f 6f 6c 28 61 2d 3e 73 68 6d 2c 20 66 64 2c 20 73 69 7a 65 29 hm_create_pool(a->shm,.fd,.size)
8ec0 3b 00 00 00 5c 20 20 61 2d 3e 62 75 66 20 3d 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 63 72 65 61 ;...\..a->buf.=.wl_shm_pool_crea
8ee0 74 65 5f 62 75 66 66 65 72 28 70 6f 6f 6c 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 61 te_buffer(pool,.0,.a->w,.a->h,.a
8f00 2d 3e 77 20 2a 20 34 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 ->w.*.4,.WL_SHM_FORMAT_ARGB8888)
8f20 3b 00 00 00 1c 20 20 77 6c 5f 73 68 6d 5f 70 6f 6f 6c 5f 64 65 73 74 72 6f 79 28 70 6f 6f 6c 29 ;......wl_shm_pool_destroy(pool)
8f40 3b 00 00 00 0c 20 20 63 6c 6f 73 65 28 66 64 29 3b 00 00 00 1d 20 20 61 2d 3e 62 77 20 3d 20 61 ;......close(fd);......a->bw.=.a
8f60 2d 3e 77 3b 20 61 2d 3e 62 68 20 3d 20 61 2d 3e 68 3b 00 00 00 01 7d 00 00 00 00 00 00 00 53 73 ->w;.a->bh.=.a->h;....}.......Ss
8f80 74 61 74 69 63 20 76 6f 69 64 20 63 69 72 63 6c 65 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c 20 tatic.void.circle(uint32_t.*px,.
8fa0 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 6e int.w,.int.h,.int.cx,.int.cy,.in
8fc0 74 20 72 2c 20 75 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 22 20 20 69 6e 74 20 78 20 3d 20 t.r,.uint32_t.c).{..."..int.x.=.
8fe0 30 2c 20 79 20 3d 20 72 2c 20 64 20 3d 20 33 20 2d 20 32 20 2a 20 72 3b 00 00 00 12 20 20 77 68 0,.y.=.r,.d.=.3.-.2.*.r;......wh
9000 69 6c 65 20 28 79 20 3e 3d 20 78 29 20 7b 00 00 00 48 20 20 20 20 69 6e 74 20 70 5b 38 5d 5b 32 ile.(y.>=.x).{...H....int.p[8][2
9020 5d 20 3d 20 7b 7b 63 78 20 2b 20 78 2c 20 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2d 20 78 2c 20 ].=.{{cx.+.x,.cy.+.y},.{cx.-.x,.
9040 63 79 20 2b 20 79 7d 2c 20 7b 63 78 20 2b 20 78 2c 20 63 79 20 2d 20 79 7d 2c 00 00 00 48 20 20 cy.+.y},.{cx.+.x,.cy.-.y},...H..
9060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 20 2d 20 78 2c 20 63 79 20 2d 20 79 .................{cx.-.x,.cy.-.y
9080 7d 2c 20 7b 63 78 20 2b 20 79 2c 20 63 79 20 2b 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 },.{cx.+.y,.cy.+.x},.{cx.-.y,.cy
90a0 20 2b 20 78 7d 2c 00 00 00 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 63 78 .+.x},...7...................{cx
90c0 20 2b 20 79 2c 20 63 79 20 2d 20 78 7d 2c 20 7b 63 78 20 2d 20 79 2c 20 63 79 20 2d 20 78 7d 7d .+.y,.cy.-.x},.{cx.-.y,.cy.-.x}}
90e0 3b 00 00 00 1f 20 20 20 20 66 6f 72 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 38 3b 20 ;........for.(int.i.=.0;.i.<.8;.
9100 69 2b 2b 29 00 00 00 45 20 20 20 20 20 20 69 66 20 28 70 5b 69 5d 5b 30 5d 20 3e 3d 20 30 20 26 i++)...E......if.(p[i][0].>=.0.&
9120 26 20 70 5b 69 5d 5b 30 5d 20 3c 20 77 20 26 26 20 70 5b 69 5d 5b 31 5d 20 3e 3d 20 30 20 26 26 &.p[i][0].<.w.&&.p[i][1].>=.0.&&
9140 20 70 5b 69 5d 5b 31 5d 20 3c 20 68 29 00 00 00 26 20 20 20 20 20 20 20 20 70 78 5b 70 5b 69 5d .p[i][1].<.h)...&........px[p[i]
9160 5b 31 5d 20 2a 20 77 20 2b 20 70 5b 69 5d 5b 30 5d 5d 20 3d 20 63 3b 00 00 00 43 20 20 20 20 69 [1].*.w.+.p[i][0]].=.c;...C....i
9180 66 20 28 64 20 3e 20 30 29 20 7b 20 64 20 2b 3d 20 34 20 2a 20 28 78 20 2d 20 79 29 20 2b 20 31 f.(d.>.0).{.d.+=.4.*.(x.-.y).+.1
91a0 30 3b 20 79 2d 2d 3b 20 7d 20 65 6c 73 65 20 64 20 2b 3d 20 34 20 2a 20 78 20 2b 20 36 3b 00 00 0;.y--;.}.else.d.+=.4.*.x.+.6;..
91c0 00 08 20 20 20 20 78 2b 2b 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 6e 73 74 ......x++;......}....}.......nst
91e0 61 74 69 63 20 76 6f 69 64 20 66 69 6c 6c 5f 74 72 69 28 75 69 6e 74 33 32 5f 74 20 2a 70 78 2c atic.void.fill_tri(uint32_t.*px,
9200 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 2c 20 69 .int.w,.int.h,.int.x0,.int.y0,.i
9220 6e 74 20 78 31 2c 20 69 6e 74 20 79 31 2c 20 69 6e 74 20 78 32 2c 20 69 6e 74 20 79 32 2c 20 75 nt.x1,.int.y1,.int.x2,.int.y2,.u
9240 69 6e 74 33 32 5f 74 20 63 29 20 7b 00 00 00 42 20 20 69 6e 74 20 6d 69 6e 5f 79 20 3d 20 79 30 int32_t.c).{...B..int.min_y.=.y0
9260 20 3c 20 79 31 20 3f 20 28 79 30 20 3c 20 79 32 20 3f 20 79 30 20 3a 20 79 32 29 20 3a 20 28 79 .<.y1.?.(y0.<.y2.?.y0.:.y2).:.(y
9280 31 20 3c 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 42 20 20 69 6e 74 20 6d 61 78 5f 1.<.y2.?.y1.:.y2);...B..int.max_
92a0 79 20 3d 20 79 30 20 3e 20 79 31 20 3f 20 28 79 30 20 3e 20 79 32 20 3f 20 79 30 20 3a 20 79 32 y.=.y0.>.y1.?.(y0.>.y2.?.y0.:.y2
92c0 29 20 3a 20 28 79 31 20 3e 20 79 32 20 3f 20 79 31 20 3a 20 79 32 29 3b 00 00 00 3a 20 20 69 66 ).:.(y1.>.y2.?.y1.:.y2);...:..if
92e0 20 28 6d 69 6e 5f 79 20 3c 20 30 29 20 6d 69 6e 5f 79 20 3d 20 30 3b 20 69 66 20 28 6d 61 78 5f .(min_y.<.0).min_y.=.0;.if.(max_
9300 79 20 3e 3d 20 68 29 20 6d 61 78 5f 79 20 3d 20 68 20 2d 20 31 3b 00 00 00 28 20 20 66 6f 72 20 y.>=.h).max_y.=.h.-.1;...(..for.
9320 28 69 6e 74 20 79 20 3d 20 6d 69 6e 5f 79 3b 20 79 20 3c 3d 20 6d 61 78 5f 79 3b 20 79 2b 2b 29 (int.y.=.min_y;.y.<=.max_y;.y++)
9340 20 7b 00 00 00 1f 20 20 20 20 69 6e 74 20 78 5f 73 74 61 72 74 20 3d 20 77 2c 20 78 5f 65 6e 64 .{........int.x_start.=.w,.x_end
9360 20 3d 20 30 3b 00 00 00 33 20 20 20 20 69 6e 74 20 78 73 5b 33 5d 20 3d 20 7b 78 30 2c 20 78 31 .=.0;...3....int.xs[3].=.{x0,.x1
9380 2c 20 78 32 7d 2c 20 79 73 5b 33 5d 20 3d 20 7b 79 30 2c 20 79 31 2c 20 79 32 7d 3b 00 00 00 15 ,.x2},.ys[3].=.{y0,.y1,.y2};....
93a0 20 20 20 20 62 6f 6f 6c 20 68 69 74 20 3d 20 66 61 6c 73 65 3b 00 00 00 21 20 20 20 20 66 6f 72 ....bool.hit.=.false;...!....for
93c0 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c 20 33 3b 20 69 2b 2b 29 20 7b 00 00 00 1a 20 20 .(int.i.=.0;.i.<.3;.i++).{......
93e0 20 20 20 20 69 6e 74 20 6a 20 3d 20 28 69 20 2b 20 31 29 20 25 20 33 3b 00 00 00 43 20 20 20 20 ....int.j.=.(i.+.1).%.3;...C....
9400 20 20 69 66 20 28 28 79 73 5b 69 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 6a 5d 20 3e 20 79 29 20 ..if.((ys[i].<=.y.&&.ys[j].>.y).
9420 7c 7c 20 28 79 73 5b 6a 5d 20 3c 3d 20 79 20 26 26 20 79 73 5b 69 5d 20 3e 20 79 29 29 20 7b 00 ||.(ys[j].<=.y.&&.ys[i].>.y)).{.
9440 00 00 48 20 20 20 20 20 20 20 20 69 6e 74 20 78 20 3d 20 78 73 5b 69 5d 20 2b 20 28 79 20 2d 20 ..H........int.x.=.xs[i].+.(y.-.
9460 79 73 5b 69 5d 29 20 2a 20 28 78 73 5b 6a 5d 20 2d 20 78 73 5b 69 5d 29 20 2f 20 28 79 73 5b 6a ys[i]).*.(xs[j].-.xs[i])./.(ys[j
9480 5d 20 2d 20 79 73 5b 69 5d 29 3b 00 00 00 3f 20 20 20 20 20 20 20 20 69 66 20 28 78 20 3c 20 78 ].-.ys[i]);...?........if.(x.<.x
94a0 5f 73 74 61 72 74 29 20 78 5f 73 74 61 72 74 20 3d 20 78 3b 20 69 66 20 28 78 20 3e 20 78 5f 65 _start).x_start.=.x;.if.(x.>.x_e
94c0 6e 64 29 20 78 5f 65 6e 64 20 3d 20 78 3b 00 00 00 13 20 20 20 20 20 20 20 20 68 69 74 20 3d 20 nd).x_end.=.x;............hit.=.
94e0 74 72 75 65 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 0e 20 20 20 true;..........}........}.......
9500 20 69 66 20 28 68 69 74 29 20 7b 00 00 00 42 20 20 20 20 20 20 69 66 20 28 78 5f 73 74 61 72 74 .if.(hit).{...B......if.(x_start
9520 20 3c 20 30 29 20 78 5f 73 74 61 72 74 20 3d 20 30 3b 20 69 66 20 28 78 5f 65 6e 64 20 3e 3d 20 .<.0).x_start.=.0;.if.(x_end.>=.
9540 77 29 20 78 5f 65 6e 64 20 3d 20 77 20 2d 20 31 3b 00 00 00 3f 20 20 20 20 20 20 66 6f 72 20 28 w).x_end.=.w.-.1;...?......for.(
9560 69 6e 74 20 78 20 3d 20 78 5f 73 74 61 72 74 3b 20 78 20 3c 3d 20 78 5f 65 6e 64 3b 20 78 2b 2b int.x.=.x_start;.x.<=.x_end;.x++
9580 29 20 70 78 5b 79 20 2a 20 77 20 2b 20 78 5d 20 3d 20 63 3b 00 00 00 05 20 20 20 20 7d 00 00 00 ).px[y.*.w.+.x].=.c;........}...
95a0 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 23 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 6e ...}....}.......#static.void.ren
95c0 64 65 72 28 73 74 72 75 63 74 20 61 70 70 20 2a 61 29 20 7b 00 00 00 37 20 20 69 66 20 28 21 61 der(struct.app.*a).{...7..if.(!a
95e0 2d 3e 63 6f 6e 66 69 67 75 72 65 64 20 7c 7c 20 61 2d 3e 77 20 3c 3d 20 30 20 7c 7c 20 61 2d 3e ->configured.||.a->w.<=.0.||.a->
9600 68 20 3c 3d 20 30 29 20 72 65 74 75 72 6e 3b 00 00 00 1c 20 20 69 66 20 28 21 61 2d 3e 62 75 66 h.<=.0).return;......if.(!a->buf
9620 29 20 61 6c 6c 6f 63 5f 62 75 66 28 61 29 3b 00 00 00 1b 20 20 75 69 6e 74 33 32 5f 74 20 2a 70 ).alloc_buf(a);......uint32_t.*p
9640 78 20 3d 20 61 2d 3e 70 69 78 65 6c 73 3b 00 00 00 36 20 20 66 6f 72 28 69 6e 74 20 69 3d 30 3b x.=.a->pixels;...6..for(int.i=0;
9660 20 69 20 3c 20 61 2d 3e 77 20 2a 20 61 2d 3e 68 3b 20 69 2b 2b 29 20 70 78 5b 69 5d 20 3d 20 43 .i.<.a->w.*.a->h;.i++).px[i].=.C
9680 4f 4c 4f 52 5f 42 47 3b 00 00 00 19 20 20 74 69 6d 65 5f 74 20 74 74 20 3d 20 74 69 6d 65 28 4e OLOR_BG;......time_t.tt.=.time(N
96a0 55 4c 4c 29 3b 00 00 00 10 20 20 73 74 72 75 63 74 20 74 6d 20 74 6d 76 3b 00 00 00 19 20 20 6c ULL);......struct.tm.tmv;......l
96c0 6f 63 61 6c 74 69 6d 65 5f 72 28 26 74 74 2c 20 26 74 6d 76 29 3b 00 00 00 23 20 20 69 6e 74 20 ocaltime_r(&tt,.&tmv);...#..int.
96e0 63 78 20 3d 20 61 2d 3e 77 20 2f 20 32 2c 20 63 79 20 3d 20 61 2d 3e 68 20 2f 20 32 3b 00 00 00 cx.=.a->w./.2,.cy.=.a->h./.2;...
9700 2f 20 20 69 6e 74 20 72 20 3d 20 28 61 2d 3e 77 20 3c 20 61 2d 3e 68 20 3f 20 61 2d 3e 77 20 3a /..int.r.=.(a->w.<.a->h.?.a->w.:
9720 20 61 2d 3e 68 29 20 2f 20 32 20 2d 20 31 30 3b 00 00 00 13 20 20 69 66 20 28 72 20 3c 20 35 29 .a->h)./.2.-.10;......if.(r.<.5)
9740 20 72 20 3d 20 35 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 .r.=.5;......for.(int.i.=.0;.i.<
9760 20 36 30 3b 20 69 2b 2b 29 20 7b 00 00 00 2e 20 20 20 20 64 6f 75 62 6c 65 20 61 6e 67 20 3d 20 .60;.i++).{........double.ang.=.
9780 69 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 i./.60.0.*.2.*.M_PI.-.M_PI_2;...
97a0 31 20 20 20 20 69 6e 74 20 6c 65 6e 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 72 20 1....int.len.=.(i.%.5.==.0).?.r.
97c0 2a 20 30 2e 31 32 20 3a 20 72 20 2a 20 30 2e 30 34 3b 00 00 00 30 20 20 20 20 64 6f 75 62 6c 65 *.0.12.:.r.*.0.04;...0....double
97e0 20 74 5f 61 6e 67 20 3d 20 28 69 20 25 20 35 20 3d 3d 20 30 29 20 3f 20 30 2e 30 31 32 20 3a 20 .t_ang.=.(i.%.5.==.0).?.0.012.:.
9800 30 2e 30 30 35 3b 00 00 00 4a 20 20 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 0.005;...J....fill_tri(px,.a->w,
9820 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 2d 74 5f 61 6e 67 29 2a 72 2c 20 63 79 .a->h,.cx.+.cos(ang-t_ang)*r,.cy
9840 20 2b 20 73 69 6e 28 61 6e 67 2d 74 5f 61 6e 67 29 2a 72 2c 00 00 00 3a 20 20 20 20 20 20 20 20 .+.sin(ang-t_ang)*r,...:........
9860 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 2b 74 5f 61 6e 67 29 2a 72 2c 20 63 79 20 2b .....cx.+.cos(ang+t_ang)*r,.cy.+
9880 20 73 69 6e 28 61 6e 67 2b 74 5f 61 6e 67 29 2a 72 2c 00 00 00 47 20 20 20 20 20 20 20 20 20 20 .sin(ang+t_ang)*r,...G..........
98a0 20 20 20 63 78 20 2b 20 63 6f 73 28 61 6e 67 29 2a 28 72 2d 6c 65 6e 29 2c 20 63 79 20 2b 20 73 ...cx.+.cos(ang)*(r-len),.cy.+.s
98c0 69 6e 28 61 6e 67 29 2a 28 72 2d 6c 65 6e 29 2c 20 43 4f 4c 4f 52 5f 44 49 41 4c 29 3b 00 00 00 in(ang)*(r-len),.COLOR_DIAL);...
98e0 03 20 20 7d 00 00 00 34 20 20 64 6f 75 62 6c 65 20 73 61 20 3d 20 74 6d 76 2e 74 6d 5f 73 65 63 ...}...4..double.sa.=.tmv.tm_sec
9900 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 4a ./.60.0.*.2.*.M_PI.-.M_PI_2;...J
9920 20 20 64 6f 75 62 6c 65 20 6d 61 20 3d 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2b 20 74 6d 76 2e ..double.ma.=.(tmv.tm_min.+.tmv.
9940 74 6d 5f 73 65 63 20 2f 20 36 30 2e 30 29 20 2f 20 36 30 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 tm_sec./.60.0)./.60.0.*.2.*.M_PI
9960 20 2d 20 4d 5f 50 49 5f 32 3b 00 00 00 54 20 20 64 6f 75 62 6c 65 20 68 61 20 3d 20 28 28 74 6d .-.M_PI_2;...T..double.ha.=.((tm
9980 76 2e 74 6d 5f 68 6f 75 72 20 25 20 31 32 29 20 2b 20 28 74 6d 76 2e 74 6d 5f 6d 69 6e 20 2f 20 v.tm_hour.%.12).+.(tmv.tm_min./.
99a0 36 30 2e 30 29 29 20 2f 20 31 32 2e 30 20 2a 20 32 20 2a 20 4d 5f 50 49 20 2d 20 4d 5f 50 49 5f 60.0))./.12.0.*.2.*.M_PI.-.M_PI_
99c0 32 3b 00 00 00 5f 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 2;..._..fill_tri(px,.a->w,.a->h,
99e0 20 63 78 20 2b 20 63 6f 73 28 68 61 2d 30 2e 31 32 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f .cx.+.cos(ha-0.12)*r*HAND_THICK_
9a00 48 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 2d 30 2e 31 32 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 H,.cy.+.sin(ha-0.12)*r*HAND_THIC
9a20 4b 5f 48 2c 20 00 00 00 4f 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 68 61 2b K_H,....O...........cx.+.cos(ha+
9a40 30 2e 31 32 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 48 2c 20 63 79 20 2b 20 73 69 6e 28 68 0.12)*r*HAND_THICK_H,.cy.+.sin(h
9a60 61 2b 30 2e 31 32 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 48 2c 20 00 00 00 4d 20 20 20 20 a+0.12)*r*HAND_THICK_H,....M....
9a80 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 68 61 29 2a 72 2a 48 41 4e 44 5f 4c 45 4e 5f 48 .......cx.+.cos(ha)*r*HAND_LEN_H
9aa0 2c 20 63 79 20 2b 20 73 69 6e 28 68 61 29 2a 72 2a 48 41 4e 44 5f 4c 45 4e 5f 48 2c 20 43 4f 4c ,.cy.+.sin(ha)*r*HAND_LEN_H,.COL
9ac0 4f 52 5f 48 4f 55 52 29 3b 00 00 00 5f 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 2c 20 61 2d 3e 77 OR_HOUR);..._..fill_tri(px,.a->w
9ae0 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 6d 61 2d 30 2e 30 38 29 2a 72 2a 48 41 4e 44 ,.a->h,.cx.+.cos(ma-0.08)*r*HAND
9b00 5f 54 48 49 43 4b 5f 4d 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 2d 30 2e 30 38 29 2a 72 2a 48 41 _THICK_M,.cy.+.sin(ma-0.08)*r*HA
9b20 4e 44 5f 54 48 49 43 4b 5f 4d 2c 20 00 00 00 4f 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 ND_THICK_M,....O...........cx.+.
9b40 63 6f 73 28 6d 61 2b 30 2e 30 38 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 4d 2c 20 63 79 20 cos(ma+0.08)*r*HAND_THICK_M,.cy.
9b60 2b 20 73 69 6e 28 6d 61 2b 30 2e 30 38 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 4d 2c 20 00 +.sin(ma+0.08)*r*HAND_THICK_M,..
9b80 00 00 4c 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 6d 61 29 2a 72 2a 48 41 4e ..L...........cx.+.cos(ma)*r*HAN
9ba0 44 5f 4c 45 4e 5f 4d 2c 20 63 79 20 2b 20 73 69 6e 28 6d 61 29 2a 72 2a 48 41 4e 44 5f 4c 45 4e D_LEN_M,.cy.+.sin(ma)*r*HAND_LEN
9bc0 5f 4d 2c 20 43 4f 4c 4f 52 5f 4d 49 4e 29 3b 00 00 00 5e 20 20 66 69 6c 6c 5f 74 72 69 28 70 78 _M,.COLOR_MIN);...^..fill_tri(px
9be0 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 20 2b 20 63 6f 73 28 73 61 2d 30 2e 30 35 29 2a ,.a->w,.a->h,.cx.+.cos(sa-0.05)*
9c00 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 53 2c 20 63 79 20 2b 20 73 69 6e 28 73 61 2d 30 2e 30 35 r*HAND_THICK_S,.cy.+.sin(sa-0.05
9c20 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 53 2c 00 00 00 4e 20 20 20 20 20 20 20 20 20 20 20 )*r*HAND_THICK_S,...N...........
9c40 63 78 20 2b 20 63 6f 73 28 73 61 2b 30 2e 30 35 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b 5f 53 cx.+.cos(sa+0.05)*r*HAND_THICK_S
9c60 2c 20 63 79 20 2b 20 73 69 6e 28 73 61 2b 30 2e 30 35 29 2a 72 2a 48 41 4e 44 5f 54 48 49 43 4b ,.cy.+.sin(sa+0.05)*r*HAND_THICK
9c80 5f 53 2c 00 00 00 4c 20 20 20 20 20 20 20 20 20 20 20 63 78 20 2b 20 63 6f 73 28 73 61 29 2a 72 _S,...L...........cx.+.cos(sa)*r
9ca0 2a 48 41 4e 44 5f 4c 45 4e 5f 53 2c 20 63 79 20 2b 20 73 69 6e 28 73 61 29 2a 72 2a 48 41 4e 44 *HAND_LEN_S,.cy.+.sin(sa)*r*HAND
9cc0 5f 4c 45 4e 5f 53 2c 20 43 4f 4c 4f 52 5f 53 45 43 29 3b 00 00 00 31 20 20 69 6e 74 20 68 75 62 _LEN_S,.COLOR_SEC);...1..int.hub
9ce0 5f 72 20 3d 20 72 20 2a 20 30 2e 30 34 3b 20 69 66 20 28 68 75 62 5f 72 20 3c 20 34 29 20 68 75 _r.=.r.*.0.04;.if.(hub_r.<.4).hu
9d00 62 5f 72 20 3d 20 34 3b 00 00 00 56 20 20 66 6f 72 20 28 69 6e 74 20 69 72 20 3d 20 30 3b 20 69 b_r.=.4;...V..for.(int.ir.=.0;.i
9d20 72 20 3c 20 68 75 62 5f 72 20 2d 20 32 3b 20 69 72 2b 2b 29 20 63 69 72 63 6c 65 28 70 78 2c 20 r.<.hub_r.-.2;.ir++).circle(px,.
9d40 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 78 2c 20 63 79 2c 20 69 72 2c 20 43 4f 4c 4f 52 5f 42 47 a->w,.a->h,.cx,.cy,.ir,.COLOR_BG
9d60 29 3b 00 00 00 33 20 20 63 69 72 63 6c 65 28 70 78 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 2c 20 63 );...3..circle(px,.a->w,.a->h,.c
9d80 78 2c 20 63 79 2c 20 68 75 62 5f 72 2c 20 43 4f 4c 4f 52 5f 48 55 42 29 3b 00 00 00 29 20 20 77 x,.cy,.hub_r,.COLOR_HUB);...)..w
9da0 6c 5f 73 75 72 66 61 63 65 5f 61 74 74 61 63 68 28 61 2d 3e 77 73 2c 20 61 2d 3e 62 75 66 2c 20 l_surface_attach(a->ws,.a->buf,.
9dc0 30 2c 20 30 29 3b 00 00 00 34 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 64 61 6d 61 67 65 5f 62 75 0,.0);...4..wl_surface_damage_bu
9de0 66 66 65 72 28 61 2d 3e 77 73 2c 20 30 2c 20 30 2c 20 61 2d 3e 77 2c 20 61 2d 3e 68 29 3b 00 00 ffer(a->ws,.0,.0,.a->w,.a->h);..
9e00 00 1b 20 20 77 6c 5f 73 75 72 66 61 63 65 5f 63 6f 6d 6d 69 74 28 61 2d 3e 77 73 29 3b 00 00 00 ....wl_surface_commit(a->ws);...
9e20 14 20 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 66 61 6c 73 65 3b 00 00 00 01 7d 00 00 00 00 00 00 ...a->redraw.=.false;....}......
9e40 00 38 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f 63 6c 6f 73 65 28 76 6f 69 64 20 2a 64 2c 20 .8static.void.xt_close(void.*d,.
9e60 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 20 2a 78 74 29 20 7b 00 00 00 14 20 20 struct.xdg_toplevel.*xt).{......
9e80 28 76 6f 69 64 29 64 3b 20 28 76 6f 69 64 29 78 74 3b 00 00 00 0e 20 20 72 75 6e 6e 69 6e 67 20 (void)d;.(void)xt;......running.
9ea0 3d 20 30 3b 00 00 00 01 7d 00 00 00 00 00 00 00 60 73 74 61 74 69 63 20 76 6f 69 64 20 78 74 5f =.0;....}.......`static.void.xt_
9ec0 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c cfg(void.*d,.struct.xdg_toplevel
9ee0 20 2a 78 74 2c 20 69 6e 74 33 32 5f 74 20 77 2c 20 69 6e 74 33 32 5f 74 20 68 2c 20 73 74 72 75 .*xt,.int32_t.w,.int32_t.h,.stru
9f00 63 74 20 77 6c 5f 61 72 72 61 79 20 2a 73 29 20 7b 00 00 00 22 20 20 73 74 72 75 63 74 20 61 70 ct.wl_array.*s).{..."..struct.ap
9f20 70 20 2a 61 20 3d 20 28 73 74 72 75 63 74 20 61 70 70 20 2a 29 64 3b 00 00 00 14 20 20 28 76 6f p.*a.=.(struct.app.*)d;......(vo
9f40 69 64 29 78 74 3b 20 28 76 6f 69 64 29 73 3b 00 00 00 33 20 20 69 66 20 28 77 20 3e 20 30 20 26 id)xt;.(void)s;...3..if.(w.>.0.&
9f60 26 20 68 20 3e 20 30 20 26 26 20 28 77 20 21 3d 20 61 2d 3e 77 20 7c 7c 20 68 20 21 3d 20 61 2d &.h.>.0.&&.(w.!=.a->w.||.h.!=.a-
9f80 3e 68 29 29 20 7b 00 00 00 39 20 20 20 20 61 2d 3e 77 20 3d 20 77 3b 20 61 2d 3e 68 20 3d 20 68 >h)).{...9....a->w.=.w;.a->h.=.h
9fa0 3b 20 64 65 73 74 72 6f 79 5f 62 75 66 28 61 29 3b 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 ;.destroy_buf(a);.a->redraw.=.tr
9fc0 75 65 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 46 73 74 61 74 69 63 20 76 6f ue;......}....}.......Fstatic.vo
9fe0 69 64 20 78 73 5f 63 66 67 28 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 78 64 67 5f 73 75 id.xs_cfg(void.*d,.struct.xdg_su
a000 72 66 61 63 65 20 2a 78 73 2c 20 75 69 6e 74 33 32 5f 74 20 73 65 72 69 61 6c 29 20 7b 00 00 00 rface.*xs,.uint32_t.serial).{...
a020 22 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 28 73 74 72 75 63 74 20 61 70 70 20 2a "..struct.app.*a.=.(struct.app.*
a040 29 64 3b 00 00 00 28 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 )d;...(..xdg_surface_ack_configu
a060 72 65 28 78 73 2c 20 73 65 72 69 61 6c 29 3b 00 00 00 29 20 20 61 2d 3e 63 6f 6e 66 69 67 75 72 re(xs,.serial);...)..a->configur
a080 65 64 20 3d 20 74 72 75 65 3b 20 61 2d 3e 72 65 64 72 61 77 20 3d 20 74 72 75 65 3b 00 00 00 01 ed.=.true;.a->redraw.=.true;....
a0a0 7d 00 00 00 00 00 00 00 60 73 74 61 74 69 63 20 76 6f 69 64 20 72 65 67 5f 67 6c 6f 62 61 6c 28 }.......`static.void.reg_global(
a0c0 76 6f 69 64 20 2a 64 2c 20 73 74 72 75 63 74 20 77 6c 5f 72 65 67 69 73 74 72 79 20 2a 72 2c 20 void.*d,.struct.wl_registry.*r,.
a0e0 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 2c 20 75 69 6e 74 uint32_t.id,.const.char.*i,.uint
a100 33 32 5f 74 20 76 29 20 7b 00 00 00 22 20 20 73 74 72 75 63 74 20 61 70 70 20 2a 61 20 3d 20 28 32_t.v).{..."..struct.app.*a.=.(
a120 73 74 72 75 63 74 20 61 70 70 20 2a 29 64 3b 00 00 00 0a 20 20 28 76 6f 69 64 29 76 3b 00 00 00 struct.app.*)d;......(void)v;...
a140 62 20 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 b..if.(!strcmp(i,."wl_compositor
a160 22 29 29 20 61 2d 3e 63 6f 6d 70 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e 64 28 72 ")).a->comp.=.wl_registry_bind(r
a180 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,.
a1a0 34 29 3b 00 00 00 58 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 77 6c 4);...X..else.if.(!strcmp(i,."wl
a1c0 5f 73 68 6d 22 29 29 20 61 2d 3e 73 68 6d 20 3d 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 62 69 6e _shm")).a->shm.=.wl_registry_bin
a1e0 64 28 72 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 d(r,.id,.&wl_shm_interface,.1);.
a200 00 00 27 20 20 65 6c 73 65 20 69 66 20 28 21 73 74 72 63 6d 70 28 69 2c 20 22 78 64 67 5f 77 6d ..'..else.if.(!strcmp(i,."xdg_wm
a220 5f 62 61 73 65 22 29 29 20 7b 00 00 00 3f 20 20 20 20 61 2d 3e 77 6d 20 3d 20 77 6c 5f 72 65 67 _base")).{...?....a->wm.=.wl_reg
a240 69 73 74 72 79 5f 62 69 6e 64 28 72 2c 20 69 64 2c 20 26 78 64 67 5f 77 6d 5f 62 61 73 65 5f 69 istry_bind(r,.id,.&xdg_wm_base_i
a260 6e 74 65 72 66 61 63 65 2c 20 31 29 3b 00 00 00 43 20 20 20 20 73 74 61 74 69 63 20 63 6f 6e 73 nterface,.1);...C....static.cons
a280 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 6c 20 t.struct.xdg_wm_base_listener.l.
a2a0 3d 20 7b 2e 70 69 6e 67 20 3d 20 77 6d 5f 70 69 6e 67 7d 3b 00 00 00 2b 20 20 20 20 78 64 67 5f =.{.ping.=.wm_ping};...+....xdg_
a2c0 77 6d 5f 62 61 73 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2d 3e 77 6d 2c 20 26 6c 2c 20 wm_base_add_listener(a->wm,.&l,.
a2e0 61 29 3b 00 00 00 03 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 10 69 6e 74 20 6d 61 69 6e 28 a);......}....}........int.main(
a300 76 6f 69 64 29 20 7b 00 00 00 2b 20 20 73 74 72 75 63 74 20 61 70 70 20 61 20 3d 20 7b 30 7d 3b void).{...+..struct.app.a.=.{0};
a320 20 61 2e 77 20 3d 20 34 30 30 3b 20 61 2e 68 20 3d 20 34 30 30 3b 00 00 00 19 20 20 73 69 67 6e .a.w.=.400;.a.h.=.400;......sign
a340 61 6c 28 53 49 47 49 4e 54 2c 20 6f 6e 5f 73 69 67 29 3b 00 00 00 21 20 20 61 2e 64 20 3d 20 77 al(SIGINT,.on_sig);...!..a.d.=.w
a360 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 15 20 20 69 66 l_display_connect(NULL);......if
a380 20 28 21 61 2e 64 29 20 72 65 74 75 72 6e 20 31 3b 00 00 00 27 20 20 61 2e 72 65 67 20 3d 20 77 .(!a.d).return.1;...'..a.reg.=.w
a3a0 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 72 65 67 69 73 74 72 79 28 61 2e 64 29 3b 00 00 00 47 l_display_get_registry(a.d);...G
a3c0 20 20 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 72 ..static.const.struct.wl_registr
a3e0 79 5f 6c 69 73 74 65 6e 65 72 20 72 6c 20 3d 20 7b 2e 67 6c 6f 62 61 6c 20 3d 20 72 65 67 5f 67 y_listener.rl.=.{.global.=.reg_g
a400 6c 6f 62 61 6c 7d 3b 00 00 00 2b 20 20 77 6c 5f 72 65 67 69 73 74 72 79 5f 61 64 64 5f 6c 69 73 lobal};...+..wl_registry_add_lis
a420 74 65 6e 65 72 28 61 2e 72 65 67 2c 20 26 72 6c 2c 20 26 61 29 3b 00 00 00 1c 20 20 77 6c 5f 64 tener(a.reg,.&rl,.&a);......wl_d
a440 69 73 70 6c 61 79 5f 72 6f 75 6e 64 74 72 69 70 28 61 2e 64 29 3b 00 00 00 2b 20 20 69 66 20 28 isplay_roundtrip(a.d);...+..if.(
a460 21 61 2e 63 6f 6d 70 20 7c 7c 20 21 61 2e 73 68 6d 20 7c 7c 20 21 61 2e 77 6d 29 20 72 65 74 75 !a.comp.||.!a.shm.||.!a.wm).retu
a480 72 6e 20 31 3b 00 00 00 2e 20 20 61 2e 77 73 20 3d 20 77 6c 5f 63 6f 6d 70 6f 73 69 74 6f 72 5f rn.1;......a.ws.=.wl_compositor_
a4a0 63 72 65 61 74 65 5f 73 75 72 66 61 63 65 28 61 2e 63 6f 6d 70 29 3b 00 00 00 31 20 20 61 2e 78 create_surface(a.comp);...1..a.x
a4c0 73 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 s.=.xdg_wm_base_get_xdg_surface(
a4e0 61 2e 77 6d 2c 20 61 2e 77 73 29 3b 00 00 00 47 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 a.wm,.a.ws);...G..static.const.s
a500 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 73 6c 20 3d truct.xdg_surface_listener.xsl.=
a520 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 73 5f 63 66 67 7d 3b 00 00 00 2b 20 20 78 64 67 .{.configure.=.xs_cfg};...+..xdg
a540 5f 73 75 72 66 61 63 65 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 73 2c 20 26 78 73 6c _surface_add_listener(a.xs,.&xsl
a560 2c 20 26 61 29 3b 00 00 00 28 20 20 61 2e 78 74 20 3d 20 78 64 67 5f 73 75 72 66 61 63 65 5f 67 ,.&a);...(..a.xt.=.xdg_surface_g
a580 65 74 5f 74 6f 70 6c 65 76 65 6c 28 61 2e 78 73 29 3b 00 00 00 5b 20 20 73 74 61 74 69 63 20 63 et_toplevel(a.xs);...[..static.c
a5a0 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 65 onst.struct.xdg_toplevel_listene
a5c0 72 20 78 74 6c 20 3d 20 7b 2e 63 6f 6e 66 69 67 75 72 65 20 3d 20 78 74 5f 63 66 67 2c 20 2e 63 r.xtl.=.{.configure.=.xt_cfg,..c
a5e0 6c 6f 73 65 20 3d 20 78 74 5f 63 6c 6f 73 65 7d 3b 00 00 00 2c 20 20 78 64 67 5f 74 6f 70 6c 65 lose.=.xt_close};...,..xdg_tople
a600 76 65 6c 5f 61 64 64 5f 6c 69 73 74 65 6e 65 72 28 61 2e 78 74 2c 20 26 78 74 6c 2c 20 26 61 29 vel_add_listener(a.xt,.&xtl,.&a)
a620 3b 00 00 00 2a 20 20 78 64 67 5f 74 6f 70 6c 65 76 65 6c 5f 73 65 74 5f 74 69 74 6c 65 28 61 2e ;...*..xdg_toplevel_set_title(a.
a640 78 74 2c 20 22 77 6c 63 6c 6f 63 6b 22 29 3b 00 00 00 1a 20 20 77 6c 5f 73 75 72 66 61 63 65 5f xt,."wlclock");......wl_surface_
a660 63 6f 6d 6d 69 74 28 61 2e 77 73 29 3b 00 00 00 31 20 20 77 68 69 6c 65 20 28 21 61 2e 63 6f 6e commit(a.ws);...1..while.(!a.con
a680 66 69 67 75 72 65 64 29 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 74 63 68 28 61 2e 64 figured).wl_display_dispatch(a.d
a6a0 29 3b 00 00 00 32 20 20 70 75 74 73 28 22 77 61 79 6c 61 6e 64 20 73 75 72 66 61 63 65 20 73 75 );...2..puts("wayland.surface.su
a6c0 63 63 65 73 73 66 75 6c 6c 79 20 63 6f 6e 66 69 67 75 72 65 64 22 29 3b 00 00 00 0d 20 20 72 65 ccessfully.configured");......re
a6e0 6e 64 65 72 28 26 61 29 3b 00 00 00 39 20 20 69 6e 74 20 74 66 64 20 3d 20 74 69 6d 65 72 66 64 nder(&a);...9..int.tfd.=.timerfd
a700 5f 63 72 65 61 74 65 28 43 4c 4f 43 4b 5f 4d 4f 4e 4f 54 4f 4e 49 43 2c 20 54 46 44 5f 43 4c 4f _create(CLOCK_MONOTONIC,.TFD_CLO
a720 45 58 45 43 29 3b 00 00 00 46 20 20 74 69 6d 65 72 66 64 5f 73 65 74 74 69 6d 65 28 74 66 64 2c EXEC);...F..timerfd_settime(tfd,
a740 20 30 2c 20 26 28 73 74 72 75 63 74 20 69 74 69 6d 65 72 73 70 65 63 29 7b 7b 31 2c 20 30 7d 2c .0,.&(struct.itimerspec){{1,.0},
a760 20 7b 31 2c 20 30 7d 7d 2c 20 4e 55 4c 4c 29 3b 00 00 00 13 20 20 63 68 61 72 20 62 75 66 66 65 .{1,.0}},.NULL);......char.buffe
a780 72 5b 31 30 30 5d 3b 00 00 00 13 20 20 77 68 69 6c 65 20 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 r[100];......while.(running).{..
a7a0 00 4f 20 20 20 20 77 68 69 6c 65 20 28 77 6c 5f 64 69 73 70 6c 61 79 5f 70 72 65 70 61 72 65 5f .O....while.(wl_display_prepare_
a7c0 72 65 61 64 28 61 2e 64 29 20 21 3d 20 30 29 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 70 61 read(a.d).!=.0).wl_display_dispa
a7e0 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 1a 20 20 20 20 77 6c 5f 64 69 73 70 tch_pending(a.d);........wl_disp
a800 6c 61 79 5f 66 6c 75 73 68 28 61 2e 64 29 3b 00 00 00 1c 20 20 20 20 73 74 72 75 63 74 20 70 6f lay_flush(a.d);........struct.po
a820 6c 6c 66 64 20 66 64 73 5b 32 5d 20 3d 20 7b 00 00 00 47 20 20 20 20 20 20 7b 20 2e 66 64 20 3d llfd.fds[2].=.{...G......{..fd.=
a840 20 77 6c 5f 64 69 73 70 6c 61 79 5f 67 65 74 5f 66 64 28 61 2e 64 29 2c 20 2e 65 76 65 6e 74 73 .wl_display_get_fd(a.d),..events
a860 20 3d 20 50 4f 4c 4c 49 4e 2c 20 2e 72 65 76 65 6e 74 73 20 3d 20 30 20 7d 2c 00 00 00 33 20 20 .=.POLLIN,..revents.=.0.},...3..
a880 20 20 20 20 7b 20 2e 66 64 20 3d 20 74 66 64 2c 20 2e 65 76 65 6e 74 73 20 3d 20 50 4f 4c 4c 49 ....{..fd.=.tfd,..events.=.POLLI
a8a0 4e 2c 20 2e 72 65 76 65 6e 74 73 20 3d 20 30 20 7d 00 00 00 06 20 20 20 20 7d 3b 00 00 00 48 20 N,..revents.=.0.}........};...H.
a8c0 20 20 20 69 66 20 28 70 6f 6c 6c 28 66 64 73 2c 20 32 2c 20 2d 31 29 20 3c 20 30 29 20 7b 20 77 ...if.(poll(fds,.2,.-1).<.0).{.w
a8e0 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f 72 65 61 64 28 61 2e 64 29 3b 20 63 6f 6e 74 l_display_cancel_read(a.d);.cont
a900 69 6e 75 65 3b 20 7d 00 00 00 5f 20 20 20 20 69 66 20 28 66 64 73 5b 30 5d 2e 72 65 76 65 6e 74 inue;.}..._....if.(fds[0].revent
a920 73 20 26 20 50 4f 4c 4c 49 4e 29 20 77 6c 5f 64 69 73 70 6c 61 79 5f 72 65 61 64 5f 65 76 65 6e s.&.POLLIN).wl_display_read_even
a940 74 73 28 61 2e 64 29 3b 20 65 6c 73 65 20 77 6c 5f 64 69 73 70 6c 61 79 5f 63 61 6e 63 65 6c 5f ts(a.d);.else.wl_display_cancel_
a960 72 65 61 64 28 61 2e 64 29 3b 00 00 00 25 20 20 20 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 read(a.d);...%....wl_display_dis
a980 70 61 74 63 68 5f 70 65 6e 64 69 6e 67 28 61 2e 64 29 3b 00 00 00 22 20 20 20 20 69 66 20 28 66 patch_pending(a.d);..."....if.(f
a9a0 64 73 5b 31 5d 2e 72 65 76 65 6e 74 73 20 26 20 50 4f 4c 4c 49 4e 29 20 7b 00 00 00 15 20 20 20 ds[1].revents.&.POLLIN).{.......
a9c0 20 20 20 75 69 6e 74 36 34 5f 74 20 74 5f 65 78 70 3b 00 00 00 31 20 20 20 20 20 20 69 66 20 28 ...uint64_t.t_exp;...1......if.(
a9e0 72 65 61 64 28 74 66 64 2c 20 26 74 5f 65 78 70 2c 20 73 69 7a 65 6f 66 28 74 5f 65 78 70 29 29 read(tfd,.&t_exp,.sizeof(t_exp))
aa00 20 3e 20 30 29 20 7b 00 00 00 20 20 20 20 20 20 20 20 20 74 69 6d 65 5f 74 20 63 6c 69 20 3d 20 .>.0).{............time_t.cli.=.
aa20 74 69 6d 65 28 4e 55 4c 4c 29 3b 00 00 00 2e 20 20 20 20 20 20 20 20 73 74 72 75 63 74 20 74 6d time(NULL);............struct.tm
aa40 20 2a 74 5f 73 74 72 75 63 74 20 3d 20 6c 6f 63 61 6c 74 69 6d 65 28 26 63 6c 69 29 3b 00 00 00 .*t_struct.=.localtime(&cli);...
aa60 4b 20 20 20 20 20 20 20 20 73 74 72 66 74 69 6d 65 28 62 75 66 66 65 72 2c 20 73 69 7a 65 6f 66 K........strftime(buffer,.sizeof
aa80 28 62 75 66 66 65 72 29 2c 20 22 25 64 2d 25 6d 2d 25 59 20 25 49 3a 25 4d 3a 25 53 20 25 70 22 (buffer),."%d-%m-%Y.%I:%M:%S.%p"
aaa0 2c 20 74 5f 73 74 72 75 63 74 29 3b 00 00 00 37 20 20 20 20 20 20 20 20 70 72 69 6e 74 66 28 22 ,.t_struct);...7........printf("
aac0 5c 72 54 69 6d 65 20 69 73 20 25 73 22 2c 20 62 75 66 66 65 72 29 3b 20 66 66 6c 75 73 68 28 73 \rTime.is.%s",.buffer);.fflush(s
aae0 74 64 6f 75 74 29 3b 00 00 00 18 20 20 20 20 20 20 20 20 61 2e 72 65 64 72 61 77 20 3d 20 74 72 tdout);............a.redraw.=.tr
ab00 75 65 3b 00 00 00 07 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 1d 20 20 20 20 69 ue;..........}........}........i
ab20 66 20 28 61 2e 72 65 64 72 61 77 29 20 72 65 6e 64 65 72 28 26 61 29 3b 00 00 00 03 20 20 7d 00 f.(a.redraw).render(&a);......}.
ab40 00 00 48 20 20 70 72 69 6e 74 66 28 22 5c 6e 22 29 3b 20 63 6c 6f 73 65 28 74 66 64 29 3b 20 64 ..H..printf("\n");.close(tfd);.d
ab60 65 73 74 72 6f 79 5f 62 75 66 28 26 61 29 3b 20 77 6c 5f 64 69 73 70 6c 61 79 5f 64 69 73 63 6f estroy_buf(&a);.wl_display_disco
ab80 6e 6e 65 63 74 28 61 2e 64 29 3b 35 81 f5 18 00 00 00 00 01 00 00 00 0a 00 00 00 ea 00 00 00 2c nnect(a.d);5...................,
aba0 00 00 00 31 01 00 00 01 00 00 00 2a 00 00 00 00 00 00 00 68 21 00 00 00 00 00 00 ea 23 00 00 00 ...1.......*.......h!.......#...
abc0 00 00 00 35 81 e7 aa ...5...