Compare commits
3173 Commits
woa_suppor
...
zed_editor
| Author | SHA1 | Date | |
|---|---|---|---|
| 6e61233a7b | |||
| bf59455412 | |||
| a016b9d47b | |||
| 7bdc08f8be | |||
| 269e8963e8 | |||
|
|
d24bd7dfd0 | ||
| 2c8c9b1637 | |||
|
|
05a8c841da | ||
|
|
c4fcaa999c | ||
|
|
70c9dd6608 | ||
|
|
802e2ac7c2 | ||
|
|
0ca60062d9 | ||
|
|
22515c37b5 | ||
|
|
38a48cf1d4 | ||
|
|
cd66d00219 | ||
|
|
c944bd9bed | ||
|
|
a0689f3f00 | ||
|
|
2ee2c97f1e | ||
|
|
fd19e83a46 | ||
|
|
755702b65a | ||
|
|
72e200a7fc | ||
|
|
6353e5f4f2 | ||
|
|
b184022d15 | ||
|
|
26dce69404 | ||
| 2841ac22df | |||
|
|
516f22c3c0 | ||
|
|
5a8c4cd0a5 | ||
|
|
f53b7e3323 | ||
|
|
c1439c646e | ||
| 280035e54f | |||
| 0d140c4f39 | |||
| 32b4efc175 | |||
|
|
d1774cac28 | ||
|
|
2629511224 | ||
|
|
bcf7226946 | ||
|
|
f5c9e00beb | ||
|
|
6353514188 | ||
|
|
8467315a1e | ||
|
|
be5dbbb95f | ||
| 6b9c727a6a | |||
| 91c0ba1986 | |||
|
|
e4bb8001b2 | ||
|
|
d93c32db9c | ||
|
|
08abdc159e | ||
|
|
708b9c6767 | ||
|
|
ed26a4c182 | ||
|
|
a239984908 | ||
|
|
fc3ea44c69 | ||
|
|
fdecad0d29 | ||
|
|
c7437ed533 | ||
|
|
dab44f5ceb | ||
|
|
c635d93b3c | ||
|
|
09fa3ce4be | ||
|
|
bd0daf7580 | ||
|
|
e1b3429b4c | ||
|
|
efa963be68 | ||
|
|
e19be4c0c6 | ||
|
|
2d5fdfef2f | ||
|
|
46ee6bc193 | ||
|
|
a2ee2ec6ac | ||
|
|
2caaef02ad | ||
|
|
b62f331b08 | ||
|
|
f7b306532b | ||
|
|
212abe7d90 | ||
|
|
7dfc37f652 | ||
|
|
12decc3320 | ||
|
|
d7a528cdbc | ||
|
|
18364d2a8b | ||
|
|
5a9eedfadb | ||
|
|
be7871c292 | ||
|
|
abdeaa9354 | ||
|
|
d3389604b0 | ||
|
|
d426c5b0d9 | ||
|
|
8da0d2c4ce | ||
|
|
20f576783b | ||
|
|
2bf62cc54f | ||
|
|
ef2c551cee | ||
|
|
65cf59642c | ||
|
|
e2fc8a6283 | ||
|
|
73976f3ed9 | ||
|
|
7ab6bafe39 | ||
|
|
deb2ad7c8f | ||
|
|
cd7fc3242e | ||
|
|
31a0a77e7c | ||
|
|
f0ec4a901a | ||
|
|
8cb67f017a | ||
|
|
7b643e9685 | ||
|
|
39803ce6b2 | ||
|
|
2f1f380062 | ||
|
|
f8dbf363b6 | ||
|
|
fc1451254d | ||
|
|
d3c54e590a | ||
|
|
361fc3ecfb | ||
|
|
3682159da6 | ||
|
|
e9f83f77bb | ||
|
|
823ed247d2 | ||
|
|
8f3b80492e | ||
|
|
c61c013517 | ||
|
|
a2170ffd8a | ||
|
|
4f1f77fb32 | ||
|
|
6ae370f8fc | ||
|
|
da5c8555e5 | ||
|
|
c4c7ee941f | ||
|
|
4f45b3c1d0 | ||
|
|
4c640b915f | ||
|
|
1f3f1ea67e | ||
|
|
60c19303f6 | ||
|
|
adcfc50218 | ||
|
|
9b812ec34a | ||
|
|
7e1ac5e167 | ||
|
|
028b5fedec | ||
|
|
9cc2c1da40 | ||
|
|
93219793d5 | ||
|
|
32f2ef3f06 | ||
|
|
5ed8564293 | ||
|
|
7c87ade12b | ||
|
|
7f87678282 | ||
|
|
e429d29d17 | ||
|
|
086a49f45d | ||
|
|
c46e1164d6 | ||
|
|
2a5898c1de | ||
|
|
f09d6aa0eb | ||
|
|
0848f1fa83 | ||
|
|
537d8b57ca | ||
|
|
02c5ad3fa4 | ||
|
|
41e851298d | ||
|
|
4a3fb41035 | ||
|
|
d57eec3403 | ||
|
|
87e2c4c4d5 | ||
|
|
797cb3c3f2 | ||
|
|
47670251ef | ||
|
|
cf1ef91246 | ||
|
|
7060cb5696 | ||
|
|
c449833d35 | ||
|
|
284aeca51a | ||
|
|
d8f7199c11 | ||
|
|
dc05bbbbcd | ||
|
|
3fcc9ed01f | ||
|
|
70ba750a5e | ||
|
|
50271199ac | ||
|
|
d1a99c9396 | ||
|
|
4ae3d57adc | ||
|
|
99b9967806 | ||
|
|
2f7e84253a | ||
|
|
2f55cb938f | ||
|
|
a86661a855 | ||
|
|
a68ce6633a | ||
|
|
5d57afe3aa | ||
|
|
6705138247 | ||
|
|
276caf771c | ||
|
|
5eea5a72c9 | ||
|
|
e9a7b1c8eb | ||
|
|
a151c78412 | ||
|
|
5f1e905e8f | ||
|
|
a0f764a774 | ||
|
|
7da5ce3ed4 | ||
|
|
1186833b2d | ||
|
|
bb180b0f59 | ||
|
|
5d1c79929a | ||
|
|
3f5a4cc4c9 | ||
|
|
62fd8ac967 | ||
|
|
d904b92f2e | ||
|
|
87e2b76ffa | ||
|
|
c5e11aed15 | ||
|
|
85d61b334b | ||
|
|
26e94f6f8e | ||
|
|
902744a0ce | ||
|
|
1c581bceaf | ||
|
|
9cc44825c6 | ||
|
|
92f4327fc2 | ||
|
|
47711ec5be | ||
|
|
d1fbc66cb9 | ||
|
|
7183a3306e | ||
|
|
fd191f7ffb | ||
|
|
2604d58687 | ||
|
|
01d1d634c2 | ||
|
|
c7e403661d | ||
|
|
1196db6d17 | ||
|
|
553a007508 | ||
|
|
de2ee36529 | ||
|
|
eea44ac897 | ||
|
|
c124713e99 | ||
|
|
364a523375 | ||
|
|
afdd264e63 | ||
|
|
8ec54f7b1c | ||
|
|
521518bde4 | ||
|
|
56077a268a | ||
|
|
a0ca000793 | ||
|
|
ae4ae7a638 | ||
|
|
e2a4c8ab03 | ||
|
|
7a40722964 | ||
|
|
1de8909d05 | ||
|
|
9749487e24 | ||
|
|
55968a8ddc | ||
|
|
e325b190ea | ||
|
|
ada6b9140f | ||
|
|
5582579173 | ||
|
|
88773e71e5 | ||
|
|
9e1f488f22 | ||
|
|
a471861e92 | ||
|
|
3d182c89f3 | ||
|
|
e3810a9938 | ||
|
|
f323fdb592 | ||
| f0dea9d528 | |||
|
|
b537a80031 | ||
|
|
5e52bf6469 | ||
|
|
8482f93a0f | ||
|
|
64c62f269c | ||
|
|
19d0d3b683 | ||
|
|
1f56c75821 | ||
|
|
64e127a47a | ||
|
|
8921cf5156 | ||
|
|
24e088fc08 | ||
|
|
14a69a11df | ||
|
|
42b542d190 | ||
|
|
576b0710e0 | ||
|
|
44e70692a2 | ||
|
|
857b0c5ac3 | ||
|
|
1f6d837117 | ||
|
|
67220d3f80 | ||
|
|
c5d06b2c8b | ||
|
|
3b19e1b40c | ||
|
|
831fb0f442 | ||
|
|
cd22cd059d | ||
|
|
3e363c8275 | ||
|
|
c44d939c08 | ||
|
|
c0c9df49dc | ||
|
|
80de56f469 | ||
|
|
f1ecbf828e | ||
|
|
f1c4fd464a | ||
|
|
212b0de29b | ||
|
|
5a2555f845 | ||
|
|
c57e128ff1 | ||
|
|
eff5f84185 | ||
|
|
ad1163bccc | ||
|
|
1042ad4e7d | ||
|
|
8fdda1a71a | ||
|
|
3f7fe635d8 | ||
|
|
fcebc57ed0 | ||
|
|
c40e447bb7 | ||
|
|
e6f94bb154 | ||
|
|
adbc546978 | ||
|
|
2d171967e9 | ||
|
|
33a0e6ac7d | ||
|
|
848cc38bf1 | ||
|
|
91cd1e8065 | ||
|
|
9fafb47abb | ||
|
|
5222f1d35c | ||
|
|
785649f9d5 | ||
|
|
d47ac95681 | ||
|
|
703e0cb7ca | ||
|
|
ef7c7f2d30 | ||
|
|
f3d375e356 | ||
|
|
a3073321cf | ||
|
|
824b49dd88 | ||
|
|
d0e7bff03a | ||
|
|
d314d5b324 | ||
|
|
a027ed3b63 | ||
|
|
bcedb05a2c | ||
|
|
b36be95947 | ||
|
|
826009c1b4 | ||
|
|
4ca399af71 | ||
|
|
c1f022520d | ||
|
|
2efd20f223 | ||
|
|
00dd432fbc | ||
|
|
f707508d70 | ||
|
|
b965ca6c8c | ||
|
|
26f4bcbc25 | ||
|
|
6fea9eefaa | ||
|
|
47caa6af28 | ||
|
|
9aedb37ac2 | ||
|
|
e4bc2c69c7 | ||
|
|
6db9265112 | ||
|
|
21a84c5b84 | ||
|
|
633b5857c9 | ||
|
|
9f9dac1543 | ||
|
|
df6f8fd8ae | ||
|
|
4bd8ce37ac | ||
|
|
40e204839f | ||
|
|
d6c75b3f86 | ||
|
|
687c283533 | ||
|
|
70ee8501a5 | ||
|
|
2c34bd2308 | ||
|
|
5023e3277b | ||
|
|
9003d855b3 | ||
|
|
75906719d4 | ||
|
|
9a59925a36 | ||
|
|
d5ca80c2c1 | ||
|
|
cb07ee77aa | ||
|
|
680783f2b0 | ||
|
|
4a28b4bd6c | ||
|
|
4bf36f3467 | ||
|
|
2c1713d300 | ||
|
|
8136691914 | ||
|
|
da23e287c0 | ||
|
|
e0825d870d | ||
|
|
86dbe6b93d | ||
|
|
e71b74c625 | ||
|
|
45f6ef29e9 | ||
|
|
0fabca19cd | ||
|
|
0bc242c738 | ||
|
|
8c548ceff2 | ||
|
|
46fda05000 | ||
|
|
1fee95be1c | ||
|
|
8c66ae99a3 | ||
|
|
1cf98e2188 | ||
|
|
6a8553a277 | ||
|
|
a02b7d4a1a | ||
|
|
606dfa4e2e | ||
|
|
b6f853a01c | ||
|
|
fc2112ec93 | ||
|
|
6ccfbfeff1 | ||
|
|
f21accd466 | ||
|
|
38b4ace1a8 | ||
|
|
774b6bd72c | ||
|
|
9c4606fefc | ||
|
|
0e50e47cce | ||
|
|
285fa870d0 | ||
|
|
69ed0bf56f | ||
|
|
237b9bccd5 | ||
|
|
f5fd7319e1 | ||
|
|
e04c0c4ace | ||
|
|
f6d0b073da | ||
|
|
68a7cf4f18 | ||
|
|
a91360529f | ||
|
|
bf9ca14deb | ||
|
|
cb92a2b8cb | ||
|
|
8a73d79936 | ||
|
|
2f7d7a0f2a | ||
|
|
d43c0c593f | ||
|
|
1087bd2445 | ||
|
|
5e19a9729b | ||
|
|
69e12d77be | ||
|
|
cdb09847ec | ||
|
|
169d3e964d | ||
|
|
cf503cf921 | ||
|
|
6fd4ef735e | ||
|
|
303087c4c4 | ||
|
|
278dead0bd | ||
|
|
cdff7708fb | ||
|
|
b4d501cd6a | ||
|
|
9cf9fae453 | ||
|
|
7fcf6f9c97 | ||
|
|
1bedfd3adf | ||
|
|
80d19a002f | ||
|
|
99707b6586 | ||
|
|
9f14bb7279 | ||
|
|
a18314c669 | ||
|
|
c946fa239e | ||
|
|
d109e5ca9f | ||
|
|
bc0e1f81e7 | ||
|
|
c1c806490f | ||
|
|
4fd6343fb9 | ||
|
|
a2e9d8d77b | ||
|
|
ff3d785483 | ||
|
|
82231981dc | ||
|
|
1915e1e7f4 | ||
|
|
b5a431d2f5 | ||
|
|
3907bc4957 | ||
|
|
854f3acd4c | ||
|
|
519a9c0a14 | ||
|
|
0ea555b041 | ||
|
|
90d1e63b58 | ||
|
|
0369d9b2cb | ||
|
|
9fabc1028a | ||
|
|
2a9260ddd5 | ||
|
|
3d84380175 | ||
|
|
545df6ce35 | ||
|
|
d4355e31d8 | ||
|
|
3ffb067e55 | ||
|
|
959371a995 | ||
|
|
cf9c203855 | ||
|
|
a5838f739d | ||
|
|
b1710c4d01 | ||
|
|
baf0cfce8e | ||
|
|
a1a6d4738f | ||
|
|
761ea094d6 | ||
|
|
8e043e533e | ||
|
|
1a88fefd76 | ||
|
|
abe496fe12 | ||
|
|
c9e0637b0f | ||
|
|
db660721ce | ||
|
|
2730d63257 | ||
|
|
31764d6d4e | ||
|
|
34ba45cd5a | ||
|
|
5de5d8f683 | ||
|
|
744c94b3cc | ||
|
|
e27880c1e6 | ||
|
|
b26d6ea108 | ||
|
|
5c5341e346 | ||
|
|
6f15ef7690 | ||
|
|
0e3a22faa0 | ||
|
|
0dc1e04c89 | ||
|
|
5c7712daad | ||
|
|
0f81c64964 | ||
|
|
7603109dce | ||
|
|
01617ae684 | ||
|
|
4aa2676084 | ||
|
|
a8b9211c32 | ||
|
|
9c5060584d | ||
|
|
846a0b5685 | ||
|
|
08154d8fe5 | ||
|
|
a53a438c3c | ||
|
|
bb8f569c41 | ||
|
|
6307ad7979 | ||
|
|
b6229350a3 | ||
|
|
5dc4ebade1 | ||
|
|
3cd5890db1 | ||
|
|
522d8d89e6 | ||
|
|
492a5f979d | ||
|
|
5e4d564338 | ||
|
|
8fcbef863e | ||
|
|
c68b75a298 | ||
|
|
8f63a99a2c | ||
|
|
6d05bf16b1 | ||
|
|
b8218e9ab4 | ||
|
|
99323c1d2f | ||
|
|
17c0892ff1 | ||
|
|
ad6764e6d7 | ||
|
|
0bfd38e065 | ||
|
|
a00ffe6ec3 | ||
|
|
a7ffd9e57f | ||
|
|
354eaac56c | ||
|
|
8c51ea511a | ||
|
|
2af266727f | ||
|
|
f37b75df7b | ||
|
|
6132e45e25 | ||
|
|
753035c452 | ||
|
|
acc1777638 | ||
|
|
69585618ed | ||
|
|
af0ea65d78 | ||
|
|
751d179cdb | ||
|
|
2dc44ac1a6 | ||
|
|
2550b9f88e | ||
|
|
c3cf8fba98 | ||
|
|
6f172f8f2c | ||
|
|
735d611de1 | ||
|
|
d6a33d5a1c | ||
|
|
6cbd40e6d8 | ||
|
|
8ac2385447 | ||
|
|
b8e00f2ed1 | ||
|
|
b6e18ccae5 | ||
|
|
1fb6586dff | ||
|
|
e6265105b5 | ||
|
|
892e2e0d1e | ||
|
|
90551b32bc | ||
|
|
cd08eeaf95 | ||
|
|
f8dadac453 | ||
|
|
f87e2c2229 | ||
|
|
18035a8604 | ||
|
|
fc46219a82 | ||
|
|
2546e19d65 | ||
|
|
6763436eff | ||
|
|
2754d61c05 | ||
|
|
7fd278a689 | ||
|
|
2d2c5411cd | ||
|
|
3e0c085bf3 | ||
|
|
c882b547c8 | ||
|
|
9646dd3fc2 | ||
|
|
c0cce748cc | ||
|
|
ab8612a914 | ||
|
|
20f1e67700 | ||
|
|
eda7f7e90f | ||
|
|
a22b33d3bb | ||
|
|
8ed2d6da56 | ||
|
|
bb37f980ed | ||
|
|
349547f66c | ||
|
|
a1e4ed05c4 | ||
|
|
10e9aee8ce | ||
|
|
4af26a5516 | ||
|
|
3e82e550f3 | ||
|
|
33b540ed9e | ||
|
|
50871d8885 | ||
|
|
c27a9808c4 | ||
|
|
bdaf31b54f | ||
|
|
3abbf08f1f | ||
|
|
a8eb4fc140 | ||
|
|
83374164db | ||
|
|
c5bfc6bc3d | ||
|
|
d698bf96cc | ||
|
|
b3f88e156c | ||
|
|
7418d60f24 | ||
|
|
3981d5090c | ||
|
|
48c6339ebb | ||
|
|
2dd34b288c | ||
|
|
0bc595f16f | ||
|
|
7abed93972 | ||
|
|
4b10d7057a | ||
|
|
85aed8c4d7 | ||
|
|
da08be42b4 | ||
| a93a940630 | |||
| 3e353db1fa | |||
|
|
056fea9a8c | ||
|
|
bf345f13ce | ||
|
|
a138c6b062 | ||
|
|
33e58c12cb | ||
|
|
094a6562b8 | ||
|
|
7f783bb7da | ||
|
|
b08f218f30 | ||
|
|
c6640be04a | ||
|
|
eff3c50d9c | ||
|
|
3fa099ad06 | ||
|
|
5e47a861f3 | ||
|
|
37b4b25ead | ||
|
|
edfd145226 | ||
|
|
763ede4bd9 | ||
|
|
284da341e1 | ||
|
|
53ed2431b5 | ||
|
|
b4ab39b3bf | ||
|
|
de61e3efb5 | ||
|
|
29fb36fcd6 | ||
|
|
78f0ff75f2 | ||
|
|
6efd456eaf | ||
|
|
e0c96c0cde | ||
|
|
ada269568a | ||
|
|
dd256ad518 | ||
|
|
12c8bb4f31 | ||
|
|
4e4d380267 | ||
|
|
448eb48c23 | ||
|
|
78d519cb9a | ||
|
|
43d11264f8 | ||
|
|
f126a83b79 | ||
|
|
bdd7bae459 | ||
|
|
75647d149a | ||
|
|
52b64540ab | ||
|
|
d7ab497b0e | ||
|
|
683a48a6e3 | ||
|
|
a41fc51f92 | ||
|
|
b9cfd054c1 | ||
|
|
53d4ea51af | ||
|
|
3dc7546dd4 | ||
|
|
185151b025 | ||
|
|
8cdec15fa6 | ||
|
|
1b40775d62 | ||
|
|
45e82d21f4 | ||
|
|
5c37584eca | ||
|
|
674fda7375 | ||
|
|
bf10d0949e | ||
|
|
d1c43ec1fe | ||
|
|
dbd8297612 | ||
|
|
8d62a13cbc | ||
|
|
5a05038a9b | ||
|
|
109d4423bb | ||
|
|
6c1e380a3e | ||
|
|
c57a1a7205 | ||
|
|
867ae2ceaa | ||
|
|
ef5d45874a | ||
|
|
169db79b2a | ||
|
|
9e4c1da032 | ||
|
|
c8622d1801 | ||
|
|
d7df403e5e | ||
|
|
d3a50cdacb | ||
|
|
fdd22c3380 | ||
|
|
53761df85e | ||
|
|
ecaae2b458 | ||
|
|
3cb74d48ca | ||
|
|
8633ed2124 | ||
|
|
2e10d776e9 | ||
|
|
4ac870f701 | ||
|
|
6144f6c74e | ||
|
|
edb6884942 | ||
|
|
62e329ac6e | ||
|
|
68dce7e4dd | ||
|
|
6479a3d3c6 | ||
|
|
e41c48f9e5 | ||
|
|
9cfcbfa9d2 | ||
|
|
bcd2b1f0f2 | ||
|
|
eb6010cba7 | ||
|
|
bd2add7edd | ||
|
|
986693757c | ||
|
|
5a23060e05 | ||
|
|
b92c18cf25 | ||
|
|
6a82eb114d | ||
|
|
97b37b3ce4 | ||
|
|
bbe54969b0 | ||
|
|
8164ce924f | ||
|
|
22911bbc45 | ||
|
|
cae2720585 | ||
|
|
90b6293bc2 | ||
|
|
d110237423 | ||
|
|
117f890612 | ||
|
|
a6a2fd2c66 | ||
|
|
a05ca12770 | ||
|
|
abe7785e94 | ||
|
|
2cedac8d96 | ||
|
|
ea854a0f7b | ||
|
|
d0817809ff | ||
|
|
95f2216f97 | ||
|
|
7e5edf1b33 | ||
|
|
c649a4f4b2 | ||
|
|
cd7233d559 | ||
|
|
3c74b315a8 | ||
|
|
f841575378 | ||
|
|
d90377ed62 | ||
|
|
c8d622bda9 | ||
|
|
fbf2d8f567 | ||
|
|
42687a792c | ||
|
|
5c43d35146 | ||
|
|
c1e1dee975 | ||
|
|
742d74a2d0 | ||
|
|
614ffa70a0 | ||
|
|
4b4331fd70 | ||
|
|
e221f7204b | ||
|
|
18fa8e1c47 | ||
|
|
2f02ec52ed | ||
|
|
9464f97e16 | ||
|
|
54467a4a5e | ||
|
|
3a9e175043 | ||
|
|
9dff048cb5 | ||
|
|
f376fd50a9 | ||
|
|
e27cf04f91 | ||
|
|
648504ceb1 | ||
|
|
a4d3ede368 | ||
|
|
92edb996f2 | ||
|
|
2e0c35e6e4 | ||
|
|
baba151d8a | ||
|
|
b44d4107c0 | ||
|
|
f40c67ddf0 | ||
|
|
ec154b4998 | ||
|
|
e2f741cab9 | ||
|
|
766091045b | ||
|
|
47e1547d29 | ||
|
|
e2d9452994 | ||
|
|
eadb4411ff | ||
|
|
bdc87c7bc6 | ||
|
|
7606c9ac12 | ||
|
|
4240646ec7 | ||
|
|
28eaac37dc | ||
|
|
214ec9f2b1 | ||
|
|
0fa53f860a | ||
|
|
27ac755bbe | ||
|
|
8ec138399a | ||
|
|
5b6859a66f | ||
|
|
bed1f6e9cc | ||
|
|
00055ef663 | ||
|
|
aa59a6faf7 | ||
|
|
e9835766bc | ||
|
|
d6eb647d59 | ||
|
|
6997cbeb47 | ||
|
|
b50f3fcb64 | ||
|
|
d6b4992991 | ||
|
|
fc561b5ec5 | ||
|
|
dacc0068e0 | ||
|
|
e7d2025010 | ||
|
|
b418ab5275 | ||
|
|
c1e782bb32 | ||
|
|
cfd2f42b0c | ||
|
|
e1a2a36978 | ||
|
|
793bc33b2f | ||
|
|
2109a2d261 | ||
|
|
89c7f4b0a3 | ||
|
|
d7ff9fdade | ||
|
|
9e50a39ebf | ||
|
|
7fc564a0ac | ||
|
|
8dfb564fb3 | ||
|
|
f8daff273a | ||
|
|
112e728465 | ||
|
|
057ec9d41e | ||
|
|
7fa4efcac5 | ||
|
|
6547e7ee9c | ||
|
|
907c593671 | ||
|
|
9c9d560ce5 | ||
|
|
f1945552ab | ||
|
|
65ab42158d | ||
|
|
99841e2e8d | ||
|
|
73c30d3d89 | ||
|
|
ecd5559aad | ||
|
|
1fa83639c2 | ||
|
|
568719b615 | ||
|
|
74000fa766 | ||
|
|
1d63067614 | ||
|
|
85fd1389db | ||
|
|
cce042045e | ||
|
|
53e3cee196 | ||
|
|
6ee3b23261 | ||
|
|
1a77ba4552 | ||
|
|
bffb175a9b | ||
|
|
125a973ff2 | ||
|
|
462f75abd0 | ||
|
|
d95cd2f0be | ||
|
|
091f76bbf2 | ||
|
|
e8b60060ab | ||
|
|
cd637e8a7a | ||
|
|
9d8e75caa3 | ||
|
|
eee4e55cf0 | ||
|
|
0670c0bbd3 | ||
|
|
f462a2187f | ||
|
|
c2cbaeed30 | ||
|
|
e982a23ed3 | ||
|
|
f6feae5cf2 | ||
|
|
ba75fd5882 | ||
|
|
1eaf40f2f7 | ||
|
|
fe98a23cb4 | ||
|
|
77bf03128e | ||
|
|
8f49a492d8 | ||
|
|
dd4bb2f7f1 | ||
|
|
6b78b498f7 | ||
|
|
c4130aa20f | ||
|
|
496856d12e | ||
|
|
e97d683545 | ||
|
|
71991ff8c7 | ||
|
|
ae44d47043 | ||
|
|
8b88def9d0 | ||
|
|
fa97229830 | ||
|
|
1946caac6e | ||
|
|
6f5308126b | ||
|
|
6a0c734cec | ||
|
|
13b8863f0c | ||
|
|
f2aaad0048 | ||
|
|
55b441e9fa | ||
|
|
6fece4ca38 | ||
|
|
2fd9b4a62a | ||
|
|
077f7a3cd1 | ||
|
|
c9fe9213b3 | ||
|
|
608839b6a5 | ||
|
|
7da69f18d4 | ||
| 6c63c2f650 | |||
|
|
fd8a8b5a4d | ||
|
|
fa89e710d8 | ||
|
|
b51ba58063 | ||
|
|
057489e5b9 | ||
|
|
5bae695ae9 | ||
|
|
5b3ed1fbc3 | ||
|
|
f5092e5262 | ||
|
|
3bd6160c3b | ||
|
|
1d0a0a409d | ||
|
|
eb90ab84f2 | ||
|
|
6f37525674 | ||
|
|
eeb8a7ea41 | ||
|
|
df0b571c50 | ||
|
|
ec22427acd | ||
|
|
6c499e877f | ||
|
|
4d9407e4e9 | ||
|
|
28c70f5078 | ||
|
|
14806a1ac7 | ||
|
|
1ebb3e67d6 | ||
|
|
991cdbb9a0 | ||
|
|
278b177c46 | ||
|
|
0630b6257a | ||
|
|
f86d9c47b7 | ||
|
|
ae2088bb9d | ||
|
|
9340c42f2b | ||
|
|
8d7dfd5946 | ||
|
|
894cb273aa | ||
|
|
2996e0c53c | ||
|
|
79ce82d8a0 | ||
|
|
3c8e59c114 | ||
|
|
1493571810 | ||
|
|
a613d89f47 | ||
|
|
5471c59d5f | ||
|
|
ac42223f9e | ||
|
|
c21c9c13ad | ||
|
|
8251509607 | ||
|
|
3083e3f611 | ||
|
|
66add1f3bd | ||
|
|
b8a680df57 | ||
|
|
e969b7fffb | ||
|
|
5d9657781a | ||
|
|
2cd03787cd | ||
|
|
619c5ac3b0 | ||
|
|
89baa91552 | ||
|
|
83b3b1af76 | ||
|
|
19148f21ac | ||
|
|
2da8e392db | ||
|
|
a812b8b108 | ||
|
|
3dc96352e6 | ||
|
|
c2b590d2cf | ||
|
|
842d6969fe | ||
|
|
0f3044ae72 | ||
|
|
11dec8e868 | ||
|
|
d6b1f06721 | ||
|
|
14fcc593c7 | ||
|
|
08ed5ae483 | ||
|
|
b065e6c989 | ||
|
|
372a23cf3a | ||
|
|
4721e8109f | ||
|
|
b58aaccc53 | ||
|
|
294dd3d363 | ||
|
|
e00f552baf | ||
|
|
8eff098850 | ||
|
|
4fe9fdded6 | ||
|
|
03d52d4eb9 | ||
|
|
ab61ed5a37 | ||
|
|
72ee80242d | ||
|
|
9dc4dbc6d7 | ||
|
|
a74c5e7943 | ||
|
|
8f9fa6995e | ||
|
|
98e59450f1 | ||
|
|
8c62f1120f | ||
|
|
9aaba955d0 | ||
|
|
410ec0465c | ||
|
|
ae9ded504d | ||
|
|
f9cb4ddae2 | ||
|
|
9753e579c1 | ||
|
|
954cf3eb5b | ||
|
|
2e996c8e91 | ||
|
|
545a43de32 | ||
|
|
e606c35093 | ||
|
|
21ae2d5d40 | ||
|
|
4649298605 | ||
|
|
ae9622d271 | ||
|
|
4366976015 | ||
|
|
5b2a966ac6 | ||
|
|
bb855e2663 | ||
|
|
d24f9d1e1e | ||
|
|
c1b1f4afc4 | ||
|
|
c639a3103c | ||
|
|
32bc73610f | ||
|
|
66dcfafa2e | ||
|
|
9215f2662f | ||
|
|
2dc404cbd3 | ||
|
|
59308df250 | ||
|
|
9ba1c4c338 | ||
|
|
ec2957bf38 | ||
|
|
8bb5655b2f | ||
|
|
c24ecaaab1 | ||
|
|
483a33996f | ||
|
|
245d7de818 | ||
|
|
49e0cc937e | ||
|
|
6be8158209 | ||
|
|
8e7fcd3cad | ||
|
|
a792a8a533 | ||
|
|
25d8c4645e | ||
|
|
64c552d69d | ||
|
|
fafa400db0 | ||
|
|
0b20a5342e | ||
|
|
f71bdd0962 | ||
|
|
fa4e56a32a | ||
|
|
212bd7a011 | ||
|
|
943864004f | ||
|
|
8ce4d94a96 | ||
|
|
6be193bfbf | ||
|
|
5d3947f117 | ||
|
|
c7bb7be20f | ||
|
|
f74b96bcb6 | ||
|
|
cecfea1ecf | ||
|
|
09ce2b5a6d | ||
|
|
2f9cdadb11 | ||
|
|
e218ce2d85 | ||
|
|
5ec6993342 | ||
|
|
87787cb5bf | ||
|
|
5b618b4f31 | ||
|
|
08a86066d0 | ||
|
|
388eb654a5 | ||
|
|
d8059c3db3 | ||
| 559d17e6c3 | |||
|
|
dfe177447c | ||
|
|
2a5aed6c15 | ||
|
|
f5ad8566eb | ||
| 7c5628d47e | |||
| 9645008460 | |||
| 12dbf09164 | |||
| f09fd7ad34 | |||
| 8986290b12 | |||
| 9a4d3a56a3 | |||
|
|
b0048d6540 | ||
|
|
b1b36ea1a3 | ||
|
|
e568e6e17b | ||
|
|
af955ba418 | ||
|
|
a56e2e7b1e | ||
|
|
a0cdb08893 | ||
|
|
fbb829a915 | ||
|
|
5790da6167 | ||
|
|
c6e4fbd966 | ||
|
|
101ea44051 | ||
|
|
d6c6936f6d | ||
|
|
4929e8172c | ||
|
|
8c83156133 | ||
|
|
d587921a83 | ||
|
|
47a6da9e40 | ||
|
|
6fe6ba20fb | ||
|
|
2ea3cde203 | ||
|
|
059fe98c67 | ||
|
|
1ab05b620a | ||
|
|
4b387d040d | ||
|
|
9d527ab4a6 | ||
|
|
bbc221086a | ||
|
|
e5b7e58a07 | ||
|
|
1704cfba4d | ||
|
|
40dae18b76 | ||
|
|
f0bcc70563 | ||
|
|
992b08025f | ||
|
|
cfef93134e | ||
|
|
ac3c4a4b30 | ||
|
|
d77024bbf1 | ||
|
|
4f3fbe89f2 | ||
|
|
9ae1867c9e | ||
|
|
caf0251a9c | ||
|
|
216868085b | ||
|
|
18a5c68b3e | ||
|
|
f9e9f26e97 | ||
|
|
a2ff6e5c24 | ||
|
|
0a3f07e6e7 | ||
|
|
3c1aca6d46 | ||
| 02c333c720 | |||
|
|
d30ff65800 | ||
|
|
3d454ed321 | ||
|
|
7e72d7b3cf | ||
|
|
ef188d06c4 | ||
|
|
414b229b27 | ||
|
|
d3c49be80f | ||
|
|
980473cce6 | ||
|
|
6ef2012359 | ||
|
|
e267db7fac | ||
|
|
9dba7caa88 | ||
|
|
c9e625a1a0 | ||
|
|
45f202fdf7 | ||
|
|
c30e31bd65 | ||
|
|
61a11f4a29 | ||
|
|
c786a84dc6 | ||
|
|
1680ccfec3 | ||
|
|
30c78350eb | ||
|
|
7b4da6dd2b | ||
|
|
b25881d55e | ||
|
|
cfc90d1ddf | ||
|
|
a3be6e2add | ||
|
|
d351c96a40 | ||
|
|
b3ab1b7a4a | ||
|
|
b719d6dd04 | ||
|
|
9d059f6c94 | ||
|
|
b8a0150310 | ||
|
|
b891fb7b03 | ||
|
|
bdd4ab9bfd | ||
|
|
f70ec896b8 | ||
|
|
85ecbaab6d | ||
|
|
0381bda068 | ||
|
|
c4d8345b7c | ||
| 6beb9febb1 | |||
| 711a75ce3b | |||
| be72a9f4a2 | |||
| 8c83de8521 | |||
| 00b9d603ae | |||
|
|
5d3d9d7e82 | ||
|
|
91897f290a | ||
|
|
4255ee70fc | ||
|
|
2d20c2d542 | ||
|
|
1bb710e385 | ||
|
|
6583985017 | ||
|
|
e7718e232f | ||
|
|
045ba897c7 | ||
|
|
72a4e577c8 | ||
|
|
bf9f7ee051 | ||
|
|
1370225bae | ||
|
|
aea6f43519 | ||
|
|
59aed828f6 | ||
|
|
74d7dd58c2 | ||
|
|
f2f2056509 | ||
| 5f92932c40 | |||
| ed8eb072c5 | |||
|
|
4e44831bbe | ||
| 5bd4a40ee5 | |||
| 8322e762df | |||
| e6d7024a61 | |||
| 0eb7badf91 | |||
|
|
0c1e0e48d4 | ||
|
|
6884df02fd | ||
|
|
63655d18c5 | ||
| 2acca350fe | |||
| ac305b369d | |||
|
|
4170699348 | ||
|
|
9e23c324bf | ||
|
|
d58a9beb3d | ||
|
|
5049f3b2d8 | ||
|
|
aabbb04f18 | ||
|
|
6e44eebb9e | ||
|
|
aecbab5613 | ||
|
|
6bf90f29c5 | ||
|
|
19edce1770 | ||
|
|
a9a9057304 | ||
|
|
eb86002fbd | ||
|
|
c75b33eb7d | ||
|
|
06f4808dcc | ||
|
|
644c5b843b | ||
|
|
1ae098331d | ||
|
|
043ae687e2 | ||
|
|
047a637029 | ||
|
|
e66365fd88 | ||
|
|
cd803e42ad | ||
|
|
2777436e83 | ||
|
|
2742ec8256 | ||
|
|
3de6ac2658 | ||
|
|
58813d09c3 | ||
|
|
242d400284 | ||
|
|
9beca96230 | ||
|
|
db20dae062 | ||
|
|
51df5af253 | ||
|
|
8a9e22c987 | ||
|
|
2b97fe5ce0 | ||
|
|
bea6e6330b | ||
|
|
0ed298b5e5 | ||
|
|
f432e54809 | ||
|
|
27d18e8d16 | ||
|
|
684a8fbb8a | ||
|
|
22e7a24327 | ||
|
|
df1313af33 | ||
|
|
46f842a555 | ||
|
|
5ffe6a39ab | ||
|
|
2452face38 | ||
|
|
40a641b731 | ||
|
|
938d23ce0d | ||
|
|
15da2d59e5 | ||
|
|
55effc35db | ||
|
|
6fc5e1f423 | ||
|
|
8b5c35ac6d | ||
|
|
4a10905464 | ||
|
|
344fb908ed | ||
|
|
73c0dcf76b | ||
|
|
09a3eaef83 | ||
|
|
501bb9fa98 | ||
|
|
32e87c7d4e | ||
|
|
17bf77c352 | ||
|
|
aaa4e73e0c | ||
|
|
c9ba28ce55 | ||
|
|
2ac8144ac2 | ||
|
|
1229a6f398 | ||
|
|
ec93b2ff06 | ||
|
|
c074b15671 | ||
| 5fa54fd0d0 | |||
| 99682ea9b2 | |||
| 063f3c69ad | |||
| 9c5c98e8f3 | |||
|
|
0ea37879e8 | ||
|
|
9c3fd052cd | ||
|
|
60c5fbeba3 | ||
|
|
e17b96b2d6 | ||
|
|
9b6feb9367 | ||
|
|
aaf87e3960 | ||
|
|
628bffd63e | ||
| fc96b248cb | |||
| 36c1909111 | |||
| 643fe639e5 | |||
| 78dffc9ad1 | |||
|
|
210c8e8fe4 | ||
|
|
cb6a4cc325 | ||
|
|
9c0c809e7e | ||
|
|
5873c48ed6 | ||
|
|
0cfab003ef | ||
|
|
0c6f1ff9dc | ||
|
|
a29b556de6 | ||
|
|
d0ad0859ea | ||
|
|
996188864c | ||
|
|
60b4660a2c | ||
|
|
1dfd717093 | ||
|
|
68ef6f08c6 | ||
|
|
a0b80c6096 | ||
|
|
59ac8a3f60 | ||
|
|
dd281bbca8 | ||
|
|
2e48be97b6 | ||
|
|
0b7550e5ca | ||
|
|
fcddd4eca7 | ||
|
|
854d0cc23c | ||
|
|
d00a2ea63f | ||
|
|
311a7b8c02 | ||
|
|
3e7ec2b28d | ||
|
|
1c9ff2ec03 | ||
|
|
968044a6c7 | ||
|
|
a8eca76cd1 | ||
|
|
5202d11af4 | ||
|
|
3b518cdf2c | ||
|
|
af3054e5e0 | ||
|
|
e5d0158c92 | ||
|
|
368ef9185b | ||
|
|
bf849c860a | ||
|
|
4268d3d341 | ||
|
|
dd50972fb1 | ||
|
|
93a3083803 | ||
|
|
b5e3d02539 | ||
|
|
43abd1fe37 | ||
|
|
6eb24d59b4 | ||
|
|
d7204dbf3b | ||
|
|
7abc7258ab | ||
|
|
4ddf8d0f48 | ||
|
|
ed3ec55561 | ||
|
|
c00876fa94 | ||
|
|
f947aa3ae2 | ||
|
|
e0251afe79 | ||
|
|
f53c3d7ad5 | ||
|
|
0046cbe0ef | ||
|
|
4c133fb6ff | ||
|
|
3acb80f320 | ||
| bada6b8886 | |||
|
|
ac60dc8068 | ||
|
|
f025d96111 | ||
|
|
5bee99cb93 | ||
|
|
ab348d5f34 | ||
|
|
54f73fe35a | ||
|
|
5017bdd470 | ||
|
|
62273db725 | ||
|
|
e468a77a22 | ||
|
|
cc32af3919 | ||
|
|
0041a17b7d | ||
|
|
38b00f458c | ||
|
|
1c64845169 | ||
|
|
98834131f1 | ||
|
|
40f2067732 | ||
|
|
1e9f9c8e82 | ||
|
|
fa1469514b | ||
|
|
f94543aac8 | ||
|
|
bf2974b6cc | ||
|
|
faa3f62813 | ||
|
|
6a4078c589 | ||
|
|
a0497a8f60 | ||
|
|
8f7752bec7 | ||
|
|
7dc18eeda9 | ||
|
|
a73da8a31c | ||
|
|
ee6ad02a95 | ||
|
|
04d105ed85 | ||
|
|
0e822fc1f7 | ||
|
|
a78ec8b8cd | ||
|
|
83daca569b | ||
|
|
6ea3b0012f | ||
|
|
e67b9a2e05 | ||
|
|
438ca91dc3 | ||
|
|
45ec633fec | ||
|
|
df6cf13b98 | ||
|
|
19da49a0e0 | ||
|
|
9f1429259a | ||
|
|
38c3d88a8a | ||
|
|
7e145c56fd | ||
|
|
9cf7046a5b | ||
|
|
4e14035281 | ||
|
|
bd74d9202e | ||
|
|
0938dd3f5d | ||
|
|
bde4aec113 | ||
|
|
82bdc5d869 | ||
|
|
1b3ad99554 | ||
|
|
e9e96b21d3 | ||
|
|
391c67b1a9 | ||
|
|
a403e21cbc | ||
|
|
2c8f2b6e92 | ||
|
|
04fa19fce7 | ||
|
|
92a212317d | ||
|
|
9459eff58c | ||
|
|
8c857e6fa4 | ||
|
|
d123dd3eb4 | ||
|
|
db645c1aae | ||
|
|
abe5b14f72 | ||
|
|
68967de1f5 | ||
|
|
e25efa8c6f | ||
|
|
7f081abf92 | ||
|
|
80df074b5f | ||
|
|
7ee2e66881 | ||
|
|
7144e9352d | ||
|
|
694fc262fa | ||
|
|
6c464569f2 | ||
|
|
c12b99b3ce | ||
|
|
0586c94428 | ||
|
|
59112a68e6 | ||
|
|
b5158e0f5a | ||
|
|
b338244c51 | ||
|
|
4b1f8efba0 | ||
|
|
8f1c22fa48 | ||
|
|
e11b381c13 | ||
|
|
62354e81e2 | ||
|
|
17e30ff904 | ||
|
|
81f24ca914 | ||
|
|
54050685d7 | ||
|
|
cd4ace3f49 | ||
|
|
a4082934b8 | ||
|
|
fa68a5f572 | ||
|
|
975cc79085 | ||
|
|
468babae87 | ||
|
|
23c251ea80 | ||
|
|
05e3149ef4 | ||
|
|
4a769265b6 | ||
|
|
56a8bb777b | ||
|
|
36931c9047 | ||
|
|
3788021898 | ||
|
|
c26c217bf7 | ||
|
|
af454b987b | ||
|
|
051d363358 | ||
|
|
87e423ed48 | ||
|
|
9b495bbc68 | ||
|
|
5d3da8a8d0 | ||
|
|
2cf30c27eb | ||
|
|
5d32bb962f | ||
|
|
477c979cdd | ||
|
|
9d46626641 | ||
|
|
e7824d6d9b | ||
|
|
7120ac4f10 | ||
|
|
f5751254d6 | ||
|
|
f11349f16c | ||
|
|
862c2db11a | ||
|
|
2af6bdc283 | ||
|
|
3c303514a4 | ||
|
|
a3cc3c79e2 | ||
|
|
cab0f92da8 | ||
|
|
21c07b7bf3 | ||
|
|
0b85438b20 | ||
|
|
9c15094855 | ||
|
|
9e9b255c00 | ||
|
|
1a5874e425 | ||
|
|
f256b0670f | ||
|
|
a54299a560 | ||
|
|
273b366f44 | ||
|
|
131d2fa4f1 | ||
|
|
08a43b93f4 | ||
|
|
47b004a4aa | ||
|
|
f7e5bcb058 | ||
|
|
e30647b675 | ||
|
|
f8e6e09717 | ||
|
|
b8ae066542 | ||
|
|
b96ff56043 | ||
|
|
2b0dc8b16d | ||
|
|
3c7d88663a | ||
|
|
cd72f4f19b | ||
|
|
897e451ab6 | ||
|
|
7a83bce996 | ||
|
|
48343897cd | ||
|
|
52c09b95ca | ||
|
|
09b23e2376 | ||
|
|
0abd953ded | ||
|
|
7f8729451c | ||
|
|
5340eac14a | ||
|
|
bc4f3668fe | ||
|
|
a93085d6d6 | ||
|
|
34dcbc0445 | ||
|
|
3643ec7a58 | ||
|
|
1e2e613a78 | ||
|
|
fe95ac96af | ||
|
|
3b7c90644e | ||
|
|
5e8f9e357a | ||
|
|
4c9d51f0ef | ||
|
|
f7c6d34f59 | ||
|
|
7808c65dd3 | ||
|
|
baf28382a8 | ||
|
|
e9f2d94a2e | ||
|
|
837a4927c1 | ||
|
|
1ece21e25c | ||
|
|
54dc66d22e | ||
|
|
5ea6e7b49d | ||
|
|
8a52fa257b | ||
|
|
7d79dbac40 | ||
|
|
fef967d4a0 | ||
|
|
679d56d7a3 | ||
|
|
e760e5cc97 | ||
|
|
5bdbbb6d38 | ||
|
|
0c0f128585 | ||
|
|
ca153e70ab | ||
|
|
bc6f4f50cb | ||
|
|
84f6667105 | ||
|
|
5d80cb03f1 | ||
|
|
4fada6ba40 | ||
|
|
0fa88b23c6 | ||
|
|
301491bcde | ||
|
|
5f57286cdb | ||
|
|
7135eb3591 | ||
|
|
cc7d88d4a9 | ||
|
|
772f7f7fd2 | ||
|
|
8e2f3ec0c0 | ||
|
|
196ada5710 | ||
|
|
06729f6b62 | ||
|
|
7809007a13 | ||
|
|
06de1c0041 | ||
|
|
06665734e7 | ||
|
|
668511a727 | ||
|
|
5ffa3eb837 | ||
|
|
00202b06a4 | ||
|
|
93442ec8fa | ||
|
|
520bab7463 | ||
|
|
35fa63852c | ||
|
|
fee54f0f39 | ||
|
|
e66ae2ee74 | ||
|
|
30e9fe2371 | ||
|
|
a5e8f7d405 | ||
|
|
a3822b6669 | ||
|
|
819ce2222d | ||
|
|
e82bb639ed | ||
|
|
3200fc1570 | ||
|
|
54ad9a7629 | ||
|
|
6f28302fd1 | ||
|
|
47b22b305d | ||
|
|
6ad20b222d | ||
|
|
68b21652bb | ||
|
|
5fe9108803 | ||
|
|
02ecfad428 | ||
|
|
25b51cf9c4 | ||
|
|
b2c5b4c2e5 | ||
|
|
379c31ca49 | ||
|
|
383df75a81 | ||
|
|
0ff19e9c95 | ||
|
|
cbe96252f6 | ||
|
|
4846852762 | ||
|
|
72c3d2b94c | ||
|
|
7ccae0140b | ||
|
|
7885590593 | ||
|
|
dad8c0cd6b | ||
|
|
7410b506e3 | ||
|
|
dec9905bd3 | ||
|
|
bb35d9f811 | ||
|
|
b2c8c4018c | ||
| ce132f2404 | |||
|
|
809fd2653a | ||
|
|
56b2c96b3b | ||
|
|
5c06d413b0 | ||
| 1c17b77d1e | |||
| e24bb71e91 | |||
| 3382aabefe | |||
| 4ddc765ee4 | |||
| 5fd64ead62 | |||
| 30257929e5 | |||
| 980a112c57 | |||
| 98bbcbd442 | |||
| 9f8faf4f17 | |||
| 691b9458ec | |||
| b095acd4a5 | |||
|
|
2d956ebb36 | ||
|
|
33dd47c169 | ||
|
|
e101048c71 | ||
|
|
aaad2face2 | ||
|
|
8f1a1827f2 | ||
|
|
83c3201ef8 | ||
|
|
dcba97f84a | ||
|
|
ca6544204b | ||
|
|
1c3d1b623d | ||
|
|
1fac78f48f | ||
|
|
953cbb6e40 | ||
|
|
21047ac8ac | ||
|
|
754d321ef0 | ||
|
|
2ab9adab24 | ||
|
|
bf21b0a267 | ||
|
|
0d5534c445 | ||
|
|
afc4158dd3 | ||
|
|
09ead0cc7a | ||
|
|
f2e840577a | ||
|
|
345cbdb8d4 | ||
|
|
0ebda18669 | ||
|
|
efa081716f | ||
|
|
7225737984 | ||
|
|
0b1a64305a | ||
|
|
bfd972b96d | ||
|
|
25f26a7a91 | ||
|
|
d9ae41ed10 | ||
|
|
68877eebe3 | ||
|
|
5ed18c7448 | ||
|
|
1fda1d749d | ||
|
|
ac728f1a31 | ||
|
|
8beeea0da1 | ||
|
|
fc4b79239b | ||
|
|
618027b181 | ||
|
|
f97ead8a20 | ||
|
|
bae381430a | ||
|
|
1c3f7fcec0 | ||
|
|
65a219512c | ||
|
|
bb12562c2f | ||
|
|
b81b0b7616 | ||
|
|
bd9a5f03a4 | ||
|
|
9d5d80bf4a | ||
|
|
44e894f406 | ||
|
|
ef8612fb59 | ||
|
|
366b47ad80 | ||
|
|
b3508b9fe1 | ||
|
|
3f2eab5206 | ||
|
|
5bdf5da142 | ||
| c823257b79 | |||
|
|
937d369856 | ||
|
|
060bc0aaf8 | ||
|
|
ce335a0fe4 | ||
|
|
4aab1be3d6 | ||
|
|
6b6d808698 | ||
|
|
a6fb651ff4 | ||
|
|
c81ddd09cc | ||
|
|
015c4ab475 | ||
|
|
ccdf004404 | ||
|
|
9049093267 | ||
|
|
9d4d9ccf38 | ||
|
|
8b1d678f2e | ||
|
|
25b8939aff | ||
|
|
e4d2e429a0 | ||
|
|
67db774a2f | ||
|
|
3cd951f0a0 | ||
|
|
0525ce2cb3 | ||
|
|
5e74ec01ce | ||
|
|
bbbc0c9d50 | ||
|
|
25067959eb | ||
|
|
054d06f49e | ||
|
|
086ddc96bb | ||
|
|
3394de0b93 | ||
|
|
abd0c7dece | ||
|
|
ee540b3cb7 | ||
|
|
c146e156ec | ||
|
|
6efb015169 | ||
|
|
a982e0a111 | ||
|
|
516d4263c9 | ||
|
|
84843f8cbb | ||
|
|
ba35123420 | ||
|
|
409703d675 | ||
|
|
570c3f7462 | ||
|
|
dccb43702e | ||
|
|
f459249f78 | ||
|
|
3ad369501a | ||
|
|
b0fe4373b0 | ||
|
|
9df5ed5b7f | ||
|
|
aa8add7b38 | ||
|
|
21f8dab5de | ||
|
|
4baa38c0cc | ||
|
|
3c091dc214 | ||
|
|
58090aa6d6 | ||
|
|
2521ed4ad5 | ||
|
|
42d02a9e63 | ||
|
|
9e25714338 | ||
|
|
6a5f22400d | ||
|
|
a5fffc0c9e | ||
|
|
e551ecbe5f | ||
|
|
898295e9d4 | ||
|
|
a17c15ae96 | ||
|
|
be6a258846 | ||
|
|
8542f78b0b | ||
|
|
da513972e8 | ||
|
|
be293a957a | ||
|
|
8e26591c0b | ||
|
|
4e31d436d5 | ||
|
|
b6f7914b14 | ||
|
|
9ffbe1f8ca | ||
| 0764ff6cb7 | |||
|
|
4e0cd9e8a9 | ||
|
|
24f3dfe264 | ||
|
|
42fc62eb68 | ||
|
|
b1392be3a1 | ||
|
|
04dde7a3f2 | ||
|
|
44fae3838e | ||
|
|
f11306af24 | ||
|
|
4057dc189d | ||
|
|
fc98b5f1f0 | ||
|
|
4d6282a5b4 | ||
|
|
45a24a05c5 | ||
|
|
0e058b2590 | ||
|
|
a31279954a | ||
|
|
16ed7272a7 | ||
|
|
d25cb7a9da | ||
|
|
6461ffbd0d | ||
|
|
1b04c9a7b1 | ||
|
|
6a27e5338a | ||
|
|
5ad323c7cb | ||
|
|
abe2482a01 | ||
|
|
9c065d55e0 | ||
|
|
1475075b00 | ||
|
|
702564366d | ||
|
|
e2fd3891d1 | ||
| f54e961f11 | |||
|
|
aabd70fbe7 | ||
| 428ebf7fd7 | |||
|
|
72f16d738f | ||
|
|
475818554d | ||
|
|
8ebb3a3215 | ||
|
|
2085a0bf25 | ||
|
|
d829461def | ||
|
|
2d169fdcd8 | ||
|
|
53ba5968fd | ||
|
|
cc735a1b6a | ||
|
|
970af7bdc8 | ||
|
|
2ff6a6dd9a | ||
|
|
ae3149c9c0 | ||
|
|
1a1bd56802 | ||
|
|
25b566b348 | ||
|
|
4fb95a704a | ||
|
|
5f09ef4c1f | ||
|
|
fc4c2c53fc | ||
|
|
fa06a8cc16 | ||
|
|
4d4c046556 | ||
|
|
4598cdb2d0 | ||
|
|
eb43d4813d | ||
|
|
7bc099c32c | ||
|
|
9a59d0c5ed | ||
|
|
275ca296fa | ||
|
|
57af076c8d | ||
|
|
d501018feb | ||
|
|
d4c72487cd | ||
|
|
0b48a274e5 | ||
|
|
342f3543ca | ||
|
|
b36e55446f | ||
|
|
cf40facefe | ||
|
|
f905c49f0b | ||
|
|
fa2f2e3104 | ||
|
|
ae74d49b09 | ||
|
|
80a44b5f5c | ||
|
|
c72fac335f | ||
|
|
dffc6ea24d | ||
|
|
38f74c8cf7 | ||
|
|
61a731704d | ||
|
|
c1339765b7 | ||
|
|
f5280eab74 | ||
|
|
030befdcaa | ||
|
|
3a591577ad | ||
|
|
af416fe0c8 | ||
|
|
326bc498b8 | ||
|
|
d1cc8da841 | ||
|
|
4cf22c3a1f | ||
|
|
8736d4c91a | ||
|
|
682ca9e953 | ||
|
|
344d17714c | ||
|
|
b247070840 | ||
|
|
236b8d5667 | ||
|
|
c3ad937d3f | ||
|
|
d8dcec42d5 | ||
|
|
3b5f953b3d | ||
|
|
9fd98c8e12 | ||
|
|
0b24c50161 | ||
|
|
8f9eaddbe5 | ||
|
|
fe8f862b16 | ||
|
|
7d0804af91 | ||
|
|
67f12596e2 | ||
|
|
6a66a944d2 | ||
|
|
65a689f8ab | ||
|
|
18fd68db25 | ||
|
|
86444aa5f3 | ||
|
|
011abe4ac0 | ||
|
|
f4c07388d9 | ||
|
|
eaf48bb176 | ||
|
|
d4a5c76c82 | ||
|
|
8a7ceef288 | ||
|
|
ec11a79f55 | ||
|
|
55fd198102 | ||
|
|
425699c4b0 | ||
|
|
1497acef58 | ||
|
|
6111f67e33 | ||
|
|
39419787fa | ||
|
|
e02f2990d9 | ||
|
|
d0a6edbb2c | ||
| 10a906d51b | |||
| f61779119b | |||
|
|
be8686bbb2 | ||
|
|
59061c01d3 | ||
| af3badaeef | |||
|
|
90ba7f4a92 | ||
|
|
754e0c4e29 | ||
|
|
addc6d5216 | ||
|
|
f17d6f62ab | ||
|
|
ae3d437539 | ||
|
|
99b737eb14 | ||
|
|
4add5dcf49 | ||
|
|
a204ada6d3 | ||
|
|
bdc7f0760f | ||
|
|
07ef2f03d5 | ||
|
|
b5437a9097 | ||
|
|
890c3e75c3 | ||
|
|
7fcf8c2d4c | ||
|
|
3796b0ccae | ||
|
|
bc18ddc04b | ||
|
|
90316dfa52 | ||
|
|
55fa372197 | ||
|
|
563f0b9ab4 | ||
|
|
30ea3bc9c2 | ||
|
|
07b9e5bfdd | ||
|
|
3b7cb00af2 | ||
|
|
d0d5ad4657 | ||
|
|
f274639e94 | ||
|
|
7ac2376231 | ||
|
|
01d1dbba6c | ||
|
|
ca995093b6 | ||
|
|
f36d3a11ab | ||
|
|
06a04167c7 | ||
|
|
e2df7a1e85 | ||
|
|
80f5b554cd | ||
|
|
f10404a948 | ||
|
|
a9580b9b46 | ||
|
|
3d76a99c9b | ||
|
|
eaeeea6a81 | ||
|
|
b546e4a332 | ||
|
|
281e13b42c | ||
|
|
8451439abb | ||
|
|
95c9df2581 | ||
|
|
2699755581 | ||
|
|
99b0fbee07 | ||
|
|
f153c67c0e | ||
|
|
fa8857be0e | ||
|
|
ea96418764 | ||
|
|
d751c6a6c6 | ||
|
|
344d342610 | ||
|
|
e75d7ad257 | ||
|
|
54869f1da0 | ||
|
|
02df6bafac | ||
|
|
d60f3bdfb1 | ||
|
|
506efb7538 | ||
|
|
1b97e49ed9 | ||
|
|
b71f803554 | ||
|
|
647d74af0d | ||
|
|
237ea121be | ||
|
|
a1c46d2e6e | ||
|
|
2260236fa6 | ||
|
|
cb7fc6141d | ||
|
|
77c48c037e | ||
|
|
756ba0a533 | ||
|
|
99788e4743 | ||
|
|
ccbcab9793 | ||
|
|
3505b8971b | ||
|
|
1f294605a3 | ||
|
|
9264db8317 | ||
|
|
2b2ace0d00 | ||
|
|
7e165d6127 | ||
|
|
e1dbaebe8e | ||
|
|
21f1a46c05 | ||
|
|
6fbb5548b9 | ||
|
|
fa17c49eb1 | ||
|
|
e87bb2325b | ||
|
|
13863344d2 | ||
|
|
7aa240e5eb | ||
|
|
7f0d852f49 | ||
|
|
edaed7bda1 | ||
|
|
3133ebbd83 | ||
|
|
bff25a8dd8 | ||
|
|
a9d0f62039 | ||
|
|
5335594cb5 | ||
|
|
3f201c3863 | ||
|
|
3dc3406230 | ||
|
|
0b99cb6de5 | ||
|
|
deab78d6b1 | ||
|
|
45c01e7ada | ||
|
|
bcc8544c46 | ||
|
|
597bbf1f30 | ||
|
|
67b5b74588 | ||
|
|
39f2f0ccdf | ||
|
|
6ad2cd0697 | ||
|
|
ef01a4afeb | ||
|
|
12b98f2df1 | ||
|
|
99ba59d02a | ||
|
|
3b4d4d234d | ||
|
|
bc73d38d34 | ||
|
|
db4d7d2a05 | ||
|
|
7eb2088af0 | ||
|
|
29bfef677f | ||
|
|
933fac6c13 | ||
|
|
78cf1a4948 | ||
|
|
792d322818 | ||
|
|
6f04231b31 | ||
|
|
04fc118ddf | ||
|
|
5aa5c97e4c | ||
|
|
4f42fb2302 | ||
|
|
a66cb4d1b2 | ||
|
|
22914dc232 | ||
|
|
5af13bcc93 | ||
|
|
ea5cb5d83a | ||
|
|
7b7dd9d142 | ||
|
|
348f17479d | ||
|
|
1e262b69cc | ||
|
|
97184c87af | ||
|
|
867f7d0143 | ||
|
|
26d0b9a42c | ||
|
|
f2e4fe300b | ||
|
|
a313db22d2 | ||
|
|
e53eddaba5 | ||
|
|
757b8ff855 | ||
|
|
f71e731e54 | ||
|
|
cb6ab6a647 | ||
|
|
899528e087 | ||
|
|
c79cd82fd4 | ||
|
|
711fc80d8c | ||
|
|
9219b34dc3 | ||
|
|
e6450bfc7a | ||
|
|
6a8814c99a | ||
|
|
3151e47722 | ||
|
|
ab99a25cee | ||
|
|
e7132086a5 | ||
|
|
668f3fa68d | ||
|
|
fee0ab74ff | ||
|
|
819c93f6fb | ||
|
|
0c645cbc78 | ||
|
|
88703d721b | ||
|
|
723a882824 | ||
|
|
36d4417905 | ||
|
|
9f648caac8 | ||
|
|
0f847335c3 | ||
|
|
12f3f00f9f | ||
|
|
2175837f33 | ||
|
|
1bf29c042b | ||
|
|
8eaa906e0c | ||
|
|
5b98603c16 | ||
|
|
80299c8552 | ||
|
|
1e2493d4ff | ||
|
|
622de6ebcb | ||
|
|
4de324f2b0 | ||
|
|
01bd482ba7 | ||
|
|
cedacdba3e | ||
|
|
06dcc7ba8e | ||
|
|
ff0840d6dd | ||
|
|
b81435505d | ||
|
|
526010f523 | ||
|
|
222a614a2b | ||
|
|
bd4a042619 | ||
|
|
3e9048af2f | ||
|
|
0a2341674f | ||
|
|
bb844a7606 | ||
|
|
ef60cc30ff | ||
|
|
f8bb17a945 | ||
|
|
9ad1a9bfd0 | ||
|
|
8ec279c1dd | ||
|
|
bbed25653a | ||
|
|
902d14c334 | ||
|
|
fb44f0458c | ||
|
|
fa8f50ead1 | ||
|
|
d1ac9cd2bc | ||
|
|
59b4755379 | ||
|
|
b3f37ca041 | ||
|
|
f57f57423c | ||
|
|
666efb7675 | ||
|
|
fc4e6f4972 | ||
|
|
c6b7077c2d | ||
|
|
21d1419e74 | ||
|
|
873491eca2 | ||
|
|
3ba1ebb847 | ||
|
|
696b1c0d0c | ||
|
|
7e0c0559dd | ||
|
|
a0216746b9 | ||
|
|
76b84cca4e | ||
|
|
a780f513db | ||
|
|
0906a561c4 | ||
|
|
99e836b1fb | ||
|
|
1e61abdfef | ||
|
|
cedf4b1eb5 | ||
|
|
4a2f4a98ec | ||
|
|
24266b64da | ||
|
|
139a431614 | ||
|
|
4f281b4732 | ||
|
|
4fe46dfc83 | ||
|
|
04a3435200 | ||
|
|
84c65b92d0 | ||
|
|
5ffc06d6ee | ||
|
|
23015009b3 | ||
|
|
35e9e048f2 | ||
|
|
09414f9002 | ||
|
|
3e5cb09381 | ||
|
|
eb5dfcd6bf | ||
|
|
6a082e9dd7 | ||
|
|
667661dd90 | ||
|
|
3e344e789a | ||
|
|
e9243d0358 | ||
|
|
82453acf53 | ||
|
|
0cf31395b5 | ||
|
|
ce23c2efaf | ||
|
|
b6d2a3683c | ||
|
|
1088a71e69 | ||
|
|
31e870b086 | ||
|
|
2f239fe405 | ||
|
|
64a674f9bf | ||
|
|
e53b2b5736 | ||
|
|
a2087297e0 | ||
|
|
ca15318ade | ||
|
|
47959ac901 | ||
|
|
56e6176e9d | ||
|
|
6af46bb764 | ||
|
|
6f00d664bb | ||
|
|
2441a35611 | ||
|
|
cee0b24b9f | ||
|
|
66cc3196e1 | ||
|
|
76518ac051 | ||
|
|
3aed3f1954 | ||
|
|
0ef1220846 | ||
|
|
987916cc1c | ||
|
|
4ac334acac | ||
|
|
2230f907fd | ||
|
|
6fabd0c26d | ||
|
|
24a9ec5dd5 | ||
|
|
2328096200 | ||
|
|
dcce8581c5 | ||
|
|
992d907b9c | ||
|
|
93fefc9af3 | ||
|
|
e27d18ef87 | ||
|
|
848dbdf532 | ||
|
|
2f16694529 | ||
|
|
12d9d94138 | ||
|
|
f9e125f795 | ||
|
|
c01824cd09 | ||
|
|
10caaf4fe9 | ||
|
|
81737083a0 | ||
|
|
57628c3d5f | ||
|
|
0a4a431f74 | ||
|
|
7e2d45012e | ||
|
|
f0f631a48b | ||
|
|
0295e1ca90 | ||
|
|
8ef7f7cb1a | ||
|
|
44d96ad100 | ||
|
|
0991628a78 | ||
|
|
77184c7b52 | ||
|
|
9b43f2f03a | ||
|
|
8ee011c7f5 | ||
|
|
0509fe10be | ||
|
|
6f0a2c0288 | ||
|
|
e2ed618056 | ||
|
|
dc91e55cec | ||
|
|
47919bd434 | ||
|
|
c7fd1999db | ||
|
|
e7051824b7 | ||
|
|
631dbda23b | ||
|
|
4ffb614c01 | ||
|
|
c69178332d | ||
|
|
6cb7e31e77 | ||
|
|
65fb77acc6 | ||
|
|
3bd0858acf | ||
|
|
6146ea89b3 | ||
|
|
916e63c769 | ||
|
|
9f773d11ed | ||
|
|
da5f6584d7 | ||
|
|
66aa2f112b | ||
|
|
e3c8d19a9e | ||
|
|
07aafea5af | ||
|
|
ab78314a01 | ||
|
|
0e13173119 | ||
|
|
a7061a7524 | ||
|
|
344595e171 | ||
|
|
573b57ed4a | ||
|
|
0335086df8 | ||
|
|
9d70fd82d6 | ||
|
|
914d82a087 | ||
|
|
74993dcf9e | ||
|
|
7330101206 | ||
|
|
27044da099 | ||
|
|
2a7dcff5c4 | ||
|
|
c8b97b8a38 | ||
|
|
f8f4edfa76 | ||
|
|
826d37c513 | ||
|
|
377eb78020 | ||
|
|
38d1e25604 | ||
|
|
d4b663cd1a | ||
|
|
e8b46f8b19 | ||
|
|
ee5021d94d | ||
|
|
03fe1f72a3 | ||
|
|
a890326b82 | ||
|
|
20704ef9dd | ||
|
|
471d5c2a9b | ||
|
|
9bf680cc1a | ||
|
|
a7daf44330 | ||
|
|
36cf859741 | ||
|
|
c0a99688f9 | ||
|
|
a839cf796b | ||
|
|
1eb4980b89 | ||
|
|
2eb87588da | ||
|
|
2532a57b0b | ||
|
|
befdbfce3f | ||
|
|
c7de999b2a | ||
|
|
4d02705091 | ||
|
|
38b662be63 | ||
|
|
b121333149 | ||
|
|
866f375c3b | ||
|
|
f892c98de7 | ||
|
|
7a74b1e46d | ||
|
|
76dca258ae | ||
|
|
631f2c5107 | ||
|
|
a33f50d058 | ||
|
|
b055117144 | ||
|
|
498e94548b | ||
|
|
75d4a110de | ||
|
|
c8146a8e99 | ||
|
|
65d966fffa | ||
| dd894b510d | |||
|
|
ec200ed155 | ||
|
|
8af74e2062 | ||
|
|
a1b3610af8 | ||
|
|
851e0b4239 | ||
|
|
3de3c1f2c6 | ||
|
|
246944f688 | ||
|
|
e9dcb8a8bb | ||
|
|
7f571a647f | ||
|
|
853e7cb6f7 | ||
|
|
6f694daf92 | ||
|
|
935e25ab7d | ||
|
|
576639148f | ||
|
|
a9b8b83c37 | ||
|
|
61891da224 | ||
|
|
77a418de7f | ||
|
|
239ef88f38 | ||
|
|
0c2adcd416 | ||
|
|
01e09c7c37 | ||
|
|
f5e2a7c847 | ||
|
|
330e13d33d | ||
|
|
b393cb70bf | ||
|
|
854aa2fca6 | ||
|
|
bd344e8137 | ||
|
|
c4c40874e3 | ||
|
|
9f8989b969 | ||
|
|
313263e541 | ||
|
|
dca48b335a | ||
|
|
26309a0d41 | ||
|
|
7cca26bb97 | ||
|
|
2ae3932fcc | ||
|
|
5d32ed7f8e | ||
|
|
fbb840dff3 | ||
|
|
9c448f75d8 | ||
|
|
66b6a29ed4 | ||
|
|
8cb7fb48ce | ||
|
|
5439efc559 | ||
|
|
f77f551b72 | ||
|
|
a55866d558 | ||
|
|
f37804ac49 | ||
|
|
02db7d02f2 | ||
|
|
c0a1563402 | ||
|
|
7d59280b30 | ||
|
|
2f4e673be3 | ||
|
|
379bccc421 | ||
|
|
62b5daee9f | ||
|
|
ea7b4963e1 | ||
|
|
3f50625cc3 | ||
|
|
35c44d60a4 | ||
|
|
6e598ae9f6 | ||
|
|
2715df7cf2 | ||
|
|
4de9e9d918 | ||
|
|
c1bd42ff7e | ||
|
|
b1a54d2967 | ||
|
|
2288684950 | ||
|
|
0c645e8b0c | ||
|
|
072f7c7e45 | ||
|
|
7479c3a2fe | ||
|
|
6731a5c311 | ||
|
|
4153024c21 | ||
|
|
8a31d1b54f | ||
|
|
a1c7132e48 | ||
|
|
b52a520aad | ||
|
|
62fa3b8574 | ||
|
|
ae4a4a8e57 | ||
|
|
04ac3160e4 | ||
|
|
41a0ccb218 | ||
|
|
f88eeeb313 | ||
|
|
4d1541aa1d | ||
|
|
082d97248d | ||
|
|
6c6a557ffb | ||
|
|
1d7054265d | ||
|
|
88215ca3f0 | ||
|
|
2721364df6 | ||
|
|
145933dd11 | ||
|
|
9f9564895e | ||
|
|
12af7f6cc9 | ||
|
|
5fb6676ee6 | ||
|
|
f37a595bc3 | ||
|
|
dcb8152cdf | ||
|
|
3c64d57e3d | ||
|
|
6af788b20c | ||
|
|
1f71a5a2e5 | ||
|
|
68e531aebb | ||
|
|
d88c5f3063 | ||
|
|
fa9ce1d346 | ||
|
|
1c2c010ddc | ||
|
|
a0aee15267 | ||
|
|
5a873ad606 | ||
|
|
1181deb5df | ||
|
|
46c1cc9a49 | ||
|
|
dcd7b4b6c3 | ||
|
|
2d371fd05f | ||
|
|
62ece0d92e | ||
|
|
2952bdca66 | ||
|
|
57b4e9f295 | ||
|
|
ca9b041f54 | ||
|
|
8338ec6076 | ||
|
|
86e21a53ff | ||
|
|
6b4b85b113 | ||
|
|
c3e31baa7a | ||
|
|
302fc2feb1 | ||
|
|
e324d32769 | ||
|
|
5d7eba05ea | ||
|
|
9a654f729f | ||
|
|
87d35f0314 | ||
|
|
2357357acb | ||
|
|
48218bdecd | ||
|
|
a9bca25ef7 | ||
|
|
baa4c2c680 | ||
|
|
d5895306b9 | ||
|
|
3528160696 | ||
|
|
e2083c1efb | ||
|
|
beb42edada | ||
|
|
efe2b2caf5 | ||
|
|
b714194e3a | ||
|
|
9e79d93446 | ||
|
|
dbb6cecafb | ||
|
|
3d87c054be | ||
|
|
4d0ed01369 | ||
|
|
4f3654ab49 | ||
|
|
f37be0419b | ||
|
|
e76c514047 | ||
|
|
626e9732a4 | ||
|
|
bd12a97c4c | ||
|
|
e68aa0a50c | ||
|
|
0961787599 | ||
|
|
b4e45d2487 | ||
|
|
09c0d0d29d | ||
|
|
5904c0eea5 | ||
|
|
1d631e91ce | ||
|
|
e5289931c6 | ||
|
|
0b1263a9e2 | ||
|
|
16235c21c0 | ||
|
|
0b52a579c7 | ||
|
|
06929f7079 | ||
|
|
3e0809ec0a | ||
|
|
894741eaa7 | ||
|
|
b880edc889 | ||
|
|
aee5382ff6 | ||
|
|
667eb73911 | ||
|
|
acbb534320 | ||
|
|
cc511453f5 | ||
|
|
6c077a83bc | ||
|
|
2127961069 | ||
|
|
b681a03bfb | ||
|
|
f62c77c35c | ||
|
|
8ff334ae63 | ||
|
|
ad00c65250 | ||
|
|
0aa8ff6a84 | ||
|
|
a94cc64806 | ||
|
|
449e988a59 | ||
|
|
a2693fa354 | ||
|
|
5328ea891d | ||
| 684ae5771f | |||
|
|
6830e4f22b | ||
|
|
dddd5b83d0 | ||
|
|
91d86552cd | ||
|
|
af79a32847 | ||
|
|
a810288e2e | ||
|
|
14a615cd7c | ||
|
|
21083f8905 | ||
|
|
fceb47f2af | ||
|
|
b27ccc5f3b | ||
|
|
425382f7d2 | ||
|
|
7558cce609 | ||
|
|
98215252bd | ||
|
|
703e83cd48 | ||
|
|
c94052513e | ||
|
|
7e1d6679ce | ||
|
|
283ee2af6f | ||
|
|
60ed23105d | ||
|
|
ac832a0e81 | ||
|
|
c202a639cf | ||
|
|
b957733150 | ||
|
|
7e4d7743a4 | ||
|
|
a6f1dbbf32 | ||
|
|
b38af8fd00 | ||
|
|
4ddf1a2cc8 | ||
|
|
443fe5dbcb | ||
|
|
23ad24751a | ||
|
|
f8371d037b | ||
|
|
ff495e1319 | ||
|
|
575a286e1e | ||
|
|
a72e8f2f65 | ||
|
|
b45f6c1321 | ||
|
|
56ebbecd3b | ||
|
|
5c0110769a | ||
|
|
b37ba9279e | ||
|
|
9e04f0b054 | ||
|
|
cc8afbc220 | ||
|
|
2d6257a390 | ||
|
|
0fcd6a194a | ||
|
|
79471af0c1 | ||
|
|
1fca41b31a | ||
|
|
8b3f1ca019 | ||
|
|
a50c21cf36 | ||
|
|
73842d9793 | ||
|
|
600ac568a9 | ||
|
|
9694446fca | ||
|
|
735b573705 | ||
|
|
863afc065d | ||
|
|
eda4f433d0 | ||
|
|
f56207f1a4 | ||
|
|
e5d03134bb | ||
|
|
b73463a4b2 | ||
|
|
0a08d12f69 | ||
|
|
19f483a68f | ||
|
|
1d5e3d198d | ||
|
|
e94e100431 | ||
|
|
198dddd2ce | ||
|
|
541ca67a06 | ||
|
|
44dad402f6 | ||
|
|
1a588eb9f7 | ||
|
|
3434731c2a | ||
|
|
28bf60e62d | ||
|
|
4a4120864d | ||
|
|
283f26b95c | ||
|
|
cda74f5cc4 | ||
|
|
077ececcf8 | ||
|
|
d48a4c4483 | ||
|
|
13acf3c143 | ||
|
|
84201b346b | ||
|
|
6f6348508a | ||
|
|
23624aa7f8 | ||
|
|
c9b1f6f516 | ||
|
|
a2874a189e | ||
|
|
49389ebb4e | ||
|
|
9b7e5be50e | ||
|
|
66862ea1cf | ||
|
|
c6fa20abaa | ||
|
|
edfbeea0e6 | ||
|
|
db06f4f72e | ||
|
|
32b09538ba | ||
|
|
305d3a6496 | ||
|
|
2a5de178fa | ||
|
|
631ff14fc1 | ||
|
|
1e2d02d437 | ||
|
|
fe9722c261 | ||
|
|
58e1396c15 | ||
|
|
8e72b1f326 | ||
|
|
6b10ebdc2c | ||
|
|
c759b5fa24 | ||
|
|
573e99dd2d | ||
|
|
b9849e2b5c | ||
|
|
6fecf1d58a | ||
|
|
e860f969be | ||
|
|
c6958357c3 | ||
|
|
74d2f5d115 | ||
|
|
777e65c170 | ||
|
|
adbe578aa1 | ||
|
|
c8f57ea82b | ||
|
|
1414eb9852 | ||
|
|
497cd19fe5 | ||
|
|
85915d787a | ||
|
|
2f0518a348 | ||
|
|
c6e121a777 | ||
|
|
7f5f1ba938 | ||
|
|
1229b12d9a | ||
|
|
cd964666e2 | ||
|
|
a932d549f4 | ||
|
|
791435ba76 | ||
|
|
0b3a95e551 | ||
|
|
f746940485 | ||
|
|
c3162ca2cb | ||
|
|
e2462c8151 | ||
|
|
7f7549d2f7 | ||
|
|
c597c38705 | ||
|
|
b00cab6388 | ||
|
|
0b492180df | ||
|
|
e9ac02d416 | ||
|
|
d1d14daa1e | ||
|
|
bfa09e165a | ||
|
|
c063afc5bc | ||
|
|
babaa2680f | ||
|
|
fbc5a061d9 | ||
|
|
cf8c9f0982 | ||
|
|
dd5b66386a | ||
|
|
8dab6f3370 | ||
|
|
5a2b46c6d2 | ||
|
|
58da950f62 | ||
|
|
75002ce45d | ||
|
|
b40fea79ce | ||
|
|
001597284a | ||
|
|
6b658a5bc3 | ||
|
|
bf4badd6b9 | ||
|
|
5f7075d2f7 | ||
|
|
5f19538455 | ||
|
|
6015514680 | ||
|
|
6b2380c5fa | ||
|
|
ecb80e0f34 | ||
|
|
aded4bfdeb | ||
|
|
8080c21760 | ||
|
|
6e91e26dfe | ||
|
|
1161a4114d | ||
|
|
a4350cdf3f | ||
|
|
e17c68a5a0 | ||
|
|
b70e65acb4 | ||
|
|
19817e4ad6 | ||
| d580667b97 | |||
| 301bf41fab | |||
|
|
2ad9c7f4d5 | ||
|
|
c8eed098ba | ||
|
|
207c6a0cb5 | ||
|
|
da203352fd | ||
|
|
f817448839 | ||
|
|
bf56ccaee9 | ||
|
|
5d578d9e92 | ||
|
|
7b9da3786d | ||
|
|
5690707c73 | ||
|
|
3b3be75d94 | ||
|
|
128321c655 | ||
|
|
d2c35e8591 | ||
|
|
3c31b5bc1e | ||
|
|
81d62756fb | ||
|
|
18dc475f40 | ||
|
|
e22f4a28bd | ||
|
|
aba46cb2c6 | ||
|
|
da5570e89f | ||
|
|
c943b3a526 | ||
|
|
428a56af28 | ||
|
|
eb825f516e | ||
|
|
371e16a857 | ||
|
|
750e4be1b9 | ||
|
|
382ac2c70b | ||
|
|
d9aa123bce | ||
|
|
c77b1c3ab2 | ||
|
|
ed7f190778 | ||
|
|
f983be6104 | ||
|
|
075c224022 | ||
|
|
ba701eb4d3 | ||
|
|
93d9b9877c | ||
|
|
87b0cc705e | ||
|
|
6924042452 | ||
|
|
be395304ec | ||
|
|
fb4b0b2f75 | ||
|
|
596b61b23f | ||
|
|
a8354720df | ||
|
|
c9817b25a3 | ||
|
|
e024897b7d | ||
|
|
262c536d7f | ||
|
|
8c0d89bc62 | ||
|
|
8f0cf3b8ef | ||
|
|
6857664f48 | ||
|
|
e1c4bf5289 | ||
|
|
f7f4c15e82 | ||
|
|
0a22d5ab4d | ||
|
|
f050621e3e | ||
|
|
e665cc7500 | ||
|
|
dcadb11a20 | ||
|
|
2bc95a7af7 | ||
|
|
52f95de756 | ||
|
|
409c404a26 | ||
|
|
d07a615c76 | ||
|
|
6113af2dc1 | ||
|
|
a367d40913 | ||
|
|
1fa0159079 | ||
|
|
6c6938aa41 | ||
|
|
2a29b8e807 | ||
|
|
0a516ac98d | ||
|
|
c5f1cdc23d | ||
|
|
49eeb7bf9a | ||
|
|
cb67fbcbd7 | ||
|
|
51ee3de689 | ||
|
|
c69beae81a | ||
|
|
d5f53572df | ||
|
|
9daddccbed | ||
|
|
e0a488dec1 | ||
|
|
0bc98a5f18 | ||
|
|
e834f2ec94 | ||
|
|
4087e9c291 | ||
|
|
31bce25c37 | ||
|
|
2d61e329cb | ||
|
|
e7dc58c596 | ||
|
|
28ebfa597e | ||
|
|
1ca356c2f1 | ||
|
|
b776242cc7 | ||
|
|
33ccdea761 | ||
|
|
7bc4de4e6b | ||
|
|
21d4242340 | ||
|
|
3a1dde0081 | ||
|
|
cc01952059 | ||
|
|
12c9ae1490 | ||
|
|
9bbeec5105 | ||
|
|
c26a806a35 | ||
|
|
91bfb29d33 | ||
|
|
749b743cf6 | ||
|
|
26ad61c1ce | ||
|
|
85ff553a72 | ||
|
|
19226dcf94 | ||
|
|
7311522328 | ||
|
|
27280bb7ff | ||
|
|
4683262cf3 | ||
|
|
c452ffec8b | ||
|
|
09b3640116 | ||
|
|
1bc09fb962 | ||
|
|
21ed4a2371 | ||
|
|
c1a5db616e | ||
|
|
aef06656f0 | ||
|
|
05d191f491 | ||
|
|
abb684aed2 | ||
|
|
bbb0d36494 | ||
|
|
c62575612b | ||
|
|
d939421c82 | ||
|
|
060dd748a7 | ||
|
|
a8b2358987 | ||
|
|
b05b94c811 | ||
|
|
89462856e3 | ||
|
|
8795667e10 | ||
|
|
a7af0be9bb | ||
|
|
2e183d77c8 | ||
|
|
f1fde0542e | ||
|
|
c42cc266f9 | ||
|
|
e8d077bb84 | ||
|
|
a4a6ea5ee6 | ||
|
|
83732dae97 | ||
|
|
c9be8e2a41 | ||
|
|
25aa5bee85 | ||
|
|
545e59aba5 | ||
|
|
fd30872f5e | ||
|
|
8353afa31c | ||
|
|
6eee25e04a | ||
|
|
f7ea45b14d | ||
|
|
2f268cab70 | ||
|
|
c844c6b7f0 | ||
|
|
34facd8769 | ||
|
|
fc6dc9473c | ||
|
|
ecace3d609 | ||
|
|
65fd975b1a | ||
|
|
fd7e04fd8c | ||
|
|
fc9aa5c184 | ||
|
|
5ebfa4452e | ||
|
|
653aaecaec | ||
|
|
3b9cca30bb | ||
|
|
f64bad2c1e | ||
|
|
ce7b11adfc | ||
|
|
b80409c195 | ||
|
|
58547142c9 | ||
|
|
b52acb31c2 | ||
|
|
74c4fb79f5 | ||
|
|
68eb8b9f21 | ||
|
|
6a4d9877e6 | ||
|
|
09737023a1 | ||
|
|
62dff3fa20 | ||
|
|
e925af534e | ||
|
|
2ff6437a92 | ||
|
|
ec412d9be0 | ||
|
|
ca0fb8cf63 | ||
|
|
a1745e25a1 | ||
|
|
50bf26337d | ||
|
|
e6167e3e65 | ||
|
|
645e7cd9dc | ||
|
|
9fa40cbf09 | ||
|
|
942e7986be | ||
|
|
758f3c39ee | ||
|
|
73125013f0 | ||
|
|
776002c08c | ||
|
|
f3f7d4a034 | ||
|
|
1864574a92 | ||
|
|
353315bb43 | ||
|
|
0dbcdc3217 | ||
|
|
046865ba00 | ||
|
|
1546d97b2f | ||
|
|
cd4bd5efe0 | ||
|
|
838cb9f2ce | ||
|
|
24a5a4df45 | ||
|
|
2e395ff58e | ||
|
|
b9506edc03 | ||
|
|
2941ccc93b | ||
|
|
e4e568ae6a | ||
|
|
dd655d8c8d | ||
|
|
3bffc927f6 | ||
|
|
6930139f9a | ||
|
|
499ef51875 | ||
|
|
0b3835f593 | ||
|
|
9ebf98ce77 | ||
|
|
22cf2570f5 | ||
|
|
5307ea85b5 | ||
|
|
21b187ab9f | ||
|
|
9c31a35f6b | ||
|
|
5b42100581 | ||
|
|
591f0ee6a9 | ||
|
|
a18565fd61 | ||
|
|
e5f0e05d43 | ||
|
|
ef540bc498 | ||
|
|
fc66738dca | ||
|
|
5800dd2448 | ||
|
|
b8cb1a828a | ||
|
|
23f60da40d | ||
|
|
fb2af0e0e7 | ||
|
|
bb00653645 | ||
|
|
20456d95e8 | ||
|
|
3ecb7c1d81 | ||
|
|
d0240a54c7 | ||
|
|
e6745e43ec | ||
|
|
8ff0f9cd52 | ||
|
|
f9f6c27cb5 | ||
|
|
fe33bd4c83 | ||
|
|
259ddf0410 | ||
|
|
3947b164b5 | ||
|
|
0854e5c4ac | ||
|
|
79947a051c | ||
|
|
1b7ff9cdd4 | ||
|
|
5f58a6b3d0 | ||
|
|
e5c1cf102c | ||
|
|
e03dc3754d | ||
|
|
dd51ddf0f8 | ||
|
|
bdf4c3e1eb | ||
|
|
9c13ec8808 | ||
|
|
6b63e91391 | ||
|
|
f0793dc33f | ||
|
|
dfde648e79 | ||
|
|
acd338981c | ||
|
|
1c840539c6 | ||
|
|
73a596cb2f | ||
|
|
6fad87002d | ||
|
|
aa3cf2e077 | ||
|
|
6b0098bb09 | ||
|
|
0cc3026b07 | ||
|
|
b7b23dce5f | ||
|
|
8802cfa32a | ||
|
|
ce06809970 | ||
|
|
252de16c13 | ||
|
|
43952fdc31 | ||
|
|
a69a3812c2 | ||
|
|
6534136632 | ||
|
|
2542adba92 | ||
|
|
a7b9dccba4 | ||
|
|
db7138e0e3 | ||
|
|
5a7080c9c0 | ||
|
|
ce1a1d6031 | ||
|
|
650a2921a3 | ||
|
|
7650cead3d | ||
|
|
ed9aaba055 | ||
|
|
cb106be710 | ||
|
|
e21c884841 | ||
|
|
cc157718cd | ||
|
|
4a90663b1c | ||
|
|
21b4c7c916 | ||
|
|
b1127f2e05 | ||
|
|
ceb23c14c9 | ||
|
|
c4c25fc21f | ||
|
|
7772669148 | ||
|
|
1047911cfe | ||
|
|
134c257081 | ||
|
|
fb9cc7fea5 | ||
|
|
850107944c | ||
|
|
330d769bdc | ||
|
|
d779862271 | ||
|
|
b22a719204 | ||
|
|
dcffb422e5 | ||
|
|
b6555519c5 | ||
|
|
1c77245818 | ||
|
|
7ded585c0b | ||
|
|
6065c3ec11 | ||
|
|
c67385ef80 | ||
|
|
af2ee20e19 | ||
|
|
b551610604 | ||
|
|
4f2c59231a | ||
|
|
51bf5cd1bf | ||
|
|
a6e2a45869 | ||
|
|
e5bb243b68 | ||
|
|
a6b4f2fc63 | ||
|
|
762419d4c4 | ||
|
|
934e4ca549 | ||
|
|
549a779a59 | ||
|
|
f43333ae01 | ||
|
|
75cd7feffa | ||
|
|
0b4361ab6b | ||
|
|
4e5c163732 | ||
|
|
17f32246da | ||
|
|
94d4ea8a40 | ||
|
|
70e7b0d527 | ||
|
|
f257b25998 | ||
|
|
610cc2cd4f | ||
|
|
7ed3340028 | ||
|
|
5e25a2572b | ||
|
|
74ce7e89d2 | ||
|
|
40b9013f41 | ||
|
|
52cc327f2b | ||
|
|
94cffaaefe | ||
|
|
8586a44c79 | ||
|
|
5a410fe12d | ||
|
|
222768d363 | ||
|
|
0c6ef79b11 | ||
|
|
14cb059b34 | ||
|
|
45e83d6d15 | ||
|
|
e7f1afdfaa | ||
|
|
1ca7261f06 | ||
|
|
6f15bf7209 | ||
|
|
da4058141b | ||
|
|
77729bc340 | ||
|
|
ace45eabf3 | ||
|
|
75a97a30fe | ||
|
|
596ad18ce3 | ||
|
|
f025f923ae | ||
|
|
fbd3b9372b | ||
|
|
824d6701d8 | ||
|
|
63bee0c78d | ||
|
|
bcb0200435 | ||
|
|
9c4129a2a3 | ||
|
|
8f18d654ee | ||
|
|
97ab8940f0 | ||
|
|
ae7a21504b | ||
|
|
c871613616 | ||
|
|
94334ae52d | ||
|
|
002aac08e8 | ||
|
|
9d7d66f235 | ||
|
|
e954417c2f | ||
|
|
7224494ce6 | ||
|
|
0023014cc2 | ||
|
|
43afa76e60 | ||
|
|
a599615c1a | ||
|
|
588861757a | ||
|
|
830db22dcc | ||
|
|
143014e9c9 | ||
|
|
7ca45e1f54 | ||
|
|
1c24f5d3ce | ||
|
|
ca62a6c4bf | ||
|
|
788d719f2a | ||
|
|
2b9c050911 | ||
|
|
5ae2196a01 | ||
| ddbdf479ae | |||
| f759f94cfa | |||
| a066e0078d | |||
|
|
03de914dbc | ||
|
|
143d9bcce6 | ||
|
|
6e01cca9ad | ||
|
|
1c02f3d8fe | ||
|
|
28ce224caa | ||
|
|
15d6f9861c | ||
|
|
3186b58ba8 | ||
|
|
201fa888dd | ||
|
|
443bc347ef | ||
|
|
3140865780 | ||
|
|
36eec5bf95 | ||
|
|
002ab366fe | ||
|
|
08f286253c | ||
|
|
e2df50a21a | ||
|
|
17a444ad49 | ||
|
|
ffb760d8f3 | ||
|
|
52b00644c6 | ||
|
|
3674d149dc | ||
|
|
bc313c8630 | ||
|
|
0b03a5da0d | ||
|
|
41fe1a5fb5 | ||
|
|
0897d8ec5f | ||
|
|
2c8111801d | ||
|
|
23fcfb4eb2 | ||
|
|
265e34bd04 | ||
|
|
a49fc1c5d1 | ||
|
|
63147ee0a9 | ||
|
|
1a953c99bc | ||
|
|
1fa73c0cac | ||
|
|
0a5904a4dd | ||
|
|
2455cb9545 | ||
|
|
7aa737de7b | ||
|
|
75c258ed7e | ||
|
|
e84db38943 | ||
|
|
19a956110b | ||
|
|
e492faa707 | ||
|
|
d9c21fddb4 | ||
|
|
77816d2da1 | ||
|
|
03534b0892 | ||
|
|
e947a03cf7 | ||
|
|
5cf52d879e | ||
|
|
3548912d0d | ||
|
|
117178f547 | ||
|
|
57d5937bcb | ||
| eb3a940a31 | |||
| 387e8d1dd9 | |||
|
|
26d02127dd | ||
|
|
0be26fbb51 | ||
|
|
979ab9f6ee | ||
|
|
e44e44d317 | ||
|
|
d6e99071aa | ||
|
|
a49751c31d | ||
|
|
7fbf75c623 | ||
|
|
5171c33b72 | ||
|
|
6081a159e3 | ||
|
|
0d42b6d7ee | ||
| 00960bad36 | |||
|
|
649559a917 | ||
|
|
3db604c30c | ||
|
|
5f5b0485b5 | ||
|
|
728401b67c | ||
|
|
1a9c3ba3ff | ||
|
|
1843606074 | ||
|
|
c4f37741b7 | ||
|
|
e3bb38f13b | ||
|
|
00cb2e25eb | ||
|
|
642fb510f8 | ||
|
|
074751f91f | ||
|
|
5c97f68331 | ||
|
|
0f5fcba95d | ||
|
|
7a89e78f43 | ||
|
|
e05eedfc76 | ||
|
|
9f078a6e3c | ||
|
|
b4d1e6197c | ||
|
|
9fbc7a5f09 | ||
|
|
d14a4f1f66 | ||
|
|
1e43b031ba | ||
|
|
41fd7b724e | ||
|
|
2a1706decb | ||
|
|
ab7de52531 | ||
|
|
1891b9e367 | ||
|
|
3ac7dfbd3a | ||
|
|
2853273205 | ||
|
|
2201dd681e | ||
|
|
013dab4ba7 | ||
|
|
cf501945a3 | ||
|
|
ab4703c3dd | ||
|
|
4ce853d892 | ||
|
|
6cdd56ad11 | ||
|
|
66122e6e3b | ||
|
|
c444661884 | ||
|
|
91a8a670d5 | ||
|
|
dbd5566ee0 | ||
|
|
ad2d4a2626 | ||
|
|
148f03205f | ||
|
|
2c1f835528 | ||
|
|
8038e045b0 | ||
|
|
7a635e2896 | ||
|
|
a40a5721f3 | ||
|
|
e4cf4c9f17 | ||
|
|
5299afa276 | ||
|
|
8e8e41d5e1 | ||
|
|
153e45c345 | ||
|
|
7bb365c57b | ||
|
|
8397a81428 | ||
|
|
17c484b97b | ||
|
|
3b740659f5 | ||
|
|
2913bb39e8 | ||
|
|
f21b259376 | ||
|
|
51f30958cd | ||
|
|
f2e04c77fd | ||
|
|
34d4904b2e | ||
|
|
dd61d5793c | ||
|
|
faf7a28cf2 | ||
|
|
05ed7edcbf | ||
|
|
5ddf24381b | ||
|
|
305bf653cf | ||
|
|
4715492f0c | ||
|
|
aa57db03bb | ||
|
|
b2e228c090 | ||
|
|
e9144ff834 | ||
|
|
6f3d1cdd0a | ||
|
|
8209639261 | ||
|
|
a580d6785f | ||
|
|
4976a2ef6a | ||
| 8b22ffe007 | |||
| 24f7ec4a54 | |||
| 4d0dda19b9 | |||
| 55d55212c3 | |||
|
|
1142fa68ea | ||
|
|
305f725394 | ||
|
|
8a297a6fd4 | ||
|
|
d717430256 | ||
|
|
8804738193 | ||
|
|
b14ac354bb | ||
|
|
3296337f40 | ||
|
|
9b11461eaf | ||
|
|
3f9989ea57 | ||
|
|
6e60a988a0 | ||
|
|
64bd762f44 | ||
|
|
b33c2b4f36 | ||
|
|
fe33f09f1d | ||
|
|
9518ce1d0a | ||
|
|
53ca33f301 | ||
|
|
3945e1416b | ||
|
|
3aa8e67551 | ||
|
|
03898a064a | ||
|
|
d879b8e064 | ||
|
|
f132198ead | ||
|
|
5e0d90af2e | ||
|
|
736119fdc6 | ||
|
|
5259c41b40 | ||
|
|
4a6f2f8821 | ||
|
|
529de24da4 | ||
|
|
fc3d15c544 | ||
|
|
261c4a7e88 | ||
|
|
ccd619f659 | ||
|
|
35bbd52f89 | ||
|
|
ea45aa9b19 | ||
|
|
655c377da8 | ||
|
|
5498cbf3bf | ||
|
|
10a343a490 | ||
|
|
b2faad9634 | ||
|
|
786ab54f84 | ||
|
|
d41d153cff | ||
|
|
89bd733142 | ||
|
|
5d2a1e0507 | ||
|
|
22ff68b89f | ||
|
|
fe41ef619b | ||
|
|
3870a013fa | ||
|
|
ebd890a0da | ||
|
|
964a1940c4 | ||
|
|
b11af95ec7 | ||
|
|
e8de6c37fc | ||
|
|
af41cefaac | ||
|
|
900a96938b | ||
|
|
c58d43ac1e | ||
|
|
0122ee94a5 | ||
|
|
dfb541011d | ||
|
|
aeff147b6d | ||
|
|
ee02aa394a | ||
|
|
8ba33d9d10 | ||
|
|
85a04f8e81 | ||
|
|
531c75bff9 | ||
|
|
12f70572b0 | ||
|
|
7090e85224 | ||
|
|
e5e1f945ea | ||
|
|
e1cf41b94b | ||
|
|
d4bf8368b1 | ||
|
|
6588a71879 | ||
|
|
d700df6afb | ||
| 35d46e23a8 | |||
| f1fc086612 | |||
|
|
13cf3deb3f | ||
|
|
74dfa30556 | ||
|
|
e8b0419ccf | ||
|
|
793afff0aa | ||
|
|
b80101411f | ||
|
|
e83097d114 | ||
|
|
7b4e509140 | ||
|
|
c168ce3a7e | ||
|
|
e1dcd290b1 | ||
|
|
352913ba14 | ||
|
|
dbda31d570 | ||
|
|
d521409033 | ||
|
|
6b06f1dbcf | ||
|
|
70912e1d56 | ||
|
|
ffddbb455f | ||
|
|
d5dd8e7ecf | ||
|
|
082a5819cd | ||
|
|
ae2b3d361e | ||
|
|
bee39dda58 | ||
|
|
559cd74647 | ||
|
|
009e1aaebb | ||
|
|
fe9996dd4f | ||
|
|
d1e54b821b | ||
|
|
8877aac8cb | ||
|
|
a61096ffa5 | ||
|
|
230c57cca4 | ||
|
|
b8100e9417 | ||
|
|
b3d77ab9eb | ||
|
|
030a66c091 | ||
|
|
751c1f20dc | ||
|
|
00a9c48fec | ||
|
|
6fbf4a6aac | ||
|
|
f40cf6539a | ||
|
|
8e4f7babf3 | ||
|
|
e18b059234 | ||
|
|
e3114c29af | ||
|
|
3539f84c9a | ||
|
|
5b0c6d1aff | ||
|
|
1b72b14376 | ||
|
|
32af6ede73 | ||
|
|
a79fb237e5 | ||
|
|
ec510425a1 | ||
|
|
bf772a5eb9 | ||
|
|
fe3a9fbd67 | ||
|
|
090b9ea0c1 | ||
|
|
ddfaeddb5f | ||
|
|
abe938c30a | ||
|
|
cf02fecadc | ||
|
|
54c24f8434 | ||
|
|
35ab0f4261 | ||
|
|
73342615d1 | ||
|
|
d64108a5c1 | ||
|
|
1dfa92b0c3 | ||
|
|
567d5f70ab | ||
|
|
c8b5ac6c29 | ||
|
|
fe0711c3e2 | ||
|
|
9486466abf | ||
|
|
1328e869a9 | ||
|
|
fbc648302d | ||
|
|
ef129a3135 | ||
|
|
08ef7c93ea | ||
| d56493da54 | |||
|
|
78f3248ac9 | ||
| 16b0228394 | |||
|
|
516ed3e9a0 | ||
|
|
f4d4969650 | ||
|
|
7f482219ef | ||
|
|
dbbc2b70bf | ||
|
|
e265b760c1 | ||
|
|
138e17508b | ||
|
|
7b5edc363a | ||
|
|
8eaa635385 | ||
|
|
91d3216a00 | ||
|
|
18c3f274f8 | ||
|
|
b545d8800c | ||
|
|
3bbaa8dad0 | ||
|
|
a1c251c3b7 | ||
|
|
8190d7f171 | ||
|
|
59bbb9e058 | ||
|
|
861d8a683f | ||
|
|
cb3e8e4112 | ||
|
|
5f4aee71b8 | ||
|
|
02403377cd | ||
|
|
2773949197 | ||
|
|
3b3cd5ade4 | ||
| 6436fb3bde | |||
|
|
240ddbcde3 | ||
|
|
ef5d4013d3 | ||
|
|
a8bd59c07f | ||
|
|
db17d8d0ce | ||
|
|
4d0d08f245 | ||
|
|
c119750896 | ||
|
|
6d9f504639 | ||
|
|
8e49a35e0e | ||
|
|
d7a0c69990 | ||
|
|
cb1324fc2d | ||
|
|
a1adab1156 | ||
|
|
a6324c8f65 | ||
|
|
9ec23559af | ||
|
|
a377933884 | ||
|
|
9c161121b3 | ||
|
|
a5b00fa718 | ||
|
|
919e118a2f | ||
|
|
f38df259a7 | ||
|
|
ec10e3bb30 | ||
|
|
224c2c049e | ||
|
|
8509761d67 | ||
|
|
a808ac5dc8 | ||
|
|
37a3c4dbb5 | ||
|
|
3fd4bb622f | ||
|
|
d74b7fb304 | ||
|
|
83c72c1458 | ||
|
|
9b3ff05af7 | ||
|
|
14ce4d4394 | ||
|
|
9062c04ef0 | ||
|
|
0d48ac8fc2 | ||
|
|
7f2464684a | ||
|
|
2c4de9878e | ||
|
|
611961cefe | ||
|
|
7ede250403 | ||
|
|
e0028d5f94 | ||
|
|
0d8691045b | ||
|
|
bd727ae189 | ||
|
|
4bfda76666 | ||
|
|
a030978558 | ||
|
|
2aff3d76ca | ||
|
|
8312659275 | ||
|
|
55ce33bc1c | ||
|
|
1613bdcd06 | ||
|
|
a67dc00fa3 | ||
|
|
5780fb7392 | ||
|
|
840abf8cdb | ||
|
|
b57e847916 | ||
| 1c82c73bc0 | |||
| 22b4f33984 | |||
| 6c8288f38a | |||
| e08b57e814 | |||
|
|
87aa23107d | ||
|
|
6e0dd2064a | ||
|
|
5f939430ee | ||
|
|
4abe8587f3 | ||
|
|
62778fc1e9 | ||
|
|
b0953e9494 | ||
|
|
53006ac9ad | ||
|
|
0fd8de8029 | ||
|
|
46cc4c72e7 | ||
|
|
a05fe5ce9b | ||
|
|
8899e3ebb7 | ||
|
|
727ff8be95 | ||
|
|
a8d97f1daa | ||
|
|
488485e23e | ||
|
|
804e652b6d | ||
|
|
79138dfaf0 | ||
|
|
e3f0991805 | ||
|
|
f02e7d0936 | ||
|
|
67f3f89bf7 | ||
|
|
36bdd6cbd0 | ||
|
|
b760dcdb58 | ||
|
|
d926bdb609 | ||
|
|
e1bede1bf6 | ||
|
|
eeede88fb8 | ||
|
|
2f688892ea | ||
|
|
5c5fad6bb4 | ||
|
|
1be136bd2e | ||
|
|
df404507b5 | ||
|
|
587bdf92f7 | ||
|
|
f52059522b | ||
| 691ac6d439 | |||
|
|
6fc056cba2 | ||
|
|
54cb82cbda | ||
|
|
b8c9130ae4 | ||
|
|
c2e1b92cce | ||
|
|
6113325e07 | ||
|
|
bea7e1526d | ||
|
|
abc75e6c3d | ||
|
|
dfc1db672d | ||
|
|
5b71591998 | ||
|
|
4dabf4bf01 | ||
|
|
210c443b30 | ||
|
|
f95e7e96bf | ||
|
|
735aa70b53 | ||
|
|
b1fd178341 | ||
|
|
5059cef065 | ||
|
|
0bb21ef4a0 | ||
|
|
2a4a5d2519 | ||
|
|
99c10e5ed3 | ||
|
|
892ab47b7a | ||
|
|
ebff015c1c | ||
|
|
1da00264a0 | ||
|
|
7f6805aac6 | ||
|
|
d56d624f0f | ||
|
|
fd91e912fe | ||
|
|
7106791186 | ||
|
|
a0f379f613 | ||
|
|
c0847f6789 | ||
|
|
831289afc3 | ||
|
|
da6883489e | ||
|
|
ed8c7bc338 | ||
|
|
bd06ed9c14 | ||
|
|
fa67d0581e | ||
| 7ba97f3c32 | |||
| 992436b47c | |||
| 7614481d78 | |||
| 07371ddfdf | |||
|
|
66f9374477 | ||
|
|
50c29f6a9b | ||
|
|
a4877c6294 | ||
|
|
c9bebc0700 | ||
|
|
26867bfd8f | ||
|
|
dfd6df7f42 | ||
|
|
092681aea7 | ||
|
|
3a2f4843ba | ||
|
|
db6cdc3ce0 | ||
|
|
b23aa6cebd | ||
|
|
bc01e6369e | ||
|
|
a232dac196 | ||
|
|
2676daabf1 | ||
|
|
c82e67083f | ||
|
|
175fd31431 | ||
|
|
3b1a96582a | ||
|
|
96303e57ec | ||
|
|
c26649a0a8 | ||
|
|
0620310f4f | ||
|
|
abdbd1ee64 | ||
|
|
2b46f04baf | ||
|
|
106b48f4d5 | ||
|
|
732b34d28b | ||
|
|
3c5d2f8b47 | ||
|
|
116539ce34 | ||
|
|
e8421d4274 | ||
|
|
0b9ee23a5c | ||
|
|
2d2841d59e | ||
|
|
a0c2f6a51e | ||
|
|
1d946afe82 | ||
|
|
6ea519b55a | ||
|
|
2d6c49ee20 | ||
|
|
59b250f091 | ||
|
|
6c347f08b6 | ||
|
|
304f24764b | ||
|
|
3dac26ffda | ||
|
|
f51a442357 | ||
|
|
1cbcddf410 | ||
|
|
bd819b1f5f | ||
|
|
aad428210d | ||
|
|
a08954f7db | ||
|
|
bba14d265a | ||
|
|
59e0b43585 | ||
|
|
f103afb495 | ||
|
|
79ee6a973e | ||
|
|
eab96f2086 | ||
|
|
975d5f98a3 | ||
|
|
1e86eff2d3 | ||
|
|
d4145179a9 | ||
|
|
2492d0b38f | ||
| 8166790113 | |||
| 40cc967c30 | |||
| 6d5c7bcaf5 | |||
| b0904fef69 | |||
| ba397836a6 | |||
| de10f2a6e5 | |||
| c332d6f89a | |||
| 72043c0260 | |||
| c963dbc48d | |||
| 2f4673ce1b | |||
| ca40e6140a | |||
| 2226ff32dc | |||
| 34d294263f | |||
| 526ccd52fd | |||
| 0765d88ff2 | |||
| 9777e71ee0 | |||
| a716025094 | |||
| c8f951e6e8 | |||
| 24c645d8d2 | |||
| 90e7d4076b | |||
| 8ab462f72c | |||
| 0862362ebd | |||
| 766910c0ae | |||
| 2f48521ce7 | |||
| ac6154e94d | |||
| d2d2297dc7 | |||
| bf5e5d1254 | |||
| adbe43c2c2 | |||
| 974e3e192b | |||
| 2283a15172 | |||
| c4d5e50f22 | |||
| 86d90605fc | |||
| db71bf2868 | |||
| 3fe634f8b9 | |||
| fef124a01d | |||
| 272977a521 | |||
| dedb3d57fd | |||
|
|
0fc507e238 | ||
|
|
9e9013ec43 | ||
| 19108517da | |||
| babd14d763 | |||
|
|
063a5d1ae4 | ||
|
|
1de395bc7b | ||
|
|
c22f8e3607 | ||
| 60f675c6f0 | |||
| 297ca0be2c | |||
|
|
6dacf9e1f1 | ||
| 2a56ec3b3e | |||
| cfdb9ef1f2 | |||
| a9aa3b6cd8 | |||
| cd1853f853 | |||
| cc106ab42f | |||
| 76e45564f8 | |||
| 7454e9abd2 | |||
|
|
f78bbc6b70 | ||
|
|
19ad91d5d8 | ||
|
|
0c50fa9816 | ||
|
|
83ccb79fa3 | ||
|
|
8b72c063a8 | ||
|
|
7e316a1305 | ||
|
|
e0791eacad | ||
|
|
11ec018933 | ||
|
|
8ef1cad6fb | ||
|
|
6885e561db | ||
|
|
806bff19f4 | ||
|
|
949057b1c3 | ||
|
|
5c23f4ac09 | ||
|
|
cdd53f09b9 | ||
|
|
f3210608ae | ||
|
|
f01784108d | ||
|
|
30c1068a13 | ||
|
|
3f3df090f4 | ||
|
|
390f574662 | ||
|
|
48a09c9783 | ||
|
|
981109a6f1 | ||
|
|
2f8428db1a | ||
|
|
d0ec3fa2e2 | ||
|
|
9533289e57 | ||
|
|
0f485cf77c | ||
|
|
8c8b4613d2 | ||
|
|
3b872f08a8 | ||
|
|
e89e0159bf | ||
|
|
857d2c26f4 | ||
|
|
49e70637db | ||
|
|
72a151816a | ||
|
|
528b20dc00 | ||
|
|
ce2d2b78c4 | ||
|
|
b22c42b9e3 | ||
|
|
377d25a1fd | ||
|
|
32a60c3b5c | ||
|
|
3f40aff01f | ||
|
|
09563caf37 | ||
|
|
bea5c55ac9 | ||
|
|
62dcfe2cae | ||
|
|
4dd331d546 | ||
|
|
f1debd6cb5 | ||
|
|
a8220147ce | ||
|
|
80fbe048bf | ||
|
|
33d1c8c68c | ||
|
|
9258c234f2 | ||
|
|
53d77d3421 | ||
|
|
5f4c57d3eb | ||
|
|
8a2acd360d | ||
|
|
130fc5b54d | ||
|
|
e15a848ac6 | ||
|
|
054e77be42 | ||
|
|
553b6f1ee8 | ||
|
|
1729fe6993 | ||
|
|
cc01e88ce8 | ||
|
|
f18715a497 | ||
|
|
0cee4ac973 | ||
|
|
d47a191d5c | ||
|
|
513afd603b | ||
|
|
23efaed29e | ||
|
|
2c80f4402d | ||
|
|
9acb3a5482 | ||
|
|
37d2b80a3d | ||
|
|
03b52f148c | ||
|
|
f326fa611f | ||
|
|
7c83481d6f | ||
|
|
afdae7f670 | ||
|
|
182d6d8602 | ||
|
|
82ee84ad39 | ||
|
|
b086de1c12 | ||
|
|
1481d1a1e9 | ||
|
|
681c473e7a | ||
|
|
206ff89587 | ||
|
|
91aa5a0fb9 | ||
|
|
7c4b8758ea | ||
|
|
f22e559e83 | ||
|
|
9731437717 | ||
|
|
6f7bb8dbf2 | ||
|
|
3dd83c52bf | ||
|
|
949ac08643 | ||
|
|
4948b1b86a | ||
|
|
e5bf0e1b9f | ||
|
|
b776465919 | ||
|
|
82181b28b0 | ||
|
|
eb07fd7b9a | ||
|
|
79dbad6547 | ||
|
|
94884fc39a | ||
|
|
aec5ef8332 | ||
|
|
8e4783a0c6 | ||
|
|
c23f2b61cc | ||
|
|
12cf7f0f92 | ||
|
|
6481897ffa | ||
|
|
9653fc6725 | ||
|
|
2af4e8fe10 | ||
|
|
499a7c6129 | ||
|
|
84fdf9cc80 | ||
|
|
f8d023ed5c | ||
|
|
5ca61d8568 | ||
|
|
58998f4576 | ||
|
|
c486577b07 | ||
|
|
a69c8ce6a2 | ||
|
|
e527783e55 | ||
|
|
4d9c92dd49 | ||
|
|
9b01229e58 | ||
|
|
e3a030fad8 | ||
|
|
cb878294ea | ||
|
|
b2fc5e8fd3 | ||
|
|
4fb42319ef | ||
|
|
1bd1aca0f0 | ||
|
|
b433312042 | ||
|
|
1041b1b86d | ||
|
|
1ace5fd10d | ||
|
|
cfc9f73744 | ||
|
|
2418167182 | ||
|
|
52090d3a6b | ||
|
|
73f68c102d | ||
|
|
862dd1e5f1 | ||
| 58351d1989 | |||
|
|
6705205e2f | ||
|
|
2cdd0ff644 | ||
|
|
69ae841f64 | ||
|
|
7f8700288f | ||
|
|
f87dec6ca6 | ||
|
|
65a6c0aed5 | ||
|
|
f6dd0decfb | ||
|
|
816984542a | ||
|
|
3837e8b263 | ||
|
|
47b3141f18 | ||
|
|
e10ee3e55a | ||
|
|
0a4e89e29b | ||
|
|
0765fa92b5 | ||
|
|
2529312152 | ||
|
|
3404643636 | ||
|
|
6b9f6ac82e | ||
|
|
ab5bb79754 | ||
|
|
58f95d6ce3 | ||
|
|
c858b67f2e | ||
|
|
019230f6d9 | ||
|
|
fe6c254a24 | ||
|
|
8ef38178e6 | ||
|
|
873ac347d4 | ||
|
|
48400ff5ce | ||
|
|
ad8bec40bb | ||
|
|
137de0a8b2 | ||
|
|
85f3fdd438 | ||
|
|
55be82a2c4 | ||
|
|
0b19d8639b | ||
|
|
92b35ab3e7 | ||
|
|
18d641e2aa | ||
|
|
bfa3507cc6 | ||
|
|
137a60ccef | ||
|
|
58d4bad400 | ||
|
|
f6f1f0023a | ||
|
|
f6313b4427 | ||
|
|
d8ca8f5985 | ||
|
|
ac36297e27 | ||
|
|
7fef21218e | ||
| 7aa4ae1782 | |||
| dd7739f95e | |||
|
|
6d77d45529 | ||
|
|
eed44c14df | ||
|
|
af63858d80 | ||
|
|
203f5d06d1 | ||
|
|
c6515da8c9 | ||
|
|
5d61e45ecd | ||
|
|
96ba3832d6 | ||
|
|
14d14dd6f3 | ||
|
|
c9d7498bed | ||
|
|
46e26e63ef | ||
|
|
32614daebd | ||
|
|
6af9df79b2 | ||
|
|
075da66344 | ||
|
|
e273433d19 | ||
|
|
2bec653b81 | ||
|
|
074dc2c58d | ||
|
|
1b12ccd180 | ||
|
|
8cf6134f8b | ||
|
|
8ba1878657 | ||
|
|
d9f3fe186d | ||
|
|
032793d202 | ||
|
|
4e45ac6ef4 | ||
|
|
081ef1fd81 | ||
|
|
22764f5362 | ||
|
|
1b84f57a5b | ||
|
|
23f4a82bbc | ||
|
|
2696bc3704 | ||
|
|
67653cc0e8 | ||
|
|
b4d95a68f1 | ||
|
|
0fe1acdabc | ||
|
|
a7d56c29b5 | ||
|
|
d83d510002 | ||
|
|
9fbfc83535 | ||
|
|
ad8d84bfd7 | ||
|
|
4257f1e2ac | ||
|
|
8166970038 | ||
|
|
88530606df | ||
|
|
d9b3443818 | ||
|
|
b202573920 | ||
|
|
83bf68a64f | ||
|
|
02d68bc057 | ||
|
|
5571430e1b | ||
|
|
e38da7eb95 | ||
|
|
976faee8a3 | ||
|
|
bd6ce4ae25 |
42
.github/ISSUE_TEMPLATE/1-bug.yaml
vendored
Normal file
42
.github/ISSUE_TEMPLATE/1-bug.yaml
vendored
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
name: Bug Report
|
||||||
|
description: File a bug report.
|
||||||
|
title: "[Bug]: "
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thanks for taking the time to fill out this bug report! Please attach any minimal reproduction projects!
|
||||||
|
- type: textarea
|
||||||
|
id: description-area
|
||||||
|
attributes:
|
||||||
|
label: Description
|
||||||
|
description: Please provide a description of the bug and what you expected to happen.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: steps-area
|
||||||
|
attributes:
|
||||||
|
label: Steps to reproduce
|
||||||
|
description: Please provide reproduction steps if possible.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: dropdown
|
||||||
|
id: version
|
||||||
|
attributes:
|
||||||
|
label: Version
|
||||||
|
description: What version of Flax are you running?
|
||||||
|
options:
|
||||||
|
- '1.8'
|
||||||
|
- '1.9'
|
||||||
|
- '1.10'
|
||||||
|
- '1.11'
|
||||||
|
- master branch
|
||||||
|
default: 2
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: logs
|
||||||
|
attributes:
|
||||||
|
label: Relevant logs
|
||||||
|
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
|
||||||
|
render: shell
|
||||||
22
.github/ISSUE_TEMPLATE/2-feature-request.yaml
vendored
Normal file
22
.github/ISSUE_TEMPLATE/2-feature-request.yaml
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
name: Feature Request
|
||||||
|
description: File a feature request.
|
||||||
|
title: "[Request]: "
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thanks for taking the time to fill out a feature request!
|
||||||
|
- type: textarea
|
||||||
|
id: description-area
|
||||||
|
attributes:
|
||||||
|
label: Description
|
||||||
|
description: Please provide a description of the feature!
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: benefits-area
|
||||||
|
attributes:
|
||||||
|
label: Benefits
|
||||||
|
description: Please provide what benefits this feature would provide to the engine!
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
2
.github/actions/vulkan/action.yml
vendored
2
.github/actions/vulkan/action.yml
vendored
@@ -3,7 +3,7 @@ description: Downloads and installs Vulkan SDK.
|
|||||||
inputs:
|
inputs:
|
||||||
vulkan-version:
|
vulkan-version:
|
||||||
description: 'Vulkan SDK release version (e.g. 1.2.198.1).'
|
description: 'Vulkan SDK release version (e.g. 1.2.198.1).'
|
||||||
default: '1.2.198.1'
|
default: '1.3.290.0'
|
||||||
required: false
|
required: false
|
||||||
runs:
|
runs:
|
||||||
using: "composite"
|
using: "composite"
|
||||||
|
|||||||
87
.github/data/Build Settings.json
vendored
Normal file
87
.github/data/Build Settings.json
vendored
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
{
|
||||||
|
"ID": "2364031e4e327637c1ad88b415fa756e",
|
||||||
|
"TypeName": "FlaxEditor.Content.Settings.BuildSettings",
|
||||||
|
"EngineBuild": 6605,
|
||||||
|
"Data": {
|
||||||
|
"OutputName": "${PROJECT_NAME}",
|
||||||
|
"MaxAssetsPerPackage": 4096,
|
||||||
|
"MaxPackageSizeMB": 1024,
|
||||||
|
"ContentKey": 0,
|
||||||
|
"ForDistribution": false,
|
||||||
|
"SkipPackaging": true,
|
||||||
|
"AdditionalAssets": null,
|
||||||
|
"AdditionalScenes": null,
|
||||||
|
"AdditionalAssetFolders": null,
|
||||||
|
"ShadersNoOptimize": false,
|
||||||
|
"ShadersGenerateDebugData": false,
|
||||||
|
"SkipDefaultFonts": false,
|
||||||
|
"SkipDotnetPackaging": false,
|
||||||
|
"SkipUnusedDotnetLibsPackaging": true,
|
||||||
|
"Presets": [
|
||||||
|
{
|
||||||
|
"Name": "Development",
|
||||||
|
"Targets": [
|
||||||
|
{
|
||||||
|
"Name": "Windows",
|
||||||
|
"Output": "Output\\Windows",
|
||||||
|
"Platform": 2,
|
||||||
|
"Mode": 1,
|
||||||
|
"CustomDefines": null,
|
||||||
|
"PreBuildAction": null,
|
||||||
|
"PostBuildAction": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "Linux",
|
||||||
|
"Output": "Output\\Linux",
|
||||||
|
"Platform": 6,
|
||||||
|
"Mode": 1,
|
||||||
|
"CustomDefines": null,
|
||||||
|
"PreBuildAction": null,
|
||||||
|
"PostBuildAction": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "Mac",
|
||||||
|
"Output": "Output\\Mac",
|
||||||
|
"Platform": 13,
|
||||||
|
"Mode": 1,
|
||||||
|
"CustomDefines": null,
|
||||||
|
"PreBuildAction": null,
|
||||||
|
"PostBuildAction": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "Android",
|
||||||
|
"Output": "Output\\Android",
|
||||||
|
"Platform": 9,
|
||||||
|
"Mode": 1,
|
||||||
|
"CustomDefines": null,
|
||||||
|
"PreBuildAction": null,
|
||||||
|
"PostBuildAction": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "iOS",
|
||||||
|
"Output": "Output\\iOS",
|
||||||
|
"Platform": 14,
|
||||||
|
"Mode": 1,
|
||||||
|
"CustomDefines": null,
|
||||||
|
"PreBuildAction": null,
|
||||||
|
"PostBuildAction": null
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Name": "Release",
|
||||||
|
"Targets": [
|
||||||
|
{
|
||||||
|
"Name": "Windows",
|
||||||
|
"Output": "Output\\Windows",
|
||||||
|
"Platform": 2,
|
||||||
|
"Mode": 2,
|
||||||
|
"CustomDefines": null,
|
||||||
|
"PreBuildAction": null,
|
||||||
|
"PostBuildAction": null
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
5
.github/data/Cook.ps1
vendored
Normal file
5
.github/data/Cook.ps1
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
Write-Output "Cooking Game"
|
||||||
|
Start-Process -filepath "Binaries\Editor\Win64\Development\FlaxEditor.exe" -Wait -NoNewWindow -PassThru -ArgumentList '-std -headless -mute -null -project "FlaxSamples/MaterialsFeaturesTour" -build "Development.Windows"'
|
||||||
|
|
||||||
|
Write-Output "Testing Game"
|
||||||
|
Start-Process -filepath "FlaxSamples\MaterialsFeaturesTour\Output\Windows\MaterialsFeaturesTour.exe" -Wait -NoNewWindow -PassThru -ArgumentList '-std -headless -mute -null'
|
||||||
11
.github/data/ExitOnEsc.cs
vendored
Normal file
11
.github/data/ExitOnEsc.cs
vendored
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
using FlaxEngine;
|
||||||
|
|
||||||
|
public class ExitOnEsc : Script
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
public override void OnUpdate()
|
||||||
|
{
|
||||||
|
// Exit as soon as game starts update loaded level
|
||||||
|
Engine.RequestExit();
|
||||||
|
}
|
||||||
|
}
|
||||||
6
.github/workflows/build_ios.yml
vendored
6
.github/workflows/build_ios.yml
vendored
@@ -10,7 +10,7 @@ jobs:
|
|||||||
# Game
|
# Game
|
||||||
game-windows:
|
game-windows:
|
||||||
name: Game (iOS, Release ARM64)
|
name: Game (iOS, Release ARM64)
|
||||||
runs-on: "macos-latest"
|
runs-on: "macos-14"
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repo
|
- name: Checkout repo
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
@@ -19,7 +19,7 @@ jobs:
|
|||||||
- name: Setup .NET
|
- name: Setup .NET
|
||||||
uses: actions/setup-dotnet@v3
|
uses: actions/setup-dotnet@v3
|
||||||
with:
|
with:
|
||||||
dotnet-version: 8.0.x
|
dotnet-version: 9.0.x
|
||||||
- name: Setup .NET Workload
|
- name: Setup .NET Workload
|
||||||
run: |
|
run: |
|
||||||
dotnet workload install ios
|
dotnet workload install ios
|
||||||
@@ -33,4 +33,4 @@ jobs:
|
|||||||
git lfs pull
|
git lfs pull
|
||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
./Development/Scripts/Mac/CallBuildTool.sh -build -log -dotnet=8 -arch=ARM64 -platform=iOS -configuration=Release -buildtargets=FlaxGame
|
./Development/Scripts/Mac/CallBuildTool.sh -build -log -dotnet=9 -arch=ARM64 -platform=iOS -configuration=Release -buildtargets=FlaxGame
|
||||||
|
|||||||
7
.github/workflows/build_linux.yml
vendored
7
.github/workflows/build_linux.yml
vendored
@@ -10,15 +10,12 @@ jobs:
|
|||||||
# Editor
|
# Editor
|
||||||
editor-linux:
|
editor-linux:
|
||||||
name: Editor (Linux, Development x64)
|
name: Editor (Linux, Development x64)
|
||||||
runs-on: "ubuntu-20.04"
|
runs-on: "ubuntu-24.04"
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repo
|
- name: Checkout repo
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
sudo rm -f /etc/apt/sources.list.d/*
|
|
||||||
sudo cp -f .github/workflows/build_linux_sources.list /etc/apt/sources.list
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install libx11-dev libxcursor-dev libxinerama-dev build-essential gettext libtool libtool-bin libpulse-dev libasound2-dev libjack-dev portaudio19-dev
|
sudo apt-get install libx11-dev libxcursor-dev libxinerama-dev build-essential gettext libtool libtool-bin libpulse-dev libasound2-dev libjack-dev portaudio19-dev
|
||||||
- name: Setup Vulkan
|
- name: Setup Vulkan
|
||||||
uses: ./.github/actions/vulkan
|
uses: ./.github/actions/vulkan
|
||||||
@@ -41,7 +38,7 @@ jobs:
|
|||||||
# Game
|
# Game
|
||||||
game-linux:
|
game-linux:
|
||||||
name: Game (Linux, Release x64)
|
name: Game (Linux, Release x64)
|
||||||
runs-on: "ubuntu-20.04"
|
runs-on: "ubuntu-24.04"
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repo
|
- name: Checkout repo
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|||||||
4
.github/workflows/build_linux_sources.list
vendored
4
.github/workflows/build_linux_sources.list
vendored
@@ -1,4 +0,0 @@
|
|||||||
deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse
|
|
||||||
deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiverse
|
|
||||||
deb http://archive.ubuntu.com/ubuntu/ focal-security main restricted universe multiverse
|
|
||||||
deb http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse
|
|
||||||
4
.github/workflows/build_mac.yml
vendored
4
.github/workflows/build_mac.yml
vendored
@@ -10,7 +10,7 @@ jobs:
|
|||||||
# Editor
|
# Editor
|
||||||
editor-mac:
|
editor-mac:
|
||||||
name: Editor (Mac, Development ARM64)
|
name: Editor (Mac, Development ARM64)
|
||||||
runs-on: "macos-latest"
|
runs-on: "macos-14"
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repo
|
- name: Checkout repo
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
@@ -35,7 +35,7 @@ jobs:
|
|||||||
# Game
|
# Game
|
||||||
game-mac:
|
game-mac:
|
||||||
name: Game (Mac, Release ARM64)
|
name: Game (Mac, Release ARM64)
|
||||||
runs-on: "macos-latest"
|
runs-on: "macos-14"
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repo
|
- name: Checkout repo
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|||||||
55
.github/workflows/cd.yml
vendored
55
.github/workflows/cd.yml
vendored
@@ -1,12 +1,13 @@
|
|||||||
name: Continuous Deployment
|
name: Continuous Deployment
|
||||||
on:
|
on:
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '15 4 * * *'
|
- cron: '15 6 * * *'
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
env:
|
env:
|
||||||
DOTNET_NOLOGO: true
|
DOTNET_NOLOGO: true
|
||||||
DOTNET_CLI_TELEMETRY_OPTOUT: false
|
DOTNET_CLI_TELEMETRY_OPTOUT: false
|
||||||
|
GIT_LFS_PULL_OPTIONS: '-c lfs.concurrenttransfers=1 -c lfs.transfer.maxretries=2 -c http.version="HTTP/1.1" -c lfs.activitytimeout=60'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
||||||
@@ -20,7 +21,7 @@ jobs:
|
|||||||
- name: Checkout LFS
|
- name: Checkout LFS
|
||||||
run: |
|
run: |
|
||||||
git lfs version
|
git lfs version
|
||||||
git lfs pull
|
git ${{ env.GIT_LFS_PULL_OPTIONS }} lfs pull
|
||||||
- name: Setup Vulkan
|
- name: Setup Vulkan
|
||||||
uses: ./.github/actions/vulkan
|
uses: ./.github/actions/vulkan
|
||||||
- name: Setup .NET
|
- name: Setup .NET
|
||||||
@@ -33,14 +34,14 @@ jobs:
|
|||||||
dotnet workload --info
|
dotnet workload --info
|
||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
.\PackageEditor.bat -arch=x64 -platform=Windows -deployOutput=Output
|
.\PackageEditor.bat -arch=x64 -platform=Windows -deployOutput=Output -dotnet=8
|
||||||
- name: Upload
|
- name: Upload
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: Windows-Editor
|
name: Windows-Editor
|
||||||
path: Output/Editor.zip
|
path: Output/Editor.zip
|
||||||
- name: Upload
|
- name: Upload
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: Windows-EditorDebugSymbols
|
name: Windows-EditorDebugSymbols
|
||||||
path: Output/EditorDebugSymbols.zip
|
path: Output/EditorDebugSymbols.zip
|
||||||
@@ -53,7 +54,7 @@ jobs:
|
|||||||
- name: Checkout LFS
|
- name: Checkout LFS
|
||||||
run: |
|
run: |
|
||||||
git lfs version
|
git lfs version
|
||||||
git lfs pull
|
git ${{ env.GIT_LFS_PULL_OPTIONS }} lfs pull
|
||||||
- name: Setup Vulkan
|
- name: Setup Vulkan
|
||||||
uses: ./.github/actions/vulkan
|
uses: ./.github/actions/vulkan
|
||||||
- name: Setup .NET
|
- name: Setup .NET
|
||||||
@@ -66,9 +67,9 @@ jobs:
|
|||||||
dotnet workload --info
|
dotnet workload --info
|
||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
.\PackagePlatforms.bat -arch=x64 -platform=Windows -deployOutput=Output
|
.\PackagePlatforms.bat -arch=x64 -platform=Windows -deployOutput=Output -dotnet=8
|
||||||
- name: Upload
|
- name: Upload
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: Windows-Game
|
name: Windows-Game
|
||||||
path: Output/Windows.zip
|
path: Output/Windows.zip
|
||||||
@@ -76,19 +77,16 @@ jobs:
|
|||||||
# Linux
|
# Linux
|
||||||
package-linux-editor:
|
package-linux-editor:
|
||||||
name: Editor (Linux)
|
name: Editor (Linux)
|
||||||
runs-on: "ubuntu-20.04"
|
runs-on: "ubuntu-24.04"
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repo
|
- name: Checkout repo
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
- name: Checkout LFS
|
- name: Checkout LFS
|
||||||
run: |
|
run: |
|
||||||
git lfs version
|
git lfs version
|
||||||
git lfs pull
|
git ${{ env.GIT_LFS_PULL_OPTIONS }} lfs pull
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
sudo rm -f /etc/apt/sources.list.d/*
|
|
||||||
sudo cp -f .github/workflows/build_linux_sources.list /etc/apt/sources.list
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install libx11-dev libxcursor-dev libxinerama-dev build-essential gettext libtool libtool-bin libpulse-dev libasound2-dev libjack-dev portaudio19-dev
|
sudo apt-get install libx11-dev libxcursor-dev libxinerama-dev build-essential gettext libtool libtool-bin libpulse-dev libasound2-dev libjack-dev portaudio19-dev
|
||||||
- name: Setup Vulkan
|
- name: Setup Vulkan
|
||||||
uses: ./.github/actions/vulkan
|
uses: ./.github/actions/vulkan
|
||||||
@@ -102,27 +100,24 @@ jobs:
|
|||||||
dotnet workload --info
|
dotnet workload --info
|
||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
./PackageEditor.sh -arch=x64 -platform=Linux -deployOutput=Output
|
./PackageEditor.sh -arch=x64 -platform=Linux -deployOutput=Output -dotnet=8
|
||||||
- name: Upload
|
- name: Upload
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: Linux-Editor
|
name: Linux-Editor
|
||||||
path: Output/FlaxEditorLinux.zip
|
path: Output/FlaxEditorLinux.zip
|
||||||
package-linux-game:
|
package-linux-game:
|
||||||
name: Game (Linux)
|
name: Game (Linux)
|
||||||
runs-on: "ubuntu-20.04"
|
runs-on: "ubuntu-24.04"
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repo
|
- name: Checkout repo
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
- name: Checkout LFS
|
- name: Checkout LFS
|
||||||
run: |
|
run: |
|
||||||
git lfs version
|
git lfs version
|
||||||
git lfs pull
|
git ${{ env.GIT_LFS_PULL_OPTIONS }} lfs pull
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
sudo rm -f /etc/apt/sources.list.d/*
|
|
||||||
sudo cp -f .github/workflows/build_linux_sources.list /etc/apt/sources.list
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install libx11-dev libxcursor-dev libxinerama-dev build-essential gettext libtool libtool-bin libpulse-dev libasound2-dev libjack-dev portaudio19-dev
|
sudo apt-get install libx11-dev libxcursor-dev libxinerama-dev build-essential gettext libtool libtool-bin libpulse-dev libasound2-dev libjack-dev portaudio19-dev
|
||||||
- name: Setup Vulkan
|
- name: Setup Vulkan
|
||||||
uses: ./.github/actions/vulkan
|
uses: ./.github/actions/vulkan
|
||||||
@@ -136,9 +131,9 @@ jobs:
|
|||||||
dotnet workload --info
|
dotnet workload --info
|
||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
./PackagePlatforms.sh -arch=x64 -platform=Linux -deployOutput=Output
|
./PackagePlatforms.sh -arch=x64 -platform=Linux -deployOutput=Output -dotnet=8
|
||||||
- name: Upload
|
- name: Upload
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: Linux-Game
|
name: Linux-Game
|
||||||
path: Output/Linux.zip
|
path: Output/Linux.zip
|
||||||
@@ -146,14 +141,14 @@ jobs:
|
|||||||
# Mac
|
# Mac
|
||||||
package-mac-editor:
|
package-mac-editor:
|
||||||
name: Editor (Mac)
|
name: Editor (Mac)
|
||||||
runs-on: "macos-latest"
|
runs-on: "macos-14"
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repo
|
- name: Checkout repo
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
- name: Checkout LFS
|
- name: Checkout LFS
|
||||||
run: |
|
run: |
|
||||||
git lfs version
|
git lfs version
|
||||||
git lfs pull
|
git ${{ env.GIT_LFS_PULL_OPTIONS }} lfs pull
|
||||||
- name: Setup Vulkan
|
- name: Setup Vulkan
|
||||||
uses: ./.github/actions/vulkan
|
uses: ./.github/actions/vulkan
|
||||||
- name: Setup .NET
|
- name: Setup .NET
|
||||||
@@ -166,22 +161,22 @@ jobs:
|
|||||||
dotnet workload --info
|
dotnet workload --info
|
||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
./PackageEditor.command -arch=ARM64 -platform=Mac -deployOutput=Output
|
./PackageEditor.command -arch=ARM64 -platform=Mac -deployOutput=Output -dotnet=8
|
||||||
- name: Upload
|
- name: Upload
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: Mac-Editor
|
name: Mac-Editor
|
||||||
path: Output/FlaxEditorMac.zip
|
path: Output/FlaxEditorMac.zip
|
||||||
package-mac-game:
|
package-mac-game:
|
||||||
name: Game (Mac)
|
name: Game (Mac)
|
||||||
runs-on: "macos-latest"
|
runs-on: "macos-14"
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repo
|
- name: Checkout repo
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
- name: Checkout LFS
|
- name: Checkout LFS
|
||||||
run: |
|
run: |
|
||||||
git lfs version
|
git lfs version
|
||||||
git lfs pull
|
git ${{ env.GIT_LFS_PULL_OPTIONS }} lfs pull
|
||||||
- name: Setup Vulkan
|
- name: Setup Vulkan
|
||||||
uses: ./.github/actions/vulkan
|
uses: ./.github/actions/vulkan
|
||||||
- name: Setup .NET
|
- name: Setup .NET
|
||||||
@@ -194,9 +189,9 @@ jobs:
|
|||||||
dotnet workload --info
|
dotnet workload --info
|
||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
./PackagePlatforms.command -arch=ARM64 -platform=Mac -deployOutput=Output
|
./PackagePlatforms.command -arch=ARM64 -platform=Mac -deployOutput=Output -dotnet=8
|
||||||
- name: Upload
|
- name: Upload
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: Mac-Game
|
name: Mac-Game
|
||||||
path: Output/Mac.zip
|
path: Output/Mac.zip
|
||||||
|
|||||||
48
.github/workflows/cooking.yml
vendored
Normal file
48
.github/workflows/cooking.yml
vendored
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
name: Cooker
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
env:
|
||||||
|
DOTNET_NOLOGO: true
|
||||||
|
DOTNET_CLI_TELEMETRY_OPTOUT: false
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
# Cook on Mac
|
||||||
|
cook-mac:
|
||||||
|
name: Cook (Mac)
|
||||||
|
runs-on: "macos-14"
|
||||||
|
steps:
|
||||||
|
- name: Checkout repo
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
- name: Setup Vulkan
|
||||||
|
uses: ./.github/actions/vulkan
|
||||||
|
- name: Setup .NET
|
||||||
|
uses: actions/setup-dotnet@v3
|
||||||
|
with:
|
||||||
|
dotnet-version: 8.0.x
|
||||||
|
- name: Setup .NET Workload
|
||||||
|
run: |
|
||||||
|
dotnet workload install ios
|
||||||
|
- name: Print .NET info
|
||||||
|
run: |
|
||||||
|
dotnet --info
|
||||||
|
dotnet workload --info
|
||||||
|
- name: Checkout LFS
|
||||||
|
run: |
|
||||||
|
git lfs version
|
||||||
|
git lfs pull
|
||||||
|
- name: Get Flax Samples
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
fetch-depth: 1
|
||||||
|
repository: FlaxEngine/FlaxSamples
|
||||||
|
path: FlaxSamples
|
||||||
|
- name: Patch Files
|
||||||
|
run: |
|
||||||
|
cp .github/data/ExitOnEsc.cs FlaxSamples/MaterialsFeaturesTour/Source/Game
|
||||||
|
cp ".github/data/Build Settings.json" "FlaxSamples/MaterialsFeaturesTour/Content/Settings"
|
||||||
|
- name: Build Editor
|
||||||
|
run: |
|
||||||
|
./Development/Scripts/Mac/CallBuildTool.sh -build -log -printSDKs -dotnet=8 -arch=ARM64 -platform=Mac -configuration=Development -buildtargets=FlaxEditor
|
||||||
|
- name: Cook Game (iOS)
|
||||||
|
run: |
|
||||||
|
./Binaries/Editor/Mac/Development/FlaxEditor -std -headless -mute -null -project "FlaxSamples/MaterialsFeaturesTour" -build "Development.iOS"
|
||||||
8
.github/workflows/tests.yml
vendored
8
.github/workflows/tests.yml
vendored
@@ -10,7 +10,7 @@ jobs:
|
|||||||
# Tests on Linux
|
# Tests on Linux
|
||||||
tests-linux:
|
tests-linux:
|
||||||
name: Tests (Linux)
|
name: Tests (Linux)
|
||||||
runs-on: "ubuntu-20.04"
|
runs-on: "ubuntu-24.04"
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repo
|
- name: Checkout repo
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
@@ -28,9 +28,6 @@ jobs:
|
|||||||
git lfs pull
|
git lfs pull
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
sudo rm -f /etc/apt/sources.list.d/*
|
|
||||||
sudo cp -f .github/workflows/build_linux_sources.list /etc/apt/sources.list
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install libx11-dev libxcursor-dev libxinerama-dev build-essential gettext libtool libtool-bin libpulse-dev libasound2-dev libjack-dev portaudio19-dev
|
sudo apt-get install libx11-dev libxcursor-dev libxinerama-dev build-essential gettext libtool libtool-bin libpulse-dev libasound2-dev libjack-dev portaudio19-dev
|
||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
@@ -76,8 +73,11 @@ jobs:
|
|||||||
.\Development\Scripts\Windows\CallBuildTool.bat -build -log -dotnet=8 -arch=x64 -platform=Windows -configuration=Development -buildtargets=FlaxTestsTarget
|
.\Development\Scripts\Windows\CallBuildTool.bat -build -log -dotnet=8 -arch=x64 -platform=Windows -configuration=Development -buildtargets=FlaxTestsTarget
|
||||||
dotnet msbuild Source\Tools\Flax.Build.Tests\Flax.Build.Tests.csproj /m /t:Restore,Build /p:Configuration=Debug /p:Platform=AnyCPU /nologo
|
dotnet msbuild Source\Tools\Flax.Build.Tests\Flax.Build.Tests.csproj /m /t:Restore,Build /p:Configuration=Debug /p:Platform=AnyCPU /nologo
|
||||||
- name: Test
|
- name: Test
|
||||||
|
shell: pwsh
|
||||||
run: |
|
run: |
|
||||||
|
$ErrorActionPreference = "Stop"
|
||||||
.\Binaries\Editor\Win64\Development\FlaxTests.exe
|
.\Binaries\Editor\Win64\Development\FlaxTests.exe
|
||||||
|
if(!$?) { Write-Host "Tests failed with exit code $LastExitCode" -ForegroundColor Red; Exit $LastExitCode }
|
||||||
dotnet test -f net8.0 Binaries\Tests\Flax.Build.Tests.dll
|
dotnet test -f net8.0 Binaries\Tests\Flax.Build.Tests.dll
|
||||||
xcopy /y Binaries\Editor\Win64\Development\FlaxEngine.CSharp.dll Binaries\Tests
|
xcopy /y Binaries\Editor\Win64\Development\FlaxEngine.CSharp.dll Binaries\Tests
|
||||||
xcopy /y Binaries\Editor\Win64\Development\FlaxEngine.CSharp.runtimeconfig.json Binaries\Tests
|
xcopy /y Binaries\Editor\Win64\Development\FlaxEngine.CSharp.runtimeconfig.json Binaries\Tests
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Redirect to our own Git LFS server
|
# Redirect to our own Git LFS server
|
||||||
[lfs]
|
[lfs]
|
||||||
#url="https://gitlab.flaxengine.com/flax/flaxengine.git/info/lfs"
|
url="https://gitlab.flaxengine.com/flax/flaxengine.git/info/lfs"
|
||||||
locksverify = false
|
locksverify = false
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Content/Editor/Icons/Decal.flax
LFS
BIN
Content/Editor/Icons/Decal.flax
LFS
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Content/Editor/Icons/Skybox.flax
LFS
BIN
Content/Editor/Icons/Skybox.flax
LFS
Binary file not shown.
BIN
Content/Editor/IconsAtlas.flax
LFS
BIN
Content/Editor/IconsAtlas.flax
LFS
Binary file not shown.
Binary file not shown.
@@ -6,6 +6,7 @@
|
|||||||
@3
|
@3
|
||||||
|
|
||||||
#include "./Flax/Common.hlsl"
|
#include "./Flax/Common.hlsl"
|
||||||
|
#include "./Flax/Stencil.hlsl"
|
||||||
#include "./Flax/MaterialCommon.hlsl"
|
#include "./Flax/MaterialCommon.hlsl"
|
||||||
#include "./Flax/GBufferCommon.hlsl"
|
#include "./Flax/GBufferCommon.hlsl"
|
||||||
@7
|
@7
|
||||||
@@ -13,11 +14,14 @@
|
|||||||
META_CB_BEGIN(0, Data)
|
META_CB_BEGIN(0, Data)
|
||||||
float4x4 WorldMatrix;
|
float4x4 WorldMatrix;
|
||||||
float4x4 InvWorld;
|
float4x4 InvWorld;
|
||||||
float4x4 SVPositionToWorld;
|
float4x4 SvPositionToWorld;
|
||||||
|
float3 Padding0;
|
||||||
|
uint RenderLayersMask;
|
||||||
@1META_CB_END
|
@1META_CB_END
|
||||||
|
|
||||||
// Use depth buffer for per-pixel decal layering
|
// Use depth buffer for per-pixel decal layering
|
||||||
Texture2D DepthBuffer : register(t0);
|
Texture2D DepthBuffer : register(t0);
|
||||||
|
Texture2D<uint2> StencilBuffer : register(t1);
|
||||||
|
|
||||||
// Material shader resources
|
// Material shader resources
|
||||||
@2
|
@2
|
||||||
@@ -27,12 +31,63 @@ struct MaterialInput
|
|||||||
float3 WorldPosition;
|
float3 WorldPosition;
|
||||||
float TwoSidedSign;
|
float TwoSidedSign;
|
||||||
float2 TexCoord;
|
float2 TexCoord;
|
||||||
|
float4 TexCoord_DDX_DDY;
|
||||||
float3x3 TBN;
|
float3x3 TBN;
|
||||||
float4 SvPosition;
|
float4 SvPosition;
|
||||||
float3 PreSkinnedPosition;
|
float3 PreSkinnedPosition;
|
||||||
float3 PreSkinnedNormal;
|
float3 PreSkinnedNormal;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Calculates decal texcoords for a given pixel position (sampels depth buffer and projects value to decal space).
|
||||||
|
float2 SvPositionToDecalUV(float4 svPosition)
|
||||||
|
{
|
||||||
|
float2 screenUV = svPosition.xy * ScreenSize.zw;
|
||||||
|
svPosition.z = SAMPLE_RT(DepthBuffer, screenUV).r;
|
||||||
|
float4 positionHS = mul(float4(svPosition.xyz, 1), SvPositionToWorld);
|
||||||
|
float3 positionWS = positionHS.xyz / positionHS.w;
|
||||||
|
float3 positionOS = mul(float4(positionWS, 1), InvWorld).xyz;
|
||||||
|
return positionOS.xz + 0.5f;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Manually compute ddx/ddy for decal texture cooordinates to avoid the 2x2 pixels artifacts on the edges of geometry under decal
|
||||||
|
// [Reference: https://www.humus.name/index.php?page=3D&ID=84]
|
||||||
|
float4 CalculateTextureDerivatives(float4 svPosition, float2 texCoord)
|
||||||
|
{
|
||||||
|
float4 svDiffX = float4(1, 0, 0, 0);
|
||||||
|
float2 uvDiffX0 = texCoord - SvPositionToDecalUV(svPosition - svDiffX);
|
||||||
|
float2 uvDiffX1 = SvPositionToDecalUV(svPosition + svDiffX) - texCoord;
|
||||||
|
float2 dx = dot(uvDiffX0, uvDiffX0) < dot(uvDiffX1, uvDiffX1) ? uvDiffX0 : uvDiffX1;
|
||||||
|
|
||||||
|
float4 svDiffY = float4(0, 1, 0, 0);
|
||||||
|
float2 uvDiffY0 = texCoord - SvPositionToDecalUV(svPosition - svDiffY);
|
||||||
|
float2 uvDiffY1 = SvPositionToDecalUV(svPosition + svDiffY) - texCoord;
|
||||||
|
float2 dy = dot(uvDiffY0, uvDiffY0) < dot(uvDiffY1, uvDiffY1) ? uvDiffY0 : uvDiffY1;
|
||||||
|
|
||||||
|
return float4(dx, dy);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Computes the mipmap level for a specific texture dimensions to be sampled at decal texture cooordinates.
|
||||||
|
// [Reference: https://hugi.scene.org/online/coding/hugi%2014%20-%20comipmap.htm]
|
||||||
|
float CalculateTextureMipmap(MaterialInput input, float2 textureSize)
|
||||||
|
{
|
||||||
|
float2 dx = input.TexCoord_DDX_DDY.xy * textureSize;
|
||||||
|
float2 dy = input.TexCoord_DDX_DDY.zw * textureSize;
|
||||||
|
float d = max(dot(dx, dx), dot(dy, dy));
|
||||||
|
return (0.5 * 0.5) * log2(d); // Hardcoded half-mip rate reduction to avoid artifacts when decal is moved over dither texture
|
||||||
|
}
|
||||||
|
float CalculateTextureMipmap(MaterialInput input, Texture2D t)
|
||||||
|
{
|
||||||
|
float2 textureSize;
|
||||||
|
t.GetDimensions(textureSize.x, textureSize.y);
|
||||||
|
return CalculateTextureMipmap(input, textureSize);
|
||||||
|
}
|
||||||
|
float CalculateTextureMipmap(MaterialInput input, TextureCube t)
|
||||||
|
{
|
||||||
|
float2 textureSize;
|
||||||
|
t.GetDimensions(textureSize.x, textureSize.y);
|
||||||
|
return CalculateTextureMipmap(input, textureSize);
|
||||||
|
}
|
||||||
|
|
||||||
// Transforms a vector from tangent space to world space
|
// Transforms a vector from tangent space to world space
|
||||||
float3 TransformTangentVectorToWorld(MaterialInput input, float3 tangentVector)
|
float3 TransformTangentVectorToWorld(MaterialInput input, float3 tangentVector)
|
||||||
{
|
{
|
||||||
@@ -83,6 +138,12 @@ float3 GetObjectSize(MaterialInput input)
|
|||||||
return float3(1, 1, 1);
|
return float3(1, 1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Gets the current object scale (supports instancing)
|
||||||
|
float3 GetObjectScale(MaterialInput input)
|
||||||
|
{
|
||||||
|
return float3(1, 1, 1);
|
||||||
|
}
|
||||||
|
|
||||||
// Get the current object random value supports instancing)
|
// Get the current object random value supports instancing)
|
||||||
float GetPerInstanceRandom(MaterialInput input)
|
float GetPerInstanceRandom(MaterialInput input)
|
||||||
{
|
{
|
||||||
@@ -110,7 +171,6 @@ Material GetMaterialPS(MaterialInput input)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Input macro specified by the material: DECAL_BLEND_MODE
|
// Input macro specified by the material: DECAL_BLEND_MODE
|
||||||
|
|
||||||
#define DECAL_BLEND_MODE_TRANSLUCENT 0
|
#define DECAL_BLEND_MODE_TRANSLUCENT 0
|
||||||
#define DECAL_BLEND_MODE_STAIN 1
|
#define DECAL_BLEND_MODE_STAIN 1
|
||||||
#define DECAL_BLEND_MODE_NORMAL 2
|
#define DECAL_BLEND_MODE_NORMAL 2
|
||||||
@@ -144,10 +204,18 @@ void PS_Decal(
|
|||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
// Stencil masking
|
||||||
|
uint stencilObjectLayer = STENCIL_BUFFER_OBJECT_LAYER(STENCIL_BUFFER_LOAD(StencilBuffer, SvPosition.xy));
|
||||||
|
if ((RenderLayersMask & (1 << stencilObjectLayer)) == 0)
|
||||||
|
{
|
||||||
|
clip(-1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
float2 screenUV = SvPosition.xy * ScreenSize.zw;
|
float2 screenUV = SvPosition.xy * ScreenSize.zw;
|
||||||
SvPosition.z = SAMPLE_RT(DepthBuffer, screenUV).r;
|
SvPosition.z = SAMPLE_RT(DepthBuffer, screenUV).r;
|
||||||
|
|
||||||
float4 positionHS = mul(float4(SvPosition.xyz, 1), SVPositionToWorld);
|
float4 positionHS = mul(float4(SvPosition.xyz, 1), SvPositionToWorld);
|
||||||
float3 positionWS = positionHS.xyz / positionHS.w;
|
float3 positionWS = positionHS.xyz / positionHS.w;
|
||||||
float3 positionOS = mul(float4(positionWS, 1), InvWorld).xyz;
|
float3 positionOS = mul(float4(positionWS, 1), InvWorld).xyz;
|
||||||
|
|
||||||
@@ -160,8 +228,9 @@ void PS_Decal(
|
|||||||
materialInput.TexCoord = decalUVs;
|
materialInput.TexCoord = decalUVs;
|
||||||
materialInput.TwoSidedSign = 1;
|
materialInput.TwoSidedSign = 1;
|
||||||
materialInput.SvPosition = SvPosition;
|
materialInput.SvPosition = SvPosition;
|
||||||
|
materialInput.TexCoord_DDX_DDY = CalculateTextureDerivatives(materialInput.SvPosition, materialInput.TexCoord);
|
||||||
|
|
||||||
// Build tangent to world transformation matrix
|
// Calculate tangent-space
|
||||||
float3 ddxWp = ddx(positionWS);
|
float3 ddxWp = ddx(positionWS);
|
||||||
float3 ddyWp = ddy(positionWS);
|
float3 ddyWp = ddy(positionWS);
|
||||||
materialInput.TBN[0] = normalize(ddyWp);
|
materialInput.TBN[0] = normalize(ddyWp);
|
||||||
|
|||||||
@@ -207,6 +207,20 @@ float3 GetObjectSize(MaterialInput input)
|
|||||||
return GeometrySize * float3(world._m00, world._m11, world._m22);
|
return GeometrySize * float3(world._m00, world._m11, world._m22);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Gets the current object scale (supports instancing)
|
||||||
|
float3 GetObjectScale(MaterialInput input)
|
||||||
|
{
|
||||||
|
float4x4 world = WorldMatrix;
|
||||||
|
|
||||||
|
// Extract scale from the world matrix
|
||||||
|
float3 scale;
|
||||||
|
scale.x = length(float3(world._11, world._12, world._13));
|
||||||
|
scale.y = length(float3(world._21, world._22, world._23));
|
||||||
|
scale.z = length(float3(world._31, world._32, world._33));
|
||||||
|
|
||||||
|
return scale;
|
||||||
|
}
|
||||||
|
|
||||||
// Get the current object random value
|
// Get the current object random value
|
||||||
float GetPerInstanceRandom(MaterialInput input)
|
float GetPerInstanceRandom(MaterialInput input)
|
||||||
{
|
{
|
||||||
@@ -297,7 +311,7 @@ VertexOutput VS_SplineModel(ModelInput input)
|
|||||||
output.Position = mul(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
|
output.Position = mul(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
|
||||||
|
|
||||||
// Pass vertex attributes
|
// Pass vertex attributes
|
||||||
output.Geometry.TexCoord = input.TexCoord;
|
output.Geometry.TexCoord = input.TexCoord0;
|
||||||
#if USE_VERTEX_COLOR
|
#if USE_VERTEX_COLOR
|
||||||
output.Geometry.VertexColor = input.Color;
|
output.Geometry.VertexColor = input.Color;
|
||||||
#endif
|
#endif
|
||||||
@@ -323,6 +337,7 @@ VertexOutput VS_SplineModel(ModelInput input)
|
|||||||
// Apply world position offset per-vertex
|
// Apply world position offset per-vertex
|
||||||
#if USE_POSITION_OFFSET
|
#if USE_POSITION_OFFSET
|
||||||
output.Geometry.WorldPosition += material.PositionOffset;
|
output.Geometry.WorldPosition += material.PositionOffset;
|
||||||
|
output.Geometry.PrevWorldPosition += material.PositionOffset;
|
||||||
output.Position = mul(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
|
output.Position = mul(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
|
// Copyright (c) Wojciech Figat. All rights reserved.
|
||||||
|
|
||||||
@0// Deferred Shading: Defines
|
@0// Deferred Shading: Defines
|
||||||
@1// Deferred Shading: Includes
|
@1// Deferred Shading: Includes
|
||||||
@@ -26,14 +26,12 @@ void PS_GBuffer(
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
Light = float4(0, 0, 0, 1);
|
Light = float4(0, 0, 0, 1);
|
||||||
|
MaterialInput materialInput = GetMaterialInput(input);
|
||||||
#if USE_DITHERED_LOD_TRANSITION
|
#if USE_DITHERED_LOD_TRANSITION
|
||||||
// LOD masking
|
ClipLODTransition(materialInput);
|
||||||
ClipLODTransition(input);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Get material parameters
|
// Get material parameters
|
||||||
MaterialInput materialInput = GetMaterialInput(input);
|
|
||||||
Material material = GetMaterialPS(materialInput);
|
Material material = GetMaterialPS(materialInput);
|
||||||
|
|
||||||
// Masking
|
// Masking
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
|
// Copyright (c) Wojciech Figat. All rights reserved.
|
||||||
|
|
||||||
@0// Distortion: Defines
|
@0// Distortion: Defines
|
||||||
@1// Distortion: Includes
|
@1// Distortion: Includes
|
||||||
@@ -12,13 +12,12 @@
|
|||||||
META_PS(USE_DISTORTION, FEATURE_LEVEL_ES2)
|
META_PS(USE_DISTORTION, FEATURE_LEVEL_ES2)
|
||||||
float4 PS_Distortion(PixelInput input) : SV_Target0
|
float4 PS_Distortion(PixelInput input) : SV_Target0
|
||||||
{
|
{
|
||||||
|
MaterialInput materialInput = GetMaterialInput(input);
|
||||||
#if USE_DITHERED_LOD_TRANSITION
|
#if USE_DITHERED_LOD_TRANSITION
|
||||||
// LOD masking
|
ClipLODTransition(materialInput);
|
||||||
ClipLODTransition(input);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Get material parameters
|
// Get material parameters
|
||||||
MaterialInput materialInput = GetMaterialInput(input);
|
|
||||||
Material material = GetMaterialPS(materialInput);
|
Material material = GetMaterialPS(materialInput);
|
||||||
|
|
||||||
// Masking
|
// Masking
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
|
// Copyright (c) Wojciech Figat. All rights reserved.
|
||||||
|
|
||||||
@0// Forward Shading: Defines
|
@0// Forward Shading: Defines
|
||||||
#define MAX_LOCAL_LIGHTS 4
|
#define MAX_LOCAL_LIGHTS 4
|
||||||
@@ -27,7 +27,15 @@ TextureCube EnvProbe : register(t__SRV__);
|
|||||||
TextureCube SkyLightTexture : register(t__SRV__);
|
TextureCube SkyLightTexture : register(t__SRV__);
|
||||||
Buffer<float4> ShadowsBuffer : register(t__SRV__);
|
Buffer<float4> ShadowsBuffer : register(t__SRV__);
|
||||||
Texture2D<float> ShadowMap : register(t__SRV__);
|
Texture2D<float> ShadowMap : register(t__SRV__);
|
||||||
|
Texture3D VolumetricFogTexture : register(t__SRV__);
|
||||||
@4// Forward Shading: Utilities
|
@4// Forward Shading: Utilities
|
||||||
|
// Public accessors for lighting data, use them as data binding might change but those methods will remain.
|
||||||
|
LightData GetDirectionalLight() { return DirectionalLight; }
|
||||||
|
LightData GetSkyLight() { return SkyLight; }
|
||||||
|
ProbeData GetEnvironmentProbe() { return EnvironmentProbe; }
|
||||||
|
ExponentialHeightFogData GetExponentialHeightFog() { return ExponentialHeightFog; }
|
||||||
|
uint GetLocalLightsCount() { return LocalLightsCount; }
|
||||||
|
LightData GetLocalLight(uint i) { return LocalLights[i]; }
|
||||||
@5// Forward Shading: Shaders
|
@5// Forward Shading: Shaders
|
||||||
|
|
||||||
// Pixel Shader function for Forward Pass
|
// Pixel Shader function for Forward Pass
|
||||||
@@ -38,14 +46,12 @@ void PS_Forward(
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
output = 0;
|
output = 0;
|
||||||
|
MaterialInput materialInput = GetMaterialInput(input);
|
||||||
#if USE_DITHERED_LOD_TRANSITION
|
#if USE_DITHERED_LOD_TRANSITION
|
||||||
// LOD masking
|
ClipLODTransition(materialInput);
|
||||||
ClipLODTransition(input);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Get material parameters
|
// Get material parameters
|
||||||
MaterialInput materialInput = GetMaterialInput(input);
|
|
||||||
Material material = GetMaterialPS(materialInput);
|
Material material = GetMaterialPS(materialInput);
|
||||||
|
|
||||||
// Masking
|
// Masking
|
||||||
@@ -78,9 +84,8 @@ void PS_Forward(
|
|||||||
gBuffer.ShadingModel = MATERIAL_SHADING_MODEL;
|
gBuffer.ShadingModel = MATERIAL_SHADING_MODEL;
|
||||||
|
|
||||||
// Calculate lighting from a single directional light
|
// Calculate lighting from a single directional light
|
||||||
float4 shadowMask = 1.0f;
|
|
||||||
ShadowSample shadow = SampleDirectionalLightShadow(DirectionalLight, ShadowsBuffer, ShadowMap, gBuffer);
|
ShadowSample shadow = SampleDirectionalLightShadow(DirectionalLight, ShadowsBuffer, ShadowMap, gBuffer);
|
||||||
shadowMask = GetShadowMask(shadow);
|
float4 shadowMask = GetShadowMask(shadow);
|
||||||
float4 light = GetLighting(ViewPos, DirectionalLight, gBuffer, shadowMask, false, false);
|
float4 light = GetLighting(ViewPos, DirectionalLight, gBuffer, shadowMask, false, false);
|
||||||
|
|
||||||
// Calculate lighting from sky light
|
// Calculate lighting from sky light
|
||||||
@@ -121,6 +126,20 @@ void PS_Forward(
|
|||||||
float3 screenColor = sceneColorTexture.SampleLevel(SamplerPointClamp, hit.xy, 0).rgb;
|
float3 screenColor = sceneColorTexture.SampleLevel(SamplerPointClamp, hit.xy, 0).rgb;
|
||||||
reflections = lerp(reflections, screenColor, hit.z);
|
reflections = lerp(reflections, screenColor, hit.z);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Fallback to software tracing if possible
|
||||||
|
#if USE_GLOBAL_SURFACE_ATLAS && CAN_USE_GLOBAL_SURFACE_ATLAS
|
||||||
|
if (hit.z < REFLECTIONS_HIT_THRESHOLD)
|
||||||
|
{
|
||||||
|
float3 reflectWS = ScreenSpaceReflectionDirection(screenUV, gBuffer, ViewPos);
|
||||||
|
float4 surfaceAtlas;
|
||||||
|
if (TraceSDFSoftwareReflections(gBuffer, reflectWS, surfaceAtlas))
|
||||||
|
{
|
||||||
|
float3 screenColor = sceneColorTexture.SampleLevel(SamplerPointClamp, hit.xy, 0).rgb;
|
||||||
|
reflections = lerp(surfaceAtlas, float4(screenColor, 1), hit.z);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
light.rgb += reflections * GetReflectionSpecularLighting(ViewPos, gBuffer) * light.a;
|
light.rgb += reflections * GetReflectionSpecularLighting(ViewPos, gBuffer) * light.a;
|
||||||
@@ -131,9 +150,27 @@ void PS_Forward(
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if USE_FOG
|
#if USE_FOG && MATERIAL_SHADING_MODEL != SHADING_MODEL_UNLIT
|
||||||
// Calculate exponential height fog
|
// Calculate exponential height fog
|
||||||
float4 fog = GetExponentialHeightFog(ExponentialHeightFog, materialInput.WorldPosition, ViewPos, 0);
|
#if DIRECTX && FEATURE_LEVEL < FEATURE_LEVEL_SM6
|
||||||
|
// TODO: fix D3D11/D3D10 bug with incorrect distance
|
||||||
|
float fogSceneDistance = distance(materialInput.WorldPosition, ViewPos);
|
||||||
|
#else
|
||||||
|
float fogSceneDistance = gBuffer.ViewPos.z;
|
||||||
|
#endif
|
||||||
|
float4 fog = GetExponentialHeightFog(ExponentialHeightFog, materialInput.WorldPosition, ViewPos, 0, fogSceneDistance);
|
||||||
|
|
||||||
|
if (ExponentialHeightFog.VolumetricFogMaxDistance > 0)
|
||||||
|
{
|
||||||
|
// Sample volumetric fog and mix it in
|
||||||
|
float2 screenUV = materialInput.SvPosition.xy * ScreenSize.zw;
|
||||||
|
float3 viewVector = materialInput.WorldPosition - ViewPos;
|
||||||
|
float sceneDepth = length(viewVector);
|
||||||
|
float depthSlice = sceneDepth / ExponentialHeightFog.VolumetricFogMaxDistance;
|
||||||
|
float3 volumeUV = float3(screenUV, depthSlice);
|
||||||
|
float4 volumetricFog = VolumetricFogTexture.SampleLevel(SamplerLinearClamp, volumeUV, 0);
|
||||||
|
fog = CombineVolumetricFog(fog, volumetricFog);
|
||||||
|
}
|
||||||
|
|
||||||
// Apply fog to the output color
|
// Apply fog to the output color
|
||||||
#if MATERIAL_BLEND == MATERIAL_BLEND_OPAQUE
|
#if MATERIAL_BLEND == MATERIAL_BLEND_OPAQUE
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
|
// Copyright (c) Wojciech Figat. All rights reserved.
|
||||||
|
|
||||||
@0// Global Illumination: Defines
|
@0// Global Illumination: Defines
|
||||||
#define USE_GI 1
|
#define USE_GI 1
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
|
// Copyright (c) Wojciech Figat. All rights reserved.
|
||||||
|
|
||||||
@0// Lightmap: Defines
|
@0// Lightmap: Defines
|
||||||
#define CAN_USE_LIGHTMAP 1
|
#define CAN_USE_LIGHTMAP 1
|
||||||
@1// Lightmap: Includes
|
@1// Lightmap: Includes
|
||||||
@2// Lightmap: Constants
|
@2// Lightmap: Constants
|
||||||
float4 LightmapArea;
|
|
||||||
@3// Lightmap: Resources
|
@3// Lightmap: Resources
|
||||||
#if USE_LIGHTMAP
|
#if USE_LIGHTMAP
|
||||||
// Irradiance and directionality prebaked lightmaps
|
// Irradiance and directionality prebaked lightmaps
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
|
// Copyright (c) Wojciech Figat. All rights reserved.
|
||||||
|
|
||||||
@0// Motion Vectors: Defines
|
@0// Motion Vectors: Defines
|
||||||
@1// Motion Vectors: Includes
|
@1// Motion Vectors: Includes
|
||||||
@@ -11,14 +11,15 @@
|
|||||||
META_PS(true, FEATURE_LEVEL_ES2)
|
META_PS(true, FEATURE_LEVEL_ES2)
|
||||||
float4 PS_MotionVectors(PixelInput input) : SV_Target0
|
float4 PS_MotionVectors(PixelInput input) : SV_Target0
|
||||||
{
|
{
|
||||||
|
#if USE_DITHERED_LOD_TRANSITION || MATERIAL_MASKED
|
||||||
|
MaterialInput materialInput = GetMaterialInput(input);
|
||||||
#if USE_DITHERED_LOD_TRANSITION
|
#if USE_DITHERED_LOD_TRANSITION
|
||||||
// LOD masking
|
ClipLODTransition(materialInput);
|
||||||
ClipLODTransition(input);
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if MATERIAL_MASKED
|
#if MATERIAL_MASKED
|
||||||
// Perform per pixel clipping if material requries it
|
// Perform per pixel clipping if material requries it
|
||||||
MaterialInput materialInput = GetMaterialInput(input);
|
|
||||||
Material material = GetMaterialPS(materialInput);
|
Material material = GetMaterialPS(materialInput);
|
||||||
clip(material.Mask - MATERIAL_MASK_THRESHOLD);
|
clip(material.Mask - MATERIAL_MASK_THRESHOLD);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
// Copyright (c) Wojciech Figat. All rights reserved.
|
||||||
|
|
||||||
|
@0// SDF Reflections: Defines
|
||||||
|
#define USE_GLOBAL_SURFACE_ATLAS 1
|
||||||
|
@1// SDF Reflections: Includes
|
||||||
|
#include "./Flax/GlobalSignDistanceField.hlsl"
|
||||||
|
#include "./Flax/GI/GlobalSurfaceAtlas.hlsl"
|
||||||
|
@2// SDF Reflections: Constants
|
||||||
|
GlobalSDFData GlobalSDF;
|
||||||
|
GlobalSurfaceAtlasData GlobalSurfaceAtlas;
|
||||||
|
@3// SDF Reflections: Resources
|
||||||
|
Texture3D<snorm float> GlobalSDFTex : register(t__SRV__);
|
||||||
|
Texture3D<snorm float> GlobalSDFMip : register(t__SRV__);
|
||||||
|
ByteAddressBuffer GlobalSurfaceAtlasChunks : register(t__SRV__);
|
||||||
|
ByteAddressBuffer RWGlobalSurfaceAtlasCulledObjects : register(t__SRV__);
|
||||||
|
Buffer<float4> GlobalSurfaceAtlasObjects : register(t__SRV__);
|
||||||
|
Texture2D GlobalSurfaceAtlasDepth : register(t__SRV__);
|
||||||
|
Texture2D GlobalSurfaceAtlasTex : register(t__SRV__);
|
||||||
|
@4// SDF Reflections: Utilities
|
||||||
|
bool TraceSDFSoftwareReflections(GBufferSample gBuffer, float3 reflectWS, out float4 surfaceAtlas)
|
||||||
|
{
|
||||||
|
GlobalSDFTrace sdfTrace;
|
||||||
|
float maxDistance = GLOBAL_SDF_WORLD_SIZE;
|
||||||
|
sdfTrace.Init(gBuffer.WorldPos, reflectWS, 0.0f, maxDistance);
|
||||||
|
GlobalSDFHit sdfHit = RayTraceGlobalSDF(GlobalSDF, GlobalSDFTex, GlobalSDFMip, sdfTrace, 2.0f);
|
||||||
|
if (sdfHit.IsHit())
|
||||||
|
{
|
||||||
|
float3 hitPosition = sdfHit.GetHitPosition(sdfTrace);
|
||||||
|
float surfaceThreshold = GetGlobalSurfaceAtlasThreshold(GlobalSDF, sdfHit);
|
||||||
|
surfaceAtlas = SampleGlobalSurfaceAtlas(GlobalSurfaceAtlas, GlobalSurfaceAtlasChunks, RWGlobalSurfaceAtlasCulledObjects, GlobalSurfaceAtlasObjects, GlobalSurfaceAtlasDepth, GlobalSurfaceAtlasTex, hitPosition, -reflectWS, surfaceThreshold);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@5// SDF Reflections: Shaders
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
|
// Copyright (c) Wojciech Figat. All rights reserved.
|
||||||
|
|
||||||
@0// Tessellation: Defines
|
@0// Tessellation: Defines
|
||||||
#define TessalationProjectOntoPlane(planeNormal, planePosition, pointToProject) pointToProject - dot(pointToProject - planePosition, planeNormal) * planeNormal
|
#define TessalationProjectOntoPlane(planeNormal, planePosition, pointToProject) pointToProject - dot(pointToProject - planePosition, planeNormal) * planeNormal
|
||||||
@@ -33,8 +33,13 @@ struct TessalationDSToPS
|
|||||||
MaterialInput GetMaterialInput(TessalationDSToPS input)
|
MaterialInput GetMaterialInput(TessalationDSToPS input)
|
||||||
{
|
{
|
||||||
MaterialInput output = GetGeometryMaterialInput(input.Geometry);
|
MaterialInput output = GetGeometryMaterialInput(input.Geometry);
|
||||||
|
#if USE_PER_DRAW_CONSTANTS
|
||||||
|
output.Object = LoadObject(ObjectsBuffer, input.Geometry.ObjectIndex);
|
||||||
|
#else
|
||||||
|
LoadObjectFromCB(output.Object);
|
||||||
|
#endif
|
||||||
output.SvPosition = input.Position;
|
output.SvPosition = input.Position;
|
||||||
output.TwoSidedSign = WorldDeterminantSign;
|
output.TwoSidedSign = output.Object.WorldDeterminantSign;
|
||||||
#if USE_CUSTOM_VERTEX_INTERPOLATORS
|
#if USE_CUSTOM_VERTEX_INTERPOLATORS
|
||||||
output.CustomVSToPS = input.CustomVSToPS;
|
output.CustomVSToPS = input.CustomVSToPS;
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -140,7 +140,7 @@ void SetParticleVec4(uint particleIndex, int offset, float4 value)
|
|||||||
bool AddParticle(out uint dstIndex)
|
bool AddParticle(out uint dstIndex)
|
||||||
{
|
{
|
||||||
// Acquire the particle index in the destination buffer
|
// Acquire the particle index in the destination buffer
|
||||||
DstParticlesData.InterlockedAdd(ParticleCounterOffset, 1, dstIndex);
|
DstParticlesData.InterlockedAdd(ParticleCounterOffset, 1u, dstIndex);
|
||||||
|
|
||||||
// Prevent overflow
|
// Prevent overflow
|
||||||
return dstIndex >= PARTICLE_CAPACITY;
|
return dstIndex >= PARTICLE_CAPACITY;
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ float TimeParam;
|
|||||||
float4 ViewInfo;
|
float4 ViewInfo;
|
||||||
float4 ScreenSize;
|
float4 ScreenSize;
|
||||||
float4 ViewSize;
|
float4 ViewSize;
|
||||||
|
float3 ViewPadding0;
|
||||||
|
float ScaledTimeParam;
|
||||||
@1META_CB_END
|
@1META_CB_END
|
||||||
|
|
||||||
// Shader resources
|
// Shader resources
|
||||||
@@ -163,6 +165,12 @@ float3 GetObjectSize(MaterialInput input)
|
|||||||
return float3(1, 1, 1);
|
return float3(1, 1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Gets the current object scale (supports instancing)
|
||||||
|
float3 GetObjectScale(MaterialInput input)
|
||||||
|
{
|
||||||
|
return float3(1, 1, 1);
|
||||||
|
}
|
||||||
|
|
||||||
// Get the current object random value supports instancing)
|
// Get the current object random value supports instancing)
|
||||||
float GetPerInstanceRandom(MaterialInput input)
|
float GetPerInstanceRandom(MaterialInput input)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -299,24 +299,22 @@ half3x3 CalcTangentToLocal(ModelInput input)
|
|||||||
float3 normal = input.Normal.xyz * 2.0 - 1.0;
|
float3 normal = input.Normal.xyz * 2.0 - 1.0;
|
||||||
float3 tangent = input.Tangent.xyz * 2.0 - 1.0;
|
float3 tangent = input.Tangent.xyz * 2.0 - 1.0;
|
||||||
float3 bitangent = cross(normal, tangent) * bitangentSign;
|
float3 bitangent = cross(normal, tangent) * bitangentSign;
|
||||||
return float3x3(tangent, bitangent, normal);
|
return (half3x3)float3x3(tangent, bitangent, normal);
|
||||||
}
|
}
|
||||||
|
|
||||||
half3x3 CalcTangentToWorld(in float4x4 world, in half3x3 tangentToLocal)
|
half3x3 CalcTangentToWorld(in float4x4 world, in half3x3 tangentToLocal)
|
||||||
{
|
{
|
||||||
half3x3 localToWorld = RemoveScaleFromLocalToWorld((float3x3)world);
|
half3x3 localToWorld = (half3x3)RemoveScaleFromLocalToWorld((float3x3)world);
|
||||||
return mul(tangentToLocal, localToWorld);
|
return mul(tangentToLocal, localToWorld);
|
||||||
}
|
}
|
||||||
|
|
||||||
float3 GetParticlePosition(uint ParticleIndex)
|
float3 GetParticlePosition(uint particleIndex)
|
||||||
{
|
{
|
||||||
return TransformParticlePosition(GetParticleVec3(ParticleIndex, PositionOffset));
|
return TransformParticlePosition(GetParticleVec3(particleIndex, PositionOffset));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Vertex Shader function for Sprite Rendering
|
// Vertex Shader function for Sprite Rendering
|
||||||
META_VS(true, FEATURE_LEVEL_ES2)
|
META_VS(true, FEATURE_LEVEL_ES2)
|
||||||
META_VS_IN_ELEMENT(POSITION, 0, R32G32_FLOAT, 0, 0, PER_VERTEX, 0, true)
|
|
||||||
META_VS_IN_ELEMENT(TEXCOORD, 0, R32G32_FLOAT, 0, ALIGN, PER_VERTEX, 0, true)
|
|
||||||
VertexOutput VS_Sprite(SpriteInput input, uint particleIndex : SV_InstanceID)
|
VertexOutput VS_Sprite(SpriteInput input, uint particleIndex : SV_InstanceID)
|
||||||
{
|
{
|
||||||
VertexOutput output;
|
VertexOutput output;
|
||||||
@@ -407,7 +405,7 @@ VertexOutput VS_Sprite(SpriteInput input, uint particleIndex : SV_InstanceID)
|
|||||||
output.InstanceParams = PerInstanceRandom;
|
output.InstanceParams = PerInstanceRandom;
|
||||||
|
|
||||||
// Calculate tanget space to world space transformation matrix for unit vectors
|
// Calculate tanget space to world space transformation matrix for unit vectors
|
||||||
half3x3 tangentToLocal = float3x3(axisX, axisY, axisZ);
|
half3x3 tangentToLocal = half3x3(axisX, axisY, axisZ);
|
||||||
half3x3 tangentToWorld = CalcTangentToWorld(world, tangentToLocal);
|
half3x3 tangentToWorld = CalcTangentToWorld(world, tangentToLocal);
|
||||||
output.TBN = tangentToWorld;
|
output.TBN = tangentToWorld;
|
||||||
|
|
||||||
@@ -516,7 +514,7 @@ VertexOutput VS_Model(ModelInput input, uint particleIndex : SV_InstanceID)
|
|||||||
output.Position = mul(float4(output.WorldPosition, 1), ViewProjectionMatrix);
|
output.Position = mul(float4(output.WorldPosition, 1), ViewProjectionMatrix);
|
||||||
|
|
||||||
// Pass vertex attributes
|
// Pass vertex attributes
|
||||||
output.TexCoord = input.TexCoord;
|
output.TexCoord = input.TexCoord0;
|
||||||
output.ParticleIndex = particleIndex;
|
output.ParticleIndex = particleIndex;
|
||||||
#if USE_VERTEX_COLOR
|
#if USE_VERTEX_COLOR
|
||||||
output.VertexColor = input.Color;
|
output.VertexColor = input.Color;
|
||||||
@@ -612,7 +610,7 @@ VertexOutput VS_Ribbon(RibbonInput input, uint vertexIndex : SV_VertexID)
|
|||||||
{
|
{
|
||||||
output.TexCoord.x = (float)input.Order / (float)RibbonSegmentCount;
|
output.TexCoord.x = (float)input.Order / (float)RibbonSegmentCount;
|
||||||
}
|
}
|
||||||
output.TexCoord.y = (vertexIndex + 1) & 0x1;
|
output.TexCoord.y = (float)((vertexIndex + 1) & 0x1);
|
||||||
output.TexCoord = output.TexCoord * RibbonUVScale + RibbonUVOffset;
|
output.TexCoord = output.TexCoord * RibbonUVScale + RibbonUVOffset;
|
||||||
|
|
||||||
// Compute world space vertex position
|
// Compute world space vertex position
|
||||||
@@ -631,7 +629,7 @@ VertexOutput VS_Ribbon(RibbonInput input, uint vertexIndex : SV_VertexID)
|
|||||||
output.InstanceParams = PerInstanceRandom;
|
output.InstanceParams = PerInstanceRandom;
|
||||||
|
|
||||||
// Calculate tanget space to world space transformation matrix for unit vectors
|
// Calculate tanget space to world space transformation matrix for unit vectors
|
||||||
half3x3 tangentToLocal = float3x3(tangentRight, tangentUp, cross(tangentRight, tangentUp));
|
half3x3 tangentToLocal = half3x3(tangentRight, tangentUp, cross(tangentRight, tangentUp));
|
||||||
half3x3 tangentToWorld = CalcTangentToWorld(world, tangentToLocal);
|
half3x3 tangentToWorld = CalcTangentToWorld(world, tangentToLocal);
|
||||||
output.TBN = tangentToWorld;
|
output.TBN = tangentToWorld;
|
||||||
|
|
||||||
@@ -647,7 +645,7 @@ VertexOutput VS_Ribbon(RibbonInput input, uint vertexIndex : SV_VertexID)
|
|||||||
materialInput.TBN = output.TBN;
|
materialInput.TBN = output.TBN;
|
||||||
materialInput.TwoSidedSign = 1;
|
materialInput.TwoSidedSign = 1;
|
||||||
materialInput.SvPosition = output.Position;
|
materialInput.SvPosition = output.Position;
|
||||||
materialInput.PreSkinnedPosition = Position;
|
materialInput.PreSkinnedPosition = position;
|
||||||
materialInput.PreSkinnedNormal = tangentToLocal[2].xyz;
|
materialInput.PreSkinnedNormal = tangentToLocal[2].xyz;
|
||||||
materialInput.InstanceOrigin = output.InstanceOrigin;
|
materialInput.InstanceOrigin = output.InstanceOrigin;
|
||||||
materialInput.InstanceParams = output.InstanceParams;
|
materialInput.InstanceParams = output.InstanceParams;
|
||||||
|
|||||||
@@ -19,6 +19,8 @@ float4 ViewInfo;
|
|||||||
float4 ScreenSize;
|
float4 ScreenSize;
|
||||||
float4 TemporalAAJitter;
|
float4 TemporalAAJitter;
|
||||||
float4x4 InverseViewProjectionMatrix;
|
float4x4 InverseViewProjectionMatrix;
|
||||||
|
float3 ViewPadding0;
|
||||||
|
float ScaledTimeParam;
|
||||||
@1META_CB_END
|
@1META_CB_END
|
||||||
|
|
||||||
// Shader resources
|
// Shader resources
|
||||||
|
|||||||
@@ -2,7 +2,9 @@
|
|||||||
// Version: @0
|
// Version: @0
|
||||||
|
|
||||||
#define MATERIAL 1
|
#define MATERIAL 1
|
||||||
|
#define MATERIAL_TEXCOORDS 4
|
||||||
#define USE_PER_VIEW_CONSTANTS 1
|
#define USE_PER_VIEW_CONSTANTS 1
|
||||||
|
#define USE_PER_DRAW_CONSTANTS 1
|
||||||
@3
|
@3
|
||||||
#include "./Flax/Common.hlsl"
|
#include "./Flax/Common.hlsl"
|
||||||
#include "./Flax/MaterialCommon.hlsl"
|
#include "./Flax/MaterialCommon.hlsl"
|
||||||
@@ -10,36 +12,42 @@
|
|||||||
@7
|
@7
|
||||||
// Primary constant buffer (with additional material parameters)
|
// Primary constant buffer (with additional material parameters)
|
||||||
META_CB_BEGIN(0, Data)
|
META_CB_BEGIN(0, Data)
|
||||||
float4x3 WorldMatrix;
|
|
||||||
float4x3 PrevWorldMatrix;
|
|
||||||
float2 Dummy0;
|
|
||||||
float LODDitherFactor;
|
|
||||||
float PerInstanceRandom;
|
|
||||||
float3 GeometrySize;
|
|
||||||
float WorldDeterminantSign;
|
|
||||||
@1META_CB_END
|
@1META_CB_END
|
||||||
|
|
||||||
// Shader resources
|
// Shader resources
|
||||||
@2
|
@2
|
||||||
|
Buffer<float4> ObjectsBuffer : register(t0);
|
||||||
|
#if USE_SKINNING
|
||||||
|
// The skeletal bones matrix buffer (stored as 4x3, 3 float4 behind each other)
|
||||||
|
Buffer<float4> BoneMatrices : register(t1);
|
||||||
|
#if PER_BONE_MOTION_BLUR
|
||||||
|
// The skeletal bones matrix buffer from the previous frame
|
||||||
|
Buffer<float4> PrevBoneMatrices : register(t2);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
// Geometry data passed though the graphics rendering stages up to the pixel shader
|
// Geometry data passed though the graphics rendering stages up to the pixel shader
|
||||||
struct GeometryData
|
struct GeometryData
|
||||||
{
|
{
|
||||||
float3 WorldPosition : TEXCOORD0;
|
float3 WorldPosition : TEXCOORD0;
|
||||||
float2 TexCoord : TEXCOORD1;
|
float4 TexCoords01 : TEXCOORD1;
|
||||||
float2 LightmapUV : TEXCOORD2;
|
float4 TexCoords23 : TEXCOORD2;
|
||||||
|
float2 LightmapUV : TEXCOORD3;
|
||||||
#if USE_VERTEX_COLOR
|
#if USE_VERTEX_COLOR
|
||||||
half4 VertexColor : COLOR;
|
half4 VertexColor : COLOR;
|
||||||
#endif
|
#endif
|
||||||
float3 WorldNormal : TEXCOORD3;
|
float3 WorldNormal : TEXCOORD4;
|
||||||
float4 WorldTangent : TEXCOORD4;
|
float4 WorldTangent : TEXCOORD5;
|
||||||
nointerpolation float3 InstanceOrigin : TEXCOORD5;
|
|
||||||
nointerpolation float2 InstanceParams : TEXCOORD6; // x-PerInstanceRandom, y-LODDitherFactor
|
|
||||||
float3 PrevWorldPosition : TEXCOORD7;
|
float3 PrevWorldPosition : TEXCOORD7;
|
||||||
nointerpolation float3 InstanceTransform1 : TEXCOORD8;
|
nointerpolation uint ObjectIndex : TEXCOORD8;
|
||||||
nointerpolation float3 InstanceTransform2 : TEXCOORD9;
|
|
||||||
nointerpolation float3 InstanceTransform3 : TEXCOORD10;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
float3 DecodeNormal(float4 normalMap)
|
||||||
|
{
|
||||||
|
float2 xy = normalMap.rg * 2.0 - 1.0;
|
||||||
|
return float3(xy, sqrt(1.0 - saturate(dot(xy, xy))));
|
||||||
|
}
|
||||||
|
|
||||||
// Interpolants passed from the vertex shader
|
// Interpolants passed from the vertex shader
|
||||||
struct VertexOutput
|
struct VertexOutput
|
||||||
{
|
{
|
||||||
@@ -69,7 +77,7 @@ struct MaterialInput
|
|||||||
{
|
{
|
||||||
float3 WorldPosition;
|
float3 WorldPosition;
|
||||||
float TwoSidedSign;
|
float TwoSidedSign;
|
||||||
float2 TexCoord;
|
float2 TexCoords[MATERIAL_TEXCOORDS];
|
||||||
#if USE_LIGHTMAP
|
#if USE_LIGHTMAP
|
||||||
float2 LightmapUV;
|
float2 LightmapUV;
|
||||||
#endif
|
#endif
|
||||||
@@ -80,22 +88,25 @@ struct MaterialInput
|
|||||||
float4 SvPosition;
|
float4 SvPosition;
|
||||||
float3 PreSkinnedPosition;
|
float3 PreSkinnedPosition;
|
||||||
float3 PreSkinnedNormal;
|
float3 PreSkinnedNormal;
|
||||||
float3 InstanceOrigin;
|
uint ObjectIndex;
|
||||||
float2 InstanceParams;
|
ObjectData Object;
|
||||||
float3 InstanceTransform1;
|
|
||||||
float3 InstanceTransform2;
|
|
||||||
float3 InstanceTransform3;
|
|
||||||
#if USE_CUSTOM_VERTEX_INTERPOLATORS
|
#if USE_CUSTOM_VERTEX_INTERPOLATORS
|
||||||
float4 CustomVSToPS[CUSTOM_VERTEX_INTERPOLATORS_COUNT];
|
float4 CustomVSToPS[CUSTOM_VERTEX_INTERPOLATORS_COUNT];
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Map access to the main texure coordinate channel as UV0
|
||||||
|
#define TexCoord TexCoords[0]
|
||||||
|
|
||||||
// Extracts geometry data to the material input
|
// Extracts geometry data to the material input
|
||||||
MaterialInput GetGeometryMaterialInput(GeometryData geometry)
|
MaterialInput GetGeometryMaterialInput(GeometryData geometry)
|
||||||
{
|
{
|
||||||
MaterialInput output = (MaterialInput)0;
|
MaterialInput output = (MaterialInput)0;
|
||||||
output.WorldPosition = geometry.WorldPosition;
|
output.WorldPosition = geometry.WorldPosition;
|
||||||
output.TexCoord = geometry.TexCoord;
|
output.TexCoords[0] = geometry.TexCoords01.xy;
|
||||||
|
output.TexCoords[1] = geometry.TexCoords01.zw;
|
||||||
|
output.TexCoords[2] = geometry.TexCoords23.xy;
|
||||||
|
output.TexCoords[3] = geometry.TexCoords23.zw;
|
||||||
#if USE_LIGHTMAP
|
#if USE_LIGHTMAP
|
||||||
output.LightmapUV = geometry.LightmapUV;
|
output.LightmapUV = geometry.LightmapUV;
|
||||||
#endif
|
#endif
|
||||||
@@ -103,11 +114,7 @@ MaterialInput GetGeometryMaterialInput(GeometryData geometry)
|
|||||||
output.VertexColor = geometry.VertexColor;
|
output.VertexColor = geometry.VertexColor;
|
||||||
#endif
|
#endif
|
||||||
output.TBN = CalcTangentBasis(geometry.WorldNormal, geometry.WorldTangent);
|
output.TBN = CalcTangentBasis(geometry.WorldNormal, geometry.WorldTangent);
|
||||||
output.InstanceOrigin = geometry.InstanceOrigin;
|
output.ObjectIndex = geometry.ObjectIndex;
|
||||||
output.InstanceParams = geometry.InstanceParams;
|
|
||||||
output.InstanceTransform1 = geometry.InstanceTransform1;
|
|
||||||
output.InstanceTransform2 = geometry.InstanceTransform2;
|
|
||||||
output.InstanceTransform3 = geometry.InstanceTransform3;
|
|
||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -134,8 +141,8 @@ MaterialInput GetGeometryMaterialInput(GeometryData geometry)
|
|||||||
GeometryData InterpolateGeometry(GeometryData p0, float w0, GeometryData p1, float w1, GeometryData p2, float w2)
|
GeometryData InterpolateGeometry(GeometryData p0, float w0, GeometryData p1, float w1, GeometryData p2, float w2)
|
||||||
{
|
{
|
||||||
GeometryData output = (GeometryData)0;
|
GeometryData output = (GeometryData)0;
|
||||||
output.TexCoord = p0.TexCoord * w0 + p1.TexCoord * w1 + p2.TexCoord * w2;
|
output.TexCoords01 = p0.TexCoords01 * w0 + p1.TexCoords01 * w1 + p2.TexCoords01 * w2;
|
||||||
output.LightmapUV = p0.LightmapUV * w0 + p1.LightmapUV * w1 + p2.LightmapUV * w2;
|
output.TexCoords23 = p0.TexCoords23 * w0 + p1.TexCoords23 * w1 + p2.TexCoords23 * w2;
|
||||||
#if USE_VERTEX_COLOR
|
#if USE_VERTEX_COLOR
|
||||||
output.VertexColor = p0.VertexColor * w0 + p1.VertexColor * w1 + p2.VertexColor * w2;
|
output.VertexColor = p0.VertexColor * w0 + p1.VertexColor * w1 + p2.VertexColor * w2;
|
||||||
#endif
|
#endif
|
||||||
@@ -143,11 +150,7 @@ GeometryData InterpolateGeometry(GeometryData p0, float w0, GeometryData p1, flo
|
|||||||
output.WorldNormal = normalize(output.WorldNormal);
|
output.WorldNormal = normalize(output.WorldNormal);
|
||||||
output.WorldTangent = p0.WorldTangent * w0 + p1.WorldTangent * w1 + p2.WorldTangent * w2;
|
output.WorldTangent = p0.WorldTangent * w0 + p1.WorldTangent * w1 + p2.WorldTangent * w2;
|
||||||
output.WorldTangent.xyz = normalize(output.WorldTangent.xyz);
|
output.WorldTangent.xyz = normalize(output.WorldTangent.xyz);
|
||||||
output.InstanceOrigin = p0.InstanceOrigin;
|
output.ObjectIndex = p0.ObjectIndex;
|
||||||
output.InstanceParams = p0.InstanceParams;
|
|
||||||
output.InstanceTransform1 = p0.InstanceTransform1;
|
|
||||||
output.InstanceTransform2 = p0.InstanceTransform2;
|
|
||||||
output.InstanceTransform3 = p0.InstanceTransform3;
|
|
||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -156,7 +159,8 @@ GeometryData InterpolateGeometry(GeometryData p0, float w0, GeometryData p1, flo
|
|||||||
MaterialInput GetMaterialInput(PixelInput input)
|
MaterialInput GetMaterialInput(PixelInput input)
|
||||||
{
|
{
|
||||||
MaterialInput output = GetGeometryMaterialInput(input.Geometry);
|
MaterialInput output = GetGeometryMaterialInput(input.Geometry);
|
||||||
output.TwoSidedSign = WorldDeterminantSign * (input.IsFrontFace ? 1.0 : -1.0);
|
output.Object = LoadObject(ObjectsBuffer, input.Geometry.ObjectIndex);
|
||||||
|
output.TwoSidedSign = output.Object.WorldDeterminantSign * (input.IsFrontFace ? 1.0 : -1.0);
|
||||||
output.SvPosition = input.Position;
|
output.SvPosition = input.Position;
|
||||||
#if USE_CUSTOM_VERTEX_INTERPOLATORS
|
#if USE_CUSTOM_VERTEX_INTERPOLATORS
|
||||||
output.CustomVSToPS = input.CustomVSToPS;
|
output.CustomVSToPS = input.CustomVSToPS;
|
||||||
@@ -164,16 +168,6 @@ MaterialInput GetMaterialInput(PixelInput input)
|
|||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Gets the local to world transform matrix
|
|
||||||
#define GetInstanceTransform(input) float4x4(float4(input.InstanceTransform1.xyz, 0.0f), float4(input.InstanceTransform2.xyz, 0.0f), float4(input.InstanceTransform3.xyz, 0.0f), float4(input.InstanceOrigin.xyz, 1.0f))
|
|
||||||
|
|
||||||
// Extarcts the world matrix and instancce transform vector
|
|
||||||
#if USE_INSTANCING
|
|
||||||
#define CalculateInstanceTransform(input) float4x4 world = GetInstanceTransform(input); output.Geometry.InstanceTransform1 = input.InstanceTransform1.xyz; output.Geometry.InstanceTransform2 = input.InstanceTransform2.xyz; output.Geometry.InstanceTransform3 = input.InstanceTransform3.xyz;
|
|
||||||
#else
|
|
||||||
#define CalculateInstanceTransform(input) float4x4 world = ToMatrix4x4(WorldMatrix); output.Geometry.InstanceTransform1 = world[0].xyz; output.Geometry.InstanceTransform2 = world[1].xyz; output.Geometry.InstanceTransform3 = world[2].xyz;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Removes the scale vector from the local to world transformation matrix (supports instancing)
|
// Removes the scale vector from the local to world transformation matrix (supports instancing)
|
||||||
float3x3 RemoveScaleFromLocalToWorld(float3x3 localToWorld)
|
float3x3 RemoveScaleFromLocalToWorld(float3x3 localToWorld)
|
||||||
{
|
{
|
||||||
@@ -218,7 +212,7 @@ float3 TransformViewVectorToWorld(MaterialInput input, float3 viewVector)
|
|||||||
// Transforms a vector from local space to world space
|
// Transforms a vector from local space to world space
|
||||||
float3 TransformLocalVectorToWorld(MaterialInput input, float3 localVector)
|
float3 TransformLocalVectorToWorld(MaterialInput input, float3 localVector)
|
||||||
{
|
{
|
||||||
float3x3 localToWorld = (float3x3)GetInstanceTransform(input);
|
float3x3 localToWorld = (float3x3)input.Object.WorldMatrix;
|
||||||
//localToWorld = RemoveScaleFromLocalToWorld(localToWorld);
|
//localToWorld = RemoveScaleFromLocalToWorld(localToWorld);
|
||||||
return mul(localVector, localToWorld);
|
return mul(localVector, localToWorld);
|
||||||
}
|
}
|
||||||
@@ -226,7 +220,7 @@ float3 TransformLocalVectorToWorld(MaterialInput input, float3 localVector)
|
|||||||
// Transforms a vector from local space to world space
|
// Transforms a vector from local space to world space
|
||||||
float3 TransformWorldVectorToLocal(MaterialInput input, float3 worldVector)
|
float3 TransformWorldVectorToLocal(MaterialInput input, float3 worldVector)
|
||||||
{
|
{
|
||||||
float3x3 localToWorld = (float3x3)GetInstanceTransform(input);
|
float3x3 localToWorld = (float3x3)input.Object.WorldMatrix;
|
||||||
//localToWorld = RemoveScaleFromLocalToWorld(localToWorld);
|
//localToWorld = RemoveScaleFromLocalToWorld(localToWorld);
|
||||||
return mul(localToWorld, worldVector);
|
return mul(localToWorld, worldVector);
|
||||||
}
|
}
|
||||||
@@ -234,30 +228,44 @@ float3 TransformWorldVectorToLocal(MaterialInput input, float3 worldVector)
|
|||||||
// Gets the current object position (supports instancing)
|
// Gets the current object position (supports instancing)
|
||||||
float3 GetObjectPosition(MaterialInput input)
|
float3 GetObjectPosition(MaterialInput input)
|
||||||
{
|
{
|
||||||
return input.InstanceOrigin.xyz;
|
return input.Object.WorldMatrix[3].xyz;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Gets the current object size (supports instancing)
|
// Gets the current object size (supports instancing)
|
||||||
float3 GetObjectSize(MaterialInput input)
|
float3 GetObjectSize(MaterialInput input)
|
||||||
{
|
{
|
||||||
float4x4 world = GetInstanceTransform(input);
|
float4x4 world = input.Object.WorldMatrix;
|
||||||
return GeometrySize * float3(world._m00, world._m11, world._m22);
|
return input.Object.GeometrySize * float3(world._m00, world._m11, world._m22);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Gets the current object scale (supports instancing)
|
||||||
|
float3 GetObjectScale(MaterialInput input)
|
||||||
|
{
|
||||||
|
float4x4 world = input.Object.WorldMatrix;
|
||||||
|
|
||||||
|
// Get the squares of the scale factors
|
||||||
|
float scaleXSquared = dot(world[0].xyz, world[0].xyz);
|
||||||
|
float scaleYSquared = dot(world[1].xyz, world[1].xyz);
|
||||||
|
float scaleZSquared = dot(world[2].xyz, world[2].xyz);
|
||||||
|
|
||||||
|
// Take square root to get actual scales
|
||||||
|
return float3(
|
||||||
|
sqrt(scaleXSquared),
|
||||||
|
sqrt(scaleYSquared),
|
||||||
|
sqrt(scaleZSquared)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the current object random value (supports instancing)
|
// Get the current object random value (supports instancing)
|
||||||
float GetPerInstanceRandom(MaterialInput input)
|
float GetPerInstanceRandom(MaterialInput input)
|
||||||
{
|
{
|
||||||
return input.InstanceParams.x;
|
return input.Object.PerInstanceRandom;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the current object LOD transition dither factor (supports instancing)
|
// Get the current object LOD transition dither factor (supports instancing)
|
||||||
float GetLODDitherFactor(MaterialInput input)
|
float GetLODDitherFactor(MaterialInput input)
|
||||||
{
|
{
|
||||||
#if USE_DITHERED_LOD_TRANSITION
|
return input.Object.LODDitherFactor;
|
||||||
return input.InstanceParams.y;
|
|
||||||
#else
|
|
||||||
return 0;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Gets the interpolated vertex color (in linear space)
|
// Gets the interpolated vertex color (in linear space)
|
||||||
@@ -316,44 +324,41 @@ META_VS_IN_ELEMENT(NORMAL, 0, R10G10B10A2_UNORM, 1, ALIGN, PER_VERTEX, 0, true
|
|||||||
META_VS_IN_ELEMENT(TANGENT, 0, R10G10B10A2_UNORM, 1, ALIGN, PER_VERTEX, 0, true)
|
META_VS_IN_ELEMENT(TANGENT, 0, R10G10B10A2_UNORM, 1, ALIGN, PER_VERTEX, 0, true)
|
||||||
META_VS_IN_ELEMENT(TEXCOORD, 1, R16G16_FLOAT, 1, ALIGN, PER_VERTEX, 0, true)
|
META_VS_IN_ELEMENT(TEXCOORD, 1, R16G16_FLOAT, 1, ALIGN, PER_VERTEX, 0, true)
|
||||||
META_VS_IN_ELEMENT(COLOR, 0, R8G8B8A8_UNORM, 2, 0, PER_VERTEX, 0, USE_VERTEX_COLOR)
|
META_VS_IN_ELEMENT(COLOR, 0, R8G8B8A8_UNORM, 2, 0, PER_VERTEX, 0, USE_VERTEX_COLOR)
|
||||||
META_VS_IN_ELEMENT(ATTRIBUTE,0, R32G32B32A32_FLOAT,3, 0, PER_INSTANCE, 1, USE_INSTANCING)
|
META_VS_IN_ELEMENT(ATTRIBUTE,0, R32_UINT, 3, 0, PER_INSTANCE, 1, USE_INSTANCING)
|
||||||
META_VS_IN_ELEMENT(ATTRIBUTE,1, R32G32B32A32_FLOAT,3, ALIGN, PER_INSTANCE, 1, USE_INSTANCING)
|
|
||||||
META_VS_IN_ELEMENT(ATTRIBUTE,2, R32G32B32_FLOAT, 3, ALIGN, PER_INSTANCE, 1, USE_INSTANCING)
|
|
||||||
META_VS_IN_ELEMENT(ATTRIBUTE,3, R32G32B32_FLOAT, 3, ALIGN, PER_INSTANCE, 1, USE_INSTANCING)
|
|
||||||
META_VS_IN_ELEMENT(ATTRIBUTE,4, R16G16B16A16_FLOAT,3, ALIGN, PER_INSTANCE, 1, USE_INSTANCING)
|
|
||||||
VertexOutput VS(ModelInput input)
|
VertexOutput VS(ModelInput input)
|
||||||
{
|
{
|
||||||
VertexOutput output;
|
VertexOutput output;
|
||||||
|
|
||||||
|
// Load object data
|
||||||
|
#if USE_INSTANCING
|
||||||
|
output.Geometry.ObjectIndex = input.ObjectIndex;
|
||||||
|
#else
|
||||||
|
output.Geometry.ObjectIndex = DrawObjectIndex;
|
||||||
|
#endif
|
||||||
|
ObjectData object = LoadObject(ObjectsBuffer, output.Geometry.ObjectIndex);
|
||||||
|
|
||||||
// Compute world space vertex position
|
// Compute world space vertex position
|
||||||
CalculateInstanceTransform(input);
|
output.Geometry.WorldPosition = mul(float4(input.Position.xyz, 1), object.WorldMatrix).xyz;
|
||||||
output.Geometry.WorldPosition = mul(float4(input.Position.xyz, 1), world).xyz;
|
output.Geometry.PrevWorldPosition = mul(float4(input.Position.xyz, 1), object.PrevWorldMatrix).xyz;
|
||||||
output.Geometry.PrevWorldPosition = mul(float4(input.Position.xyz, 1), ToMatrix4x4(PrevWorldMatrix)).xyz;
|
|
||||||
|
|
||||||
// Compute clip space position
|
// Compute clip space position
|
||||||
output.Position = mul(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
|
output.Position = mul(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
|
||||||
|
|
||||||
// Pass vertex attributes
|
// Pass vertex attributes
|
||||||
output.Geometry.TexCoord = input.TexCoord;
|
output.Geometry.TexCoords01 = float4(input.TexCoord0, input.TexCoord1);
|
||||||
|
output.Geometry.TexCoords23 = float4(input.TexCoord2, input.TexCoord3);
|
||||||
#if USE_VERTEX_COLOR
|
#if USE_VERTEX_COLOR
|
||||||
output.Geometry.VertexColor = input.Color;
|
output.Geometry.VertexColor = input.Color;
|
||||||
#endif
|
#endif
|
||||||
output.Geometry.InstanceOrigin = world[3].xyz;
|
|
||||||
#if USE_INSTANCING
|
|
||||||
output.Geometry.LightmapUV = input.LightmapUV * input.InstanceLightmapArea.zw + input.InstanceLightmapArea.xy;
|
|
||||||
output.Geometry.InstanceParams = float2(input.InstanceOrigin.w, input.InstanceTransform1.w);
|
|
||||||
#else
|
|
||||||
#if CAN_USE_LIGHTMAP
|
#if CAN_USE_LIGHTMAP
|
||||||
output.Geometry.LightmapUV = input.LightmapUV * LightmapArea.zw + LightmapArea.xy;
|
output.Geometry.LightmapUV = input.LightmapUV * object.LightmapArea.zw + object.LightmapArea.xy;
|
||||||
#else
|
#else
|
||||||
output.Geometry.LightmapUV = input.LightmapUV;
|
output.Geometry.LightmapUV = float2(0, 0);
|
||||||
#endif
|
|
||||||
output.Geometry.InstanceParams = float2(PerInstanceRandom, LODDitherFactor);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Calculate tanget space to world space transformation matrix for unit vectors
|
// Calculate tanget space to world space transformation matrix for unit vectors
|
||||||
float3x3 tangentToLocal = CalcTangentToLocal(input);
|
float3x3 tangentToLocal = CalcTangentToLocal(input);
|
||||||
float3x3 tangentToWorld = CalcTangentToWorld(world, tangentToLocal);
|
float3x3 tangentToWorld = CalcTangentToWorld(object.WorldMatrix, tangentToLocal);
|
||||||
output.Geometry.WorldNormal = tangentToWorld[2];
|
output.Geometry.WorldNormal = tangentToWorld[2];
|
||||||
output.Geometry.WorldTangent.xyz = tangentToWorld[0];
|
output.Geometry.WorldTangent.xyz = tangentToWorld[0];
|
||||||
output.Geometry.WorldTangent.w = input.Tangent.w ? -1.0f : +1.0f;
|
output.Geometry.WorldTangent.w = input.Tangent.w ? -1.0f : +1.0f;
|
||||||
@@ -361,16 +366,18 @@ VertexOutput VS(ModelInput input)
|
|||||||
// Get material input params if need to evaluate any material property
|
// Get material input params if need to evaluate any material property
|
||||||
#if USE_POSITION_OFFSET || USE_TESSELLATION || USE_CUSTOM_VERTEX_INTERPOLATORS
|
#if USE_POSITION_OFFSET || USE_TESSELLATION || USE_CUSTOM_VERTEX_INTERPOLATORS
|
||||||
MaterialInput materialInput = GetGeometryMaterialInput(output.Geometry);
|
MaterialInput materialInput = GetGeometryMaterialInput(output.Geometry);
|
||||||
materialInput.TwoSidedSign = WorldDeterminantSign;
|
materialInput.TwoSidedSign = object.WorldDeterminantSign;
|
||||||
materialInput.SvPosition = output.Position;
|
materialInput.SvPosition = output.Position;
|
||||||
materialInput.PreSkinnedPosition = input.Position.xyz;
|
materialInput.PreSkinnedPosition = input.Position.xyz;
|
||||||
materialInput.PreSkinnedNormal = tangentToLocal[2].xyz;
|
materialInput.PreSkinnedNormal = tangentToLocal[2].xyz;
|
||||||
|
materialInput.Object = object;
|
||||||
Material material = GetMaterialVS(materialInput);
|
Material material = GetMaterialVS(materialInput);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Apply world position offset per-vertex
|
// Apply world position offset per-vertex
|
||||||
#if USE_POSITION_OFFSET
|
#if USE_POSITION_OFFSET
|
||||||
output.Geometry.WorldPosition += material.PositionOffset;
|
output.Geometry.WorldPosition += material.PositionOffset;
|
||||||
|
output.Geometry.PrevWorldPosition += material.PositionOffset;
|
||||||
output.Position = mul(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
|
output.Position = mul(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -392,33 +399,27 @@ META_VS(true, FEATURE_LEVEL_ES2)
|
|||||||
META_PERMUTATION_1(USE_INSTANCING=0)
|
META_PERMUTATION_1(USE_INSTANCING=0)
|
||||||
META_PERMUTATION_1(USE_INSTANCING=1)
|
META_PERMUTATION_1(USE_INSTANCING=1)
|
||||||
META_VS_IN_ELEMENT(POSITION, 0, R32G32B32_FLOAT, 0, 0, PER_VERTEX, 0, true)
|
META_VS_IN_ELEMENT(POSITION, 0, R32G32B32_FLOAT, 0, 0, PER_VERTEX, 0, true)
|
||||||
META_VS_IN_ELEMENT(ATTRIBUTE,0, R32G32B32A32_FLOAT,3, 0, PER_INSTANCE, 1, USE_INSTANCING)
|
META_VS_IN_ELEMENT(ATTRIBUTE,0, R32_UINT, 3, 0, PER_INSTANCE, 1, USE_INSTANCING)
|
||||||
META_VS_IN_ELEMENT(ATTRIBUTE,1, R32G32B32A32_FLOAT,3, ALIGN, PER_INSTANCE, 1, USE_INSTANCING)
|
|
||||||
META_VS_IN_ELEMENT(ATTRIBUTE,2, R32G32B32_FLOAT, 3, ALIGN, PER_INSTANCE, 1, USE_INSTANCING)
|
|
||||||
META_VS_IN_ELEMENT(ATTRIBUTE,3, R32G32B32_FLOAT, 3, ALIGN, PER_INSTANCE, 1, USE_INSTANCING)
|
|
||||||
META_VS_IN_ELEMENT(ATTRIBUTE,4, R16G16B16A16_FLOAT,3, ALIGN, PER_INSTANCE, 1, USE_INSTANCING)
|
|
||||||
float4 VS_Depth(ModelInput_PosOnly input) : SV_Position
|
float4 VS_Depth(ModelInput_PosOnly input) : SV_Position
|
||||||
{
|
{
|
||||||
|
// Load object data
|
||||||
#if USE_INSTANCING
|
#if USE_INSTANCING
|
||||||
float4x4 world = GetInstanceTransform(input);
|
uint objectIndex = input.ObjectIndex;
|
||||||
#else
|
#else
|
||||||
float4x4 world = ToMatrix4x4(WorldMatrix);
|
uint objectIndex = DrawObjectIndex;
|
||||||
#endif
|
#endif
|
||||||
float3 worldPosition = mul(float4(input.Position.xyz, 1), world).xyz;
|
ObjectData object = LoadObject(ObjectsBuffer, objectIndex);
|
||||||
|
|
||||||
|
// Transform vertex position into the screen
|
||||||
|
float3 worldPosition = mul(float4(input.Position.xyz, 1), object.WorldMatrix).xyz;
|
||||||
float4 position = mul(float4(worldPosition, 1), ViewProjectionMatrix);
|
float4 position = mul(float4(worldPosition, 1), ViewProjectionMatrix);
|
||||||
return position;
|
return position;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if USE_SKINNING
|
#if USE_SKINNING
|
||||||
|
|
||||||
// The skeletal bones matrix buffer (stored as 4x3, 3 float4 behind each other)
|
|
||||||
Buffer<float4> BoneMatrices : register(t0);
|
|
||||||
|
|
||||||
#if PER_BONE_MOTION_BLUR
|
#if PER_BONE_MOTION_BLUR
|
||||||
|
|
||||||
// The skeletal bones matrix buffer from the previous frame
|
|
||||||
Buffer<float4> PrevBoneMatrices : register(t1);
|
|
||||||
|
|
||||||
float3x4 GetPrevBoneMatrix(int index)
|
float3x4 GetPrevBoneMatrix(int index)
|
||||||
{
|
{
|
||||||
float4 a = PrevBoneMatrices[index * 3];
|
float4 a = PrevBoneMatrices[index * 3];
|
||||||
@@ -493,44 +494,42 @@ META_VS_IN_ELEMENT(TEXCOORD, 0, R16G16_FLOAT, 0, ALIGN, PER_VERTEX, 0,
|
|||||||
META_VS_IN_ELEMENT(NORMAL, 0, R10G10B10A2_UNORM, 0, ALIGN, PER_VERTEX, 0, true)
|
META_VS_IN_ELEMENT(NORMAL, 0, R10G10B10A2_UNORM, 0, ALIGN, PER_VERTEX, 0, true)
|
||||||
META_VS_IN_ELEMENT(TANGENT, 0, R10G10B10A2_UNORM, 0, ALIGN, PER_VERTEX, 0, true)
|
META_VS_IN_ELEMENT(TANGENT, 0, R10G10B10A2_UNORM, 0, ALIGN, PER_VERTEX, 0, true)
|
||||||
META_VS_IN_ELEMENT(BLENDINDICES, 0, R8G8B8A8_UINT, 0, ALIGN, PER_VERTEX, 0, true)
|
META_VS_IN_ELEMENT(BLENDINDICES, 0, R8G8B8A8_UINT, 0, ALIGN, PER_VERTEX, 0, true)
|
||||||
META_VS_IN_ELEMENT(BLENDWEIGHT, 0, R16G16B16A16_FLOAT,0, ALIGN, PER_VERTEX, 0, true)
|
META_VS_IN_ELEMENT(BLENDWEIGHTS, 0, R16G16B16A16_FLOAT,0, ALIGN, PER_VERTEX, 0, true)
|
||||||
VertexOutput VS_Skinned(ModelInput_Skinned input)
|
VertexOutput VS_Skinned(ModelInput_Skinned input)
|
||||||
{
|
{
|
||||||
VertexOutput output;
|
VertexOutput output;
|
||||||
|
|
||||||
|
// Load object data
|
||||||
|
output.Geometry.ObjectIndex = DrawObjectIndex;
|
||||||
|
ObjectData object = LoadObject(ObjectsBuffer, output.Geometry.ObjectIndex);
|
||||||
|
|
||||||
// Perform skinning
|
// Perform skinning
|
||||||
float3x4 boneMatrix = GetBoneMatrix(input);
|
float3x4 boneMatrix = GetBoneMatrix(input);
|
||||||
float3 position = SkinPosition(input, boneMatrix);
|
float3 position = SkinPosition(input, boneMatrix);
|
||||||
float3x3 tangentToLocal = SkinTangents(input, boneMatrix);
|
float3x3 tangentToLocal = SkinTangents(input, boneMatrix);
|
||||||
|
|
||||||
// Compute world space vertex position
|
// Compute world space vertex position
|
||||||
CalculateInstanceTransform(input);
|
output.Geometry.WorldPosition = mul(float4(position, 1), object.WorldMatrix).xyz;
|
||||||
output.Geometry.WorldPosition = mul(float4(position, 1), world).xyz;
|
|
||||||
#if PER_BONE_MOTION_BLUR
|
#if PER_BONE_MOTION_BLUR
|
||||||
float3 prevPosition = SkinPrevPosition(input);
|
float3 prevPosition = SkinPrevPosition(input);
|
||||||
output.Geometry.PrevWorldPosition = mul(float4(prevPosition, 1), ToMatrix4x4(PrevWorldMatrix)).xyz;
|
output.Geometry.PrevWorldPosition = mul(float4(prevPosition, 1), object.PrevWorldMatrix).xyz;
|
||||||
#else
|
#else
|
||||||
output.Geometry.PrevWorldPosition = mul(float4(position, 1), ToMatrix4x4(PrevWorldMatrix)).xyz;
|
output.Geometry.PrevWorldPosition = mul(float4(position, 1), object.PrevWorldMatrix).xyz;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Compute clip space position
|
// Compute clip space position
|
||||||
output.Position = mul(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
|
output.Position = mul(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
|
||||||
|
|
||||||
// Pass vertex attributes
|
// Pass vertex attributes
|
||||||
output.Geometry.TexCoord = input.TexCoord;
|
output.Geometry.TexCoords01 = float4(input.TexCoord0, input.TexCoord1);
|
||||||
|
output.Geometry.TexCoords23 = float4(input.TexCoord2, input.TexCoord3);
|
||||||
#if USE_VERTEX_COLOR
|
#if USE_VERTEX_COLOR
|
||||||
output.Geometry.VertexColor = float4(0, 0, 0, 1);
|
output.Geometry.VertexColor = input.Color;
|
||||||
#endif
|
#endif
|
||||||
output.Geometry.LightmapUV = float2(0, 0);
|
output.Geometry.LightmapUV = float2(0, 0);
|
||||||
output.Geometry.InstanceOrigin = world[3].xyz;
|
|
||||||
#if USE_INSTANCING
|
|
||||||
output.Geometry.InstanceParams = float2(input.InstanceOrigin.w, input.InstanceTransform1.w);
|
|
||||||
#else
|
|
||||||
output.Geometry.InstanceParams = float2(PerInstanceRandom, LODDitherFactor);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Calculate tanget space to world space transformation matrix for unit vectors
|
// Calculate tanget space to world space transformation matrix for unit vectors
|
||||||
float3x3 tangentToWorld = CalcTangentToWorld(world, tangentToLocal);
|
float3x3 tangentToWorld = CalcTangentToWorld(object.WorldMatrix, tangentToLocal);
|
||||||
output.Geometry.WorldNormal = tangentToWorld[2];
|
output.Geometry.WorldNormal = tangentToWorld[2];
|
||||||
output.Geometry.WorldTangent.xyz = tangentToWorld[0];
|
output.Geometry.WorldTangent.xyz = tangentToWorld[0];
|
||||||
output.Geometry.WorldTangent.w = input.Tangent.w ? -1.0f : +1.0f;
|
output.Geometry.WorldTangent.w = input.Tangent.w ? -1.0f : +1.0f;
|
||||||
@@ -538,16 +537,18 @@ VertexOutput VS_Skinned(ModelInput_Skinned input)
|
|||||||
// Get material input params if need to evaluate any material property
|
// Get material input params if need to evaluate any material property
|
||||||
#if USE_POSITION_OFFSET || USE_TESSELLATION || USE_CUSTOM_VERTEX_INTERPOLATORS
|
#if USE_POSITION_OFFSET || USE_TESSELLATION || USE_CUSTOM_VERTEX_INTERPOLATORS
|
||||||
MaterialInput materialInput = GetGeometryMaterialInput(output.Geometry);
|
MaterialInput materialInput = GetGeometryMaterialInput(output.Geometry);
|
||||||
materialInput.TwoSidedSign = WorldDeterminantSign;
|
materialInput.TwoSidedSign = object.WorldDeterminantSign;
|
||||||
materialInput.SvPosition = output.Position;
|
materialInput.SvPosition = output.Position;
|
||||||
materialInput.PreSkinnedPosition = input.Position.xyz;
|
materialInput.PreSkinnedPosition = input.Position.xyz;
|
||||||
materialInput.PreSkinnedNormal = tangentToLocal[2].xyz;
|
materialInput.PreSkinnedNormal = tangentToLocal[2].xyz;
|
||||||
|
materialInput.Object = object;
|
||||||
Material material = GetMaterialVS(materialInput);
|
Material material = GetMaterialVS(materialInput);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Apply world position offset per-vertex
|
// Apply world position offset per-vertex
|
||||||
#if USE_POSITION_OFFSET
|
#if USE_POSITION_OFFSET
|
||||||
output.Geometry.WorldPosition += material.PositionOffset;
|
output.Geometry.WorldPosition += material.PositionOffset;
|
||||||
|
output.Geometry.PrevWorldPosition += material.PositionOffset;
|
||||||
output.Position = mul(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
|
output.Position = mul(float4(output.Geometry.WorldPosition, 1), ViewProjectionMatrix);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -568,12 +569,12 @@ VertexOutput VS_Skinned(ModelInput_Skinned input)
|
|||||||
|
|
||||||
#if USE_DITHERED_LOD_TRANSITION
|
#if USE_DITHERED_LOD_TRANSITION
|
||||||
|
|
||||||
void ClipLODTransition(PixelInput input)
|
void ClipLODTransition(MaterialInput input)
|
||||||
{
|
{
|
||||||
float ditherFactor = input.Geometry.InstanceParams.y;
|
float ditherFactor = input.Object.LODDitherFactor;
|
||||||
if (abs(ditherFactor) > 0.001)
|
if (abs(ditherFactor) > 0.001)
|
||||||
{
|
{
|
||||||
float randGrid = cos(dot(floor(input.Position.xy), float2(347.83452793, 3343.28371863)));
|
float randGrid = cos(dot(floor(input.SvPosition.xy), float2(347.83452793, 3343.28371863)));
|
||||||
float randGridFrac = frac(randGrid * 1000.0);
|
float randGridFrac = frac(randGrid * 1000.0);
|
||||||
half mask = (ditherFactor < 0.0) ? (ditherFactor + 1.0 > randGridFrac) : (ditherFactor < randGridFrac);
|
half mask = (ditherFactor < 0.0) ? (ditherFactor + 1.0 > randGridFrac) : (ditherFactor < randGridFrac);
|
||||||
clip(mask - 0.001);
|
clip(mask - 0.001);
|
||||||
@@ -586,14 +587,13 @@ void ClipLODTransition(PixelInput input)
|
|||||||
META_PS(true, FEATURE_LEVEL_ES2)
|
META_PS(true, FEATURE_LEVEL_ES2)
|
||||||
void PS_Depth(PixelInput input)
|
void PS_Depth(PixelInput input)
|
||||||
{
|
{
|
||||||
|
MaterialInput materialInput = GetMaterialInput(input);
|
||||||
#if USE_DITHERED_LOD_TRANSITION
|
#if USE_DITHERED_LOD_TRANSITION
|
||||||
// LOD masking
|
ClipLODTransition(materialInput);
|
||||||
ClipLODTransition(input);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if MATERIAL_MASKED || MATERIAL_BLEND != MATERIAL_BLEND_OPAQUE
|
#if MATERIAL_MASKED || MATERIAL_BLEND != MATERIAL_BLEND_OPAQUE
|
||||||
// Get material parameters
|
// Get material parameters
|
||||||
MaterialInput materialInput = GetMaterialInput(input);
|
|
||||||
Material material = GetMaterialPS(materialInput);
|
Material material = GetMaterialPS(materialInput);
|
||||||
|
|
||||||
// Perform per pixel clipping
|
// Perform per pixel clipping
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#define MATERIAL 1
|
#define MATERIAL 1
|
||||||
#define USE_PER_VIEW_CONSTANTS 1
|
#define USE_PER_VIEW_CONSTANTS 1
|
||||||
|
#define LoadObjectFromCB(var) var = GetObject()
|
||||||
@3
|
@3
|
||||||
// Enables/disables smooth terrain chunks LOD transitions (with morphing higher LOD near edges to the lower LOD in the neighbour)
|
// Enables/disables smooth terrain chunks LOD transitions (with morphing higher LOD near edges to the lower LOD in the neighbour)
|
||||||
#define USE_SMOOTH_LOD_TRANSITION 1
|
#define USE_SMOOTH_LOD_TRANSITION 1
|
||||||
@@ -14,6 +15,7 @@
|
|||||||
#include "./Flax/Common.hlsl"
|
#include "./Flax/Common.hlsl"
|
||||||
#include "./Flax/MaterialCommon.hlsl"
|
#include "./Flax/MaterialCommon.hlsl"
|
||||||
#include "./Flax/GBufferCommon.hlsl"
|
#include "./Flax/GBufferCommon.hlsl"
|
||||||
|
#include "./Flax/TerrainCommon.hlsl"
|
||||||
@7
|
@7
|
||||||
// Primary constant buffer (with additional material parameters)
|
// Primary constant buffer (with additional material parameters)
|
||||||
META_CB_BEGIN(0, Data)
|
META_CB_BEGIN(0, Data)
|
||||||
@@ -28,6 +30,7 @@ float4 HeightmapUVScaleBias;
|
|||||||
float4 NeighborLOD;
|
float4 NeighborLOD;
|
||||||
float2 OffsetUV;
|
float2 OffsetUV;
|
||||||
float2 Dummy0;
|
float2 Dummy0;
|
||||||
|
float4 LightmapArea;
|
||||||
@1META_CB_END
|
@1META_CB_END
|
||||||
|
|
||||||
// Terrain data
|
// Terrain data
|
||||||
@@ -88,6 +91,7 @@ struct MaterialInput
|
|||||||
float3 PreSkinnedPosition;
|
float3 PreSkinnedPosition;
|
||||||
float3 PreSkinnedNormal;
|
float3 PreSkinnedNormal;
|
||||||
float HolesMask;
|
float HolesMask;
|
||||||
|
ObjectData Object;
|
||||||
#if USE_TERRAIN_LAYERS
|
#if USE_TERRAIN_LAYERS
|
||||||
float4 Layers[TERRAIN_LAYERS_DATA_SIZE];
|
float4 Layers[TERRAIN_LAYERS_DATA_SIZE];
|
||||||
#endif
|
#endif
|
||||||
@@ -147,9 +151,23 @@ GeometryData InterpolateGeometry(GeometryData p0, float w0, GeometryData p1, flo
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
ObjectData GetObject()
|
||||||
|
{
|
||||||
|
ObjectData object = (ObjectData)0;
|
||||||
|
object.WorldMatrix = ToMatrix4x4(WorldMatrix);
|
||||||
|
object.PrevWorldMatrix = object.WorldMatrix;
|
||||||
|
object.GeometrySize = float3(1, 1, 1);
|
||||||
|
object.PerInstanceRandom = PerInstanceRandom;
|
||||||
|
object.WorldDeterminantSign = WorldDeterminantSign;
|
||||||
|
object.LODDitherFactor = 0.0f;
|
||||||
|
object.LightmapArea = LightmapArea;
|
||||||
|
return object;
|
||||||
|
}
|
||||||
|
|
||||||
MaterialInput GetMaterialInput(PixelInput input)
|
MaterialInput GetMaterialInput(PixelInput input)
|
||||||
{
|
{
|
||||||
MaterialInput output = GetGeometryMaterialInput(input.Geometry);
|
MaterialInput output = GetGeometryMaterialInput(input.Geometry);
|
||||||
|
output.Object = GetObject();
|
||||||
output.TwoSidedSign = WorldDeterminantSign * (input.IsFrontFace ? 1.0 : -1.0);
|
output.TwoSidedSign = WorldDeterminantSign * (input.IsFrontFace ? 1.0 : -1.0);
|
||||||
output.SvPosition = input.Position;
|
output.SvPosition = input.Position;
|
||||||
#if USE_CUSTOM_VERTEX_INTERPOLATORS
|
#if USE_CUSTOM_VERTEX_INTERPOLATORS
|
||||||
@@ -219,6 +237,12 @@ float3 GetObjectSize(MaterialInput input)
|
|||||||
return float3(1, 1, 1);
|
return float3(1, 1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Gets the current object scale (supports instancing)
|
||||||
|
float3 GetObjectScale(MaterialInput input)
|
||||||
|
{
|
||||||
|
return float3(1, 1, 1);
|
||||||
|
}
|
||||||
|
|
||||||
// Get the current object random value
|
// Get the current object random value
|
||||||
float GetPerInstanceRandom(MaterialInput input)
|
float GetPerInstanceRandom(MaterialInput input)
|
||||||
{
|
{
|
||||||
@@ -302,8 +326,6 @@ struct TerrainVertexInput
|
|||||||
|
|
||||||
// Vertex Shader function for terrain rendering
|
// Vertex Shader function for terrain rendering
|
||||||
META_VS(true, FEATURE_LEVEL_ES2)
|
META_VS(true, FEATURE_LEVEL_ES2)
|
||||||
META_VS_IN_ELEMENT(TEXCOORD, 0, R32G32_FLOAT, 0, ALIGN, PER_VERTEX, 0, true)
|
|
||||||
META_VS_IN_ELEMENT(TEXCOORD, 1, R8G8B8A8_UNORM, 0, ALIGN, PER_VERTEX, 0, true)
|
|
||||||
VertexOutput VS(TerrainVertexInput input)
|
VertexOutput VS(TerrainVertexInput input)
|
||||||
{
|
{
|
||||||
VertexOutput output;
|
VertexOutput output;
|
||||||
@@ -313,7 +335,7 @@ VertexOutput VS(TerrainVertexInput input)
|
|||||||
float lodValue = CurrentLOD;
|
float lodValue = CurrentLOD;
|
||||||
float morphAlpha = lodCalculated - CurrentLOD;
|
float morphAlpha = lodCalculated - CurrentLOD;
|
||||||
|
|
||||||
// Sample heightmap
|
// Sample heightmap and splatmaps
|
||||||
float2 heightmapUVs = input.TexCoord * HeightmapUVScaleBias.xy + HeightmapUVScaleBias.zw;
|
float2 heightmapUVs = input.TexCoord * HeightmapUVScaleBias.xy + HeightmapUVScaleBias.zw;
|
||||||
#if USE_SMOOTH_LOD_TRANSITION
|
#if USE_SMOOTH_LOD_TRANSITION
|
||||||
float4 heightmapValueThisLOD = Heightmap.SampleLevel(SamplerPointClamp, heightmapUVs, lodValue);
|
float4 heightmapValueThisLOD = Heightmap.SampleLevel(SamplerPointClamp, heightmapUVs, lodValue);
|
||||||
@@ -321,7 +343,6 @@ VertexOutput VS(TerrainVertexInput input)
|
|||||||
float2 heightmapUVsNextLOD = nextLODPos * HeightmapUVScaleBias.xy + HeightmapUVScaleBias.zw;
|
float2 heightmapUVsNextLOD = nextLODPos * HeightmapUVScaleBias.xy + HeightmapUVScaleBias.zw;
|
||||||
float4 heightmapValueNextLOD = Heightmap.SampleLevel(SamplerPointClamp, heightmapUVsNextLOD, lodValue + 1);
|
float4 heightmapValueNextLOD = Heightmap.SampleLevel(SamplerPointClamp, heightmapUVsNextLOD, lodValue + 1);
|
||||||
float4 heightmapValue = lerp(heightmapValueThisLOD, heightmapValueNextLOD, morphAlpha);
|
float4 heightmapValue = lerp(heightmapValueThisLOD, heightmapValueNextLOD, morphAlpha);
|
||||||
bool isHole = max(heightmapValueThisLOD.b + heightmapValueThisLOD.a, heightmapValueNextLOD.b + heightmapValueNextLOD.a) >= 1.9f;
|
|
||||||
#if USE_TERRAIN_LAYERS
|
#if USE_TERRAIN_LAYERS
|
||||||
float4 splatmapValueThisLOD = Splatmap0.SampleLevel(SamplerPointClamp, heightmapUVs, lodValue);
|
float4 splatmapValueThisLOD = Splatmap0.SampleLevel(SamplerPointClamp, heightmapUVs, lodValue);
|
||||||
float4 splatmapValueNextLOD = Splatmap0.SampleLevel(SamplerPointClamp, heightmapUVsNextLOD, lodValue + 1);
|
float4 splatmapValueNextLOD = Splatmap0.SampleLevel(SamplerPointClamp, heightmapUVsNextLOD, lodValue + 1);
|
||||||
@@ -334,7 +355,6 @@ VertexOutput VS(TerrainVertexInput input)
|
|||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
float4 heightmapValue = Heightmap.SampleLevel(SamplerPointClamp, heightmapUVs, lodValue);
|
float4 heightmapValue = Heightmap.SampleLevel(SamplerPointClamp, heightmapUVs, lodValue);
|
||||||
bool isHole = (heightmapValue.b + heightmapValue.a) >= 1.9f;
|
|
||||||
#if USE_TERRAIN_LAYERS
|
#if USE_TERRAIN_LAYERS
|
||||||
float4 splatmap0Value = Splatmap0.SampleLevel(SamplerPointClamp, heightmapUVs, lodValue);
|
float4 splatmap0Value = Splatmap0.SampleLevel(SamplerPointClamp, heightmapUVs, lodValue);
|
||||||
#if TERRAIN_LAYERS_DATA_SIZE > 1
|
#if TERRAIN_LAYERS_DATA_SIZE > 1
|
||||||
@@ -342,12 +362,11 @@ VertexOutput VS(TerrainVertexInput input)
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
float height = (float)((int)(heightmapValue.x * 255.0) + ((int)(heightmapValue.y * 255) << 8)) / 65535.0;
|
float height = DecodeHeightmapHeight(heightmapValue);
|
||||||
|
|
||||||
// Extract normal and the holes mask
|
// Extract normal and the holes mask
|
||||||
float2 normalTemp = float2(heightmapValue.b, heightmapValue.a) * 2.0f - 1.0f;
|
bool isHole;
|
||||||
float3 normal = float3(normalTemp.x, sqrt(1.0 - saturate(dot(normalTemp, normalTemp))), normalTemp.y);
|
float3 normal = DecodeHeightmapNormal(heightmapValue, isHole);
|
||||||
normal = normalize(normal);
|
|
||||||
output.Geometry.HolesMask = isHole ? 0 : 1;
|
output.Geometry.HolesMask = isHole ? 0 : 1;
|
||||||
if (isHole)
|
if (isHole)
|
||||||
{
|
{
|
||||||
@@ -396,6 +415,7 @@ VertexOutput VS(TerrainVertexInput input)
|
|||||||
// Get material input params if need to evaluate any material property
|
// Get material input params if need to evaluate any material property
|
||||||
#if USE_POSITION_OFFSET || USE_TESSELLATION || USE_CUSTOM_VERTEX_INTERPOLATORS
|
#if USE_POSITION_OFFSET || USE_TESSELLATION || USE_CUSTOM_VERTEX_INTERPOLATORS
|
||||||
MaterialInput materialInput = (MaterialInput)0;
|
MaterialInput materialInput = (MaterialInput)0;
|
||||||
|
materialInput.Object = GetObject();
|
||||||
materialInput.WorldPosition = output.Geometry.WorldPosition;
|
materialInput.WorldPosition = output.Geometry.WorldPosition;
|
||||||
materialInput.TexCoord = output.Geometry.TexCoord;
|
materialInput.TexCoord = output.Geometry.TexCoord;
|
||||||
#if USE_LIGHTMAP
|
#if USE_LIGHTMAP
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
19
Content/Editor/Scripting/ActorTemplate.cpp
Normal file
19
Content/Editor/Scripting/ActorTemplate.cpp
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
%copyright%#include "%filename%.h"
|
||||||
|
|
||||||
|
%class%::%class%(const SpawnParams& params)
|
||||||
|
: Actor(params)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void %class%::OnEnable()
|
||||||
|
{
|
||||||
|
Actor::OnEnable();
|
||||||
|
// Here you can add code that needs to be called when script is enabled (eg. register for events)
|
||||||
|
}
|
||||||
|
|
||||||
|
void %class%::OnDisable()
|
||||||
|
{
|
||||||
|
Actor::OnDisable();
|
||||||
|
// Here you can add code that needs to be called when script is disabled (eg. unregister from events)
|
||||||
|
}
|
||||||
39
Content/Editor/Scripting/ActorTemplate.cs
Normal file
39
Content/Editor/Scripting/ActorTemplate.cs
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
%copyright%using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using FlaxEngine;
|
||||||
|
|
||||||
|
namespace %namespace%;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// %class% Actor.
|
||||||
|
/// </summary>
|
||||||
|
public class %class% : Actor
|
||||||
|
{
|
||||||
|
/// <inheritdoc/>
|
||||||
|
public override void OnBeginPlay()
|
||||||
|
{
|
||||||
|
base.OnBeginPlay();
|
||||||
|
// Here you can add code that needs to be called when Actor added to the game. This is called during edit time as well.
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc/>
|
||||||
|
public override void OnEndPlay()
|
||||||
|
{
|
||||||
|
base.OnEndPlay();
|
||||||
|
// Here you can add code that needs to be called when Actor removed to the game. This is called during edit time as well.
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc/>
|
||||||
|
public override void OnEnable()
|
||||||
|
{
|
||||||
|
base.OnEnable();
|
||||||
|
// Here you can add code that needs to be called when Actor is enabled (eg. register for events). This is called during edit time as well.
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc/>
|
||||||
|
public override void OnDisable()
|
||||||
|
{
|
||||||
|
base.OnDisable();
|
||||||
|
// Here you can add code that needs to be called when Actor is disabled (eg. unregister from events). This is called during edit time as well.
|
||||||
|
}
|
||||||
|
}
|
||||||
13
Content/Editor/Scripting/ActorTemplate.h
Normal file
13
Content/Editor/Scripting/ActorTemplate.h
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
%copyright%#pragma once
|
||||||
|
|
||||||
|
#include "Engine/Level/Actor.h"
|
||||||
|
|
||||||
|
API_CLASS() class %module%%class% : public Actor
|
||||||
|
{
|
||||||
|
API_AUTO_SERIALIZATION();
|
||||||
|
DECLARE_SCENE_OBJECT(%class%);
|
||||||
|
|
||||||
|
// [Actor]
|
||||||
|
void OnEnable() override;
|
||||||
|
void OnDisable() override;
|
||||||
|
};
|
||||||
5
Content/Editor/Scripting/CSharpEmptyTemplate.cs
Normal file
5
Content/Editor/Scripting/CSharpEmptyTemplate.cs
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
%copyright%using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using FlaxEngine;
|
||||||
|
|
||||||
|
namespace %namespace%;
|
||||||
@@ -13,10 +13,10 @@ API_CLASS() class %module%%class% : public ISerializable
|
|||||||
API_AUTO_SERIALIZATION();
|
API_AUTO_SERIALIZATION();
|
||||||
DECLARE_SCRIPTING_TYPE_NO_SPAWN(%class%);
|
DECLARE_SCRIPTING_TYPE_NO_SPAWN(%class%);
|
||||||
public:
|
public:
|
||||||
// Custom float value.
|
// Custom float value.
|
||||||
API_FIELD(Attributes = "Range(0, 20), EditorOrder(0), EditorDisplay(\"Data\")")
|
API_FIELD(Attributes = "Range(0, 20), EditorOrder(0), EditorDisplay(\"Data\")")
|
||||||
float FloatValue = 20.0f;
|
float FloatValue = 20.0f;
|
||||||
// Custom vector data.
|
// Custom vector data.
|
||||||
API_FIELD(Attributes = "EditorOrder(1), EditorDisplay(\"Data\")")
|
API_FIELD(Attributes = "EditorOrder(1), EditorDisplay(\"Data\")")
|
||||||
Vector3 Vector3Value = Vector3(0.1f);
|
Vector3 Vector3Value = Vector3(0.1f);
|
||||||
};
|
};
|
||||||
|
|||||||
13
Content/Editor/Scripting/EmptyClassTemplate.cs
Normal file
13
Content/Editor/Scripting/EmptyClassTemplate.cs
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
%copyright%using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using FlaxEngine;
|
||||||
|
|
||||||
|
namespace %namespace%;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// %class% class.
|
||||||
|
/// </summary>
|
||||||
|
public class %class%
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
13
Content/Editor/Scripting/EmptyInterfaceTemplate.cs
Normal file
13
Content/Editor/Scripting/EmptyInterfaceTemplate.cs
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
%copyright%using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using FlaxEngine;
|
||||||
|
|
||||||
|
namespace %namespace%;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// %class% interface.
|
||||||
|
/// </summary>
|
||||||
|
public interface %class%
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
13
Content/Editor/Scripting/EmptyStructTemplate.cs
Normal file
13
Content/Editor/Scripting/EmptyStructTemplate.cs
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
%copyright%using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using FlaxEngine;
|
||||||
|
|
||||||
|
namespace %namespace%;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// %class% struct.
|
||||||
|
/// </summary>
|
||||||
|
public struct %class%
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
25
Content/Editor/Scripting/GamePluginTemplate.cs
Normal file
25
Content/Editor/Scripting/GamePluginTemplate.cs
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
%copyright%using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using FlaxEngine;
|
||||||
|
|
||||||
|
namespace %namespace%;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// %class% GamePlugin.
|
||||||
|
/// </summary>
|
||||||
|
public class %class% : GamePlugin
|
||||||
|
{
|
||||||
|
/// <inheritdoc/>
|
||||||
|
public override void Initialize()
|
||||||
|
{
|
||||||
|
base.Initialize();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc/>
|
||||||
|
public override void Deinitialize()
|
||||||
|
{
|
||||||
|
base.Deinitialize();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,6 +7,6 @@ META_CB_END
|
|||||||
META_PS(true, FEATURE_LEVEL_ES2)
|
META_PS(true, FEATURE_LEVEL_ES2)
|
||||||
float4 PS_Fullscreen(Quad_VS2PS input) : SV_Target
|
float4 PS_Fullscreen(Quad_VS2PS input) : SV_Target
|
||||||
{
|
{
|
||||||
// Solid color fill from the constant buffer passed from code
|
// Solid color fill from the constant buffer passed from code
|
||||||
return Color;
|
return Color;
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Content/Engine/DefaultRadialMenu.flax
LFS
Normal file
BIN
Content/Engine/DefaultRadialMenu.flax
LFS
Normal file
Binary file not shown.
Binary file not shown.
BIN
Content/Engine/Models/Box.flax
LFS
BIN
Content/Engine/Models/Box.flax
LFS
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user