| ofs | hex dump | ascii |
|---|
| 0000 | 56 69 6d 9f 55 6e 44 6f e5 00 03 df 2e 72 2a f6 13 0a be 4f 44 cc b9 58 fd 45 ef 33 70 e4 c2 7d | Vim.UnDo.....r*....OD..X.E.3p..} |
| 0020 | 9d 84 9c f8 54 8e 46 2d 73 bf 86 00 00 03 73 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 01 00 | ....T.F-s.....s................. |
| 0040 | 00 00 15 00 00 00 00 00 00 00 15 00 00 00 15 00 00 00 15 00 00 00 00 6a 08 f2 56 04 01 00 00 00 | .......................j..V..... |
| 0060 | 06 00 5f d0 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 00 | .._............................. |
| 0080 | 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 00a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 00c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 00e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 01a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 01c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 01e0 | 00 00 00 00 00 00 6a 08 f0 da 04 01 00 00 00 00 00 f5 18 00 00 00 d9 00 00 00 00 00 00 00 00 00 | ......j......................... |
| 0200 | 00 00 01 00 00 00 07 20 20 20 20 20 20 20 f5 18 00 00 00 da 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0220 | f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 | ................................ |
| 0240 | 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ........5....................... |
| 0260 | d9 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f9 0f 00 00 00 00 00 00 | ................................ |
| 0280 | f5 18 00 00 00 00 d9 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 1a 00 00 00 00 00 00 00 f9 0f | ................................ |
| 02a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 02 00 00 00 00 00 00 35 81 5f d0 00 00 00 01 00 00 | ......................5._....... |
| 02c0 | 00 03 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 f4 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 | ................................ |
| 02e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 03a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 03c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 03e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 08 f0 db | ............................j... |
| 0440 | 04 01 00 00 00 00 00 f5 18 00 00 00 f3 00 00 00 f4 00 00 00 00 00 00 00 01 00 00 00 00 35 81 f5 | .............................5.. |
| 0460 | 18 00 00 00 00 f3 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0b 12 00 | ................................ |
| 0480 | 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 02 00 00 00 | .....................5._........ |
| 04a0 | 04 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 f3 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 | ................................ |
| 04c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 04e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 05a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 05c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 05e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 08 f0 dc 04 | ...........................j.... |
| 0620 | 01 00 00 00 00 00 f5 18 00 00 00 f2 00 00 00 f3 00 00 00 00 00 00 00 01 00 00 00 03 60 60 60 35 | ............................```5 |
| 0640 | 81 f5 18 00 00 00 00 f2 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 | ................................ |
| 0660 | 12 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 03 00 | .......................5._...... |
| 0680 | 00 00 05 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 | ................................ |
| 06a0 | 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 00 | ................................ |
| 06c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 06e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 07a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 07c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 07e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 08 f0 | .............................j.. |
| 0800 | de 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 06 6d 61 | ..............................ma |
| 0820 | 69 6e 2e 63 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 | in.c5........................... |
| 0840 | 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 | ............................5._. |
| 0860 | 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 00 00 00 00 00 00 | ................................ |
| 0880 | ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 08a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 08c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 08e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 09a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 09c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 09e0 | 00 00 6a 08 f0 de 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 | ..j............................. |
| 0a00 | 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 | ...5............................ |
| 0a20 | 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 | ...........................5._.. |
| 0a40 | 00 00 05 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00 06 00 00 00 01 00 00 00 00 00 00 00 00 ff | ................................ |
| 0a60 | 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 | ................................ |
| 0a80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0bc0 | 00 6a 08 f0 de 04 01 00 00 00 02 00 f5 18 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 | .j.............................. |
| 0be0 | 00 04 60 60 60 63 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 | ..```c5......................... |
| 0c00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 81 | ..............................5. |
| 0c20 | 5f d0 00 00 00 06 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 ea 00 00 00 00 00 00 | _............................... |
| 0c40 | 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0c60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0c80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0d80 | 00 00 00 ef 00 00 00 00 00 00 00 00 00 00 00 ea 00 00 00 00 00 00 00 00 00 00 00 76 00 00 00 00 | ...........................v.... |
| 0da0 | 00 00 00 00 6a 08 f1 27 04 01 00 00 00 00 00 f5 18 00 00 00 e9 00 00 00 00 00 00 00 00 00 00 00 | ....j..'........................ |
| 0dc0 | 06 00 00 00 0c 69 6e 74 20 6d 61 69 6e 28 29 20 7b 00 00 00 29 20 20 20 20 70 72 69 6e 74 66 28 | .....int.main().{...)....printf( |
| 0de0 | 22 72 65 77 72 69 74 65 20 66 6f 75 6e 64 61 74 69 6f 6e 20 72 65 61 64 79 5c 6e 22 29 3b 00 00 | "rewrite.foundation.ready\n");.. |
| 0e00 | 00 2d 20 20 20 20 70 72 69 6e 74 66 28 22 74 65 72 72 61 69 6e 20 72 65 6e 64 65 72 65 72 20 69 | .-....printf("terrain.renderer.i |
| 0e20 | 6e 69 74 69 61 6c 69 7a 65 64 5c 6e 22 29 3b 00 00 00 4d 20 20 20 20 70 72 69 6e 74 66 28 22 63 | nitialized\n");...M....printf("c |
| 0e40 | 6f 6e 74 69 6e 75 65 20 69 6d 70 6c 65 6d 65 6e 74 69 6e 67 20 76 75 6c 6b 61 6e 20 62 61 63 6b | ontinue.implementing.vulkan.back |
| 0e60 | 65 6e 64 20 66 72 6f 6d 20 70 72 65 76 69 6f 75 73 20 73 74 72 75 63 74 75 72 65 5c 6e 22 29 3b | end.from.previous.structure\n"); |
| 0e80 | 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 e9 00 | ........return.0;....}5......... |
| 0ea0 | 00 00 00 00 00 00 05 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 37 11 00 00 00 00 00 00 c2 00 | ......................7......... |
| 0ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 07 00 00 00 09 00 00 00 00 00 00 | ..............5._............... |
| 0ee0 | 00 00 00 00 00 08 00 00 00 ea 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 | ................................ |
| 0f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1000 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ea 00 00 00 00 00 00 00 00 00 00 00 ea | ................................ |
| 1040 | 00 00 00 00 00 00 00 00 00 00 00 76 00 00 00 00 00 00 00 00 6a 08 f1 28 04 01 00 00 00 00 00 f5 | ...........v........j..(........ |
| 1060 | 18 00 00 01 be 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 25 20 20 20 20 76 6b 44 65 73 74 72 | ....................%....vkDestr |
| 1080 | 6f 79 49 6e 73 74 61 6e 63 65 28 69 6e 73 74 61 6e 63 65 2c 4e 55 4c 4c 29 3b f5 18 00 00 01 bf | oyInstance(instance,NULL);...... |
| 10a0 | 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 e9 00 00 00 00 00 00 00 00 00 00 00 01 00 00 | ................................ |
| 10c0 | 00 00 f5 18 00 00 00 ea 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 e9 00 00 00 | ....................5........... |
| 10e0 | 00 00 00 00 00 00 00 00 00 00 00 00 d5 00 00 00 25 00 00 00 37 11 00 00 00 00 00 00 00 00 00 00 | ................%...7........... |
| 1100 | 00 00 00 00 f9 0f 00 00 00 00 00 00 f5 18 00 00 00 00 be 01 00 00 25 00 00 00 00 00 00 00 00 00 | ......................%......... |
| 1120 | 00 00 09 00 00 00 00 00 00 00 30 21 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4d 00 00 00 00 00 | ..........0!..............M..... |
| 1140 | 00 00 35 81 5f d0 00 00 00 08 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 09 00 00 01 c8 00 00 | ..5._........................... |
| 1160 | 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 11a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 11c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 11e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 12a0 | 00 00 00 00 00 00 00 ea 00 00 00 00 00 00 00 00 00 00 00 ea 00 00 00 00 00 00 00 00 00 00 00 76 | ...............................v |
| 12c0 | 00 00 00 00 00 00 00 00 6a 08 f1 29 04 01 00 00 00 00 00 f5 18 00 00 01 c7 00 00 01 c8 00 00 00 | ........j..).................... |
| 12e0 | 00 00 00 00 01 00 00 00 00 35 81 f5 18 00 00 00 00 c7 01 00 00 00 00 00 00 01 00 00 00 00 00 00 | .........5...................... |
| 1300 | 00 00 00 00 00 00 00 00 00 7d 21 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........}!..................... |
| 1320 | 00 35 81 5f d0 00 00 00 09 00 00 00 0b 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 01 c7 00 00 00 | .5._............................ |
| 1340 | 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 13a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 13c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 13e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1460 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1480 | 00 00 00 00 00 00 ea 00 00 00 00 00 00 00 00 00 00 00 ea 00 00 00 00 00 00 00 00 00 00 00 76 00 | ..............................v. |
| 14a0 | 00 00 00 00 00 00 00 6a 08 f1 29 04 01 00 00 00 00 00 f5 18 00 00 01 c6 00 00 01 c7 00 00 00 00 | .......j..)..................... |
| 14c0 | 00 00 00 01 00 00 00 03 60 60 60 35 81 f5 18 00 00 00 00 c6 01 00 00 00 00 00 00 01 00 00 00 00 | ........```5.................... |
| 14e0 | 00 00 00 00 00 00 00 00 00 00 00 79 21 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 | ...........y!................... |
| 1500 | 00 00 00 35 81 5f d0 00 00 00 0a 00 00 00 0c 00 00 00 00 00 00 00 00 00 00 00 0b 00 00 00 ea 00 | ...5._.......................... |
| 1520 | 00 00 03 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 15e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1660 | 00 00 00 00 00 00 00 00 ea 00 00 00 00 00 00 00 00 00 00 00 ea 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1680 | 76 00 00 00 00 00 00 00 00 6a 08 f1 2f 04 01 00 00 00 03 00 f5 18 00 00 00 e9 00 00 00 ea 00 00 | v........j../................... |
| 16a0 | 00 00 00 00 00 01 00 00 00 04 60 60 60 63 35 81 f5 18 00 00 00 00 e9 00 00 00 00 00 00 00 01 00 | ..........```c5................. |
| 16c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 37 11 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 | ..............7................. |
| 16e0 | 00 00 00 00 00 00 35 81 5f d0 00 00 00 0b 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00 0c 00 00 | ......5._....................... |
| 1700 | 00 01 00 00 00 12 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 | ................................ |
| 1720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 17a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 17c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 17e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1800 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1860 | 00 00 00 00 00 00 00 00 00 00 00 00 6a 08 f1 cf 04 01 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 | ............j................... |
| 1880 | 02 00 00 00 00 00 00 01 c5 00 00 00 13 23 64 65 66 69 6e 65 20 5f 47 4e 55 5f 53 4f 55 52 43 45 | .............#define._GNU_SOURCE |
| 18a0 | 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 75 | ....#include.<stdio.h>....#inclu |
| 18c0 | 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 64 69 6e | de.<stdlib.h>....#include.<stdin |
| 18e0 | 74 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 00 11 23 | t.h>....#include.<string.h>....# |
| 1900 | 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 65 20 3c 74 69 | include.<math.h>....#include.<ti |
| 1920 | 6d 65 2e 68 3e 00 00 00 00 00 00 00 20 23 64 65 66 69 6e 65 20 56 4b 5f 55 53 45 5f 50 4c 41 54 | me.h>........#define.VK_USE_PLAT |
| 1940 | 46 4f 52 4d 5f 58 4c 49 42 5f 4b 48 52 00 00 00 1a 23 69 6e 63 6c 75 64 65 20 3c 76 75 6c 6b 61 | FORM_XLIB_KHR....#include.<vulka |
| 1960 | 6e 2f 76 75 6c 6b 61 6e 2e 68 3e 00 00 00 00 00 00 00 15 23 69 6e 63 6c 75 64 65 20 3c 58 31 31 | n/vulkan.h>........#include.<X11 |
| 1980 | 2f 58 6c 69 62 2e 68 3e 00 00 00 16 23 69 6e 63 6c 75 64 65 20 3c 58 31 31 2f 58 75 74 69 6c 2e | /Xlib.h>....#include.<X11/Xutil. |
| 19a0 | 68 3e 00 00 00 17 23 69 6e 63 6c 75 64 65 20 3c 58 31 31 2f 6b 65 79 73 79 6d 2e 68 3e 00 00 00 | h>....#include.<X11/keysym.h>... |
| 19c0 | 00 00 00 00 12 23 64 65 66 69 6e 65 20 57 49 44 54 48 20 31 32 38 30 00 00 00 12 23 64 65 66 69 | .....#define.WIDTH.1280....#defi |
| 19e0 | 6e 65 20 48 45 49 47 48 54 20 37 32 30 00 00 00 00 00 00 00 14 23 64 65 66 69 6e 65 20 4d 41 58 | ne.HEIGHT.720........#define.MAX |
| 1a00 | 5f 46 52 41 4d 45 53 20 32 00 00 00 10 23 64 65 66 69 6e 65 20 47 52 49 44 20 32 35 36 00 00 00 | _FRAMES.2....#define.GRID.256... |
| 1a20 | 18 23 64 65 66 69 6e 65 20 50 49 20 33 2e 31 34 31 35 39 32 36 35 33 35 66 00 00 00 00 00 00 00 | .#define.PI.3.1415926535f....... |
| 1a40 | 10 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 00 00 00 10 20 20 20 20 66 6c 6f 61 74 20 78 | .typedef.struct.{........float.x |
| 1a60 | 2c 79 2c 7a 3b 00 00 00 07 7d 20 76 65 63 33 3b 00 00 00 00 00 00 00 10 74 79 70 65 64 65 66 20 | ,y,z;....}.vec3;........typedef. |
| 1a80 | 73 74 72 75 63 74 20 7b 00 00 00 10 20 20 20 20 66 6c 6f 61 74 20 6d 5b 31 36 5d 3b 00 00 00 07 | struct.{........float.m[16];.... |
| 1aa0 | 7d 20 6d 61 74 34 3b 00 00 00 00 00 00 00 10 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 00 | }.mat4;........typedef.struct.{. |
| 1ac0 | 00 00 11 20 20 20 20 66 6c 6f 61 74 20 70 6f 73 5b 33 5d 3b 00 00 00 14 20 20 20 20 66 6c 6f 61 | .......float.pos[3];........floa |
| 1ae0 | 74 20 6e 6f 72 6d 61 6c 5b 33 5d 3b 00 00 00 13 20 20 20 20 66 6c 6f 61 74 20 63 6f 6c 6f 72 5b | t.normal[3];........float.color[ |
| 1b00 | 33 5d 3b 00 00 00 0b 7d 20 76 65 72 74 65 78 5f 74 3b 00 00 00 00 00 00 00 10 74 79 70 65 64 65 | 3];....}.vertex_t;........typede |
| 1b20 | 66 20 73 74 72 75 63 74 20 7b 00 00 00 0e 20 20 20 20 6d 61 74 34 20 76 69 65 77 3b 00 00 00 0e | f.struct.{........mat4.view;.... |
| 1b40 | 20 20 20 20 6d 61 74 34 20 70 72 6f 6a 3b 00 00 00 11 20 20 20 20 66 6c 6f 61 74 20 63 61 6d 5b | ....mat4.proj;........float.cam[ |
| 1b60 | 34 5d 3b 00 00 00 08 7d 20 75 62 6f 5f 74 3b 00 00 00 00 00 00 00 10 74 79 70 65 64 65 66 20 73 | 4];....}.ubo_t;........typedef.s |
| 1b80 | 74 72 75 63 74 20 7b 00 00 00 12 20 20 20 20 56 6b 49 6d 61 67 65 20 69 6d 61 67 65 3b 00 00 00 | truct.{........VkImage.image;... |
| 1ba0 | 1a 20 20 20 20 56 6b 44 65 76 69 63 65 4d 65 6d 6f 72 79 20 6d 65 6d 6f 72 79 3b 00 00 00 15 20 | .....VkDeviceMemory.memory;..... |
| 1bc0 | 20 20 20 56 6b 49 6d 61 67 65 56 69 65 77 20 76 69 65 77 3b 00 00 00 0a 7d 20 64 65 70 74 68 5f | ...VkImageView.view;....}.depth_ |
| 1be0 | 74 3b 00 00 00 00 00 00 00 10 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 7b 00 00 00 20 20 20 | t;........typedef.struct.{...... |
| 1c00 | 20 20 56 6b 53 65 6d 61 70 68 6f 72 65 20 69 6d 61 67 65 5f 61 76 61 69 6c 61 62 6c 65 3b 00 00 | ..VkSemaphore.image_available;.. |
| 1c20 | 00 20 20 20 20 20 56 6b 53 65 6d 61 70 68 6f 72 65 20 72 65 6e 64 65 72 5f 66 69 6e 69 73 68 65 | ......VkSemaphore.render_finishe |
| 1c40 | 64 3b 00 00 00 16 20 20 20 20 56 6b 46 65 6e 63 65 20 69 6e 5f 66 6c 69 67 68 74 3b 00 00 00 18 | d;........VkFence.in_flight;.... |
| 1c60 | 20 20 20 20 56 6b 43 6f 6d 6d 61 6e 64 42 75 66 66 65 72 20 63 6d 64 3b 00 00 00 11 20 20 20 20 | ....VkCommandBuffer.cmd;........ |
| 1c80 | 56 6b 42 75 66 66 65 72 20 75 62 6f 3b 00 00 00 1b 20 20 20 20 56 6b 44 65 76 69 63 65 4d 65 6d | VkBuffer.ubo;........VkDeviceMem |
| 1ca0 | 6f 72 79 20 75 62 6f 5f 6d 65 6d 3b 00 00 00 12 20 20 20 20 76 6f 69 64 20 2a 75 62 6f 5f 6d 61 | ory.ubo_mem;........void.*ubo_ma |
| 1cc0 | 70 3b 00 00 00 0a 7d 20 66 72 61 6d 65 5f 74 3b 00 00 00 00 00 00 00 20 73 74 61 74 69 63 20 76 | p;....}.frame_t;........static.v |
| 1ce0 | 6f 69 64 20 64 69 65 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 29 20 7b 00 00 00 1d 20 20 20 20 | oid.die(const.char.*s).{........ |
| 1d00 | 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 22 25 73 5c 6e 22 2c 73 29 3b 00 00 00 0c 20 20 20 | fprintf(stderr,"%s\n",s);....... |
| 1d20 | 20 65 78 69 74 28 31 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 17 23 64 65 66 69 6e 65 20 43 48 | .exit(1);....}........#define.CH |
| 1d40 | 45 43 4b 28 78 29 20 64 6f 20 7b 20 5c 00 00 00 17 20 20 20 20 56 6b 52 65 73 75 6c 74 20 72 20 | ECK(x).do.{.\........VkResult.r. |
| 1d60 | 3d 20 28 78 29 3b 20 5c 00 00 00 1c 20 20 20 20 69 66 20 28 72 20 21 3d 20 56 4b 5f 53 55 43 43 | =.(x);.\........if.(r.!=.VK_SUCC |
| 1d80 | 45 53 53 29 20 7b 20 5c 00 00 00 41 20 20 20 20 20 20 20 20 66 70 72 69 6e 74 66 28 73 74 64 65 | ESS).{.\...A........fprintf(stde |
| 1da0 | 72 72 2c 22 76 75 6c 6b 61 6e 20 65 72 72 6f 72 20 25 64 20 6c 69 6e 65 20 25 64 5c 6e 22 2c 72 | rr,"vulkan.error.%d.line.%d\n",r |
| 1dc0 | 2c 5f 5f 4c 49 4e 45 5f 5f 29 3b 20 5c 00 00 00 12 20 20 20 20 20 20 20 20 65 78 69 74 28 31 29 | ,__LINE__);.\............exit(1) |
| 1de0 | 3b 20 5c 00 00 00 07 20 20 20 20 7d 20 5c 00 00 00 0a 7d 20 77 68 69 6c 65 28 30 29 00 00 00 00 | ;.\........}.\....}.while(0).... |
| 1e00 | 00 00 00 21 73 74 61 74 69 63 20 6d 61 74 34 20 6d 61 74 34 5f 69 64 65 6e 74 69 74 79 28 76 6f | ...!static.mat4.mat4_identity(vo |
| 1e20 | 69 64 29 20 7b 00 00 00 11 20 20 20 20 6d 61 74 34 20 6d 20 3d 20 7b 30 7d 3b 00 00 00 0d 20 20 | id).{........mat4.m.=.{0};...... |
| 1e40 | 20 20 6d 2e 6d 5b 30 5d 3d 31 3b 00 00 00 0d 20 20 20 20 6d 2e 6d 5b 35 5d 3d 31 3b 00 00 00 0e | ..m.m[0]=1;........m.m[5]=1;.... |
| 1e60 | 20 20 20 20 6d 2e 6d 5b 31 30 5d 3d 31 3b 00 00 00 0e 20 20 20 20 6d 2e 6d 5b 31 35 5d 3d 31 3b | ....m.m[10]=1;........m.m[15]=1; |
| 1e80 | 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 6d 3b 00 00 00 01 7d 00 00 00 00 00 00 00 46 73 74 | ........return.m;....}.......Fst |
| 1ea0 | 61 74 69 63 20 6d 61 74 34 20 6d 61 74 34 5f 70 65 72 73 70 65 63 74 69 76 65 28 66 6c 6f 61 74 | atic.mat4.mat4_perspective(float |
| 1ec0 | 20 66 6f 76 2c 66 6c 6f 61 74 20 61 73 70 65 63 74 2c 66 6c 6f 61 74 20 6e 2c 66 6c 6f 61 74 20 | .fov,float.aspect,float.n,float. |
| 1ee0 | 66 29 20 7b 00 00 00 11 20 20 20 20 6d 61 74 34 20 6d 20 3d 20 7b 30 7d 3b 00 00 00 00 00 00 00 | f).{........mat4.m.=.{0};....... |
| 1f00 | 24 20 20 20 20 66 6c 6f 61 74 20 74 20 3d 20 31 2e 30 66 20 2f 20 74 61 6e 66 28 66 6f 76 2a 30 | $....float.t.=.1.0f./.tanf(fov*0 |
| 1f20 | 2e 35 66 29 3b 00 00 00 00 00 00 00 16 20 20 20 20 6d 2e 6d 5b 30 5d 20 3d 20 74 2f 61 73 70 65 | .5f);............m.m[0].=.t/aspe |
| 1f40 | 63 74 3b 00 00 00 10 20 20 20 20 6d 2e 6d 5b 35 5d 20 3d 20 2d 74 3b 00 00 00 16 20 20 20 20 6d | ct;........m.m[5].=.-t;........m |
| 1f60 | 2e 6d 5b 31 30 5d 20 3d 20 66 2f 28 6e 2d 66 29 3b 00 00 00 11 20 20 20 20 6d 2e 6d 5b 31 31 5d | .m[10].=.f/(n-f);........m.m[11] |
| 1f80 | 20 3d 20 2d 31 3b 00 00 00 1a 20 20 20 20 6d 2e 6d 5b 31 34 5d 20 3d 20 28 6e 2a 66 29 2f 28 6e | .=.-1;........m.m[14].=.(n*f)/(n |
| 1fa0 | 2d 66 29 3b 00 00 00 00 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 6d 3b 00 00 00 01 7d 00 00 | -f);............return.m;....}.. |
| 1fc0 | 00 00 00 00 00 25 73 74 61 74 69 63 20 76 65 63 33 20 76 65 63 33 5f 73 75 62 28 76 65 63 33 20 | .....%static.vec3.vec3_sub(vec3. |
| 1fe0 | 61 2c 76 65 63 33 20 62 29 20 7b 00 00 00 2b 20 20 20 20 72 65 74 75 72 6e 20 28 76 65 63 33 29 | a,vec3.b).{...+....return.(vec3) |
| 2000 | 7b 61 2e 78 2d 62 2e 78 2c 61 2e 79 2d 62 2e 79 2c 61 2e 7a 2d 62 2e 7a 7d 3b 00 00 00 01 7d 00 | {a.x-b.x,a.y-b.y,a.z-b.z};....}. |
| 2020 | 00 00 00 00 00 00 27 73 74 61 74 69 63 20 76 65 63 33 20 76 65 63 33 5f 63 72 6f 73 73 28 76 65 | ......'static.vec3.vec3_cross(ve |
| 2040 | 63 33 20 61 2c 76 65 63 33 20 62 29 20 7b 00 00 00 12 20 20 20 20 72 65 74 75 72 6e 20 28 76 65 | c3.a,vec3.b).{........return.(ve |
| 2060 | 63 33 29 7b 00 00 00 18 20 20 20 20 20 20 20 20 61 2e 79 2a 62 2e 7a 2d 61 2e 7a 2a 62 2e 79 2c | c3){............a.y*b.z-a.z*b.y, |
| 2080 | 00 00 00 18 20 20 20 20 20 20 20 20 61 2e 7a 2a 62 2e 78 2d 61 2e 78 2a 62 2e 7a 2c 00 00 00 17 | ............a.z*b.x-a.x*b.z,.... |
| 20a0 | 20 20 20 20 20 20 20 20 61 2e 78 2a 62 2e 79 2d 61 2e 79 2a 62 2e 78 00 00 00 06 20 20 20 20 7d | ........a.x*b.y-a.y*b.x........} |
| 20c0 | 3b 00 00 00 01 7d 00 00 00 00 00 00 00 26 73 74 61 74 69 63 20 66 6c 6f 61 74 20 76 65 63 33 5f | ;....}.......&static.float.vec3_ |
| 20e0 | 64 6f 74 28 76 65 63 33 20 61 2c 76 65 63 33 20 62 29 20 7b 00 00 00 23 20 20 20 20 72 65 74 75 | dot(vec3.a,vec3.b).{...#....retu |
| 2100 | 72 6e 20 61 2e 78 2a 62 2e 78 2b 61 2e 79 2a 62 2e 79 2b 61 2e 7a 2a 62 2e 7a 3b 00 00 00 01 7d | rn.a.x*b.x+a.y*b.y+a.z*b.z;....} |
| 2120 | 00 00 00 00 00 00 00 1f 73 74 61 74 69 63 20 76 65 63 33 20 76 65 63 33 5f 6e 6f 72 6d 28 76 65 | ........static.vec3.vec3_norm(ve |
| 2140 | 63 33 20 76 29 20 7b 00 00 00 2d 20 20 20 20 66 6c 6f 61 74 20 6c 20 3d 20 73 71 72 74 66 28 76 | c3.v).{...-....float.l.=.sqrtf(v |
| 2160 | 2e 78 2a 76 2e 78 2b 76 2e 79 2a 76 2e 79 2b 76 2e 7a 2a 76 2e 7a 29 3b 00 00 00 25 20 20 20 20 | .x*v.x+v.y*v.y+v.z*v.z);...%.... |
| 2180 | 72 65 74 75 72 6e 20 28 76 65 63 33 29 7b 76 2e 78 2f 6c 2c 76 2e 79 2f 6c 2c 76 2e 7a 2f 6c 7d | return.(vec3){v.x/l,v.y/l,v.z/l} |
| 21a0 | 3b 00 00 00 01 7d 00 00 00 00 00 00 00 35 73 74 61 74 69 63 20 6d 61 74 34 20 6d 61 74 34 5f 6c | ;....}.......5static.mat4.mat4_l |
| 21c0 | 6f 6f 6b 28 76 65 63 33 20 65 79 65 2c 76 65 63 33 20 63 65 6e 74 65 72 2c 76 65 63 33 20 75 70 | ook(vec3.eye,vec3.center,vec3.up |
| 21e0 | 29 20 7b 00 00 00 2d 20 20 20 20 76 65 63 33 20 66 20 3d 20 76 65 63 33 5f 6e 6f 72 6d 28 76 65 | ).{...-....vec3.f.=.vec3_norm(ve |
| 2200 | 63 33 5f 73 75 62 28 63 65 6e 74 65 72 2c 65 79 65 29 29 3b 00 00 00 29 20 20 20 20 76 65 63 33 | c3_sub(center,eye));...)....vec3 |
| 2220 | 20 73 20 3d 20 76 65 63 33 5f 6e 6f 72 6d 28 76 65 63 33 5f 63 72 6f 73 73 28 66 2c 75 70 29 29 | .s.=.vec3_norm(vec3_cross(f,up)) |
| 2240 | 3b 00 00 00 1d 20 20 20 20 76 65 63 33 20 75 20 3d 20 76 65 63 33 5f 63 72 6f 73 73 28 73 2c 66 | ;........vec3.u.=.vec3_cross(s,f |
| 2260 | 29 3b 00 00 00 00 00 00 00 11 20 20 20 20 6d 61 74 34 20 6d 20 3d 20 7b 30 7d 3b 00 00 00 00 00 | );............mat4.m.=.{0};..... |
| 2280 | 00 00 0f 20 20 20 20 6d 2e 6d 5b 30 5d 3d 73 2e 78 3b 00 00 00 0f 20 20 20 20 6d 2e 6d 5b 34 5d | .......m.m[0]=s.x;........m.m[4] |
| 22a0 | 3d 73 2e 79 3b 00 00 00 0f 20 20 20 20 6d 2e 6d 5b 38 5d 3d 73 2e 7a 3b 00 00 00 00 00 00 00 0f | =s.y;........m.m[8]=s.z;........ |
| 22c0 | 20 20 20 20 6d 2e 6d 5b 31 5d 3d 75 2e 78 3b 00 00 00 0f 20 20 20 20 6d 2e 6d 5b 35 5d 3d 75 2e | ....m.m[1]=u.x;........m.m[5]=u. |
| 22e0 | 79 3b 00 00 00 0f 20 20 20 20 6d 2e 6d 5b 39 5d 3d 75 2e 7a 3b 00 00 00 00 00 00 00 10 20 20 20 | y;........m.m[9]=u.z;........... |
| 2300 | 20 6d 2e 6d 5b 32 5d 3d 2d 66 2e 78 3b 00 00 00 10 20 20 20 20 6d 2e 6d 5b 36 5d 3d 2d 66 2e 79 | .m.m[2]=-f.x;........m.m[6]=-f.y |
| 2320 | 3b 00 00 00 11 20 20 20 20 6d 2e 6d 5b 31 30 5d 3d 2d 66 2e 7a 3b 00 00 00 00 00 00 00 1d 20 20 | ;........m.m[10]=-f.z;.......... |
| 2340 | 20 20 6d 2e 6d 5b 31 32 5d 3d 2d 76 65 63 33 5f 64 6f 74 28 73 2c 65 79 65 29 3b 00 00 00 1d 20 | ..m.m[12]=-vec3_dot(s,eye);..... |
| 2360 | 20 20 20 6d 2e 6d 5b 31 33 5d 3d 2d 76 65 63 33 5f 64 6f 74 28 75 2c 65 79 65 29 3b 00 00 00 1c | ...m.m[13]=-vec3_dot(u,eye);.... |
| 2380 | 20 20 20 20 6d 2e 6d 5b 31 34 5d 3d 76 65 63 33 5f 64 6f 74 28 66 2c 65 79 65 29 3b 00 00 00 11 | ....m.m[14]=vec3_dot(f,eye);.... |
| 23a0 | 20 20 20 20 6d 2e 6d 5b 31 35 5d 3d 31 2e 30 66 3b 00 00 00 00 00 00 00 0d 20 20 20 20 72 65 74 | ....m.m[15]=1.0f;............ret |
| 23c0 | 75 72 6e 20 6d 3b 00 00 00 01 7d 00 00 00 00 00 00 00 2e 73 74 61 74 69 63 20 66 6c 6f 61 74 20 | urn.m;....}........static.float. |
| 23e0 | 74 65 72 72 61 69 6e 5f 68 65 69 67 68 74 28 66 6c 6f 61 74 20 78 2c 66 6c 6f 61 74 20 7a 29 20 | terrain_height(float.x,float.z). |
| 2400 | 7b 00 00 00 0a 20 20 20 20 72 65 74 75 72 6e 00 00 00 1c 20 20 20 20 20 20 20 20 73 69 6e 66 28 | {........return............sinf( |
| 2420 | 78 2a 30 2e 30 38 66 29 2a 33 2e 30 66 20 2b 00 00 00 1c 20 20 20 20 20 20 20 20 63 6f 73 66 28 | x*0.08f)*3.0f.+............cosf( |
| 2440 | 7a 2a 30 2e 30 36 66 29 2a 32 2e 30 66 20 2b 00 00 00 1f 20 20 20 20 20 20 20 20 73 69 6e 66 28 | z*0.06f)*2.0f.+............sinf( |
| 2460 | 28 78 2b 7a 29 2a 30 2e 30 33 66 29 2a 34 2e 30 66 3b 00 00 00 01 7d 00 00 00 00 00 00 00 2d 73 | (x+z)*0.03f)*4.0f;....}.......-s |
| 2480 | 74 61 74 69 63 20 76 65 63 33 20 74 65 72 72 61 69 6e 5f 6e 6f 72 6d 61 6c 28 66 6c 6f 61 74 20 | tatic.vec3.terrain_normal(float. |
| 24a0 | 78 2c 66 6c 6f 61 74 20 7a 29 20 7b 00 00 00 25 20 20 20 20 66 6c 6f 61 74 20 68 4c 20 3d 20 74 | x,float.z).{...%....float.hL.=.t |
| 24c0 | 65 72 72 61 69 6e 5f 68 65 69 67 68 74 28 78 2d 31 2c 7a 29 3b 00 00 00 25 20 20 20 20 66 6c 6f | errain_height(x-1,z);...%....flo |
| 24e0 | 61 74 20 68 52 20 3d 20 74 65 72 72 61 69 6e 5f 68 65 69 67 68 74 28 78 2b 31 2c 7a 29 3b 00 00 | at.hR.=.terrain_height(x+1,z);.. |
| 2500 | 00 25 20 20 20 20 66 6c 6f 61 74 20 68 44 20 3d 20 74 65 72 72 61 69 6e 5f 68 65 69 67 68 74 28 | .%....float.hD.=.terrain_height( |
| 2520 | 78 2c 7a 2d 31 29 3b 00 00 00 25 20 20 20 20 66 6c 6f 61 74 20 68 55 20 3d 20 74 65 72 72 61 69 | x,z-1);...%....float.hU.=.terrai |
| 2540 | 6e 5f 68 65 69 67 68 74 28 78 2c 7a 2b 31 29 3b 00 00 00 00 00 00 00 0e 20 20 20 20 76 65 63 33 | n_height(x,z+1);............vec3 |
| 2560 | 20 6e 20 3d 20 7b 00 00 00 0e 20 20 20 20 20 20 20 20 68 4c 2d 68 52 2c 00 00 00 0d 20 20 20 20 | .n.=.{............hL-hR,........ |
| 2580 | 20 20 20 20 32 2e 30 66 2c 00 00 00 0d 20 20 20 20 20 20 20 20 68 44 2d 68 55 00 00 00 06 20 20 | ....2.0f,............hD-hU...... |
| 25a0 | 20 20 7d 3b 00 00 00 00 00 00 00 18 20 20 20 20 72 65 74 75 72 6e 20 76 65 63 33 5f 6e 6f 72 6d | ..};............return.vec3_norm |
| 25c0 | 28 6e 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 2f 73 74 61 74 69 63 20 76 6f 69 64 20 62 75 69 | (n);....}......./static.void.bui |
| 25e0 | 6c 64 5f 74 65 72 72 61 69 6e 28 76 65 72 74 65 78 5f 74 20 2a 2a 76 65 72 74 73 5f 6f 75 74 2c | ld_terrain(vertex_t.**verts_out, |
| 2600 | 00 00 00 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 | ...-..........................ui |
| 2620 | 6e 74 33 32 5f 74 20 2a 2a 69 64 78 5f 6f 75 74 2c 00 00 00 2b 20 20 20 20 20 20 20 20 20 20 20 | nt32_t.**idx_out,...+........... |
| 2640 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 2a 76 63 6f 75 6e 74 2c | ...............uint32_t.*vcount, |
| 2660 | 00 00 00 2d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 | ...-..........................ui |
| 2680 | 6e 74 33 32 5f 74 20 2a 69 63 6f 75 6e 74 29 20 7b 00 00 00 00 00 00 00 18 20 20 20 20 2a 76 63 | nt32_t.*icount).{............*vc |
| 26a0 | 6f 75 6e 74 20 3d 20 47 52 49 44 2a 47 52 49 44 3b 00 00 00 22 20 20 20 20 2a 69 63 6f 75 6e 74 | ount.=.GRID*GRID;..."....*icount |
| 26c0 | 20 3d 20 28 47 52 49 44 2d 31 29 2a 28 47 52 49 44 2d 31 29 2a 36 3b 00 00 00 00 00 00 00 33 20 | .=.(GRID-1)*(GRID-1)*6;.......3. |
| 26e0 | 20 20 20 76 65 72 74 65 78 5f 74 20 2a 76 20 3d 20 63 61 6c 6c 6f 63 28 2a 76 63 6f 75 6e 74 2c | ...vertex_t.*v.=.calloc(*vcount, |
| 2700 | 73 69 7a 65 6f 66 28 76 65 72 74 65 78 5f 74 29 29 3b 00 00 00 33 20 20 20 20 75 69 6e 74 33 32 | sizeof(vertex_t));...3....uint32 |
| 2720 | 5f 74 20 2a 69 20 3d 20 63 61 6c 6c 6f 63 28 2a 69 63 6f 75 6e 74 2c 73 69 7a 65 6f 66 28 75 69 | _t.*i.=.calloc(*icount,sizeof(ui |
| 2740 | 6e 74 33 32 5f 74 29 29 3b 00 00 00 00 00 00 00 0f 20 20 20 20 69 6e 74 20 76 69 20 3d 20 30 3b | nt32_t));............int.vi.=.0; |
| 2760 | 00 00 00 00 00 00 00 1f 20 20 20 20 66 6f 72 28 69 6e 74 20 7a 3d 30 3b 20 7a 3c 47 52 49 44 3b | ............for(int.z=0;.z<GRID; |
| 2780 | 20 7a 2b 2b 29 20 7b 00 00 00 23 20 20 20 20 20 20 20 20 66 6f 72 28 69 6e 74 20 78 3d 30 3b 20 | .z++).{...#........for(int.x=0;. |
| 27a0 | 78 3c 47 52 49 44 3b 20 78 2b 2b 29 20 7b 00 00 00 00 00 00 00 22 20 20 20 20 20 20 20 20 20 20 | x<GRID;.x++).{.......".......... |
| 27c0 | 20 20 66 6c 6f 61 74 20 66 78 20 3d 20 78 20 2d 20 47 52 49 44 2f 32 3b 00 00 00 22 20 20 20 20 | ..float.fx.=.x.-.GRID/2;...".... |
| 27e0 | 20 20 20 20 20 20 20 20 66 6c 6f 61 74 20 66 7a 20 3d 20 7a 20 2d 20 47 52 49 44 2f 32 3b 00 00 | ........float.fz.=.z.-.GRID/2;.. |
| 2800 | 00 00 00 00 00 2c 20 20 20 20 20 20 20 20 20 20 20 20 66 6c 6f 61 74 20 68 20 3d 20 74 65 72 72 | .....,............float.h.=.terr |
| 2820 | 61 69 6e 5f 68 65 69 67 68 74 28 66 78 2c 66 7a 29 3b 00 00 00 00 00 00 00 2b 20 20 20 20 20 20 | ain_height(fx,fz);.......+...... |
| 2840 | 20 20 20 20 20 20 76 65 63 33 20 6e 20 3d 20 74 65 72 72 61 69 6e 5f 6e 6f 72 6d 61 6c 28 66 78 | ......vec3.n.=.terrain_normal(fx |
| 2860 | 2c 66 7a 29 3b 00 00 00 00 00 00 00 18 20 20 20 20 20 20 20 20 20 20 20 20 66 6c 6f 61 74 20 72 | ,fz);....................float.r |
| 2880 | 2c 67 2c 62 3b 00 00 00 00 00 00 00 18 20 20 20 20 20 20 20 20 20 20 20 20 69 66 28 68 20 3c 20 | ,g,b;....................if(h.<. |
| 28a0 | 2d 32 29 20 7b 00 00 00 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 3d 30 2e 31 66 3b | -2).{...'................r=0.1f; |
| 28c0 | 20 67 3d 30 2e 32 66 3b 20 62 3d 30 2e 37 66 3b 00 00 00 1e 20 20 20 20 20 20 20 20 20 20 20 20 | .g=0.2f;.b=0.7f;................ |
| 28e0 | 7d 20 65 6c 73 65 20 69 66 28 68 20 3c 20 32 29 20 7b 00 00 00 27 20 20 20 20 20 20 20 20 20 20 | }.else.if(h.<.2).{...'.......... |
| 2900 | 20 20 20 20 20 20 72 3d 30 2e 32 66 3b 20 67 3d 30 2e 37 66 3b 20 62 3d 30 2e 32 66 3b 00 00 00 | ......r=0.2f;.g=0.7f;.b=0.2f;... |
| 2920 | 1e 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 28 68 20 3c 20 36 29 20 7b 00 | .............}.else.if(h.<.6).{. |
| 2940 | 00 00 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 3d 30 2e 34 35 66 3b 20 67 3d 30 2e | ..)................r=0.45f;.g=0. |
| 2960 | 34 66 3b 20 62 3d 30 2e 33 35 66 3b 00 00 00 14 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c | 4f;.b=0.35f;................}.el |
| 2980 | 73 65 20 7b 00 00 00 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 3d 30 2e 39 66 3b 20 | se.{...'................r=0.9f;. |
| 29a0 | 67 3d 30 2e 39 66 3b 20 62 3d 30 2e 39 66 3b 00 00 00 0d 20 20 20 20 20 20 20 20 20 20 20 20 7d | g=0.9f;.b=0.9f;................} |
| 29c0 | 00 00 00 00 00 00 00 1f 20 20 20 20 20 20 20 20 20 20 20 20 76 5b 76 69 5d 20 3d 20 28 76 65 72 | ....................v[vi].=.(ver |
| 29e0 | 74 65 78 5f 74 29 7b 00 00 00 1a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 66 78 2c 68 | tex_t){....................{fx,h |
| 2a00 | 2c 66 7a 7d 2c 00 00 00 1e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 6e 2e 78 2c 6e 2e | ,fz},....................{n.x,n. |
| 2a20 | 79 2c 6e 2e 7a 7d 2c 00 00 00 17 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 72 2c 67 2c | y,n.z},....................{r,g, |
| 2a40 | 62 7d 00 00 00 0e 20 20 20 20 20 20 20 20 20 20 20 20 7d 3b 00 00 00 00 00 00 00 11 20 20 20 20 | b}................};............ |
| 2a60 | 20 20 20 20 20 20 20 20 76 69 2b 2b 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 05 20 20 | ........vi++;............}...... |
| 2a80 | 20 20 7d 00 00 00 00 00 00 00 0f 20 20 20 20 69 6e 74 20 69 69 20 3d 20 30 3b 00 00 00 00 00 00 | ..}............int.ii.=.0;...... |
| 2aa0 | 00 21 20 20 20 20 66 6f 72 28 69 6e 74 20 7a 3d 30 3b 20 7a 3c 47 52 49 44 2d 31 3b 20 7a 2b 2b | .!....for(int.z=0;.z<GRID-1;.z++ |
| 2ac0 | 29 20 7b 00 00 00 25 20 20 20 20 20 20 20 20 66 6f 72 28 69 6e 74 20 78 3d 30 3b 20 78 3c 47 52 | ).{...%........for(int.x=0;.x<GR |
| 2ae0 | 49 44 2d 31 3b 20 78 2b 2b 29 20 7b 00 00 00 00 00 00 00 22 20 20 20 20 20 20 20 20 20 20 20 20 | ID-1;.x++).{......."............ |
| 2b00 | 75 69 6e 74 33 32 5f 74 20 61 20 3d 20 7a 2a 47 52 49 44 2b 78 3b 00 00 00 1d 20 20 20 20 20 20 | uint32_t.a.=.z*GRID+x;.......... |
| 2b20 | 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 62 20 3d 20 61 2b 31 3b 00 00 00 20 20 20 20 20 20 | ......uint32_t.b.=.a+1;......... |
| 2b40 | 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 63 20 3d 20 61 2b 47 52 49 44 3b 00 00 00 1d 20 | .......uint32_t.c.=.a+GRID;..... |
| 2b60 | 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 20 64 20 3d 20 63 2b 31 3b 00 00 00 00 | ...........uint32_t.d.=.c+1;.... |
| 2b80 | 00 00 00 18 20 20 20 20 20 20 20 20 20 20 20 20 69 5b 69 69 2b 2b 5d 20 3d 20 61 3b 00 00 00 18 | ................i[ii++].=.a;.... |
| 2ba0 | 20 20 20 20 20 20 20 20 20 20 20 20 69 5b 69 69 2b 2b 5d 20 3d 20 62 3b 00 00 00 18 20 20 20 20 | ............i[ii++].=.b;........ |
| 2bc0 | 20 20 20 20 20 20 20 20 69 5b 69 69 2b 2b 5d 20 3d 20 64 3b 00 00 00 00 00 00 00 18 20 20 20 20 | ........i[ii++].=.d;............ |
| 2be0 | 20 20 20 20 20 20 20 20 69 5b 69 69 2b 2b 5d 20 3d 20 61 3b 00 00 00 18 20 20 20 20 20 20 20 20 | ........i[ii++].=.a;............ |
| 2c00 | 20 20 20 20 69 5b 69 69 2b 2b 5d 20 3d 20 64 3b 00 00 00 18 20 20 20 20 20 20 20 20 20 20 20 20 | ....i[ii++].=.d;................ |
| 2c20 | 69 5b 69 69 2b 2b 5d 20 3d 20 63 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 | i[ii++].=.c;............}....... |
| 2c40 | 20 7d 00 00 00 00 00 00 00 13 20 20 20 20 2a 76 65 72 74 73 5f 6f 75 74 20 3d 20 76 3b 00 00 00 | .}............*verts_out.=.v;... |
| 2c60 | 11 20 20 20 20 2a 69 64 78 5f 6f 75 74 20 3d 20 69 3b 00 00 00 01 7d 00 00 00 00 00 00 00 0c 69 | .....*idx_out.=.i;....}........i |
| 2c80 | 6e 74 20 6d 61 69 6e 28 29 20 7b 00 00 00 00 00 00 00 26 20 20 20 20 44 69 73 70 6c 61 79 20 2a | nt.main().{.......&....Display.* |
| 2ca0 | 64 70 79 20 3d 20 58 4f 70 65 6e 44 69 73 70 6c 61 79 28 4e 55 4c 4c 29 3b 00 00 00 00 00 00 00 | dpy.=.XOpenDisplay(NULL);....... |
| 2cc0 | 0c 20 20 20 20 69 66 28 21 64 70 79 29 00 00 00 1e 20 20 20 20 20 20 20 20 64 69 65 28 22 6e 6f | .....if(!dpy)............die("no |
| 2ce0 | 20 78 31 31 20 64 69 73 70 6c 61 79 22 29 3b 00 00 00 00 00 00 00 24 20 20 20 20 69 6e 74 20 73 | .x11.display");.......$....int.s |
| 2d00 | 63 72 65 65 6e 20 3d 20 44 65 66 61 75 6c 74 53 63 72 65 65 6e 28 64 70 79 29 3b 00 00 00 00 00 | creen.=.DefaultScreen(dpy);..... |
| 2d20 | 00 00 10 20 20 20 20 57 69 6e 64 6f 77 20 77 69 6e 20 3d 00 00 00 1c 20 20 20 20 20 20 20 20 58 | .......Window.win.=............X |
| 2d40 | 43 72 65 61 74 65 53 69 6d 70 6c 65 57 69 6e 64 6f 77 28 00 00 00 10 20 20 20 20 20 20 20 20 20 | CreateSimpleWindow(............. |
| 2d60 | 20 20 20 64 70 79 2c 00 00 00 23 20 20 20 20 20 20 20 20 20 20 20 20 52 6f 6f 74 57 69 6e 64 6f | ...dpy,...#............RootWindo |
| 2d80 | 77 28 64 70 79 2c 73 63 72 65 65 6e 29 2c 00 00 00 0e 20 20 20 20 20 20 20 20 20 20 20 20 30 2c | w(dpy,screen),................0, |
| 2da0 | 00 00 00 0e 20 20 20 20 20 20 20 20 20 20 20 20 30 2c 00 00 00 12 20 20 20 20 20 20 20 20 20 20 | ................0,.............. |
| 2dc0 | 20 20 57 49 44 54 48 2c 00 00 00 13 20 20 20 20 20 20 20 20 20 20 20 20 48 45 49 47 48 54 2c 00 | ..WIDTH,................HEIGHT,. |
| 2de0 | 00 00 0e 20 20 20 20 20 20 20 20 20 20 20 20 30 2c 00 00 00 0e 20 20 20 20 20 20 20 20 20 20 20 | ...............0,............... |
| 2e00 | 20 30 2c 00 00 00 0d 20 20 20 20 20 20 20 20 20 20 20 20 30 00 00 00 0a 20 20 20 20 20 20 20 20 | .0,................0............ |
| 2e20 | 29 3b 00 00 00 00 00 00 00 29 20 20 20 20 58 53 74 6f 72 65 4e 61 6d 65 28 64 70 79 2c 77 69 6e | );.......)....XStoreName(dpy,win |
| 2e40 | 2c 22 56 75 6c 6b 61 6e 20 54 65 72 72 61 69 6e 22 29 3b 00 00 00 00 00 00 00 11 20 20 20 20 58 | ,"Vulkan.Terrain");............X |
| 2e60 | 53 65 6c 65 63 74 49 6e 70 75 74 28 00 00 00 0c 20 20 20 20 20 20 20 20 64 70 79 2c 00 00 00 0c | SelectInput(............dpy,.... |
| 2e80 | 20 20 20 20 20 20 20 20 77 69 6e 2c 00 00 00 16 20 20 20 20 20 20 20 20 45 78 70 6f 73 75 72 65 | ........win,............Exposure |
| 2ea0 | 4d 61 73 6b 20 7c 00 00 00 16 20 20 20 20 20 20 20 20 4b 65 79 50 72 65 73 73 4d 61 73 6b 20 7c | Mask.|............KeyPressMask.| |
| 2ec0 | 00 00 00 1b 20 20 20 20 20 20 20 20 53 74 72 75 63 74 75 72 65 4e 6f 74 69 66 79 4d 61 73 6b 00 | ............StructureNotifyMask. |
| 2ee0 | 00 00 06 20 20 20 20 29 3b 00 00 00 00 00 00 00 18 20 20 20 20 58 4d 61 70 57 69 6e 64 6f 77 28 | .......);............XMapWindow( |
| 2f00 | 64 70 79 2c 77 69 6e 29 3b 00 00 00 00 00 00 00 1d 20 20 20 20 56 6b 41 70 70 6c 69 63 61 74 69 | dpy,win);............VkApplicati |
| 2f20 | 6f 6e 49 6e 66 6f 20 61 70 70 20 3d 20 7b 00 00 00 34 20 20 20 20 20 20 20 20 2e 73 54 79 70 65 | onInfo.app.=.{...4.........sType |
| 2f40 | 20 3d 20 56 4b 5f 53 54 52 55 43 54 55 52 45 5f 54 59 50 45 5f 41 50 50 4c 49 43 41 54 49 4f 4e | .=.VK_STRUCTURE_TYPE_APPLICATION |
| 2f60 | 5f 49 4e 46 4f 2c 00 00 00 26 20 20 20 20 20 20 20 20 2e 70 41 70 70 6c 69 63 61 74 69 6f 6e 4e | _INFO,...&.........pApplicationN |
| 2f80 | 61 6d 65 20 3d 20 22 74 65 72 72 61 69 6e 22 2c 00 00 00 28 20 20 20 20 20 20 20 20 2e 61 70 69 | ame.=."terrain",...(.........api |
| 2fa0 | 56 65 72 73 69 6f 6e 20 3d 20 56 4b 5f 41 50 49 5f 56 45 52 53 49 4f 4e 5f 31 5f 30 00 00 00 06 | Version.=.VK_API_VERSION_1_0.... |
| 2fc0 | 20 20 20 20 7d 3b 00 00 00 00 00 00 00 1a 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 65 78 | ....};............const.char.*ex |
| 2fe0 | 74 73 5b 5d 20 3d 20 7b 00 00 00 26 20 20 20 20 20 20 20 20 56 4b 5f 4b 48 52 5f 53 55 52 46 41 | ts[].=.{...&........VK_KHR_SURFA |
| 3000 | 43 45 5f 45 58 54 45 4e 53 49 4f 4e 5f 4e 41 4d 45 2c 00 00 00 2a 20 20 20 20 20 20 20 20 56 4b | CE_EXTENSION_NAME,...*........VK |
| 3020 | 5f 4b 48 52 5f 58 4c 49 42 5f 53 55 52 46 41 43 45 5f 45 58 54 45 4e 53 49 4f 4e 5f 4e 41 4d 45 | _KHR_XLIB_SURFACE_EXTENSION_NAME |
| 3040 | 00 00 00 06 20 20 20 20 7d 3b 00 00 00 00 00 00 00 1f 20 20 20 20 56 6b 49 6e 73 74 61 6e 63 65 | ........};............VkInstance |
| 3060 | 43 72 65 61 74 65 49 6e 66 6f 20 63 69 20 3d 20 7b 00 00 00 38 20 20 20 20 20 20 20 20 2e 73 54 | CreateInfo.ci.=.{...8.........sT |
| 3080 | 79 70 65 20 3d 20 56 4b 5f 53 54 52 55 43 54 55 52 45 5f 54 59 50 45 5f 49 4e 53 54 41 4e 43 45 | ype.=.VK_STRUCTURE_TYPE_INSTANCE |
| 30a0 | 5f 43 52 45 41 54 45 5f 49 4e 46 4f 2c 00 00 00 21 20 20 20 20 20 20 20 20 2e 70 41 70 70 6c 69 | _CREATE_INFO,...!.........pAppli |
| 30c0 | 63 61 74 69 6f 6e 49 6e 66 6f 20 3d 20 26 61 70 70 2c 00 00 00 23 20 20 20 20 20 20 20 20 2e 65 | cationInfo.=.&app,...#.........e |
| 30e0 | 6e 61 62 6c 65 64 45 78 74 65 6e 73 69 6f 6e 43 6f 75 6e 74 20 3d 20 32 2c 00 00 00 27 20 20 20 | nabledExtensionCount.=.2,...'... |
| 3100 | 20 20 20 20 20 2e 70 70 45 6e 61 62 6c 65 64 45 78 74 65 6e 73 69 6f 6e 4e 61 6d 65 73 20 3d 20 | ......ppEnabledExtensionNames.=. |
| 3120 | 65 78 74 73 00 00 00 06 20 20 20 20 7d 3b 00 00 00 00 00 00 00 18 20 20 20 20 56 6b 49 6e 73 74 | exts........};............VkInst |
| 3140 | 61 6e 63 65 20 69 6e 73 74 61 6e 63 65 3b 00 00 00 00 00 00 00 30 20 20 20 20 43 48 45 43 4b 28 | ance.instance;.......0....CHECK( |
| 3160 | 76 6b 43 72 65 61 74 65 49 6e 73 74 61 6e 63 65 28 26 63 69 2c 4e 55 4c 4c 2c 26 69 6e 73 74 61 | vkCreateInstance(&ci,NULL,&insta |
| 3180 | 6e 63 65 29 29 3b 00 00 00 00 00 00 00 26 20 20 20 20 56 6b 58 6c 69 62 53 75 72 66 61 63 65 43 | nce));.......&....VkXlibSurfaceC |
| 31a0 | 72 65 61 74 65 49 6e 66 6f 4b 48 52 20 73 63 69 20 3d 20 7b 00 00 00 40 20 20 20 20 20 20 20 20 | reateInfoKHR.sci.=.{...@........ |
| 31c0 | 2e 73 54 79 70 65 20 3d 20 56 4b 5f 53 54 52 55 43 54 55 52 45 5f 54 59 50 45 5f 58 4c 49 42 5f | .sType.=.VK_STRUCTURE_TYPE_XLIB_ |
| 31e0 | 53 55 52 46 41 43 45 5f 43 52 45 41 54 45 5f 49 4e 46 4f 5f 4b 48 52 2c 00 00 00 13 20 20 20 20 | SURFACE_CREATE_INFO_KHR,........ |
| 3200 | 20 20 20 20 2e 64 70 79 20 3d 20 64 70 79 2c 00 00 00 15 20 20 20 20 20 20 20 20 2e 77 69 6e 64 | .....dpy.=.dpy,.............wind |
| 3220 | 6f 77 20 3d 20 77 69 6e 00 00 00 06 20 20 20 20 7d 3b 00 00 00 00 00 00 00 19 20 20 20 20 56 6b | ow.=.win........};............Vk |
| 3240 | 53 75 72 66 61 63 65 4b 48 52 20 73 75 72 66 61 63 65 3b 00 00 00 00 00 00 00 0a 20 20 20 20 43 | SurfaceKHR.surface;............C |
| 3260 | 48 45 43 4b 28 00 00 00 1f 20 20 20 20 20 20 20 20 76 6b 43 72 65 61 74 65 58 6c 69 62 53 75 72 | HECK(............vkCreateXlibSur |
| 3280 | 66 61 63 65 4b 48 52 28 00 00 00 15 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 73 74 61 6e 63 65 | faceKHR(................instance |
| 32a0 | 2c 00 00 00 11 20 20 20 20 20 20 20 20 20 20 20 20 26 73 63 69 2c 00 00 00 11 20 20 20 20 20 20 | ,................&sci,.......... |
| 32c0 | 20 20 20 20 20 20 4e 55 4c 4c 2c 00 00 00 14 20 20 20 20 20 20 20 20 20 20 20 20 26 73 75 72 66 | ......NULL,................&surf |
| 32e0 | 61 63 65 00 00 00 09 20 20 20 20 20 20 20 20 29 00 00 00 06 20 20 20 20 29 3b 00 00 00 00 00 00 | ace............)........);...... |
| 3300 | 00 1b 20 20 20 20 75 69 6e 74 33 32 5f 74 20 67 70 75 5f 63 6f 75 6e 74 20 3d 20 30 3b 00 00 00 | ......uint32_t.gpu_count.=.0;... |
| 3320 | 00 00 00 00 1f 20 20 20 20 76 6b 45 6e 75 6d 65 72 61 74 65 50 68 79 73 69 63 61 6c 44 65 76 69 | .........vkEnumeratePhysicalDevi |
| 3340 | 63 65 73 28 00 00 00 11 20 20 20 20 20 20 20 20 69 6e 73 74 61 6e 63 65 2c 00 00 00 13 20 20 20 | ces(............instance,....... |
| 3360 | 20 20 20 20 20 26 67 70 75 5f 63 6f 75 6e 74 2c 00 00 00 0c 20 20 20 20 20 20 20 20 4e 55 4c 4c | .....&gpu_count,............NULL |
| 3380 | 00 00 00 06 20 20 20 20 29 3b 00 00 00 00 00 00 00 12 20 20 20 20 69 66 28 21 67 70 75 5f 63 6f | ........);............if(!gpu_co |
| 33a0 | 75 6e 74 29 00 00 00 1d 20 20 20 20 20 20 20 20 64 69 65 28 22 6e 6f 20 76 75 6c 6b 61 6e 20 67 | unt)............die("no.vulkan.g |
| 33c0 | 70 75 22 29 3b 00 00 00 00 00 00 00 1e 20 20 20 20 56 6b 50 68 79 73 69 63 61 6c 44 65 76 69 63 | pu");............VkPhysicalDevic |
| 33e0 | 65 20 67 70 75 73 5b 31 36 5d 3b 00 00 00 00 00 00 00 1f 20 20 20 20 76 6b 45 6e 75 6d 65 72 61 | e.gpus[16];............vkEnumera |
| 3400 | 74 65 50 68 79 73 69 63 61 6c 44 65 76 69 63 65 73 28 00 00 00 11 20 20 20 20 20 20 20 20 69 6e | tePhysicalDevices(............in |
| 3420 | 73 74 61 6e 63 65 2c 00 00 00 13 20 20 20 20 20 20 20 20 26 67 70 75 5f 63 6f 75 6e 74 2c 00 00 | stance,............&gpu_count,.. |
| 3440 | 00 0c 20 20 20 20 20 20 20 20 67 70 75 73 00 00 00 06 20 20 20 20 29 3b 00 00 00 00 00 00 00 23 | ..........gpus........);.......# |
| 3460 | 20 20 20 20 56 6b 50 68 79 73 69 63 61 6c 44 65 76 69 63 65 20 67 70 75 20 3d 20 67 70 75 73 5b | ....VkPhysicalDevice.gpu.=.gpus[ |
| 3480 | 30 5d 3b 00 00 00 00 00 00 00 18 20 20 20 20 75 69 6e 74 33 32 5f 74 20 71 63 6f 75 6e 74 20 3d | 0];............uint32_t.qcount.= |
| 34a0 | 20 30 3b 00 00 00 00 00 00 00 2d 20 20 20 20 76 6b 47 65 74 50 68 79 73 69 63 61 6c 44 65 76 69 | .0;.......-....vkGetPhysicalDevi |
| 34c0 | 63 65 51 75 65 75 65 46 61 6d 69 6c 79 50 72 6f 70 65 72 74 69 65 73 28 00 00 00 0c 20 20 20 20 | ceQueueFamilyProperties(........ |
| 34e0 | 20 20 20 20 67 70 75 2c 00 00 00 10 20 20 20 20 20 20 20 20 26 71 63 6f 75 6e 74 2c 00 00 00 0c | ....gpu,............&qcount,.... |
| 3500 | 20 20 20 20 20 20 20 20 4e 55 4c 4c 00 00 00 06 20 20 20 20 29 3b 00 00 00 00 00 00 00 27 20 20 | ........NULL........);.......'.. |
| 3520 | 20 20 56 6b 51 75 65 75 65 46 61 6d 69 6c 79 50 72 6f 70 65 72 74 69 65 73 20 71 70 72 6f 70 73 | ..VkQueueFamilyProperties.qprops |
| 3540 | 5b 33 32 5d 3b 00 00 00 00 00 00 00 2d 20 20 20 20 76 6b 47 65 74 50 68 79 73 69 63 61 6c 44 65 | [32];.......-....vkGetPhysicalDe |
| 3560 | 76 69 63 65 51 75 65 75 65 46 61 6d 69 6c 79 50 72 6f 70 65 72 74 69 65 73 28 00 00 00 0c 20 20 | viceQueueFamilyProperties(...... |
| 3580 | 20 20 20 20 20 20 67 70 75 2c 00 00 00 10 20 20 20 20 20 20 20 20 26 71 63 6f 75 6e 74 2c 00 00 | ......gpu,............&qcount,.. |
| 35a0 | 00 0e 20 20 20 20 20 20 20 20 71 70 72 6f 70 73 00 00 00 06 20 20 20 20 29 3b 00 00 00 00 00 00 | ..........qprops........);...... |
| 35c0 | 00 29 20 20 20 20 75 69 6e 74 33 32 5f 74 20 67 72 61 70 68 69 63 73 5f 71 75 65 75 65 20 3d 20 | .)....uint32_t.graphics_queue.=. |
| 35e0 | 55 49 4e 54 33 32 5f 4d 41 58 3b 00 00 00 00 00 00 00 24 20 20 20 20 66 6f 72 28 75 69 6e 74 33 | UINT32_MAX;.......$....for(uint3 |
| 3600 | 32 5f 74 20 69 3d 30 3b 69 3c 71 63 6f 75 6e 74 3b 69 2b 2b 29 20 7b 00 00 00 00 00 00 00 1d 20 | 2_t.i=0;i<qcount;i++).{......... |
| 3620 | 20 20 20 20 20 20 20 56 6b 42 6f 6f 6c 33 32 20 70 72 65 73 65 6e 74 20 3d 20 30 3b 00 00 00 00 | .......VkBool32.present.=.0;.... |
| 3640 | 00 00 00 2d 20 20 20 20 20 20 20 20 76 6b 47 65 74 50 68 79 73 69 63 61 6c 44 65 76 69 63 65 53 | ...-........vkGetPhysicalDeviceS |
| 3660 | 75 72 66 61 63 65 53 75 70 70 6f 72 74 4b 48 52 28 00 00 00 10 20 20 20 20 20 20 20 20 20 20 20 | urfaceSupportKHR(............... |
| 3680 | 20 67 70 75 2c 00 00 00 0e 20 20 20 20 20 20 20 20 20 20 20 20 69 2c 00 00 00 14 20 20 20 20 20 | .gpu,................i,......... |
| 36a0 | 20 20 20 20 20 20 20 73 75 72 66 61 63 65 2c 00 00 00 14 20 20 20 20 20 20 20 20 20 20 20 20 26 | .......surface,................& |
| 36c0 | 70 72 65 73 65 6e 74 00 00 00 0a 20 20 20 20 20 20 20 20 29 3b 00 00 00 00 00 00 00 0b 20 20 20 | present............);........... |
| 36e0 | 20 20 20 20 20 69 66 28 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 28 71 70 72 6f 70 73 5b | .....if(...:............(qprops[ |
| 3700 | 69 5d 2e 71 75 65 75 65 46 6c 61 67 73 20 26 20 56 4b 5f 51 55 45 55 45 5f 47 52 41 50 48 49 43 | i].queueFlags.&.VK_QUEUE_GRAPHIC |
| 3720 | 53 5f 42 49 54 29 00 00 00 0e 20 20 20 20 20 20 20 20 20 20 20 20 26 26 00 00 00 13 20 20 20 20 | S_BIT)................&&........ |
| 3740 | 20 20 20 20 20 20 20 20 70 72 65 73 65 6e 74 00 00 00 0b 20 20 20 20 20 20 20 20 29 20 7b 00 00 | ........present............).{.. |
| 3760 | 00 1f 20 20 20 20 20 20 20 20 20 20 20 20 67 72 61 70 68 69 63 73 5f 71 75 65 75 65 20 3d 20 69 | ..............graphics_queue.=.i |
| 3780 | 3b 00 00 00 12 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 09 20 20 20 20 20 | ;................break;......... |
| 37a0 | 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 00 00 00 00 24 20 20 20 20 69 66 28 67 72 61 70 | ...}........}.......$....if(grap |
| 37c0 | 68 69 63 73 5f 71 75 65 75 65 20 3d 3d 20 55 49 4e 54 33 32 5f 4d 41 58 29 00 00 00 21 20 20 20 | hics_queue.==.UINT32_MAX)...!... |
| 37e0 | 20 20 20 20 20 64 69 65 28 22 6e 6f 20 67 72 61 70 68 69 63 73 20 71 75 65 75 65 22 29 3b 00 00 | .....die("no.graphics.queue");.. |
| 3800 | 00 00 00 00 00 1a 20 20 20 20 66 6c 6f 61 74 20 70 72 69 6f 72 69 74 79 20 3d 20 31 2e 30 66 3b | ..........float.priority.=.1.0f; |
| 3820 | 00 00 00 00 00 00 00 23 20 20 20 20 56 6b 44 65 76 69 63 65 51 75 65 75 65 43 72 65 61 74 65 49 | .......#....VkDeviceQueueCreateI |
| 3840 | 6e 66 6f 20 71 63 69 20 3d 20 7b 00 00 00 3c 20 20 20 20 20 20 20 20 2e 73 54 79 70 65 20 3d 20 | nfo.qci.=.{...<.........sType.=. |
| 3860 | 56 4b 5f 53 54 52 55 43 54 55 52 45 5f 54 59 50 45 5f 44 45 56 49 43 45 5f 51 55 45 55 45 5f 43 | VK_STRUCTURE_TYPE_DEVICE_QUEUE_C |
| 3880 | 52 45 41 54 45 5f 49 4e 46 4f 2c 00 00 00 2b 20 20 20 20 20 20 20 20 2e 71 75 65 75 65 46 61 6d | REATE_INFO,...+.........queueFam |
| 38a0 | 69 6c 79 49 6e 64 65 78 20 3d 20 67 72 61 70 68 69 63 73 5f 71 75 65 75 65 2c 00 00 00 18 20 20 | ilyIndex.=.graphics_queue,...... |
| 38c0 | 20 20 20 20 20 20 2e 71 75 65 75 65 43 6f 75 6e 74 20 3d 20 31 2c 00 00 00 25 20 20 20 20 20 20 | .......queueCount.=.1,...%...... |
| 38e0 | 20 20 2e 70 51 75 65 75 65 50 72 69 6f 72 69 74 69 65 73 20 3d 20 26 70 72 69 6f 72 69 74 79 00 | ...pQueuePriorities.=.&priority. |
| 3900 | 00 00 06 20 20 20 20 7d 3b 00 00 00 00 00 00 00 21 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 | .......};.......!....const.char. |
| 3920 | 2a 64 65 76 69 63 65 5f 65 78 74 73 5b 5d 20 3d 20 7b 00 00 00 27 20 20 20 20 20 20 20 20 56 4b | *device_exts[].=.{...'........VK |
| 3940 | 5f 4b 48 52 5f 53 57 41 50 43 48 41 49 4e 5f 45 58 54 45 4e 53 49 4f 4e 5f 4e 41 4d 45 00 00 00 | _KHR_SWAPCHAIN_EXTENSION_NAME... |
| 3960 | 06 20 20 20 20 7d 3b 00 00 00 00 00 00 00 1e 20 20 20 20 56 6b 44 65 76 69 63 65 43 72 65 61 74 | .....};............VkDeviceCreat |
| 3980 | 65 49 6e 66 6f 20 64 63 69 20 3d 20 7b 00 00 00 36 20 20 20 20 20 20 20 20 2e 73 54 79 70 65 20 | eInfo.dci.=.{...6.........sType. |
| 39a0 | 3d 20 56 4b 5f 53 54 52 55 43 54 55 52 45 5f 54 59 50 45 5f 44 45 56 49 43 45 5f 43 52 45 41 54 | =.VK_STRUCTURE_TYPE_DEVICE_CREAT |
| 39c0 | 45 5f 49 4e 46 4f 2c 00 00 00 22 20 20 20 20 20 20 20 20 2e 71 75 65 75 65 43 72 65 61 74 65 49 | E_INFO,...".........queueCreateI |
| 39e0 | 6e 66 6f 43 6f 75 6e 74 20 3d 20 31 2c 00 00 00 22 20 20 20 20 20 20 20 20 2e 70 51 75 65 75 65 | nfoCount.=.1,...".........pQueue |
| 3a00 | 43 72 65 61 74 65 49 6e 66 6f 73 20 3d 20 26 71 63 69 2c 00 00 00 23 20 20 20 20 20 20 20 20 2e | CreateInfos.=.&qci,...#......... |
| 3a20 | 65 6e 61 62 6c 65 64 45 78 74 65 6e 73 69 6f 6e 43 6f 75 6e 74 20 3d 20 31 2c 00 00 00 2e 20 20 | enabledExtensionCount.=.1,...... |
| 3a40 | 20 20 20 20 20 20 2e 70 70 45 6e 61 62 6c 65 64 45 78 74 65 6e 73 69 6f 6e 4e 61 6d 65 73 20 3d | .......ppEnabledExtensionNames.= |
| 3a60 | 20 64 65 76 69 63 65 5f 65 78 74 73 00 00 00 06 20 20 20 20 7d 3b 00 00 00 00 00 00 00 14 20 20 | .device_exts........};.......... |
| 3a80 | 20 20 56 6b 44 65 76 69 63 65 20 64 65 76 69 63 65 3b 00 00 00 00 00 00 00 0a 20 20 20 20 43 48 | ..VkDevice.device;............CH |
| 3aa0 | 45 43 4b 28 00 00 00 17 20 20 20 20 20 20 20 20 76 6b 43 72 65 61 74 65 44 65 76 69 63 65 28 00 | ECK(............vkCreateDevice(. |
| 3ac0 | 00 00 10 20 20 20 20 20 20 20 20 20 20 20 20 67 70 75 2c 00 00 00 11 20 20 20 20 20 20 20 20 20 | ...............gpu,............. |
| 3ae0 | 20 20 20 26 64 63 69 2c 00 00 00 11 20 20 20 20 20 20 20 20 20 20 20 20 4e 55 4c 4c 2c 00 00 00 | ...&dci,................NULL,... |
| 3b00 | 13 20 20 20 20 20 20 20 20 20 20 20 20 26 64 65 76 69 63 65 00 00 00 09 20 20 20 20 20 20 20 20 | .............&device............ |
| 3b20 | 29 00 00 00 06 20 20 20 20 29 3b 00 00 00 00 00 00 00 30 20 20 20 20 70 72 69 6e 74 66 28 22 76 | )........);.......0....printf("v |
| 3b40 | 75 6c 6b 61 6e 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 73 75 63 63 65 73 73 66 75 6c 6c 79 5c 6e | ulkan.initialized.successfully\n |
| 3b60 | 22 29 3b 00 00 00 00 00 00 00 14 20 20 20 20 69 6e 74 20 72 75 6e 6e 69 6e 67 20 3d 20 31 3b 00 | ");............int.running.=.1;. |
| 3b80 | 00 00 00 00 00 00 14 20 20 20 20 77 68 69 6c 65 28 72 75 6e 6e 69 6e 67 29 20 7b 00 00 00 00 00 | ...........while(running).{..... |
| 3ba0 | 00 00 1e 20 20 20 20 20 20 20 20 77 68 69 6c 65 28 58 50 65 6e 64 69 6e 67 28 64 70 79 29 29 20 | ...........while(XPending(dpy)). |
| 3bc0 | 7b 00 00 00 00 00 00 00 16 20 20 20 20 20 20 20 20 20 20 20 20 58 45 76 65 6e 74 20 65 76 3b 00 | {....................XEvent.ev;. |
| 3be0 | 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 58 4e 65 78 74 45 76 65 6e 74 28 64 70 | ...................XNextEvent(dp |
| 3c00 | 79 2c 26 65 76 29 3b 00 00 00 00 00 00 00 25 20 20 20 20 20 20 20 20 20 20 20 20 69 66 28 65 76 | y,&ev);.......%............if(ev |
| 3c20 | 2e 74 79 70 65 20 3d 3d 20 4b 65 79 50 72 65 73 73 29 20 7b 00 00 00 00 00 00 00 1b 20 20 20 20 | .type.==.KeyPress).{............ |
| 3c40 | 20 20 20 20 20 20 20 20 20 20 20 20 4b 65 79 53 79 6d 20 6b 73 20 3d 00 00 00 22 20 20 20 20 20 | ............KeySym.ks.=..."..... |
| 3c60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 58 4c 6f 6f 6b 75 70 4b 65 79 73 79 6d 28 00 00 00 | ...............XLookupKeysym(... |
| 3c80 | 21 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 65 76 2e 78 6b 65 | !........................&ev.xke |
| 3ca0 | 79 2c 00 00 00 19 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 00 | y,............................0. |
| 3cc0 | 00 00 16 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 00 00 00 00 00 00 00 | .......................);....... |
| 3ce0 | 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 28 6b 73 20 3d 3d 20 58 4b 5f 45 73 63 | #................if(ks.==.XK_Esc |
| 3d00 | 61 70 65 29 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 75 6e 6e | ape)........................runn |
| 3d20 | 69 6e 67 20 3d 20 30 3b 00 00 00 0d 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 00 00 00 00 | ing.=.0;................}....... |
| 3d40 | 28 20 20 20 20 20 20 20 20 20 20 20 20 69 66 28 65 76 2e 74 79 70 65 20 3d 3d 20 44 65 73 74 72 | (............if(ev.type.==.Destr |
| 3d60 | 6f 79 4e 6f 74 69 66 79 29 00 00 00 1c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 75 6e | oyNotify)....................run |
| 3d80 | 6e 69 6e 67 20 3d 20 30 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 00 00 00 00 1e 20 20 | ning.=.0;............}.......... |
| 3da0 | 20 20 20 20 20 20 73 74 72 75 63 74 20 74 69 6d 65 73 70 65 63 20 74 73 20 3d 20 7b 00 00 00 18 | ......struct.timespec.ts.=.{.... |
| 3dc0 | 20 20 20 20 20 20 20 20 20 20 20 20 2e 74 76 5f 73 65 63 20 3d 20 30 2c 00 00 00 1f 20 20 20 20 | .............tv_sec.=.0,........ |
| 3de0 | 20 20 20 20 20 20 20 20 2e 74 76 5f 6e 73 65 63 20 3d 20 31 36 30 30 30 30 30 30 00 00 00 0a 20 | .........tv_nsec.=.16000000..... |
| 3e00 | 20 20 20 20 20 20 20 7d 3b 00 00 00 00 00 00 00 1c 20 20 20 20 20 20 20 20 6e 61 6e 6f 73 6c 65 | .......};................nanosle |
| 3e20 | 65 70 28 26 74 73 2c 4e 55 4c 4c 29 3b 00 00 00 05 20 20 20 20 7d 00 00 00 00 00 00 00 21 20 20 | ep(&ts,NULL);........}.......!.. |
| 3e40 | 20 20 76 6b 44 65 73 74 72 6f 79 44 65 76 69 63 65 28 64 65 76 69 63 65 2c 4e 55 4c 4c 29 3b 00 | ..vkDestroyDevice(device,NULL);. |
| 3e60 | 00 00 00 00 00 00 18 20 20 20 20 76 6b 44 65 73 74 72 6f 79 53 75 72 66 61 63 65 4b 48 52 28 00 | ...........vkDestroySurfaceKHR(. |
| 3e80 | 00 00 11 20 20 20 20 20 20 20 20 69 6e 73 74 61 6e 63 65 2c 00 00 00 10 20 20 20 20 20 20 20 20 | ...........instance,............ |
| 3ea0 | 73 75 72 66 61 63 65 2c 00 00 00 0c 20 20 20 20 20 20 20 20 4e 55 4c 4c 00 00 00 06 20 20 20 20 | surface,............NULL........ |
| 3ec0 | 29 3b 00 00 00 00 00 00 00 25 20 20 20 20 76 6b 44 65 73 74 72 6f 79 49 6e 73 74 61 6e 63 65 28 | );.......%....vkDestroyInstance( |
| 3ee0 | 69 6e 73 74 61 6e 63 65 2c 4e 55 4c 4c 29 3b 00 00 00 00 00 00 00 1c 20 20 20 20 58 44 65 73 74 | instance,NULL);............XDest |
| 3f00 | 72 6f 79 57 69 6e 64 6f 77 28 64 70 79 2c 77 69 6e 29 3b 00 00 00 00 00 00 00 17 20 20 20 20 58 | royWindow(dpy,win);............X |
| 3f20 | 43 6c 6f 73 65 44 69 73 70 6c 61 79 28 64 70 79 29 3b 00 00 00 00 00 00 00 0d 20 20 20 20 72 65 | CloseDisplay(dpy);............re |
| 3f40 | 74 75 72 6e 20 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 c5 01 00 00 | turn.0;....}5................... |
| 3f60 | 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 74 21 00 00 00 00 00 00 01 00 00 00 | ....................t!.......... |
| 3f80 | 00 00 00 00 35 81 5f d0 00 00 00 0c 00 00 00 0e 00 00 00 00 00 00 00 00 00 00 00 0d 00 00 00 01 | ....5._......................... |
| 3fa0 | 00 00 00 00 00 00 00 00 ff ff ff ff 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4000 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4080 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 40a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 40c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 40e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4100 | 00 00 00 00 00 00 00 00 00 00 6a 08 f1 d0 04 01 00 00 00 00 00 f5 18 00 00 00 f1 00 00 00 00 00 | ..........j..................... |
| 4120 | 00 00 00 00 00 00 01 00 00 00 12 20 20 20 20 58 53 65 74 57 4d 50 72 6f 74 6f 63 6f 6c f5 18 00 | ...............XSetWMProtocol... |
| 4140 | 00 00 f2 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4160 | 01 00 00 00 00 f5 18 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 35 81 f5 18 00 00 00 00 00 | .......................5........ |
| 4180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f1 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 41a0 | 00 00 00 00 00 00 00 f9 0f 00 00 00 00 00 00 f5 18 00 00 00 00 f1 00 00 00 12 00 00 00 00 00 00 | ................................ |
| 41c0 | 00 00 00 00 00 c7 00 00 00 00 00 00 00 f9 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c9 0d 00 | ................................ |
| 41e0 | 00 00 00 00 00 35 81 5f d0 00 00 00 0d 00 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 0e 00 00 01 | .....5._........................ |
| 4200 | b8 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 42a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 42c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 42e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4360 | 00 00 00 00 00 00 00 00 00 00 00 6a 08 f1 d1 04 01 00 00 00 00 00 f5 18 00 00 01 b7 00 00 01 b8 | ...........j.................... |
| 4380 | 00 00 00 00 00 00 00 01 00 00 00 03 60 60 60 35 81 f5 18 00 00 00 00 b7 01 00 00 00 00 00 00 01 | ............```5................ |
| 43a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 be 1d 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 | ................................ |
| 43c0 | 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 0e 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 0f 00 | .......5._...................... |
| 43e0 | 00 01 b8 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 | ................................ |
| 4400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4460 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 44a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 44c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 44e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 08 f1 d2 04 01 00 00 00 00 00 f5 18 00 00 01 b7 00 00 | .............j.................. |
| 4560 | 01 b8 00 00 00 00 00 00 00 01 00 00 00 00 35 81 f5 18 00 00 00 00 b7 01 00 00 00 00 00 00 01 00 | ..............5................. |
| 4580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 be 1d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 | ................................ |
| 45a0 | 00 00 00 00 00 00 35 81 5f d0 00 00 00 0f 00 00 00 11 00 00 00 00 00 00 00 00 00 00 00 10 00 00 | ......5._....................... |
| 45c0 | 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 45e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 46a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 46c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 46e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4700 | 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00 00 | ................................ |
| 4720 | 00 00 00 56 00 00 00 00 00 00 00 00 6a 08 f1 d5 04 01 00 00 00 05 00 f5 18 00 00 00 00 00 00 00 | ...V........j................... |
| 4740 | 01 00 00 00 00 00 00 00 20 00 00 00 04 60 60 60 63 00 00 00 02 2f 2a 00 00 00 27 56 45 52 59 20 | .............```c..../*...'VERY. |
| 4760 | 6c 61 72 67 65 20 56 75 6c 6b 61 6e 20 72 65 6e 64 65 72 65 72 20 6f 6d 69 74 74 65 64 3f 20 4e | large.Vulkan.renderer.omitted?.N |
| 4780 | 6f 2e 00 00 00 28 54 68 69 73 20 69 73 20 61 20 52 45 41 4c 20 6d 69 6e 69 6d 61 6c 20 74 65 72 | o....(This.is.a.REAL.minimal.ter |
| 47a0 | 72 61 69 6e 20 72 65 6e 64 65 72 65 72 2e 00 00 00 00 00 00 00 09 46 45 41 54 55 52 45 53 3a 00 | rain.renderer.........FEATURES:. |
| 47c0 | 00 00 0e 2d 20 56 75 6c 6b 61 6e 20 2b 20 58 31 31 00 00 00 0b 2d 20 73 77 61 70 63 68 61 69 6e | ...-.Vulkan.+.X11....-.swapchain |
| 47e0 | 00 00 00 0c 2d 20 72 65 6e 64 65 72 70 61 73 73 00 00 00 18 2d 20 72 65 73 69 7a 65 2d 73 61 66 | ....-.renderpass....-.resize-saf |
| 4800 | 65 20 72 65 63 72 65 61 74 69 6f 6e 00 00 00 0e 2d 20 64 65 70 74 68 20 62 75 66 66 65 72 00 00 | e.recreation....-.depth.buffer.. |
| 4820 | 00 1a 2d 20 64 79 6e 61 6d 69 63 20 76 69 65 77 70 6f 72 74 2f 73 63 69 73 73 6f 72 00 00 00 14 | ..-.dynamic.viewport/scissor.... |
| 4840 | 2d 20 74 65 72 72 61 69 6e 20 67 65 6e 65 72 61 74 69 6f 6e 00 00 00 13 2d 20 69 6e 64 65 78 65 | -.terrain.generation....-.indexe |
| 4860 | 64 20 72 65 6e 64 65 72 69 6e 67 00 00 00 13 2d 20 57 41 53 44 20 2b 20 6d 6f 75 73 65 20 6c 6f | d.rendering....-.WASD.+.mouse.lo |
| 4880 | 6f 6b 00 00 00 18 2d 20 66 6f 67 20 2b 20 6c 69 67 68 74 69 6e 67 20 73 68 61 64 65 72 73 00 00 | ok....-.fog.+.lighting.shaders.. |
| 48a0 | 00 12 2d 20 64 6f 75 62 6c 65 20 62 75 66 66 65 72 69 6e 67 00 00 00 11 2d 20 70 72 6f 70 65 72 | ..-.double.buffering....-.proper |
| 48c0 | 20 73 68 75 74 64 6f 77 6e 00 00 00 00 00 00 00 06 46 49 4c 45 53 3a 00 00 00 0a 20 20 20 20 6d | .shutdown........FILES:........m |
| 48e0 | 61 69 6e 2e 63 00 00 00 0f 20 20 20 20 73 68 61 64 65 72 2e 76 65 72 74 00 00 00 0f 20 20 20 20 | ain.c........shader.vert........ |
| 4900 | 73 68 61 64 65 72 2e 66 72 61 67 00 00 00 00 00 00 00 06 42 55 49 4c 44 3a 00 00 00 21 20 20 20 | shader.frag........BUILD:...!... |
| 4920 | 20 67 6c 73 6c 63 20 73 68 61 64 65 72 2e 76 65 72 74 20 2d 6f 20 76 65 72 74 2e 73 70 76 00 00 | .glslc.shader.vert.-o.vert.spv.. |
| 4940 | 00 21 20 20 20 20 67 6c 73 6c 63 20 73 68 61 64 65 72 2e 66 72 61 67 20 2d 6f 20 66 72 61 67 2e | .!....glslc.shader.frag.-o.frag. |
| 4960 | 73 70 76 00 00 00 00 00 00 00 1e 20 20 20 20 63 63 20 6d 61 69 6e 2e 63 20 2d 4f 32 20 2d 6f 20 | spv............cc.main.c.-O2.-o. |
| 4980 | 74 65 72 72 61 69 6e 20 5c 00 00 00 1a 20 20 20 20 20 20 20 20 2d 6c 76 75 6c 6b 61 6e 20 2d 6c | terrain.\............-lvulkan.-l |
| 49a0 | 58 31 31 20 2d 6c 6d 00 00 00 02 2a 2f 00 00 00 00 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 | X11.-lm....*/....5.............. |
| 49c0 | 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 02 00 00 00 00 00 | ................................ |
| 49e0 | 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 10 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 | .........5._.................... |
| 4a00 | 11 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4a60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4a80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 08 f2 52 04 01 00 00 00 00 00 f5 18 00 00 00 00 | ...............j..R............. |
| 4b80 | 00 00 00 02 00 00 00 00 00 00 01 97 00 00 00 13 23 64 65 66 69 6e 65 20 5f 47 4e 55 5f 53 4f 55 | ................#define._GNU_SOU |
| 4ba0 | 52 43 45 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 | RCE....#include.<stdio.h>....#in |
| 4bc0 | 63 6c 75 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 | clude.<stdlib.h>....#include.<st |
| 4be0 | 64 69 6e 74 2e 68 3e 00 00 00 13 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 00 00 | dint.h>....#include.<string.h>.. |
| 4c00 | 00 11 23 69 6e 63 6c 75 64 65 20 3c 6d 61 74 68 2e 68 3e 00 00 00 00 00 00 00 20 23 64 65 66 69 | ..#include.<math.h>........#defi |
| 4c20 | 6e 65 20 56 4b 5f 55 53 45 5f 50 4c 41 54 46 4f 52 4d 5f 58 4c 49 42 5f 4b 48 52 00 00 00 1a 23 | ne.VK_USE_PLATFORM_XLIB_KHR....# |
| 4c40 | 69 6e 63 6c 75 64 65 20 3c 76 75 6c 6b 61 6e 2f 76 75 6c 6b 61 6e 2e 68 3e 00 00 00 00 00 00 00 | include.<vulkan/vulkan.h>....... |
| 4c60 | 15 23 69 6e 63 6c 75 64 65 20 3c 58 31 31 2f 58 6c 69 62 2e 68 3e 00 00 00 17 23 69 6e 63 6c 75 | .#include.<X11/Xlib.h>....#inclu |
| 4c80 | 64 65 20 3c 58 31 31 2f 6b 65 79 73 79 6d 2e 68 3e 00 00 00 00 00 00 00 12 23 64 65 66 69 6e 65 | de.<X11/keysym.h>........#define |
| 4ca0 | 20 57 49 44 54 48 20 31 32 38 30 00 00 00 12 23 64 65 66 69 6e 65 20 48 45 49 47 48 54 20 37 32 | .WIDTH.1280....#define.HEIGHT.72 |
| 4cc0 | 30 00 00 00 10 23 64 65 66 69 6e 65 20 47 52 49 44 20 31 32 38 00 00 00 14 23 64 65 66 69 6e 65 | 0....#define.GRID.128....#define |
| 4ce0 | 20 4d 41 58 5f 46 52 41 4d 45 53 20 32 00 00 00 18 23 64 65 66 69 6e 65 20 50 49 20 33 2e 31 34 | .MAX_FRAMES.2....#define.PI.3.14 |
| 4d00 | 31 35 39 32 36 35 33 35 66 00 00 00 00 00 00 00 10 74 79 70 65 64 65 66 20 73 74 72 75 63 74 20 | 15926535f........typedef.struct. |
| 4d20 | 7b 00 00 00 11 20 20 20 20 66 6c 6f 61 74 20 70 6f 73 5b 33 5d 3b 00 00 00 14 20 20 20 20 66 6c | {........float.pos[3];........fl |
| 4d40 | 6f 61 74 20 6e 6f 72 6d 61 6c 5b 33 5d 3b 00 00 00 13 20 20 20 20 66 6c 6f 61 74 20 63 6f 6c 6f | oat.normal[3];........float.colo |
| 4d60 | 72 5b 33 5d 3b 00 00 00 0b 7d 20 76 65 72 74 65 78 5f 74 3b 00 00 00 00 00 00 00 10 74 79 70 65 | r[3];....}.vertex_t;........type |
| 4d80 | 64 65 66 20 73 74 72 75 63 74 20 7b 00 00 00 13 20 20 20 20 66 6c 6f 61 74 20 76 69 65 77 5b 31 | def.struct.{........float.view[1 |
| 4da0 | 36 5d 3b 00 00 00 13 20 20 20 20 66 6c 6f 61 74 20 70 72 6f 6a 5b 31 36 5d 3b 00 00 00 11 20 20 | 6];........float.proj[16];...... |
| 4dc0 | 20 20 66 6c 6f 61 74 20 63 61 6d 5b 34 5d 3b 00 00 00 08 7d 20 75 62 6f 5f 74 3b 00 00 00 00 00 | ..float.cam[4];....}.ubo_t;..... |
| 4de0 | 00 00 20 73 74 61 74 69 63 20 76 6f 69 64 20 64 69 65 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 | ...static.void.die(const.char.*s |
| 4e00 | 29 20 7b 00 00 00 1d 20 20 20 20 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 22 25 73 5c 6e 22 | ).{........fprintf(stderr,"%s\n" |
| 4e20 | 2c 73 29 3b 00 00 00 0c 20 20 20 20 65 78 69 74 28 31 29 3b 00 00 00 01 7d 00 00 00 00 00 00 00 | ,s);........exit(1);....}....... |
| 4e40 | 17 23 64 65 66 69 6e 65 20 43 48 45 43 4b 28 78 29 20 64 6f 20 7b 20 5c 00 00 00 17 20 20 20 20 | .#define.CHECK(x).do.{.\........ |
| 4e60 | 56 6b 52 65 73 75 6c 74 20 72 20 3d 20 28 78 29 3b 20 5c 00 00 00 1a 20 20 20 20 69 66 28 72 20 | VkResult.r.=.(x);.\........if(r. |
| 4e80 | 21 3d 20 56 4b 5f 53 55 43 43 45 53 53 29 7b 20 5c 00 00 00 3b 20 20 20 20 20 20 20 20 66 70 72 | !=.VK_SUCCESS){.\...;........fpr |
| 4ea0 | 69 6e 74 66 28 73 74 64 65 72 72 2c 22 76 6b 20 65 72 72 20 25 64 20 6c 69 6e 65 20 25 64 5c 6e | intf(stderr,"vk.err.%d.line.%d\n |
| 4ec0 | 22 2c 72 2c 5f 5f 4c 49 4e 45 5f 5f 29 3b 20 5c 00 00 00 12 20 20 20 20 20 20 20 20 65 78 69 74 | ",r,__LINE__);.\............exit |
| 4ee0 | 28 31 29 3b 20 5c 00 00 00 07 20 20 20 20 7d 20 5c 00 00 00 0a 7d 20 77 68 69 6c 65 28 30 29 00 | (1);.\........}.\....}.while(0). |
| 4f00 | 00 00 00 00 00 00 27 73 74 61 74 69 63 20 66 6c 6f 61 74 20 74 65 72 72 61 69 6e 28 66 6c 6f 61 | ......'static.float.terrain(floa |
| 4f20 | 74 20 78 2c 66 6c 6f 61 74 20 7a 29 20 7b 00 00 00 0a 20 20 20 20 72 65 74 75 72 6e 00 00 00 1c | t.x,float.z).{........return.... |
| 4f40 | 20 20 20 20 20 20 20 20 73 69 6e 66 28 78 2a 30 2e 30 37 66 29 2a 33 2e 30 66 20 2b 00 00 00 1c | ........sinf(x*0.07f)*3.0f.+.... |
| 4f60 | 20 20 20 20 20 20 20 20 63 6f 73 66 28 7a 2a 30 2e 30 35 66 29 2a 32 2e 30 66 20 2b 00 00 00 1f | ........cosf(z*0.05f)*2.0f.+.... |
| 4f80 | 20 20 20 20 20 20 20 20 73 69 6e 66 28 28 78 2b 7a 29 2a 30 2e 30 33 66 29 2a 35 2e 30 66 3b 00 | ........sinf((x+z)*0.03f)*5.0f;. |
| 4fa0 | 00 00 01 7d 00 00 00 00 00 00 00 1a 73 74 61 74 69 63 20 76 6f 69 64 20 62 75 69 6c 64 5f 74 65 | ...}........static.void.build_te |
| 4fc0 | 72 72 61 69 6e 28 00 00 00 15 20 20 20 20 76 65 72 74 65 78 5f 74 20 2a 2a 76 65 72 74 73 2c 00 | rrain(........vertex_t.**verts,. |
| 4fe0 | 00 00 14 20 20 20 20 75 69 6e 74 33 32 5f 74 20 2a 2a 69 6e 64 73 2c 00 00 00 15 20 20 20 20 75 | .......uint32_t.**inds,........u |
| 5000 | 69 6e 74 33 32 5f 74 20 2a 76 63 6f 75 6e 74 2c 00 00 00 14 20 20 20 20 75 69 6e 74 33 32 5f 74 | int32_t.*vcount,........uint32_t |
| 5020 | 20 2a 69 63 6f 75 6e 74 00 00 00 03 29 20 7b 00 00 00 00 00 00 00 18 20 20 20 20 2a 76 63 6f 75 | .*icount....).{............*vcou |
| 5040 | 6e 74 20 3d 20 47 52 49 44 2a 47 52 49 44 3b 00 00 00 22 20 20 20 20 2a 69 63 6f 75 6e 74 20 3d | nt.=.GRID*GRID;..."....*icount.= |
| 5060 | 20 28 47 52 49 44 2d 31 29 2a 28 47 52 49 44 2d 31 29 2a 36 3b 00 00 00 00 00 00 00 2e 20 20 20 | .(GRID-1)*(GRID-1)*6;........... |
| 5080 | 20 2a 76 65 72 74 73 20 3d 20 63 61 6c 6c 6f 63 28 2a 76 63 6f 75 6e 74 2c 73 69 7a 65 6f 66 28 | .*verts.=.calloc(*vcount,sizeof( |
| 50a0 | 76 65 72 74 65 78 5f 74 29 29 3b 00 00 00 2e 20 20 20 20 2a 69 6e 64 73 20 20 3d 20 63 61 6c 6c | vertex_t));........*inds..=.call |
| 50c0 | 6f 63 28 2a 69 63 6f 75 6e 74 2c 73 69 7a 65 6f 66 28 75 69 6e 74 33 32 5f 74 29 29 3b 00 00 00 | oc(*icount,sizeof(uint32_t));... |
| 50e0 | 00 00 00 00 0d 20 20 20 20 69 6e 74 20 76 69 3d 30 3b 00 00 00 00 00 00 00 1d 20 20 20 20 66 6f | .........int.vi=0;............fo |
| 5100 | 72 28 69 6e 74 20 7a 3d 30 3b 7a 3c 47 52 49 44 3b 7a 2b 2b 29 20 7b 00 00 00 21 20 20 20 20 20 | r(int.z=0;z<GRID;z++).{...!..... |
| 5120 | 20 20 20 66 6f 72 28 69 6e 74 20 78 3d 30 3b 78 3c 47 52 49 44 3b 78 2b 2b 29 20 7b 00 00 00 00 | ...for(int.x=0;x<GRID;x++).{.... |
| 5140 | 00 00 00 1e 20 20 20 20 20 20 20 20 20 20 20 20 66 6c 6f 61 74 20 66 78 3d 78 2d 47 52 49 44 2f | ................float.fx=x-GRID/ |
| 5160 | 32 3b 00 00 00 1e 20 20 20 20 20 20 20 20 20 20 20 20 66 6c 6f 61 74 20 66 7a 3d 7a 2d 47 52 49 | 2;................float.fz=z-GRI |
| 5180 | 44 2f 32 3b 00 00 00 00 00 00 00 23 20 20 20 20 20 20 20 20 20 20 20 20 66 6c 6f 61 74 20 68 3d | D/2;.......#............float.h= |
| 51a0 | 74 65 72 72 61 69 6e 28 66 78 2c 66 7a 29 3b 00 00 00 00 00 00 00 18 20 20 20 20 20 20 20 20 20 | terrain(fx,fz);................. |
| 51c0 | 20 20 20 66 6c 6f 61 74 20 72 2c 67 2c 62 3b 00 00 00 00 00 00 00 18 20 20 20 20 20 20 20 20 20 | ...float.r,g,b;................. |
| 51e0 | 20 20 20 69 66 28 68 20 3c 20 2d 32 29 20 7b 00 00 00 24 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...if(h.<.-2).{...$............. |
| 5200 | 20 20 20 72 3d 30 2e 31 3b 20 67 3d 30 2e 32 3b 20 62 3d 30 2e 37 3b 00 00 00 1e 20 20 20 20 20 | ...r=0.1;.g=0.2;.b=0.7;......... |
| 5220 | 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 28 68 20 3c 20 32 29 20 7b 00 00 00 24 20 20 20 | .......}.else.if(h.<.2).{...$... |
| 5240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 72 3d 30 2e 32 3b 20 67 3d 30 2e 37 3b 20 62 3d 30 2e 32 | .............r=0.2;.g=0.7;.b=0.2 |
| 5260 | 3b 00 00 00 1e 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 28 68 20 3c 20 35 | ;................}.else.if(h.<.5 |
| 5280 | 29 20 7b 00 00 00 25 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 3d 30 2e 34 3b 20 67 3d | ).{...%................r=0.4;.g= |
| 52a0 | 30 2e 33 35 3b 20 62 3d 30 2e 33 3b 00 00 00 14 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c | 0.35;.b=0.3;................}.el |
| 52c0 | 73 65 20 7b 00 00 00 24 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 3d 30 2e 39 3b 20 67 | se.{...$................r=0.9;.g |
| 52e0 | 3d 30 2e 39 3b 20 62 3d 30 2e 39 3b 00 00 00 0d 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 | =0.9;.b=0.9;................}... |
| 5300 | 00 00 00 00 26 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 76 65 72 74 73 29 5b 76 69 5d 20 3d 20 | ....&............(*verts)[vi].=. |
| 5320 | 28 76 65 72 74 65 78 5f 74 29 7b 00 00 00 1a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b | (vertex_t){....................{ |
| 5340 | 66 78 2c 68 2c 66 7a 7d 2c 00 00 00 18 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 30 2c | fx,h,fz},....................{0, |
| 5360 | 31 2c 30 7d 2c 00 00 00 17 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 72 2c 67 2c 62 7d | 1,0},....................{r,g,b} |
| 5380 | 00 00 00 0e 20 20 20 20 20 20 20 20 20 20 20 20 7d 3b 00 00 00 00 00 00 00 11 20 20 20 20 20 20 | ................};.............. |
| 53a0 | 20 20 20 20 20 20 76 69 2b 2b 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 | ......vi++;............}........ |
| 53c0 | 7d 00 00 00 00 00 00 00 0d 20 20 20 20 69 6e 74 20 69 69 3d 30 3b 00 00 00 00 00 00 00 1f 20 20 | }............int.ii=0;.......... |
| 53e0 | 20 20 66 6f 72 28 69 6e 74 20 7a 3d 30 3b 7a 3c 47 52 49 44 2d 31 3b 7a 2b 2b 29 20 7b 00 00 00 | ..for(int.z=0;z<GRID-1;z++).{... |
| 5400 | 23 20 20 20 20 20 20 20 20 66 6f 72 28 69 6e 74 20 78 3d 30 3b 78 3c 47 52 49 44 2d 31 3b 78 2b | #........for(int.x=0;x<GRID-1;x+ |
| 5420 | 2b 29 20 7b 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 32 5f 74 | +).{....................uint32_t |
| 5440 | 20 61 3d 7a 2a 47 52 49 44 2b 78 3b 00 00 00 1b 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 | .a=z*GRID+x;................uint |
| 5460 | 33 32 5f 74 20 62 3d 61 2b 31 3b 00 00 00 1e 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e 74 33 | 32_t.b=a+1;................uint3 |
| 5480 | 32 5f 74 20 63 3d 61 2b 47 52 49 44 3b 00 00 00 1b 20 20 20 20 20 20 20 20 20 20 20 20 75 69 6e | 2_t.c=a+GRID;................uin |
| 54a0 | 74 33 32 5f 74 20 64 3d 63 2b 31 3b 00 00 00 00 00 00 00 1c 20 20 20 20 20 20 20 20 20 20 20 20 | t32_t.d=c+1;.................... |
| 54c0 | 28 2a 69 6e 64 73 29 5b 69 69 2b 2b 5d 3d 61 3b 00 00 00 1c 20 20 20 20 20 20 20 20 20 20 20 20 | (*inds)[ii++]=a;................ |
| 54e0 | 28 2a 69 6e 64 73 29 5b 69 69 2b 2b 5d 3d 62 3b 00 00 00 1c 20 20 20 20 20 20 20 20 20 20 20 20 | (*inds)[ii++]=b;................ |
| 5500 | 28 2a 69 6e 64 73 29 5b 69 69 2b 2b 5d 3d 64 3b 00 00 00 00 00 00 00 1c 20 20 20 20 20 20 20 20 | (*inds)[ii++]=d;................ |
| 5520 | 20 20 20 20 28 2a 69 6e 64 73 29 5b 69 69 2b 2b 5d 3d 61 3b 00 00 00 1c 20 20 20 20 20 20 20 20 | ....(*inds)[ii++]=a;............ |
| 5540 | 20 20 20 20 28 2a 69 6e 64 73 29 5b 69 69 2b 2b 5d 3d 64 3b 00 00 00 1c 20 20 20 20 20 20 20 20 | ....(*inds)[ii++]=d;............ |
| 5560 | 20 20 20 20 28 2a 69 6e 64 73 29 5b 69 69 2b 2b 5d 3d 63 3b 00 00 00 09 20 20 20 20 20 20 20 20 | ....(*inds)[ii++]=c;............ |
| 5580 | 7d 00 00 00 05 20 20 20 20 7d 00 00 00 01 7d 00 00 00 00 00 00 00 18 73 74 61 74 69 63 20 73 69 | }........}....}........static.si |
| 55a0 | 7a 65 5f 74 20 72 65 61 64 5f 66 69 6c 65 28 00 00 00 15 20 20 20 20 63 6f 6e 73 74 20 63 68 61 | ze_t.read_file(........const.cha |
| 55c0 | 72 20 2a 70 61 74 68 2c 00 00 00 0e 20 20 20 20 63 68 61 72 20 2a 2a 6f 75 74 00 00 00 03 29 20 | r.*path,........char.**out....). |
| 55e0 | 7b 00 00 00 00 00 00 00 1d 20 20 20 20 46 49 4c 45 20 2a 66 3d 66 6f 70 65 6e 28 70 61 74 68 2c | {............FILE.*f=fopen(path, |
| 5600 | 22 72 62 22 29 3b 00 00 00 00 00 00 00 0a 20 20 20 20 69 66 28 21 66 29 00 00 00 12 20 20 20 20 | "rb");............if(!f)........ |
| 5620 | 20 20 20 20 64 69 65 28 70 61 74 68 29 3b 00 00 00 00 00 00 00 18 20 20 20 20 66 73 65 65 6b 28 | ....die(path);............fseek( |
| 5640 | 66 2c 30 2c 53 45 45 4b 5f 45 4e 44 29 3b 00 00 00 00 00 00 00 17 20 20 20 20 73 69 7a 65 5f 74 | f,0,SEEK_END);............size_t |
| 5660 | 20 73 7a 3d 66 74 65 6c 6c 28 66 29 3b 00 00 00 00 00 00 00 0e 20 20 20 20 72 65 77 69 6e 64 28 | .sz=ftell(f);............rewind( |
| 5680 | 66 29 3b 00 00 00 00 00 00 00 14 20 20 20 20 2a 6f 75 74 3d 6d 61 6c 6c 6f 63 28 73 7a 29 3b 00 | f);............*out=malloc(sz);. |
| 56a0 | 00 00 00 00 00 00 17 20 20 20 20 66 72 65 61 64 28 2a 6f 75 74 2c 31 2c 73 7a 2c 66 29 3b 00 00 | ...........fread(*out,1,sz,f);.. |
| 56c0 | 00 00 00 00 00 0e 20 20 20 20 66 63 6c 6f 73 65 28 66 29 3b 00 00 00 00 00 00 00 0e 20 20 20 20 | ..........fclose(f);............ |
| 56e0 | 72 65 74 75 72 6e 20 73 7a 3b 00 00 00 01 7d 00 00 00 00 00 00 00 22 73 74 61 74 69 63 20 56 6b | return.sz;....}......."static.Vk |
| 5700 | 53 68 61 64 65 72 4d 6f 64 75 6c 65 20 6c 6f 61 64 5f 73 68 61 64 65 72 28 00 00 00 11 20 20 20 | ShaderModule.load_shader(....... |
| 5720 | 20 56 6b 44 65 76 69 63 65 20 64 65 76 2c 00 00 00 14 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 | .VkDevice.dev,........const.char |
| 5740 | 20 2a 70 61 74 68 00 00 00 03 29 20 7b 00 00 00 00 00 00 00 0f 20 20 20 20 63 68 61 72 20 2a 64 | .*path....).{............char.*d |
| 5760 | 61 74 61 3b 00 00 00 24 20 20 20 20 73 69 7a 65 5f 74 20 73 7a 3d 72 65 61 64 5f 66 69 6c 65 28 | ata;...$....size_t.sz=read_file( |
| 5780 | 70 61 74 68 2c 26 64 61 74 61 29 3b 00 00 00 00 00 00 00 21 20 20 20 20 56 6b 53 68 61 64 65 72 | path,&data);.......!....VkShader |
| 57a0 | 4d 6f 64 75 6c 65 43 72 65 61 74 65 49 6e 66 6f 20 63 69 3d 7b 00 00 00 3b 20 20 20 20 20 20 20 | ModuleCreateInfo.ci={...;....... |
| 57c0 | 20 2e 73 54 79 70 65 3d 56 4b 5f 53 54 52 55 43 54 55 52 45 5f 54 59 50 45 5f 53 48 41 44 45 52 | ..sType=VK_STRUCTURE_TYPE_SHADER |
| 57e0 | 5f 4d 4f 44 55 4c 45 5f 43 52 45 41 54 45 5f 49 4e 46 4f 2c 00 00 00 15 20 20 20 20 20 20 20 20 | _MODULE_CREATE_INFO,............ |
| 5800 | 2e 63 6f 64 65 53 69 7a 65 3d 73 7a 2c 00 00 00 1e 20 20 20 20 20 20 20 20 2e 70 43 6f 64 65 3d | .codeSize=sz,.............pCode= |
| 5820 | 28 75 69 6e 74 33 32 5f 74 2a 29 64 61 74 61 00 00 00 06 20 20 20 20 7d 3b 00 00 00 00 00 00 00 | (uint32_t*)data........};....... |
| 5840 | 17 20 20 20 20 56 6b 53 68 61 64 65 72 4d 6f 64 75 6c 65 20 6d 6f 64 3b 00 00 00 00 00 00 00 1f | .....VkShaderModule.mod;........ |
| 5860 | 20 20 20 20 43 48 45 43 4b 28 76 6b 43 72 65 61 74 65 53 68 61 64 65 72 4d 6f 64 75 6c 65 28 00 | ....CHECK(vkCreateShaderModule(. |
| 5880 | 00 00 0c 20 20 20 20 20 20 20 20 64 65 76 2c 00 00 00 0c 20 20 20 20 20 20 20 20 26 63 69 2c 00 | ...........dev,............&ci,. |
| 58a0 | 00 00 0d 20 20 20 20 20 20 20 20 4e 55 4c 4c 2c 00 00 00 0c 20 20 20 20 20 20 20 20 26 6d 6f 64 | ...........NULL,............&mod |
| 58c0 | 00 00 00 07 20 20 20 20 29 29 3b 00 00 00 00 00 00 00 0f 20 20 20 20 66 72 65 65 28 64 61 74 61 | ........));............free(data |
| 58e0 | 29 3b 00 00 00 00 00 00 00 0f 20 20 20 20 72 65 74 75 72 6e 20 6d 6f 64 3b 00 00 00 01 7d 00 00 | );............return.mod;....}.. |
| 5900 | 00 00 00 00 00 0c 69 6e 74 20 6d 61 69 6e 28 29 20 7b 00 00 00 00 00 00 00 24 20 20 20 20 44 69 | ......int.main().{.......$....Di |
| 5920 | 73 70 6c 61 79 20 2a 64 70 79 3d 58 4f 70 65 6e 44 69 73 70 6c 61 79 28 4e 55 4c 4c 29 3b 00 00 | splay.*dpy=XOpenDisplay(NULL);.. |
| 5940 | 00 00 00 00 00 0c 20 20 20 20 69 66 28 21 64 70 79 29 00 00 00 1a 20 20 20 20 20 20 20 20 64 69 | ..........if(!dpy)............di |
| 5960 | 65 28 22 6e 6f 20 64 69 73 70 6c 61 79 22 29 3b 00 00 00 00 00 00 00 22 20 20 20 20 69 6e 74 20 | e("no.display");......."....int. |
| 5980 | 73 63 72 65 65 6e 3d 44 65 66 61 75 6c 74 53 63 72 65 65 6e 28 64 70 79 29 3b 00 00 00 00 00 00 | screen=DefaultScreen(dpy);...... |
| 59a0 | 00 23 20 20 20 20 57 69 6e 64 6f 77 20 77 69 6e 3d 58 43 72 65 61 74 65 53 69 6d 70 6c 65 57 69 | .#....Window.win=XCreateSimpleWi |
| 59c0 | 6e 64 6f 77 28 00 00 00 0c 20 20 20 20 20 20 20 20 64 70 79 2c 00 00 00 1f 20 20 20 20 20 20 20 | ndow(............dpy,........... |
| 59e0 | 20 52 6f 6f 74 57 69 6e 64 6f 77 28 64 70 79 2c 73 63 72 65 65 6e 29 2c 00 00 00 0a 20 20 20 20 | .RootWindow(dpy,screen),........ |
| 5a00 | 20 20 20 20 30 2c 00 00 00 0a 20 20 20 20 20 20 20 20 30 2c 00 00 00 0e 20 20 20 20 20 20 20 20 | ....0,............0,............ |
| 5a20 | 57 49 44 54 48 2c 00 00 00 0f 20 20 20 20 20 20 20 20 48 45 49 47 48 54 2c 00 00 00 0a 20 20 20 | WIDTH,............HEIGHT,....... |
| 5a40 | 20 20 20 20 20 30 2c 00 00 00 0a 20 20 20 20 20 20 20 20 30 2c 00 00 00 09 20 20 20 20 20 20 20 | .....0,............0,........... |
| 5a60 | 20 30 00 00 00 06 20 20 20 20 29 3b 00 00 00 00 00 00 00 22 20 20 20 20 58 53 74 6f 72 65 4e 61 | .0........);......."....XStoreNa |
| 5a80 | 6d 65 28 64 70 79 2c 77 69 6e 2c 22 74 65 72 72 61 69 6e 22 29 3b 00 00 00 00 00 00 00 11 20 20 | me(dpy,win,"terrain");.......... |
| 5aa0 | 20 20 58 53 65 6c 65 63 74 49 6e 70 75 74 28 00 00 00 0c 20 20 20 20 20 20 20 20 64 70 79 2c 00 | ..XSelectInput(............dpy,. |
| 5ac0 | 00 00 0c 20 20 20 20 20 20 20 20 77 69 6e 2c 00 00 00 16 20 20 20 20 20 20 20 20 4b 65 79 50 72 | ...........win,............KeyPr |
| 5ae0 | 65 73 73 4d 61 73 6b 20 7c 00 00 00 18 20 20 20 20 20 20 20 20 4b 65 79 52 65 6c 65 61 73 65 4d | essMask.|............KeyReleaseM |
| 5b00 | 61 73 6b 20 7c 00 00 00 1b 20 20 20 20 20 20 20 20 50 6f 69 6e 74 65 72 4d 6f 74 69 6f 6e 4d 61 | ask.|............PointerMotionMa |
| 5b20 | 73 6b 20 7c 00 00 00 1b 20 20 20 20 20 20 20 20 53 74 72 75 63 74 75 72 65 4e 6f 74 69 66 79 4d | sk.|............StructureNotifyM |
| 5b40 | 61 73 6b 00 00 00 06 20 20 20 20 29 3b 00 00 00 00 00 00 00 13 20 20 20 20 41 74 6f 6d 20 77 6d | ask........);............Atom.wm |
| 5b60 | 5f 64 65 6c 65 74 65 3d 00 00 00 14 20 20 20 20 20 20 20 20 58 49 6e 74 65 72 6e 41 74 6f 6d 28 | _delete=............XInternAtom( |
| 5b80 | 00 00 00 10 20 20 20 20 20 20 20 20 20 20 20 20 64 70 79 2c 00 00 00 1f 20 20 20 20 20 20 20 20 | ................dpy,............ |
| 5ba0 | 20 20 20 20 22 57 4d 5f 44 45 4c 45 54 45 5f 57 49 4e 44 4f 57 22 2c 00 00 00 11 20 20 20 20 20 | ...."WM_DELETE_WINDOW",......... |
| 5bc0 | 20 20 20 20 20 20 20 46 61 6c 73 65 00 00 00 0a 20 20 20 20 20 20 20 20 29 3b 00 00 00 00 00 00 | .......False............);...... |
| 5be0 | 00 14 20 20 20 20 58 53 65 74 57 4d 50 72 6f 74 6f 63 6f 6c 73 28 00 00 00 0c 20 20 20 20 20 20 | ......XSetWMProtocols(.......... |
| 5c00 | 20 20 64 70 79 2c 00 00 00 0c 20 20 20 20 20 20 20 20 77 69 6e 2c 00 00 00 13 20 20 20 20 20 20 | ..dpy,............win,.......... |
| 5c20 | 20 20 26 77 6d 5f 64 65 6c 65 74 65 2c 00 00 00 09 20 20 20 20 20 20 20 20 31 00 00 00 06 20 20 | ..&wm_delete,............1...... |
| 5c40 | 20 20 29 3b 00 00 00 00 00 00 00 18 20 20 20 20 58 4d 61 70 57 69 6e 64 6f 77 28 64 70 79 2c 77 | ..);............XMapWindow(dpy,w |
| 5c60 | 69 6e 29 3b 00 00 00 00 00 00 00 1b 20 20 20 20 56 6b 41 70 70 6c 69 63 61 74 69 6f 6e 49 6e 66 | in);............VkApplicationInf |
| 5c80 | 6f 20 61 70 70 3d 7b 00 00 00 32 20 20 20 20 20 20 20 20 2e 73 54 79 70 65 3d 56 4b 5f 53 54 52 | o.app={...2.........sType=VK_STR |
| 5ca0 | 55 43 54 55 52 45 5f 54 59 50 45 5f 41 50 50 4c 49 43 41 54 49 4f 4e 5f 49 4e 46 4f 2c 00 00 00 | UCTURE_TYPE_APPLICATION_INFO,... |
| 5cc0 | 24 20 20 20 20 20 20 20 20 2e 70 41 70 70 6c 69 63 61 74 69 6f 6e 4e 61 6d 65 3d 22 74 65 72 72 | $.........pApplicationName="terr |
| 5ce0 | 61 69 6e 22 2c 00 00 00 26 20 20 20 20 20 20 20 20 2e 61 70 69 56 65 72 73 69 6f 6e 3d 56 4b 5f | ain",...&.........apiVersion=VK_ |
| 5d00 | 41 50 49 5f 56 45 52 53 49 4f 4e 5f 31 5f 30 00 00 00 06 20 20 20 20 7d 3b 00 00 00 00 00 00 00 | API_VERSION_1_0........};....... |
| 5d20 | 18 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 65 78 74 73 5b 5d 3d 7b 00 00 00 26 20 20 20 | .....const.char.*exts[]={...&... |
| 5d40 | 20 20 20 20 20 56 4b 5f 4b 48 52 5f 53 55 52 46 41 43 45 5f 45 58 54 45 4e 53 49 4f 4e 5f 4e 41 | .....VK_KHR_SURFACE_EXTENSION_NA |
| 5d60 | 4d 45 2c 00 00 00 2a 20 20 20 20 20 20 20 20 56 4b 5f 4b 48 52 5f 58 4c 49 42 5f 53 55 52 46 41 | ME,...*........VK_KHR_XLIB_SURFA |
| 5d80 | 43 45 5f 45 58 54 45 4e 53 49 4f 4e 5f 4e 41 4d 45 00 00 00 06 20 20 20 20 7d 3b 00 00 00 00 00 | CE_EXTENSION_NAME........};..... |
| 5da0 | 00 00 1e 20 20 20 20 56 6b 49 6e 73 74 61 6e 63 65 43 72 65 61 74 65 49 6e 66 6f 20 69 63 69 3d | .......VkInstanceCreateInfo.ici= |
| 5dc0 | 7b 00 00 00 36 20 20 20 20 20 20 20 20 2e 73 54 79 70 65 3d 56 4b 5f 53 54 52 55 43 54 55 52 45 | {...6.........sType=VK_STRUCTURE |
| 5de0 | 5f 54 59 50 45 5f 49 4e 53 54 41 4e 43 45 5f 43 52 45 41 54 45 5f 49 4e 46 4f 2c 00 00 00 1f 20 | _TYPE_INSTANCE_CREATE_INFO,..... |
| 5e00 | 20 20 20 20 20 20 20 2e 70 41 70 70 6c 69 63 61 74 69 6f 6e 49 6e 66 6f 3d 26 61 70 70 2c 00 00 | ........pApplicationInfo=&app,.. |
| 5e20 | 00 21 20 20 20 20 20 20 20 20 2e 65 6e 61 62 6c 65 64 45 78 74 65 6e 73 69 6f 6e 43 6f 75 6e 74 | .!.........enabledExtensionCount |
| 5e40 | 3d 32 2c 00 00 00 25 20 20 20 20 20 20 20 20 2e 70 70 45 6e 61 62 6c 65 64 45 78 74 65 6e 73 69 | =2,...%.........ppEnabledExtensi |
| 5e60 | 6f 6e 4e 61 6d 65 73 3d 65 78 74 73 00 00 00 06 20 20 20 20 7d 3b 00 00 00 00 00 00 00 18 20 20 | onNames=exts........};.......... |
| 5e80 | 20 20 56 6b 49 6e 73 74 61 6e 63 65 20 69 6e 73 74 61 6e 63 65 3b 00 00 00 00 00 00 00 1b 20 20 | ..VkInstance.instance;.......... |
| 5ea0 | 20 20 43 48 45 43 4b 28 76 6b 43 72 65 61 74 65 49 6e 73 74 61 6e 63 65 28 00 00 00 0d 20 20 20 | ..CHECK(vkCreateInstance(....... |
| 5ec0 | 20 20 20 20 20 26 69 63 69 2c 00 00 00 0d 20 20 20 20 20 20 20 20 4e 55 4c 4c 2c 00 00 00 11 20 | .....&ici,............NULL,..... |
| 5ee0 | 20 20 20 20 20 20 20 26 69 6e 73 74 61 6e 63 65 00 00 00 07 20 20 20 20 29 29 3b 00 00 00 00 00 | .......&instance........));..... |
| 5f00 | 00 00 24 20 20 20 20 56 6b 58 6c 69 62 53 75 72 66 61 63 65 43 72 65 61 74 65 49 6e 66 6f 4b 48 | ..$....VkXlibSurfaceCreateInfoKH |
| 5f20 | 52 20 73 63 69 3d 7b 00 00 00 3e 20 20 20 20 20 20 20 20 2e 73 54 79 70 65 3d 56 4b 5f 53 54 52 | R.sci={...>.........sType=VK_STR |
| 5f40 | 55 43 54 55 52 45 5f 54 59 50 45 5f 58 4c 49 42 5f 53 55 52 46 41 43 45 5f 43 52 45 41 54 45 5f | UCTURE_TYPE_XLIB_SURFACE_CREATE_ |
| 5f60 | 49 4e 46 4f 5f 4b 48 52 2c 00 00 00 11 20 20 20 20 20 20 20 20 2e 64 70 79 3d 64 70 79 2c 00 00 | INFO_KHR,.............dpy=dpy,.. |
| 5f80 | 00 13 20 20 20 20 20 20 20 20 2e 77 69 6e 64 6f 77 3d 77 69 6e 00 00 00 06 20 20 20 20 7d 3b 00 | ...........window=win........};. |
| 5fa0 | 00 00 00 00 00 00 19 20 20 20 20 56 6b 53 75 72 66 61 63 65 4b 48 52 20 73 75 72 66 61 63 65 3b | ...........VkSurfaceKHR.surface; |
| 5fc0 | 00 00 00 00 00 00 00 21 20 20 20 20 43 48 45 43 4b 28 76 6b 43 72 65 61 74 65 58 6c 69 62 53 75 | .......!....CHECK(vkCreateXlibSu |
| 5fe0 | 72 66 61 63 65 4b 48 52 28 00 00 00 11 20 20 20 20 20 20 20 20 69 6e 73 74 61 6e 63 65 2c 00 00 | rfaceKHR(............instance,.. |
| 6000 | 00 0d 20 20 20 20 20 20 20 20 26 73 63 69 2c 00 00 00 0d 20 20 20 20 20 20 20 20 4e 55 4c 4c 2c | ..........&sci,............NULL, |
| 6020 | 00 00 00 10 20 20 20 20 20 20 20 20 26 73 75 72 66 61 63 65 00 00 00 07 20 20 20 20 29 29 3b 00 | ............&surface........));. |
| 6040 | 00 00 00 00 00 00 19 20 20 20 20 75 69 6e 74 33 32 5f 74 20 67 70 75 5f 63 6f 75 6e 74 3d 30 3b | ...........uint32_t.gpu_count=0; |
| 6060 | 00 00 00 00 00 00 00 1f 20 20 20 20 76 6b 45 6e 75 6d 65 72 61 74 65 50 68 79 73 69 63 61 6c 44 | ............vkEnumeratePhysicalD |
| 6080 | 65 76 69 63 65 73 28 00 00 00 11 20 20 20 20 20 20 20 20 69 6e 73 74 61 6e 63 65 2c 00 00 00 13 | evices(............instance,.... |
| 60a0 | 20 20 20 20 20 20 20 20 26 67 70 75 5f 63 6f 75 6e 74 2c 00 00 00 0c 20 20 20 20 20 20 20 20 4e | ........&gpu_count,............N |
| 60c0 | 55 4c 4c 00 00 00 06 20 20 20 20 29 3b 00 00 00 00 00 00 00 1e 20 20 20 20 56 6b 50 68 79 73 69 | ULL........);............VkPhysi |
| 60e0 | 63 61 6c 44 65 76 69 63 65 20 67 70 75 73 5b 31 36 5d 3b 00 00 00 00 00 00 00 1f 20 20 20 20 76 | calDevice.gpus[16];............v |
| 6100 | 6b 45 6e 75 6d 65 72 61 74 65 50 68 79 73 69 63 61 6c 44 65 76 69 63 65 73 28 00 00 00 11 20 20 | kEnumeratePhysicalDevices(...... |
| 6120 | 20 20 20 20 20 20 69 6e 73 74 61 6e 63 65 2c 00 00 00 13 20 20 20 20 20 20 20 20 26 67 70 75 5f | ......instance,............&gpu_ |
| 6140 | 63 6f 75 6e 74 2c 00 00 00 0c 20 20 20 20 20 20 20 20 67 70 75 73 00 00 00 06 20 20 20 20 29 3b | count,............gpus........); |
| 6160 | 00 00 00 00 00 00 00 21 20 20 20 20 56 6b 50 68 79 73 69 63 61 6c 44 65 76 69 63 65 20 67 70 75 | .......!....VkPhysicalDevice.gpu |
| 6180 | 3d 67 70 75 73 5b 30 5d 3b 00 00 00 00 00 00 00 16 20 20 20 20 75 69 6e 74 33 32 5f 74 20 71 63 | =gpus[0];............uint32_t.qc |
| 61a0 | 6f 75 6e 74 3d 30 3b 00 00 00 00 00 00 00 2d 20 20 20 20 76 6b 47 65 74 50 68 79 73 69 63 61 6c | ount=0;.......-....vkGetPhysical |
| 61c0 | 44 65 76 69 63 65 51 75 65 75 65 46 61 6d 69 6c 79 50 72 6f 70 65 72 74 69 65 73 28 00 00 00 0c | DeviceQueueFamilyProperties(.... |
| 61e0 | 20 20 20 20 20 20 20 20 67 70 75 2c 00 00 00 10 20 20 20 20 20 20 20 20 26 71 63 6f 75 6e 74 2c | ........gpu,............&qcount, |
| 6200 | 00 00 00 0c 20 20 20 20 20 20 20 20 4e 55 4c 4c 00 00 00 06 20 20 20 20 29 3b 00 00 00 00 00 00 | ............NULL........);...... |
| 6220 | 00 27 20 20 20 20 56 6b 51 75 65 75 65 46 61 6d 69 6c 79 50 72 6f 70 65 72 74 69 65 73 20 71 70 | .'....VkQueueFamilyProperties.qp |
| 6240 | 72 6f 70 73 5b 33 32 5d 3b 00 00 00 00 00 00 00 2d 20 20 20 20 76 6b 47 65 74 50 68 79 73 69 63 | rops[32];.......-....vkGetPhysic |
| 6260 | 61 6c 44 65 76 69 63 65 51 75 65 75 65 46 61 6d 69 6c 79 50 72 6f 70 65 72 74 69 65 73 28 00 00 | alDeviceQueueFamilyProperties(.. |
| 6280 | 00 0c 20 20 20 20 20 20 20 20 67 70 75 2c 00 00 00 10 20 20 20 20 20 20 20 20 26 71 63 6f 75 6e | ..........gpu,............&qcoun |
| 62a0 | 74 2c 00 00 00 0e 20 20 20 20 20 20 20 20 71 70 72 6f 70 73 00 00 00 06 20 20 20 20 29 3b 00 00 | t,............qprops........);.. |
| 62c0 | 00 00 00 00 00 23 20 20 20 20 75 69 6e 74 33 32 5f 74 20 67 72 61 70 68 69 63 73 5f 71 3d 55 49 | .....#....uint32_t.graphics_q=UI |
| 62e0 | 4e 54 33 32 5f 4d 41 58 3b 00 00 00 00 00 00 00 24 20 20 20 20 66 6f 72 28 75 69 6e 74 33 32 5f | NT32_MAX;.......$....for(uint32_ |
| 6300 | 74 20 69 3d 30 3b 69 3c 71 63 6f 75 6e 74 3b 69 2b 2b 29 20 7b 00 00 00 00 00 00 00 1b 20 20 20 | t.i=0;i<qcount;i++).{........... |
| 6320 | 20 20 20 20 20 56 6b 42 6f 6f 6c 33 32 20 70 72 65 73 65 6e 74 3d 30 3b 00 00 00 00 00 00 00 2d | .....VkBool32.present=0;.......- |
| 6340 | 20 20 20 20 20 20 20 20 76 6b 47 65 74 50 68 79 73 69 63 61 6c 44 65 76 69 63 65 53 75 72 66 61 | ........vkGetPhysicalDeviceSurfa |
| 6360 | 63 65 53 75 70 70 6f 72 74 4b 48 52 28 00 00 00 10 20 20 20 20 20 20 20 20 20 20 20 20 67 70 75 | ceSupportKHR(................gpu |
| 6380 | 2c 00 00 00 0e 20 20 20 20 20 20 20 20 20 20 20 20 69 2c 00 00 00 14 20 20 20 20 20 20 20 20 20 | ,................i,............. |
| 63a0 | 20 20 20 73 75 72 66 61 63 65 2c 00 00 00 14 20 20 20 20 20 20 20 20 20 20 20 20 26 70 72 65 73 | ...surface,................&pres |
| 63c0 | 65 6e 74 00 00 00 0a 20 20 20 20 20 20 20 20 29 3b 00 00 00 00 00 00 00 0b 20 20 20 20 20 20 20 | ent............);............... |
| 63e0 | 20 69 66 28 00 00 00 3a 20 20 20 20 20 20 20 20 20 20 20 20 28 71 70 72 6f 70 73 5b 69 5d 2e 71 | .if(...:............(qprops[i].q |
| 6400 | 75 65 75 65 46 6c 61 67 73 20 26 20 56 4b 5f 51 55 45 55 45 5f 47 52 41 50 48 49 43 53 5f 42 49 | ueueFlags.&.VK_QUEUE_GRAPHICS_BI |
| 6420 | 54 29 00 00 00 0e 20 20 20 20 20 20 20 20 20 20 20 20 26 26 00 00 00 13 20 20 20 20 20 20 20 20 | T)................&&............ |
| 6440 | 20 20 20 20 70 72 65 73 65 6e 74 00 00 00 0b 20 20 20 20 20 20 20 20 29 20 7b 00 00 00 19 20 20 | ....present............).{...... |
| 6460 | 20 20 20 20 20 20 20 20 20 20 67 72 61 70 68 69 63 73 5f 71 3d 69 3b 00 00 00 12 20 20 20 20 20 | ..........graphics_q=i;......... |
| 6480 | 20 20 20 20 20 20 20 62 72 65 61 6b 3b 00 00 00 09 20 20 20 20 20 20 20 20 7d 00 00 00 05 20 20 | .......break;............}...... |
| 64a0 | 20 20 7d 00 00 00 00 00 00 00 14 20 20 20 20 66 6c 6f 61 74 20 70 72 69 6f 3d 31 2e 30 66 3b 00 | ..}............float.prio=1.0f;. |
| 64c0 | 00 00 00 00 00 00 21 20 20 20 20 56 6b 44 65 76 69 63 65 51 75 65 75 65 43 72 65 61 74 65 49 6e | ......!....VkDeviceQueueCreateIn |
| 64e0 | 66 6f 20 71 63 69 3d 7b 00 00 00 3a 20 20 20 20 20 20 20 20 2e 73 54 79 70 65 3d 56 4b 5f 53 54 | fo.qci={...:.........sType=VK_ST |
| 6500 | 52 55 43 54 55 52 45 5f 54 59 50 45 5f 44 45 56 49 43 45 5f 51 55 45 55 45 5f 43 52 45 41 54 45 | RUCTURE_TYPE_DEVICE_QUEUE_CREATE |
| 6520 | 5f 49 4e 46 4f 2c 00 00 00 25 20 20 20 20 20 20 20 20 2e 71 75 65 75 65 46 61 6d 69 6c 79 49 6e | _INFO,...%.........queueFamilyIn |
| 6540 | 64 65 78 3d 67 72 61 70 68 69 63 73 5f 71 2c 00 00 00 16 20 20 20 20 20 20 20 20 2e 71 75 65 75 | dex=graphics_q,.............queu |
| 6560 | 65 43 6f 75 6e 74 3d 31 2c 00 00 00 1f 20 20 20 20 20 20 20 20 2e 70 51 75 65 75 65 50 72 69 6f | eCount=1,.............pQueuePrio |
| 6580 | 72 69 74 69 65 73 3d 26 70 72 69 6f 00 00 00 06 20 20 20 20 7d 3b 00 00 00 00 00 00 00 1c 20 20 | rities=&prio........};.......... |
| 65a0 | 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 64 65 76 5f 65 78 74 73 5b 5d 3d 7b 00 00 00 27 20 20 | ..const.char.*dev_exts[]={...'.. |
| 65c0 | 20 20 20 20 20 20 56 4b 5f 4b 48 52 5f 53 57 41 50 43 48 41 49 4e 5f 45 58 54 45 4e 53 49 4f 4e | ......VK_KHR_SWAPCHAIN_EXTENSION |
| 65e0 | 5f 4e 41 4d 45 00 00 00 06 20 20 20 20 7d 3b 00 00 00 00 00 00 00 1c 20 20 20 20 56 6b 44 65 76 | _NAME........};............VkDev |
| 6600 | 69 63 65 43 72 65 61 74 65 49 6e 66 6f 20 64 63 69 3d 7b 00 00 00 34 20 20 20 20 20 20 20 20 2e | iceCreateInfo.dci={...4......... |
| 6620 | 73 54 79 70 65 3d 56 4b 5f 53 54 52 55 43 54 55 52 45 5f 54 59 50 45 5f 44 45 56 49 43 45 5f 43 | sType=VK_STRUCTURE_TYPE_DEVICE_C |
| 6640 | 52 45 41 54 45 5f 49 4e 46 4f 2c 00 00 00 20 20 20 20 20 20 20 20 20 2e 71 75 65 75 65 43 72 65 | REATE_INFO,.............queueCre |
| 6660 | 61 74 65 49 6e 66 6f 43 6f 75 6e 74 3d 31 2c 00 00 00 20 20 20 20 20 20 20 20 20 2e 70 51 75 65 | ateInfoCount=1,.............pQue |
| 6680 | 75 65 43 72 65 61 74 65 49 6e 66 6f 73 3d 26 71 63 69 2c 00 00 00 21 20 20 20 20 20 20 20 20 2e | ueCreateInfos=&qci,...!......... |
| 66a0 | 65 6e 61 62 6c 65 64 45 78 74 65 6e 73 69 6f 6e 43 6f 75 6e 74 3d 31 2c 00 00 00 29 20 20 20 20 | enabledExtensionCount=1,...).... |
| 66c0 | 20 20 20 20 2e 70 70 45 6e 61 62 6c 65 64 45 78 74 65 6e 73 69 6f 6e 4e 61 6d 65 73 3d 64 65 76 | .....ppEnabledExtensionNames=dev |
| 66e0 | 5f 65 78 74 73 00 00 00 06 20 20 20 20 7d 3b 00 00 00 00 00 00 00 11 20 20 20 20 56 6b 44 65 76 | _exts........};............VkDev |
| 6700 | 69 63 65 20 64 65 76 3b 00 00 00 00 00 00 00 19 20 20 20 20 43 48 45 43 4b 28 76 6b 43 72 65 61 | ice.dev;............CHECK(vkCrea |
| 6720 | 74 65 44 65 76 69 63 65 28 00 00 00 0c 20 20 20 20 20 20 20 20 67 70 75 2c 00 00 00 0d 20 20 20 | teDevice(............gpu,....... |
| 6740 | 20 20 20 20 20 26 64 63 69 2c 00 00 00 0d 20 20 20 20 20 20 20 20 4e 55 4c 4c 2c 00 00 00 0c 20 | .....&dci,............NULL,..... |
| 6760 | 20 20 20 20 20 20 20 26 64 65 76 00 00 00 07 20 20 20 20 29 29 3b 00 00 00 00 00 00 00 12 20 20 | .......&dev........));.......... |
| 6780 | 20 20 56 6b 51 75 65 75 65 20 71 75 65 75 65 3b 00 00 00 00 00 00 00 15 20 20 20 20 76 6b 47 65 | ..VkQueue.queue;............vkGe |
| 67a0 | 74 44 65 76 69 63 65 51 75 65 75 65 28 00 00 00 0c 20 20 20 20 20 20 20 20 64 65 76 2c 00 00 00 | tDeviceQueue(............dev,... |
| 67c0 | 13 20 20 20 20 20 20 20 20 67 72 61 70 68 69 63 73 5f 71 2c 00 00 00 0a 20 20 20 20 20 20 20 20 | .........graphics_q,............ |
| 67e0 | 30 2c 00 00 00 0e 20 20 20 20 20 20 20 20 26 71 75 65 75 65 00 00 00 06 20 20 20 20 29 3b 00 00 | 0,............&queue........);.. |
| 6800 | 00 00 00 00 00 25 20 20 20 20 70 72 69 6e 74 66 28 22 72 65 6e 64 65 72 65 72 20 69 6e 69 74 69 | .....%....printf("renderer.initi |
| 6820 | 61 6c 69 7a 65 64 5c 6e 22 29 3b 00 00 00 00 00 00 00 12 20 20 20 20 69 6e 74 20 72 75 6e 6e 69 | alized\n");............int.runni |
| 6840 | 6e 67 3d 31 3b 00 00 00 00 00 00 00 14 20 20 20 20 77 68 69 6c 65 28 72 75 6e 6e 69 6e 67 29 20 | ng=1;............while(running). |
| 6860 | 7b 00 00 00 00 00 00 00 1e 20 20 20 20 20 20 20 20 77 68 69 6c 65 28 58 50 65 6e 64 69 6e 67 28 | {................while(XPending( |
| 6880 | 64 70 79 29 29 20 7b 00 00 00 00 00 00 00 16 20 20 20 20 20 20 20 20 20 20 20 20 58 45 76 65 6e | dpy)).{....................XEven |
| 68a0 | 74 20 65 76 3b 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 58 4e 65 78 74 45 76 | t.ev;....................XNextEv |
| 68c0 | 65 6e 74 28 64 70 79 2c 26 65 76 29 3b 00 00 00 00 00 00 00 2a 20 20 20 20 20 20 20 20 20 20 20 | ent(dpy,&ev);.......*........... |
| 68e0 | 20 69 66 28 65 76 2e 74 79 70 65 20 3d 3d 20 43 6c 69 65 6e 74 4d 65 73 73 61 67 65 29 20 7b 00 | .if(ev.type.==.ClientMessage).{. |
| 6900 | 00 00 39 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 28 28 41 74 6f 6d 29 65 76 2e 78 | ..9................if((Atom)ev.x |
| 6920 | 63 6c 69 65 6e 74 2e 64 61 74 61 2e 6c 5b 30 5d 3d 3d 77 6d 5f 64 65 6c 65 74 65 29 00 00 00 1e | client.data.l[0]==wm_delete).... |
| 6940 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 75 6e 6e 69 6e 67 3d 30 3b 00 00 | ....................running=0;.. |
| 6960 | 00 0d 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 00 00 00 00 25 20 20 20 20 20 20 20 20 20 | ..............}.......%......... |
| 6980 | 20 20 20 69 66 28 65 76 2e 74 79 70 65 20 3d 3d 20 4b 65 79 50 72 65 73 73 29 20 7b 00 00 00 00 | ...if(ev.type.==.KeyPress).{.... |
| 69a0 | 00 00 00 1a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4b 65 79 53 79 6d 20 6b 73 3d 00 00 | ....................KeySym.ks=.. |
| 69c0 | 00 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 58 4c 6f 6f 6b 75 70 4b 65 79 | ."....................XLookupKey |
| 69e0 | 73 79 6d 28 00 00 00 21 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | sym(...!........................ |
| 6a00 | 26 65 76 2e 78 6b 65 79 2c 00 00 00 19 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | &ev.xkey,....................... |
| 6a20 | 20 20 20 20 20 30 00 00 00 16 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 3b | .....0........................); |
| 6a40 | 00 00 00 00 00 00 00 21 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 28 6b 73 3d 3d 58 | .......!................if(ks==X |
| 6a60 | 4b 5f 45 73 63 61 70 65 29 00 00 00 1e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | K_Escape)....................... |
| 6a80 | 20 72 75 6e 6e 69 6e 67 3d 30 3b 00 00 00 0d 20 20 20 20 20 20 20 20 20 20 20 20 7d 00 00 00 09 | .running=0;................}.... |
| 6aa0 | 20 20 20 20 20 20 20 20 7d 00 00 00 05 20 20 20 20 7d 00 00 00 00 00 00 00 1a 20 20 20 20 76 6b | ........}........}............vk |
| 6ac0 | 44 65 76 69 63 65 57 61 69 74 49 64 6c 65 28 64 65 76 29 3b 00 00 00 00 00 00 00 1e 20 20 20 20 | DeviceWaitIdle(dev);............ |
| 6ae0 | 76 6b 44 65 73 74 72 6f 79 44 65 76 69 63 65 28 64 65 76 2c 4e 55 4c 4c 29 3b 00 00 00 00 00 00 | vkDestroyDevice(dev,NULL);...... |
| 6b00 | 00 18 20 20 20 20 76 6b 44 65 73 74 72 6f 79 53 75 72 66 61 63 65 4b 48 52 28 00 00 00 11 20 20 | ......vkDestroySurfaceKHR(...... |
| 6b20 | 20 20 20 20 20 20 69 6e 73 74 61 6e 63 65 2c 00 00 00 10 20 20 20 20 20 20 20 20 73 75 72 66 61 | ......instance,............surfa |
| 6b40 | 63 65 2c 00 00 00 0c 20 20 20 20 20 20 20 20 4e 55 4c 4c 00 00 00 06 20 20 20 20 29 3b 00 00 00 | ce,............NULL........);... |
| 6b60 | 00 00 00 00 16 20 20 20 20 76 6b 44 65 73 74 72 6f 79 49 6e 73 74 61 6e 63 65 28 00 00 00 11 20 | .........vkDestroyInstance(..... |
| 6b80 | 20 20 20 20 20 20 20 69 6e 73 74 61 6e 63 65 2c 00 00 00 0c 20 20 20 20 20 20 20 20 4e 55 4c 4c | .......instance,............NULL |
| 6ba0 | 00 00 00 06 20 20 20 20 29 3b 00 00 00 00 00 00 00 1c 20 20 20 20 58 44 65 73 74 72 6f 79 57 69 | ........);............XDestroyWi |
| 6bc0 | 6e 64 6f 77 28 64 70 79 2c 77 69 6e 29 3b 00 00 00 00 00 00 00 17 20 20 20 20 58 43 6c 6f 73 65 | ndow(dpy,win);............XClose |
| 6be0 | 44 69 73 70 6c 61 79 28 64 70 79 29 3b 00 00 00 00 00 00 00 0d 20 20 20 20 72 65 74 75 72 6e 20 | Display(dpy);............return. |
| 6c00 | 30 3b 00 00 00 01 7d 35 81 f5 18 00 00 00 00 00 00 00 00 00 00 00 00 97 01 00 00 00 00 00 00 01 | 0;....}5........................ |
| 6c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b6 1b 00 00 00 00 00 00 01 00 00 00 00 00 00 00 35 | ...............................5 |
| 6c40 | 81 5f d0 00 00 00 11 00 00 00 13 00 00 00 00 00 00 00 00 00 00 00 12 00 00 00 01 00 00 00 00 00 | ._.............................. |
| 6c60 | 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 | ................................ |
| 6c80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6dc0 | 00 00 00 00 00 6a 08 f2 52 04 01 00 00 00 00 00 f5 18 00 00 03 2c 00 00 00 00 00 00 00 00 00 00 | .....j..R............,.......... |
| 6de0 | 00 01 00 00 00 02 20 20 f5 18 00 00 03 2d 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 02 54 | .............-.................T |
| 6e00 | 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 17 20 20 20 20 56 6b 50 69 70 65 6c 69 6e 65 20 70 | ....................VkPipeline.p |
| 6e20 | 69 70 65 6c 69 6e 65 f5 18 00 00 02 55 00 00 00 00 00 00 00 00 00 00 00 00 f5 18 00 00 01 b0 00 | ipeline.....U................... |
| 6e40 | 00 00 00 00 00 00 00 00 00 00 01 00 00 00 05 20 20 20 20 56 f5 18 00 00 01 b1 00 00 00 00 00 00 | ...................V............ |
| 6e60 | 00 00 00 00 00 00 f5 18 00 00 00 f2 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 04 20 20 20 20 | ................................ |
| 6e80 | f5 18 00 00 00 f3 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 | ................................ |
| 6ea0 | 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..... |
| 6ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f2 00 00 00 04 00 00 00 00 00 00 00 00 00 | ................................ |
| 6ee0 | 00 00 00 00 00 00 00 00 00 00 f9 0f 00 00 00 00 00 00 f5 18 00 00 00 00 f2 00 00 00 04 00 00 00 | ................................ |
| 6f00 | 00 00 00 00 00 00 00 00 be 00 00 00 05 00 00 00 f9 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6f20 | ff 0f 00 00 00 00 00 00 f5 18 00 00 00 00 b0 01 00 00 05 00 00 00 00 00 00 00 00 00 00 00 a4 00 | ................................ |
| 6f40 | 00 00 17 00 00 00 f8 1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 0f 00 00 00 00 00 00 f5 18 | ................................ |
| 6f60 | 00 00 00 00 54 02 00 00 17 00 00 00 00 00 00 00 00 00 00 00 d8 00 00 00 02 00 00 00 f7 2f 00 00 | ....T......................../.. |
| 6f80 | 00 00 00 00 00 00 00 00 00 00 00 00 ff 0f 00 00 00 00 00 00 f5 18 00 00 00 00 2c 03 00 00 02 00 | ..........................,..... |
| 6fa0 | 00 00 00 00 00 00 00 00 00 00 49 00 00 00 00 00 00 00 f6 3f 00 00 00 00 00 00 00 00 00 00 00 00 | ..........I........?............ |
| 6fc0 | 00 00 fb 05 00 00 00 00 00 00 35 81 5f d0 00 00 00 12 00 00 00 14 00 00 00 00 00 00 00 00 00 00 | ..........5._................... |
| 6fe0 | 00 13 00 00 03 76 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 | .....v.......................... |
| 7000 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7080 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 70a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 70c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 70e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 08 f2 53 04 01 00 00 00 00 00 f5 18 00 00 03 | ................j..S............ |
| 7160 | 75 00 00 03 76 00 00 00 00 00 00 00 01 00 00 00 00 35 81 f5 18 00 00 00 00 75 03 00 00 00 00 00 | u...v............5.......u...... |
| 7180 | 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f1 45 00 00 00 00 00 00 01 00 00 00 00 00 00 | ..................E............. |
| 71a0 | 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 13 00 00 00 15 00 00 00 00 00 00 00 00 00 00 00 | .........5._.................... |
| 71c0 | 14 00 00 03 75 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 | ....u........................... |
| 71e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 72a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 72c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 72e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 08 f2 54 04 01 00 00 00 00 00 f5 18 00 00 03 74 | ...............j..T............t |
| 7340 | 00 00 03 75 00 00 00 00 00 00 00 01 00 00 00 03 60 60 60 35 81 f5 18 00 00 00 00 74 03 00 00 00 | ...u............```5.......t.... |
| 7360 | 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ed 45 00 00 00 00 00 00 04 00 00 00 00 | ....................E........... |
| 7380 | 00 00 00 00 00 00 00 00 00 00 00 35 81 5f d0 00 00 00 14 00 00 00 00 00 00 00 00 00 00 00 00 00 | ...........5._.................. |
| 73a0 | 00 00 15 00 00 00 01 00 00 00 00 00 00 00 00 ff ff ff ff 00 01 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 73c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 73e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7460 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 74a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 74c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 74e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 08 f2 55 04 01 00 00 00 06 00 f5 18 00 00 | .................j..U........... |
| 7520 | 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 04 60 60 60 63 35 81 f5 18 00 00 00 00 00 00 | ..................```c5......... |
| 7540 | 00 00 00 00 00 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 05 00 | ................................ |
| 7560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 81 e7 aa | ..............5... |