Compare commits
2284 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 425382f7d2 | |||
| b45f6c1321 | |||
| 56ebbecd3b | |||
| 5c0110769a | |||
| b37ba9279e | |||
| 9e04f0b054 | |||
| cc8afbc220 | |||
| 2d6257a390 | |||
| 0fcd6a194a | |||
| 79471af0c1 | |||
| 73842d9793 | |||
| 600ac568a9 | |||
| 9694446fca | |||
| 735b573705 | |||
| e5d03134bb | |||
| b73463a4b2 | |||
| 0a08d12f69 | |||
| 19f483a68f | |||
| 1d5e3d198d | |||
| e94e100431 | |||
| 198dddd2ce | |||
| 3434731c2a | |||
| 28bf60e62d | |||
| 4a4120864d | |||
| 283f26b95c | |||
| 13acf3c143 | |||
| 84201b346b | |||
| 49389ebb4e | |||
| 9b7e5be50e | |||
| 66862ea1cf | |||
| c6fa20abaa | |||
| 305d3a6496 | |||
| 2a5de178fa | |||
| 631ff14fc1 | |||
| 1e2d02d437 | |||
| fe9722c261 | |||
| 58e1396c15 | |||
| 8e72b1f326 | |||
| 6b10ebdc2c | |||
| c759b5fa24 | |||
| 573e99dd2d | |||
| b9849e2b5c | |||
| 6fecf1d58a | |||
| e860f969be | |||
| c8f57ea82b | |||
| 1414eb9852 | |||
| 497cd19fe5 | |||
| c6e121a777 | |||
| 1229b12d9a | |||
| cd964666e2 | |||
| 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 | |||
| 8080c21760 | |||
| 6e91e26dfe | |||
| 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 | |||
| dcadb11a20 | |||
| 2bc95a7af7 | |||
| 52f95de756 | |||
| 409c404a26 | |||
| d07a615c76 | |||
| 6113af2dc1 | |||
| a367d40913 | |||
| 1fa0159079 | |||
| 6c6938aa41 | |||
| 2a29b8e807 | |||
| 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 | |||
| b7b23dce5f | |||
| 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 | |||
| e0028d5f94 | |||
| 0d8691045b | |||
| bd727ae189 | |||
| 4bfda76666 | |||
| a030978558 | |||
| 2aff3d76ca | |||
| 8312659275 | |||
| 55ce33bc1c | |||
| 1613bdcd06 | |||
| a67dc00fa3 | |||
| 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 | |||
| 97be8ee8cc | |||
| 1d6e8c4b7c | |||
| 1cd2f6a070 | |||
| 35ddfc2455 | |||
| 17d1d87268 | |||
| fd871ce830 | |||
| b4a4a8a591 | |||
| 24e4015425 | |||
| c670887b1a | |||
| d3cd6a461b | |||
| 2625a9d762 | |||
| 4fdd9a242b | |||
| a6e8e6f749 | |||
| 03eabbcf63 | |||
| 13f94dcf11 | |||
| 3b44062eb0 | |||
| 1457637707 | |||
| d28567111f | |||
| 1c7f06e570 | |||
| 63cc0fef2e | |||
| 57084b3d6c | |||
| fa23619f08 | |||
| 1f2456fc67 | |||
| 0b71e906a6 | |||
| 2e59c35a44 | |||
| 6f2bd0e932 | |||
| 82bf4238df | |||
| 9d2dc91920 | |||
| 3ae30a59b3 | |||
| 6a883bc7c6 | |||
| 17de6388ca | |||
| e028d263f1 | |||
| 6962ed6730 | |||
| b66d50ae1b | |||
| a742ce1d32 | |||
| 675ce71935 | |||
| 833f844d59 | |||
| af08dc1c69 | |||
| 3593f835cd | |||
| df086f3b3b | |||
| 07628d2ec7 | |||
| aac3dbfe09 | |||
| 185f24ce49 | |||
| 77e29109ee | |||
| 8d89b9efb0 | |||
| b2fee31a13 | |||
| fc7628e2ee | |||
| 2e3e4959d6 | |||
| f22105c2c3 | |||
| 533902d185 | |||
| 6b31d51e31 | |||
| f0d143ecaa | |||
| 196aa020fd | |||
| ffe5105602 | |||
| 4acaa62a07 | |||
| 68653fa91f | |||
| dc0aa61a14 | |||
| ee790ff3a9 | |||
| a2a3926aee | |||
| 9a70344c1f | |||
| 44006dd533 | |||
| f6aabf2d14 | |||
| dc1f15f18d | |||
| 7d7808af8f | |||
| 5029584a9f | |||
| f353d3f114 | |||
| 667e8bc293 | |||
| 2edb9cc4d8 | |||
| 7018666a8c | |||
| f04926ad94 | |||
| e7508538e0 | |||
| 50f5f0acd9 | |||
| 33202a74b0 | |||
| 3745979b81 | |||
| db15f6f08a | |||
| e1a2f51d5a | |||
| a8e1fd7a4a | |||
| d46ef6ac92 | |||
| 36d21b27c7 | |||
| b1636c27e7 | |||
| 5d32fc6c5e | |||
| 065dc474c0 | |||
| 1fb7b24aad | |||
| f0b72aa025 | |||
| 058077736b | |||
| 571ba6773d | |||
| 40652a0ebc | |||
| 481a6de821 | |||
| 66b828ae92 | |||
| b91f51fb46 | |||
| b02f011627 | |||
| e51d2dda00 | |||
| a11fa46ee2 | |||
| 47f3ecbde2 | |||
| deb2319190 | |||
| ea04c746fd | |||
| 97454fc82e | |||
| 4a6afdb108 | |||
| 4b8970f674 | |||
| f43cd97907 | |||
| 65e852600a | |||
| fedd990c13 | |||
| c0329abe40 | |||
| d8850a56a8 | |||
| e171bb06ec | |||
| 3825e07adc | |||
| db8adf7d96 | |||
| e77ae12b9b | |||
| bf4e4aeaf6 | |||
| 2107b069db | |||
| ea2005dacb | |||
| d5cded8aaa | |||
| 430b22d5d7 | |||
| 5b2af6b3d5 | |||
| f604503566 | |||
| 388a0f4196 | |||
| 754ed56119 | |||
| dca8e391fa | |||
| 9d830eb1e2 | |||
| 7e3f84f95e | |||
| cddee38d71 | |||
| e030d0461b | |||
| 4978c8e0d9 | |||
| dc7b7e6e10 | |||
| 1e3eb11b94 | |||
| b15b231b85 | |||
| 262992571a | |||
| 352bf3f9a7 | |||
| 9683868767 | |||
| 40284fbbf8 | |||
| 0c86a900da | |||
| c1e3eaeab1 | |||
| 3c487dff47 | |||
| 2260d79e26 | |||
| 863794d3c0 | |||
| 0d8c9f6626 | |||
| 8a45dda98c | |||
| 3209320547 | |||
| d1db06a9bb | |||
| 1c1d2fd96f | |||
| 2e5ad8c48a | |||
| 9a6f866956 | |||
| c59bce3b58 | |||
| 1185a9c06c | |||
| 026b69c544 | |||
| df7ece7655 | |||
| 7e8f20bd9b | |||
| 20aef27439 | |||
| 12344cf725 | |||
| ebb2704726 | |||
| 5f9d0140c7 | |||
| 02a7f74993 | |||
| 452e12db45 | |||
| ac46c89904 | |||
| 88acc772b3 | |||
| fbec80c801 | |||
| 1ef487a5cc | |||
| 1e5861de25 | |||
| 07733a4efb | |||
| fee15846ba | |||
| 7040da9a44 | |||
| a8a621df3b | |||
| 18660140b0 | |||
| 58cc53b44d | |||
| d8bb831dd9 | |||
| 0d770e3909 | |||
| 3641886ebf | |||
| 611dd7bad1 | |||
| 7db20e0411 | |||
| e835b25637 | |||
| c5520f2777 | |||
| 4414398f09 | |||
| 5e5497ff18 | |||
| 0cdce9dba2 | |||
| aaadf3065d | |||
| b134a5567d | |||
| 740a31b7a9 | |||
| 75e25bf1f7 | |||
| 279c80a9ae | |||
| 4dbfc01715 | |||
| 45706be3a6 | |||
| 723423a3fa | |||
| 42de657629 | |||
| 16f1e8a3e1 | |||
| 2c1b2d2b7c | |||
| 19cc33b200 | |||
| 3641e156ee | |||
| 4413af5d20 | |||
| 97078cda7e | |||
| 10c47b8c2a | |||
| 3ebf73ec22 | |||
| ebe05d4a51 | |||
| 8c2e7bccaa | |||
| 3e7ac04a88 | |||
| 9bc9d95a22 | |||
| b6e36c0014 | |||
| b6692b4747 | |||
| 62c2e3b8f0 | |||
| d4774a2bfe | |||
| cdeb9a3b15 | |||
| 705856da24 | |||
| ab9cc16529 | |||
| 203f03a597 | |||
| 4fbe210730 | |||
| 6eb431d12c | |||
| 890569ea3b | |||
| d8a1de64d1 | |||
| b92fbcb3bc | |||
| 515ee96a31 | |||
| f19977a956 | |||
| 96f628429c | |||
| 3ecbbcd0a0 | |||
| a01495cde1 | |||
| b7dc0dd004 | |||
| 32b15f90ab | |||
| e795a8b037 | |||
| e551eae30d | |||
| 5f02b4173a | |||
| 568a69081d | |||
| 4dcdd8b5f7 | |||
| 1072b90c5b | |||
| 6aacea99ab | |||
| 5e086809ae | |||
| 361e9a2929 | |||
| b25ee23b14 | |||
| 41ffc16b66 | |||
| 560cf65121 | |||
| 93e26afa05 | |||
| 7653fba381 | |||
| 71fe280464 | |||
| 0845866c4d | |||
| a3b5f4b789 | |||
| 4b6b24f4c5 | |||
| d8079367fd | |||
| 83b9e6e32a | |||
| f8f1c02338 | |||
| 285710360c | |||
| 695c212cf0 | |||
| 05278ca418 | |||
| e31ce787aa | |||
| d379b4c046 | |||
| 261faad93e | |||
| 16554fe742 | |||
| 9f983cff49 | |||
| e53ab10145 | |||
| 692a61c948 | |||
| 60e8d73079 | |||
| c83b74c85d | |||
| 171fc276fb | |||
| 446c1edafc | |||
| 03b498546d | |||
| 794b007170 | |||
| 26c2b33fc0 | |||
| 1a87e5a2ca | |||
| daf3671233 | |||
| 5fd808af19 | |||
| ce67c3a98d | |||
| cd2f96e3c0 | |||
| 9ad4997691 | |||
| 37a02e3a7e | |||
| ed732a0189 | |||
| 00492a33a3 | |||
| 56d3b4f012 | |||
| 85b9d93e91 | |||
| 8584d51d9f | |||
| 8714163ee4 | |||
| 525c3a0f29 | |||
| 5acdff02cc | |||
| 0728637ce1 | |||
| 9c3c4fbf54 | |||
| d2508ad902 | |||
| 8a0cd7c30f | |||
| d729eb2b24 | |||
| cf23892bd4 | |||
| 25f3cef8c3 | |||
| 36ad821734 | |||
| b66b85d5f4 | |||
| 778b967c61 | |||
| 3f6dd92a68 | |||
| 80d7ac2581 | |||
| af91ce7f3f | |||
| 5f7293d0a1 | |||
| 5cdf1c5764 | |||
| e701cdbee5 | |||
| dc45f46ff4 | |||
| 634b05fc16 | |||
| db28afb591 | |||
| 84c1f6b5de | |||
| 53689063b9 | |||
| c59e872ef2 | |||
| 2b95f11b1f | |||
| fbfe77e386 | |||
| 60ccac31b5 | |||
| d42e315e55 | |||
| 9c2c02c1cf | |||
| 8144db8e13 | |||
| 4ac6a292f7 | |||
| 3e475398e7 | |||
| 81d4501868 | |||
| 1bc7455e09 | |||
| 1e77f3aa5a | |||
| e47e91c223 | |||
| 734f1ee4aa | |||
| 6d38590ad4 | |||
| 76becec094 | |||
| e7a6f39a72 | |||
| 98c5cc2d0f | |||
| c8ad3e3a51 | |||
| 5b25aeda32 | |||
| e5d700692f | |||
| 495378c94d | |||
| bf9701e132 | |||
| 14881494b8 | |||
| 00f2a0b825 | |||
| c914e33462 | |||
| 35f33b6746 | |||
| e137d31839 | |||
| 7342629a86 | |||
| 5f860db6a5 | |||
| 6233718b06 | |||
| 2e643347ec | |||
| fb1685fe81 | |||
| 62444315de | |||
| a532ea7b42 | |||
| 803249f126 | |||
| 4e65b76b8c | |||
| 890b2da108 | |||
| eac1d19a09 | |||
| c4949de28f | |||
| 019230f6d9 | |||
| fe6c254a24 | |||
| 8ef38178e6 | |||
| 873ac347d4 | |||
| 48400ff5ce | |||
| 340ef194d3 | |||
| ad8bec40bb | |||
| b4547ec4d2 | |||
| 89f7e442f7 | |||
| 1ddf9ab0e1 | |||
| 8af8d50de1 | |||
| e3093e0e09 | |||
| 02d5609f66 | |||
| e7bef5e880 | |||
| ff7c986fb1 | |||
| 137de0a8b2 | |||
| 708fba5136 | |||
| 85f3fdd438 | |||
| 55be82a2c4 | |||
| 0b19d8639b | |||
| 92b35ab3e7 | |||
| 7d92779e99 | |||
| b2f9da4113 | |||
| a83b589e12 | |||
| 7578e1dbe3 | |||
| ae79f3ef0b | |||
| f164626c41 | |||
| 354972fd9c | |||
| 082733cb97 | |||
| 97bd90d4be | |||
| 4c8528dcae | |||
| 3efd1e4e84 | |||
| 0cc6669cbd | |||
| e788be46af | |||
| afd56974ef | |||
| 84e04de23d | |||
| 8bd409e95d | |||
| 3d0d41ebff | |||
| 61323f8526 | |||
| 18d641e2aa | |||
| 017def29d4 | |||
| bfa3507cc6 | |||
| 137a60ccef | |||
| 58d4bad400 | |||
| f6f1f0023a | |||
| f6313b4427 | |||
| 13a04c2941 | |||
| bc9cdf5cdb | |||
| 07c0b4567e | |||
| e25448e10e | |||
| d12630d815 | |||
| fb0d70d555 | |||
| c5e1abb08c | |||
| 294b4c4006 | |||
| e1944bce96 | |||
| 369c19bd5d | |||
| 55383c3fa4 | |||
| 926a81c84b | |||
| d331e6b848 | |||
| ce07edd1ec | |||
| 0b0115aa10 | |||
| 3696501050 | |||
| 08e88587e6 | |||
| 1017472957 | |||
| f8a845f813 | |||
| 551337f7a0 | |||
| 6929a91312 | |||
| 069445b94e | |||
| 09f5ac0ed6 | |||
| 9e962dcb89 | |||
| 5525e895cf | |||
| 21d5e63b93 | |||
| b8a287c4d5 | |||
| 24e56a825e | |||
| f60446c37b | |||
| ad7bdae5fa | |||
| 35e34997c9 | |||
| 6c2ed1ace7 | |||
| 1c0071ad85 | |||
| d8ca8f5985 | |||
| ac36297e27 | |||
| f7470af42d | |||
| 5c356ec22a | |||
| 06a35da0a8 | |||
| 0b801225e1 | |||
| 55af307c43 | |||
| 4ab572426d | |||
| 01d91bf102 | |||
| 2dfb1058b2 | |||
| cdbb2cc813 | |||
| 0e00f1e0eb | |||
| d13621e631 | |||
| 5f96a74ce2 | |||
| 07522823e5 | |||
| 981fe9482c | |||
| c08ca33a9a | |||
| 2c0d5e45f1 | |||
| 1f35f9536d | |||
| da9d8887b2 | |||
| 68acb33367 | |||
| 9392515b17 | |||
| 9a27ba3cdc | |||
| b821bb7a54 | |||
| 51504d0d92 | |||
| e5e675f089 | |||
| c366a9793c | |||
| 5633d1a18a | |||
| 96f76fb14f | |||
| 6709fcd95d | |||
| 495de38c48 | |||
| fd756f7bae | |||
| 4cd788cedc | |||
| 93d82f761a | |||
| 67c0c9bd9a | |||
| 33b8cca54b | |||
| 31939164c8 | |||
| 4b9f50add0 | |||
| 876c383af0 | |||
| 9251b80b78 | |||
| 7fef21218e | |||
| 1a9f21396a | |||
| 5660749f80 | |||
| 8398b35b0d | |||
| a3c088bb05 | |||
| 8f63f686c4 | |||
| 6ccec2f5ff | |||
| 3939444e05 | |||
| 70b2e4aa5a | |||
| 9e11d45c1c | |||
| d6f0062198 | |||
| 6b35c0a161 | |||
| 292694d89c | |||
| 57568d9cc3 | |||
| 4f1e8add76 | |||
| 5082fa3e51 | |||
| fc37cb3986 | |||
| 9e54827cb3 | |||
| bfbabbc395 | |||
| 127e8b077d | |||
| 35d1d97840 | |||
| 911251cb20 | |||
| fa8620a25b | |||
| 77850f91b8 | |||
| 82238c105e | |||
| eb11301a03 | |||
| 155b4a3ba9 | |||
| 71dad84908 | |||
| 388b64a46d | |||
| cf3145273f | |||
| 1a68a52611 | |||
| 41637232ea | |||
| 211da6d8e7 | |||
| be252b9293 | |||
| 26689439d5 | |||
| 29cd6e2dda | |||
| 4b9bfc5bb4 | |||
| cf44d6580d | |||
| 2b824ce22a | |||
| 24299dc5cc | |||
| eb8db60ead | |||
| 2d71a7a45d | |||
| 5e60d9d267 | |||
| 8c722d6bba | |||
| 12e2b8156f | |||
| 34f35ebaac | |||
| 3b502086f8 | |||
| ed21876bb8 | |||
| e606ccec57 | |||
| 91298fee19 | |||
| 795527576b | |||
| 19eea57bac | |||
| ae189db87e | |||
| 9c553a619a | |||
| 19405e71ed | |||
| dab5ad3f08 | |||
| d77586a771 | |||
| 8e6f526bd9 | |||
| 46abc136cf | |||
| 16aef0f705 | |||
| b847c2d056 | |||
| 700ed25d3d | |||
| c60244878d | |||
| c6aa18c47c | |||
| 8d149b94f1 | |||
| f81e89d7d4 | |||
| 7aa4ae1782 | |||
| dd7739f95e | |||
| 7652feabfa | |||
| 7ec490443e | |||
| c6bb8f1784 | |||
| a549733811 | |||
| 13bf15198b | |||
| 8a7ddae76b | |||
| 3ba6867cd2 | |||
| 7545e49284 | |||
| 2b82da9511 | |||
| 574e0ab1f8 | |||
| 6d792f1f74 | |||
| f4033578c3 | |||
| 66b68bff27 | |||
| fc29d687b5 | |||
| 94520d30ad | |||
| e12919da98 | |||
| 83e8f8cb94 | |||
| b4d3eeb771 | |||
| a4e693b6a6 | |||
| 806fee7011 | |||
| 9d0b659520 | |||
| d719c381ea | |||
| 8f2bc17a94 | |||
| 4ee15f95bb | |||
| 0a9f746abb | |||
| 1bbb2727b8 | |||
| 4a5ded0849 | |||
| eac553a992 | |||
| b00b5bed00 | |||
| 92c109c003 | |||
| fc029b018e | |||
| d390938fb6 | |||
| 584c073df1 | |||
| fef2e09915 | |||
| f4a352ec8d | |||
| 41cff47ca3 | |||
| aca7913c93 | |||
| cee6aad0ef | |||
| 31c633d25c | |||
| a0e234ade1 | |||
| 9fe874cc5b | |||
| 816fb9da6f | |||
| 56a33e4c98 | |||
| d3b0da3fdd | |||
| 006a41b0da | |||
| 8de2249ed8 | |||
| 9518d77da9 | |||
| 6d98bc5ef8 | |||
| ed3ac0af8e | |||
| c561d684eb | |||
| 07e25bb24c | |||
| 2e305da286 | |||
| 28da656ed1 | |||
| f0c2e65b5c | |||
| d5f4254a73 | |||
| b506295b7b | |||
| 557d39aea4 | |||
| 8964b8907c | |||
| d4e0023925 | |||
| 5ec737ef80 | |||
| e20ddc83d8 | |||
| e4583907e2 | |||
| 0604a0393d | |||
| 21edb43bb1 | |||
| bbbf690640 | |||
| 32501101b1 | |||
| efd5561713 | |||
| 73cb792989 | |||
| b4fe3a44aa | |||
| 44ce444932 | |||
| 285fef97a2 | |||
| 25c1fcbf51 | |||
| 8e54a79470 | |||
| ab81cf17ad | |||
| 88bb8fae3a | |||
| 63d49adc19 | |||
| 33bd6a56ce | |||
| 294c25ae27 | |||
| 02d27b631b | |||
| dcafee530e | |||
| 01daa2d66a | |||
| 1d68662592 | |||
| 79f623a39e | |||
| b2f0dc2cc5 | |||
| b9b7c4433e | |||
| d7d9da5279 | |||
| d1a061a37e | |||
| bbe08be462 | |||
| 5fdf1789ce | |||
| 04761c69f1 | |||
| 84d3103278 | |||
| 2175f46a10 | |||
| b6879e7688 | |||
| 5fbbf4ae72 | |||
| a19ae042f8 | |||
| 760ef3b8ed | |||
| 1ff462461e | |||
| 23d1b3746d | |||
| 2100f56ecc | |||
| b25e932972 | |||
| 2873f1c4f9 | |||
| 161773a8be | |||
| 4df56cb506 | |||
| 508c07c5ea | |||
| dce0274a1c | |||
| 119a1e2b03 | |||
| 22a3f9565f | |||
| 53bd576ade | |||
| 901b043909 | |||
| e68c736607 | |||
| 511eb25451 | |||
| aabc9f51bb | |||
| fc4163524c | |||
| 735d65e14d | |||
| f1bc161ad2 | |||
| f1b133bd60 | |||
| 7428ecfe63 | |||
| 6905382310 | |||
| 470c108ed9 | |||
| 2d5d001a44 | |||
| 2f87b87b45 | |||
| 0a0bb997e4 | |||
| 14902dc29e | |||
| 7f935ab57a | |||
| f4d236d353 | |||
| 253f7cfce8 | |||
| 859c420d76 | |||
| e2dd9832ba | |||
| 0ee5ef8cf5 | |||
| f1fe83ca81 | |||
| 996a2cb09e | |||
| 607859c196 | |||
| 8898c20ad1 | |||
| 2df3d0f747 | |||
| 124832b076 | |||
| 1dfc8b0a47 | |||
| f771b0cd59 | |||
| 8bcf4fdaf0 | |||
| de4ee1372f | |||
| 84e7c096de | |||
| 696437d6d0 | |||
| e282717a0a | |||
| ee4fc7c201 | |||
| eb12c630a7 | |||
| 01d123b099 | |||
| a72d20e3ca | |||
| 8351a75676 | |||
| 387f84d9d7 | |||
| 50e75e4e7b | |||
| 318b00c617 | |||
| f20805e567 | |||
| fa606ce5f6 | |||
| d7dbc0fbdc | |||
| f3e6b74043 | |||
| 0a7662a37b | |||
| 8ee2bf8d76 | |||
| 97cb8d1b61 | |||
| 149a6a29f8 | |||
| 9a21cfd092 | |||
| e5cfd872b2 | |||
| 8fa8eeb094 | |||
| 9e747eb98a | |||
| 8e6bd07322 | |||
| e255778c07 | |||
| 1cb88bdc63 | |||
| de86ec0ecc | |||
| 8c1ff1e57a | |||
| 621281ab3a | |||
| 0e5bd425b2 | |||
| 008ed3fb03 | |||
| 85c7357b25 | |||
| b0270d016e | |||
| 9c9aabcae3 | |||
| e446ba69e5 | |||
| 3b39693c9e | |||
| 04da732da9 | |||
| 358220b0b5 | |||
| 10180de9c6 | |||
| e12446e951 | |||
| 528c51cf6a | |||
| d0dfff1287 | |||
| 45c331ba58 | |||
| db65b8037d | |||
| 8aaf7417cc | |||
| 4ad5eb26d6 | |||
| 504a997f12 | |||
| 668b03a409 | |||
| eedc348032 | |||
| c1400748b0 | |||
| 0c0c4e6136 | |||
| ec0849c908 | |||
| d1f0a52967 | |||
| b9a503c3bd | |||
| 832151223b | |||
| e985d10b62 | |||
| b41dc40c78 | |||
| f8d9817911 | |||
| 0035c347f4 | |||
| eba2dc295e | |||
| 643fc78dd4 | |||
| 91ba8458ee | |||
| 056deb58ad | |||
| dd9733fdf1 | |||
| 5cada42842 | |||
| 4ebfe5a38e | |||
| 2fd47f91e2 | |||
| e8e52da51c | |||
| 47d266a713 | |||
| 2de890ca6a | |||
| 0d1dbd8845 | |||
| cb0969893d | |||
| 4c082ef17f | |||
| ed30cd0238 | |||
| 7e10baf5ea | |||
| d2b8d14ca7 | |||
| 324b2e7f66 | |||
| ed3d2c2748 | |||
| 52642d4d6c | |||
| a061afd840 | |||
| a5a16c3192 | |||
| 71627f1bbd | |||
| 4b24b79e90 | |||
| 2cce7522de | |||
| ab07bab958 | |||
| dad3d185f1 | |||
| f344c68f48 | |||
| 9335925b48 | |||
| 0d6f85ba6c | |||
| f5be8e0e77 | |||
| a2b8312fba | |||
| 027d29c6cd | |||
| 45aa0e1b65 | |||
| 4df8a12666 | |||
| 7e43cb09e0 | |||
| a6d7400422 | |||
| 47313eacc8 | |||
| 2a1bd5cbe8 | |||
| d97772383e | |||
| 636b2c91cc | |||
| d76b5234c5 | |||
| dfbde5f8eb | |||
| b8044dff76 | |||
| 45241d63bd | |||
| 912437c456 | |||
| e165c87e5a | |||
| fcfde1e964 | |||
| 5e218c8da9 | |||
| f0f065f983 | |||
| cf07659757 | |||
| 7a21c37603 | |||
| c81ef9b26f | |||
| c305bed829 | |||
| 37dfdad7e2 | |||
| 6a11d4d10a | |||
| 0cf39c9f8d | |||
| 368dac5e4b | |||
| cc157b172d | |||
| 5de5e576e5 | |||
| 09532acf29 | |||
| 01c3dd8d09 | |||
| 9e269b8e58 | |||
| b931020e5c | |||
| c3faabaa0f | |||
| 12f7370caf | |||
| c140cc4e7c | |||
| 85f2910718 | |||
| 42b4443e14 | |||
| f04f1cc90e | |||
| f0f8da3c09 | |||
| 9a5db2ff8e | |||
| 0b2fcff4ea | |||
| c7a449fe1c | |||
| 5fc7c6e190 | |||
| b5e23f0096 | |||
| 7538296775 | |||
| fe7cc62728 | |||
| 43f344ee13 | |||
| f730657518 | |||
| 75b7eaf345 | |||
| 355835439a | |||
| defe7454ce | |||
| f1c0aea10f | |||
| db7dfdb0b1 | |||
| 42363e411e | |||
| ebcc864b06 | |||
| 3958a4740f | |||
| 31437e6dde | |||
| 6f4e599cc2 | |||
| 6548ca1148 | |||
| 07e93e261e | |||
| f044569b67 | |||
| 36beac5154 | |||
| f36dc0c5af | |||
| 203f5d06d1 | |||
| c6515da8c9 | |||
| 04f1c9a59b | |||
| 46441f6a03 | |||
| 196a4ffe49 | |||
| 4a19657e75 | |||
| 9c5c9cb76f | |||
| c646007882 | |||
| 080202cf95 | |||
| 87c66b0168 | |||
| da1b2f0c07 | |||
| d08843900e | |||
| f9ca69d8a9 | |||
| 082768d08c | |||
| eed780a0b0 | |||
| cfb8350c65 | |||
| a38d1ad7cc | |||
| e75902e900 | |||
| d1f40d1c47 | |||
| 2042525e92 | |||
| 8441726da7 | |||
| c67d352065 | |||
| 25ce571637 | |||
| 17361d6bc1 | |||
| 9f279d4b5e | |||
| 6cd9895427 | |||
| a9259b20a4 | |||
| 169024ae47 | |||
| 13a3035094 | |||
| 7c9218840d | |||
| 876cb4f0c3 | |||
| 5fc768bbbd | |||
| 9da9a122b8 | |||
| 367569b7b1 | |||
| 6954a488ea | |||
| 0c762bb12f | |||
| c039980436 | |||
| 27f4451c0c | |||
| 83476b6c7a | |||
| c0e3b27880 | |||
| d6a51dc06c | |||
| 983ae8dcb7 | |||
| 6272caffa5 | |||
| 5a50ec592f | |||
| 873be6ac17 | |||
| 465c14c04a | |||
| d33ff4306f | |||
| 6528e14f37 | |||
| 0776529a57 | |||
| 74203e63c8 | |||
| 0d8464dbd9 | |||
| 40632a4a88 | |||
| 6d757946c5 | |||
| f1055aa0e3 | |||
| 479a917c59 | |||
| 060440195d | |||
| feebe4f59a | |||
| 2b63a8ae4c | |||
| b8d848bfc9 | |||
| e6d90f7371 | |||
| ee38227174 | |||
| b148303b7d | |||
| 9b7b9f4fdb | |||
| 84927c79fc | |||
| c196e704bb | |||
| b2621ff799 | |||
| 756a991c2c | |||
| 2be0765158 | |||
| cc2b2e5e17 | |||
| 84efd05e7e | |||
| b2d0afd4ef | |||
| 741682b5e7 | |||
| bc922c03e0 | |||
| f9448c3b42 | |||
| cff047998c | |||
| 647e25ea74 | |||
| 0793ebc132 | |||
| cde9fe8f9c | |||
| 532a23b4e0 | |||
| 5b8846c8f0 | |||
| d4a483e656 | |||
| 1d4bb7a4f4 | |||
| b69d54a5ca | |||
| 969d0390ce | |||
| 5d61e45ecd | |||
| dec9fbd74b | |||
| 7d4004a42a | |||
| 8488a8d387 | |||
| 8aa402bcb9 | |||
| 7f95dab511 | |||
| 54658cbb3b | |||
| 245cf63b0b | |||
| 7a802a2eee | |||
| 22600a2c29 | |||
| 7fd6c43f84 | |||
| fa58b171ec | |||
| 320024399d | |||
| 9bad65e359 | |||
| 1f8314b663 | |||
| 2a03206778 | |||
| 49beb2c7ba | |||
| e7b0375a0e | |||
| 9e5f866b75 | |||
| 3dc34e2d9c | |||
| 5bad7c79c4 | |||
| af8e1e527f | |||
| bb00d29098 | |||
| dcda7d96bb | |||
| a0741dd9de | |||
| ef41ad6074 | |||
| 20dbe15651 | |||
| 2625144945 | |||
| 1b33a2aa0d | |||
| 10bed94357 | |||
| d28b0ab2a6 | |||
| 9e38a01acc | |||
| 69b7a10c1f | |||
| ecf593e7a4 | |||
| 2a70d0c011 | |||
| 2853af20f6 | |||
| c60058758b | |||
| 74d348706c | |||
| 18fc6ebd39 | |||
| 9874b753cb | |||
| ee19bca7e4 | |||
| 39e7be6322 | |||
| b85f471fcb | |||
| f306d34a6e | |||
| 045f49d2d6 | |||
| d5e9ad2147 | |||
| ce658acb22 | |||
| 0d3b81b8ca | |||
| a0e127b9cc | |||
| 19ddcad16f | |||
| e5160f2885 | |||
| afe9b15899 | |||
| 34583d7a55 | |||
| 7f95748351 | |||
| 37fe11e19f | |||
| 8e3123a129 | |||
| b4186052df | |||
| 6d6b678b29 | |||
| 40e75465a3 | |||
| 3bdc70a4c6 | |||
| 64e3db3a98 | |||
| e6389511ff | |||
| 2c5095e0a1 | |||
| 503bcdcf27 | |||
| 0eb4e0205e | |||
| 2935b8ba10 | |||
| 82c8e39dfd | |||
| ec6fb459bb | |||
| 9a70f698b9 | |||
| 5b3e7f0bf8 | |||
| 52da42e62e | |||
| 1da803c5fb | |||
| 697db443ac | |||
| 76cf935583 | |||
| cae9ddfa36 | |||
| f1d6d71f6c | |||
| 361cb914f3 | |||
| 8922b5cd79 | |||
| d126f5bc55 | |||
| 2c76785bf0 | |||
| 1094abce5a | |||
| b7cc4c768f | |||
| d807e9bfe0 | |||
| fa0e2fe0be | |||
| e54cbbd5a3 | |||
| e98eed9f62 | |||
| a82ea17864 | |||
| 6289b9d15a | |||
| 1e061b77af | |||
| afb5edb824 | |||
| 9fd7a231ca | |||
| 0b7c187630 | |||
| 8c2a156e1f | |||
| 7f420c0131 | |||
| eca17c7799 | |||
| 14a4c92aa8 | |||
| a24a9d2094 | |||
| af0439f3ce | |||
| 6d58883454 | |||
| 0075184a99 | |||
| b6337c748c | |||
| 7f4d2d8db6 | |||
| 254ef30fea | |||
| 78b13ace5c | |||
| 8ec4030e1a | |||
| 60fd4702a6 | |||
| d9ca3e5b57 | |||
| 37da55896c | |||
| 976d0992df | |||
| 6fb6769574 | |||
| a3b3fd2efe | |||
| aeb741e032 | |||
| 6fb5c43e2a | |||
| b1087c162a | |||
| b4f5623537 | |||
| 6d847c12df | |||
| f145809765 | |||
| 9c917b2f4d | |||
| ba70f351ef | |||
| 284c971ec0 | |||
| 7e948de2db | |||
| a848fd027e | |||
| 28e64da4b4 | |||
| 7ddcf198bb | |||
| 70298e8ae8 | |||
| 15bbd13c72 | |||
| 7f5dd78349 | |||
| 2ba230609c | |||
| da7840cb6c | |||
| a231a6cac6 | |||
| 05d6767dd3 | |||
| ada90fa846 | |||
| 6f78a9775e | |||
| 57e306ea42 | |||
| 33d2dfc5c9 | |||
| 3de7b62dfc | |||
| 408c8fbdf0 | |||
| af91c13b5c | |||
| e04c98020c | |||
| 35832e5b1c | |||
| 8e331e4d13 | |||
| 7d07ed20ea | |||
| 1b9984c728 | |||
| c7baded2db | |||
| df33de7176 | |||
| 85afde43af | |||
| c49c875165 | |||
| a102bad87e | |||
| 42b20b4e76 | |||
| 5158de4ac6 | |||
| a5d0916f93 | |||
| 6178cb1bf4 | |||
| 329bab1102 | |||
| 31adfd2c9c | |||
| 8bd84e0616 | |||
| ab51ca6e70 | |||
| 8273656793 | |||
| 045943ef27 | |||
| e0cb94ec74 | |||
| a8913d89ac | |||
| 07de7a26dd | |||
| 8bcc526dd6 | |||
| 967569c3e2 | |||
| 5cf20b8eee | |||
| 6a2d7e9444 | |||
| 4839ef5ddc | |||
| 8bff9556de | |||
| 57d4f0ff7d | |||
| 826a330f63 | |||
| bf6cb90a78 | |||
| d016305690 | |||
| 9077e0cf22 | |||
| 4b6ada7289 | |||
| 1e797c244f | |||
| 343d7b4973 | |||
| 8841a603f6 | |||
| f10840efb4 | |||
| e851d18227 | |||
| 21c4667f8c | |||
| 8174e8ab77 | |||
| b275ffc146 | |||
| b4c23c969a | |||
| 78c27a8046 | |||
| ef930375b4 | |||
| 245eaef2b9 | |||
| 7d633865ac | |||
| 4a8c94e9d4 | |||
| 4d9ef32abc | |||
| 4a42aa8c44 | |||
| 55066cd738 | |||
| 35becc674a | |||
| f2d1b75d1f | |||
| 3c6ed303fe | |||
| fe711405ac | |||
| 4d8b8e5311 | |||
| 87addf8197 | |||
| 8c1f727d9b | |||
| 435341abd3 | |||
| 0d5d11e184 | |||
| 3133c6fb1b | |||
| 7eb0600549 | |||
| 25b69449bc | |||
| 101e33868b | |||
| c41d1aaec5 | |||
| bd34540086 | |||
| b2f9b9e14d | |||
| 53a2ebbd17 | |||
| e4c8639697 | |||
| 4e2f0cd22c | |||
| 4497b2ca7d | |||
| ac090d690e | |||
| e4df1fc756 | |||
| c6c53baff2 | |||
| 5958b2f4ea | |||
| 4726552d8b | |||
| 57dee19f75 | |||
| 3c19262574 | |||
| ed6220005f | |||
| 799fde1a26 | |||
| 3761eb5a1e | |||
| 8eb68a905e | |||
| 8c45659b2a | |||
| f65ded4501 | |||
| 52d4dff587 | |||
| 13cc45c3d7 | |||
| bcce52ca22 | |||
| eb30344e77 | |||
| d8f110793b | |||
| 2f11f5f5ab | |||
| 34ab33259b | |||
| 1746db60e6 | |||
| 3e0496122c | |||
| 74f5d14ec9 | |||
| 4fb2d3f7f3 | |||
| 1f6b63291d | |||
| 7d36cdb67d | |||
| 360c75355c | |||
| 6ab1663a14 | |||
| 23b71e7d3e | |||
| 74baffd76c | |||
| 666e6d880b | |||
| 0569b6dac8 | |||
| 2f019d4264 | |||
| 29eb3954c5 | |||
| 95f5e31e48 | |||
| 7b63c7016c | |||
| 3c5035d3e9 | |||
| 3d139a241a | |||
| 623f478b44 | |||
| cdbe59a3fb | |||
| d3840bb1f3 | |||
| 3365fb5afc | |||
| 41bbce56f6 | |||
| a3bc394e4e | |||
| b9f4d4120c | |||
| 47a25c7828 | |||
| 44f0b5a1de | |||
| 03d629f0e1 | |||
| f16406df8a | |||
| 06ad316f94 | |||
| 76f5712c79 | |||
| 37d4b0f863 | |||
| f5acba7d43 | |||
| 6c6e8be20e | |||
| aa4e1222d7 | |||
| e4dc6d7295 | |||
| 3824b19c8b | |||
| 9de408e4e8 | |||
| 2ac8480df4 | |||
| 44e55cc8b6 | |||
| c4c3a3a5e8 | |||
| de55ad90b7 | |||
| 1bc6842831 | |||
| 1bb68f2c0c | |||
| 640f380237 | |||
| 6af6edb4fe | |||
| 6cad1e3309 | |||
| ee6a311406 | |||
| 80a30f504a | |||
| 3904756e26 | |||
| 0556c30ac5 | |||
| 5df1d3ddfd | |||
| 96ba3832d6 | |||
| 14d14dd6f3 | |||
| 2bcdb5b05b | |||
| 253c4c27ab | |||
| 41d513e5d2 | |||
| 1c23f0f5b4 | |||
| 5559d4f84d | |||
| 67a385a431 | |||
| 5afb00e2c6 | |||
| 0fea7aad92 | |||
| b88233a65d | |||
| 95735035f3 | |||
| e3364faf8e | |||
| e55cdd91d5 | |||
| 8cc7c5d3d9 | |||
| 0acf352d40 | |||
| 390621cb10 | |||
| ff64fdb503 | |||
| ec02058712 | |||
| 4fb35579b5 | |||
| 39aebc6c85 | |||
| f287ed6c30 | |||
| cf5f501ab7 | |||
| 9d1b287cd7 | |||
| fff8a1e8a6 | |||
| 6fb411cee3 | |||
| 040c9c20ac | |||
| 86c2406d52 | |||
| 9c60da278f | |||
| 0f5a177be2 | |||
| cfec5bb801 | |||
| c9d7498bed | |||
| 46e26e63ef | |||
| 32614daebd | |||
| 6af9df79b2 | |||
| 4f67d14261 | |||
| 0a12724974 | |||
| 075da66344 | |||
| e273433d19 | |||
| bfab9d68db | |||
| 2bec653b81 | |||
| 7b601723c0 | |||
| 074dc2c58d | |||
| 1b12ccd180 | |||
| 8cf6134f8b | |||
| 8ba1878657 | |||
| d9f3fe186d | |||
| 032793d202 | |||
| 4e45ac6ef4 | |||
| 809b9e3a7a | |||
| 081ef1fd81 | |||
| 29e1d9855a | |||
| 2696bc3704 | |||
| 4451f5feb2 | |||
| 67653cc0e8 | |||
| b4d95a68f1 | |||
| 0fe1acdabc | |||
| a7d56c29b5 | |||
| d83d510002 | |||
| b202573920 | |||
| 83bf68a64f | |||
| 02d68bc057 | |||
| 5571430e1b | |||
| e38da7eb95 | |||
| 976faee8a3 | |||
| bd6ce4ae25 | |||
| 0b3b32195a | |||
| 394a3696af | |||
| f71f214f36 | |||
| d107947ba9 | |||
| f11ea02550 | |||
| 78ffcc8ae5 | |||
| 3bfa37019e | |||
| c4c55bfb61 | |||
| 2607e0e187 |
@@ -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: 7.0.x
|
dotnet-version: 8.0.x
|
||||||
- name: Setup .NET Workload
|
- name: Setup .NET Workload
|
||||||
run: |
|
run: |
|
||||||
dotnet workload install android
|
dotnet workload install android
|
||||||
@@ -33,4 +33,4 @@ jobs:
|
|||||||
git lfs pull
|
git lfs pull
|
||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
.\Development\Scripts\Windows\CallBuildTool.bat -build -log -printSDKs -dotnet=7 -arch=ARM64 -platform=Android -configuration=Release -buildtargets=FlaxGame
|
.\Development\Scripts\Windows\CallBuildTool.bat -build -log -printSDKs -dotnet=8 -arch=ARM64 -platform=Android -configuration=Release -buildtargets=FlaxGame
|
||||||
|
|||||||
@@ -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: 7.0.x
|
dotnet-version: 8.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=7 -arch=ARM64 -platform=iOS -configuration=Release -buildtargets=FlaxGame
|
./Development/Scripts/Mac/CallBuildTool.sh -build -log -dotnet=8 -arch=ARM64 -platform=iOS -configuration=Release -buildtargets=FlaxGame
|
||||||
|
|||||||
@@ -10,22 +10,19 @@ 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
|
||||||
- name: Setup .NET
|
- name: Setup .NET
|
||||||
uses: actions/setup-dotnet@v3
|
uses: actions/setup-dotnet@v3
|
||||||
with:
|
with:
|
||||||
dotnet-version: 7.0.x
|
dotnet-version: 8.0.x
|
||||||
- name: Print .NET info
|
- name: Print .NET info
|
||||||
run: |
|
run: |
|
||||||
dotnet --info
|
dotnet --info
|
||||||
@@ -36,12 +33,12 @@ jobs:
|
|||||||
git lfs pull
|
git lfs pull
|
||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
./Development/Scripts/Linux/CallBuildTool.sh -build -log -printSDKs -dotnet=7 -arch=x64 -platform=Linux -configuration=Development -buildtargets=FlaxEditor
|
./Development/Scripts/Linux/CallBuildTool.sh -build -log -printSDKs -dotnet=8 -arch=x64 -platform=Linux -configuration=Development -buildtargets=FlaxEditor
|
||||||
|
|
||||||
# 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
|
||||||
@@ -53,7 +50,7 @@ jobs:
|
|||||||
- name: Setup .NET
|
- name: Setup .NET
|
||||||
uses: actions/setup-dotnet@v3
|
uses: actions/setup-dotnet@v3
|
||||||
with:
|
with:
|
||||||
dotnet-version: 7.0.x
|
dotnet-version: 8.0.x
|
||||||
- name: Print .NET info
|
- name: Print .NET info
|
||||||
run: |
|
run: |
|
||||||
dotnet --info
|
dotnet --info
|
||||||
@@ -64,4 +61,4 @@ jobs:
|
|||||||
git lfs pull
|
git lfs pull
|
||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
./Development/Scripts/Linux/CallBuildTool.sh -build -log -printSDKs -dotnet=7 -arch=x64 -platform=Linux -configuration=Release -buildtargets=FlaxGame
|
./Development/Scripts/Linux/CallBuildTool.sh -build -log -printSDKs -dotnet=8 -arch=x64 -platform=Linux -configuration=Release -buildtargets=FlaxGame
|
||||||
|
|||||||
@@ -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
|
|
||||||
@@ -9,7 +9,7 @@ jobs:
|
|||||||
|
|
||||||
# Editor
|
# Editor
|
||||||
editor-mac:
|
editor-mac:
|
||||||
name: Editor (Mac, Development x64)
|
name: Editor (Mac, Development ARM64)
|
||||||
runs-on: "macos-latest"
|
runs-on: "macos-latest"
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repo
|
- name: Checkout repo
|
||||||
@@ -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: 7.0.x
|
dotnet-version: 8.0.x
|
||||||
- name: Print .NET info
|
- name: Print .NET info
|
||||||
run: |
|
run: |
|
||||||
dotnet --info
|
dotnet --info
|
||||||
@@ -30,11 +30,11 @@ jobs:
|
|||||||
git lfs pull
|
git lfs pull
|
||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
./Development/Scripts/Mac/CallBuildTool.sh -build -log -printSDKs -dotnet=7 -arch=x64 -platform=Mac -configuration=Development -buildtargets=FlaxEditor
|
./Development/Scripts/Mac/CallBuildTool.sh -build -log -printSDKs -dotnet=8 -arch=ARM64 -platform=Mac -configuration=Development -buildtargets=FlaxEditor
|
||||||
|
|
||||||
# Game
|
# Game
|
||||||
game-mac:
|
game-mac:
|
||||||
name: Game (Mac, Release x64)
|
name: Game (Mac, Release ARM64)
|
||||||
runs-on: "macos-latest"
|
runs-on: "macos-latest"
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repo
|
- name: Checkout repo
|
||||||
@@ -44,7 +44,7 @@ jobs:
|
|||||||
- name: Setup .NET
|
- name: Setup .NET
|
||||||
uses: actions/setup-dotnet@v3
|
uses: actions/setup-dotnet@v3
|
||||||
with:
|
with:
|
||||||
dotnet-version: 7.0.x
|
dotnet-version: 8.0.x
|
||||||
- name: Print .NET info
|
- name: Print .NET info
|
||||||
run: |
|
run: |
|
||||||
dotnet --info
|
dotnet --info
|
||||||
@@ -55,4 +55,4 @@ jobs:
|
|||||||
git lfs pull
|
git lfs pull
|
||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
./Development/Scripts/Mac/CallBuildTool.sh -build -log -printSDKs -dotnet=7 -arch=x64 -platform=Mac -configuration=Release -buildtargets=FlaxGame
|
./Development/Scripts/Mac/CallBuildTool.sh -build -log -printSDKs -dotnet=8 -arch=ARM64 -platform=Mac -configuration=Release -buildtargets=FlaxGame
|
||||||
|
|||||||
@@ -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: 7.0.x
|
dotnet-version: 8.0.x
|
||||||
- name: Print .NET info
|
- name: Print .NET info
|
||||||
run: |
|
run: |
|
||||||
dotnet --info
|
dotnet --info
|
||||||
@@ -30,7 +30,7 @@ jobs:
|
|||||||
git lfs pull
|
git lfs pull
|
||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
.\Development\Scripts\Windows\CallBuildTool.bat -build -log -printSDKs -dotnet=7 -arch=x64 -platform=Windows -configuration=Development -buildtargets=FlaxEditor
|
.\Development\Scripts\Windows\CallBuildTool.bat -build -log -printSDKs -dotnet=8 -arch=x64 -platform=Windows -configuration=Development -buildtargets=FlaxEditor
|
||||||
|
|
||||||
# Game
|
# Game
|
||||||
game-windows:
|
game-windows:
|
||||||
@@ -44,7 +44,7 @@ jobs:
|
|||||||
- name: Setup .NET
|
- name: Setup .NET
|
||||||
uses: actions/setup-dotnet@v3
|
uses: actions/setup-dotnet@v3
|
||||||
with:
|
with:
|
||||||
dotnet-version: 7.0.x
|
dotnet-version: 8.0.x
|
||||||
- name: Print .NET info
|
- name: Print .NET info
|
||||||
run: |
|
run: |
|
||||||
dotnet --info
|
dotnet --info
|
||||||
@@ -55,4 +55,4 @@ jobs:
|
|||||||
git lfs pull
|
git lfs pull
|
||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
.\Development\Scripts\Windows\CallBuildTool.bat -build -log -printSDKs -dotnet=7 -arch=x64 -platform=Windows -configuration=Release -buildtargets=FlaxGame
|
.\Development\Scripts\Windows\CallBuildTool.bat -build -log -printSDKs -dotnet=8 -arch=x64 -platform=Windows -configuration=Release -buildtargets=FlaxGame
|
||||||
|
|||||||
+10
-16
@@ -26,7 +26,7 @@ jobs:
|
|||||||
- name: Setup .NET
|
- name: Setup .NET
|
||||||
uses: actions/setup-dotnet@v3
|
uses: actions/setup-dotnet@v3
|
||||||
with:
|
with:
|
||||||
dotnet-version: 7.0.x
|
dotnet-version: 8.0.x
|
||||||
- name: Print .NET info
|
- name: Print .NET info
|
||||||
run: |
|
run: |
|
||||||
dotnet --info
|
dotnet --info
|
||||||
@@ -59,7 +59,7 @@ jobs:
|
|||||||
- name: Setup .NET
|
- name: Setup .NET
|
||||||
uses: actions/setup-dotnet@v3
|
uses: actions/setup-dotnet@v3
|
||||||
with:
|
with:
|
||||||
dotnet-version: 7.0.x
|
dotnet-version: 8.0.x
|
||||||
- name: Print .NET info
|
- name: Print .NET info
|
||||||
run: |
|
run: |
|
||||||
dotnet --info
|
dotnet --info
|
||||||
@@ -76,7 +76,7 @@ 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
|
||||||
@@ -86,16 +86,13 @@ 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: Setup Vulkan
|
- name: Setup Vulkan
|
||||||
uses: ./.github/actions/vulkan
|
uses: ./.github/actions/vulkan
|
||||||
- name: Setup .NET
|
- name: Setup .NET
|
||||||
uses: actions/setup-dotnet@v3
|
uses: actions/setup-dotnet@v3
|
||||||
with:
|
with:
|
||||||
dotnet-version: 7.0.x
|
dotnet-version: 8.0.x
|
||||||
- name: Print .NET info
|
- name: Print .NET info
|
||||||
run: |
|
run: |
|
||||||
dotnet --info
|
dotnet --info
|
||||||
@@ -110,7 +107,7 @@ jobs:
|
|||||||
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
|
||||||
@@ -120,16 +117,13 @@ 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: Setup Vulkan
|
- name: Setup Vulkan
|
||||||
uses: ./.github/actions/vulkan
|
uses: ./.github/actions/vulkan
|
||||||
- name: Setup .NET
|
- name: Setup .NET
|
||||||
uses: actions/setup-dotnet@v3
|
uses: actions/setup-dotnet@v3
|
||||||
with:
|
with:
|
||||||
dotnet-version: 7.0.x
|
dotnet-version: 8.0.x
|
||||||
- name: Print .NET info
|
- name: Print .NET info
|
||||||
run: |
|
run: |
|
||||||
dotnet --info
|
dotnet --info
|
||||||
@@ -159,14 +153,14 @@ jobs:
|
|||||||
- name: Setup .NET
|
- name: Setup .NET
|
||||||
uses: actions/setup-dotnet@v3
|
uses: actions/setup-dotnet@v3
|
||||||
with:
|
with:
|
||||||
dotnet-version: 7.0.x
|
dotnet-version: 8.0.x
|
||||||
- name: Print .NET info
|
- name: Print .NET info
|
||||||
run: |
|
run: |
|
||||||
dotnet --info
|
dotnet --info
|
||||||
dotnet workload --info
|
dotnet workload --info
|
||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
./PackageEditor.command -arch=x64 -platform=Mac -deployOutput=Output
|
./PackageEditor.command -arch=ARM64 -platform=Mac -deployOutput=Output
|
||||||
- name: Upload
|
- name: Upload
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
@@ -187,14 +181,14 @@ jobs:
|
|||||||
- name: Setup .NET
|
- name: Setup .NET
|
||||||
uses: actions/setup-dotnet@v3
|
uses: actions/setup-dotnet@v3
|
||||||
with:
|
with:
|
||||||
dotnet-version: 7.0.x
|
dotnet-version: 8.0.x
|
||||||
- name: Print .NET info
|
- name: Print .NET info
|
||||||
run: |
|
run: |
|
||||||
dotnet --info
|
dotnet --info
|
||||||
dotnet workload --info
|
dotnet workload --info
|
||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
./PackagePlatforms.command -arch=x64 -platform=Mac -deployOutput=Output
|
./PackagePlatforms.command -arch=ARM64 -platform=Mac -deployOutput=Output
|
||||||
- name: Upload
|
- name: Upload
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
|
|||||||
+12
-15
@@ -10,14 +10,14 @@ 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
|
||||||
- name: Setup .NET
|
- name: Setup .NET
|
||||||
uses: actions/setup-dotnet@v3
|
uses: actions/setup-dotnet@v3
|
||||||
with:
|
with:
|
||||||
dotnet-version: 7.0.x
|
dotnet-version: 8.0.x
|
||||||
- name: Print .NET info
|
- name: Print .NET info
|
||||||
run: |
|
run: |
|
||||||
dotnet --info
|
dotnet --info
|
||||||
@@ -28,27 +28,24 @@ 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: |
|
||||||
./GenerateProjectFiles.sh -vs2022 -log -verbose -printSDKs -dotnet=7
|
./GenerateProjectFiles.sh -vs2022 -log -verbose -printSDKs -dotnet=8
|
||||||
./Development/Scripts/Linux/CallBuildTool.sh -build -log -dotnet=7 -arch=x64 -platform=Linux -configuration=Development -buildtargets=FlaxTestsTarget
|
./Development/Scripts/Linux/CallBuildTool.sh -build -log -dotnet=8 -arch=x64 -platform=Linux -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
|
||||||
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
|
||||||
run: |
|
run: |
|
||||||
${GITHUB_WORKSPACE}/Binaries/Editor/Linux/Development/FlaxTests
|
${GITHUB_WORKSPACE}/Binaries/Editor/Linux/Development/FlaxTests
|
||||||
dotnet test -f net7.0 Binaries/Tests/Flax.Build.Tests.dll
|
dotnet test -f net8.0 Binaries/Tests/Flax.Build.Tests.dll
|
||||||
cp Binaries/Editor/Linux/Development/FlaxEngine.CSharp.dll Binaries/Tests
|
cp Binaries/Editor/Linux/Development/FlaxEngine.CSharp.dll Binaries/Tests
|
||||||
cp Binaries/Editor/Linux/Development/FlaxEngine.CSharp.runtimeconfig.json Binaries/Tests
|
cp Binaries/Editor/Linux/Development/FlaxEngine.CSharp.runtimeconfig.json Binaries/Tests
|
||||||
cp Binaries/Editor/Linux/Development/Newtonsoft.Json.dll Binaries/Tests
|
cp Binaries/Editor/Linux/Development/Newtonsoft.Json.dll Binaries/Tests
|
||||||
dotnet test -f net7.0 Binaries/Tests/FlaxEngine.CSharp.dll
|
dotnet test -f net8.0 Binaries/Tests/FlaxEngine.CSharp.dll
|
||||||
- name: Test UseLargeWorlds
|
- name: Test UseLargeWorlds
|
||||||
run: |
|
run: |
|
||||||
./Development/Scripts/Linux/CallBuildTool.sh -build -log -dotnet=7 -arch=x64 -platform=Linux -configuration=Development -buildtargets=FlaxTestsTarget -UseLargeWorlds=true
|
./Development/Scripts/Linux/CallBuildTool.sh -build -log -dotnet=8 -arch=x64 -platform=Linux -configuration=Development -buildtargets=FlaxTestsTarget -UseLargeWorlds=true
|
||||||
${GITHUB_WORKSPACE}/Binaries/Editor/Linux/Development/FlaxTests
|
${GITHUB_WORKSPACE}/Binaries/Editor/Linux/Development/FlaxTests
|
||||||
|
|
||||||
# Tests on Windows
|
# Tests on Windows
|
||||||
@@ -61,7 +58,7 @@ jobs:
|
|||||||
- name: Setup .NET
|
- name: Setup .NET
|
||||||
uses: actions/setup-dotnet@v3
|
uses: actions/setup-dotnet@v3
|
||||||
with:
|
with:
|
||||||
dotnet-version: 7.0.x
|
dotnet-version: 8.0.x
|
||||||
- name: Print .NET info
|
- name: Print .NET info
|
||||||
run: |
|
run: |
|
||||||
dotnet --info
|
dotnet --info
|
||||||
@@ -72,14 +69,14 @@ jobs:
|
|||||||
git lfs pull
|
git lfs pull
|
||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
.\GenerateProjectFiles.bat -vs2022 -log -verbose -printSDKs -dotnet=7
|
.\GenerateProjectFiles.bat -vs2022 -log -verbose -printSDKs -dotnet=8
|
||||||
.\Development\Scripts\Windows\CallBuildTool.bat -build -log -dotnet=7 -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
|
||||||
run: |
|
run: |
|
||||||
.\Binaries\Editor\Win64\Development\FlaxTests.exe
|
.\Binaries\Editor\Win64\Development\FlaxTests.exe
|
||||||
dotnet test -f net7.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
|
||||||
xcopy /y Binaries\Editor\Win64\Development\Newtonsoft.Json.dll Binaries\Tests
|
xcopy /y Binaries\Editor\Win64\Development\Newtonsoft.Json.dll Binaries\Tests
|
||||||
dotnet test -f net7.0 Binaries\Tests\FlaxEngine.CSharp.dll
|
dotnet test -f net8.0 Binaries\Tests\FlaxEngine.CSharp.dll
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ Source/*.Gen.*
|
|||||||
Source/*.csproj
|
Source/*.csproj
|
||||||
/Package_*/
|
/Package_*/
|
||||||
!Source/Engine/Debug
|
!Source/Engine/Debug
|
||||||
/Source/Platforms/Editor/Linux/Mono/etc/mono/registry
|
|
||||||
PackageEditor_Cert.command
|
PackageEditor_Cert.command
|
||||||
PackageEditor_Cert.bat
|
PackageEditor_Cert.bat
|
||||||
PackagePlatforms_Cert.bat
|
PackagePlatforms_Cert.bat
|
||||||
|
|||||||
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.
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved.
|
// Copyright (c) 2012-2024 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-2023 Wojciech Figat. All rights reserved.
|
// Copyright (c) 2012-2024 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-2023 Wojciech Figat. All rights reserved.
|
// Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
|
||||||
|
|
||||||
@0// Forward Shading: Defines
|
@0// Forward Shading: Defines
|
||||||
#define MAX_LOCAL_LIGHTS 4
|
#define MAX_LOCAL_LIGHTS 4
|
||||||
@@ -16,7 +16,6 @@
|
|||||||
#include "./Flax/ExponentialHeightFog.hlsl"
|
#include "./Flax/ExponentialHeightFog.hlsl"
|
||||||
@2// Forward Shading: Constants
|
@2// Forward Shading: Constants
|
||||||
LightData DirectionalLight;
|
LightData DirectionalLight;
|
||||||
LightShadowData DirectionalLightShadow;
|
|
||||||
LightData SkyLight;
|
LightData SkyLight;
|
||||||
ProbeData EnvironmentProbe;
|
ProbeData EnvironmentProbe;
|
||||||
ExponentialHeightFogData ExponentialHeightFog;
|
ExponentialHeightFogData ExponentialHeightFog;
|
||||||
@@ -26,9 +25,9 @@ LightData LocalLights[MAX_LOCAL_LIGHTS];
|
|||||||
@3// Forward Shading: Resources
|
@3// Forward Shading: Resources
|
||||||
TextureCube EnvProbe : register(t__SRV__);
|
TextureCube EnvProbe : register(t__SRV__);
|
||||||
TextureCube SkyLightTexture : register(t__SRV__);
|
TextureCube SkyLightTexture : register(t__SRV__);
|
||||||
Texture2DArray DirectionalLightShadowMap : register(t__SRV__);
|
Buffer<float4> ShadowsBuffer : register(t__SRV__);
|
||||||
|
Texture2D<float> ShadowMap : register(t__SRV__);
|
||||||
@4// Forward Shading: Utilities
|
@4// Forward Shading: Utilities
|
||||||
DECLARE_LIGHTSHADOWDATA_ACCESS(DirectionalLightShadow);
|
|
||||||
@5// Forward Shading: Shaders
|
@5// Forward Shading: Shaders
|
||||||
|
|
||||||
// Pixel Shader function for Forward Pass
|
// Pixel Shader function for Forward Pass
|
||||||
@@ -39,14 +38,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
|
||||||
@@ -80,11 +77,8 @@ void PS_Forward(
|
|||||||
|
|
||||||
// Calculate lighting from a single directional light
|
// Calculate lighting from a single directional light
|
||||||
float4 shadowMask = 1.0f;
|
float4 shadowMask = 1.0f;
|
||||||
if (DirectionalLight.CastShadows > 0)
|
ShadowSample shadow = SampleDirectionalLightShadow(DirectionalLight, ShadowsBuffer, ShadowMap, gBuffer);
|
||||||
{
|
shadowMask = GetShadowMask(shadow);
|
||||||
LightShadowData directionalLightShadowData = GetDirectionalLightShadowData();
|
|
||||||
shadowMask.r = SampleShadow(DirectionalLight, directionalLightShadowData, DirectionalLightShadowMap, gBuffer, shadowMask.g);
|
|
||||||
}
|
|
||||||
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
|
||||||
@@ -125,6 +119,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;
|
||||||
@@ -133,6 +141,8 @@ void PS_Forward(
|
|||||||
// Add lighting (apply ambient occlusion)
|
// Add lighting (apply ambient occlusion)
|
||||||
output.rgb += light.rgb * gBuffer.AO;
|
output.rgb += light.rgb * gBuffer.AO;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#if USE_FOG
|
#if USE_FOG
|
||||||
// Calculate exponential height fog
|
// Calculate exponential height fog
|
||||||
float4 fog = GetExponentialHeightFog(ExponentialHeightFog, materialInput.WorldPosition, ViewPos, 0);
|
float4 fog = GetExponentialHeightFog(ExponentialHeightFog, materialInput.WorldPosition, ViewPos, 0);
|
||||||
@@ -148,7 +158,5 @@ void PS_Forward(
|
|||||||
output = float4(lerp(float3(1, 1, 1), output.rgb, fog.aaa * fog.aaa), output.a);
|
output = float4(lerp(float3(1, 1, 1), output.rgb, fog.aaa * fog.aaa), output.a);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved.
|
// Copyright (c) 2012-2024 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-2023 Wojciech Figat. All rights reserved.
|
// Copyright (c) 2012-2024 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-2023 Wojciech Figat. All rights reserved.
|
// Copyright (c) 2012-2024 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) 2012-2024 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-2023 Wojciech Figat. All rights reserved.
|
// Copyright (c) 2012-2024 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
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ struct RibbonInput
|
|||||||
|
|
||||||
// Primary constant buffer (with additional material parameters)
|
// Primary constant buffer (with additional material parameters)
|
||||||
META_CB_BEGIN(0, Data)
|
META_CB_BEGIN(0, Data)
|
||||||
float4x4 WorldMatrix;
|
float4x3 WorldMatrix;
|
||||||
uint SortedIndicesOffset;
|
uint SortedIndicesOffset;
|
||||||
float PerInstanceRandom;
|
float PerInstanceRandom;
|
||||||
int ParticleStride;
|
int ParticleStride;
|
||||||
@@ -45,7 +45,7 @@ int RibbonWidthOffset;
|
|||||||
int RibbonTwistOffset;
|
int RibbonTwistOffset;
|
||||||
int RibbonFacingVectorOffset;
|
int RibbonFacingVectorOffset;
|
||||||
uint RibbonSegmentCount;
|
uint RibbonSegmentCount;
|
||||||
float4x4 WorldMatrixInverseTransposed;
|
float4x3 WorldMatrixInverseTransposed;
|
||||||
@1META_CB_END
|
@1META_CB_END
|
||||||
|
|
||||||
// Particles attributes buffer
|
// Particles attributes buffer
|
||||||
@@ -138,7 +138,7 @@ MaterialInput GetMaterialInput(PixelInput input)
|
|||||||
#if USE_INSTANCING
|
#if USE_INSTANCING
|
||||||
#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))
|
#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))
|
||||||
#else
|
#else
|
||||||
#define GetInstanceTransform(input) WorldMatrix;
|
#define GetInstanceTransform(input) ToMatrix4x4(WorldMatrix);
|
||||||
#endif
|
#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)
|
||||||
@@ -264,12 +264,12 @@ float4 GetParticleVec4(uint particleIndex, int offset)
|
|||||||
|
|
||||||
float3 TransformParticlePosition(float3 input)
|
float3 TransformParticlePosition(float3 input)
|
||||||
{
|
{
|
||||||
return mul(float4(input, 1.0f), WorldMatrix).xyz;
|
return mul(float4(input, 1.0f), ToMatrix4x4(WorldMatrix)).xyz;
|
||||||
}
|
}
|
||||||
|
|
||||||
float3 TransformParticleVector(float3 input)
|
float3 TransformParticleVector(float3 input)
|
||||||
{
|
{
|
||||||
return mul(float4(input, 0.0f), WorldMatrixInverseTransposed).xyz;
|
return mul(float4(input, 0.0f), ToMatrix4x4(WorldMatrixInverseTransposed)).xyz;
|
||||||
}
|
}
|
||||||
|
|
||||||
@8
|
@8
|
||||||
@@ -333,7 +333,7 @@ VertexOutput VS_Sprite(SpriteInput input, uint particleIndex : SV_InstanceID)
|
|||||||
float2 spriteSize = GetParticleVec2(particleIndex, SpriteSizeOffset);
|
float2 spriteSize = GetParticleVec2(particleIndex, SpriteSizeOffset);
|
||||||
int spriteFacingMode = SpriteFacingModeOffset != -1 ? GetParticleInt(particleIndex, SpriteFacingModeOffset) : -1;
|
int spriteFacingMode = SpriteFacingModeOffset != -1 ? GetParticleInt(particleIndex, SpriteFacingModeOffset) : -1;
|
||||||
|
|
||||||
float4x4 world = WorldMatrix;
|
float4x4 world = ToMatrix4x4(WorldMatrix);
|
||||||
float3x3 eulerMatrix = EulerMatrix(radians(particleRotation));
|
float3x3 eulerMatrix = EulerMatrix(radians(particleRotation));
|
||||||
float3x3 viewRot = transpose((float3x3)ViewMatrix);
|
float3x3 viewRot = transpose((float3x3)ViewMatrix);
|
||||||
float3 position = mul(float4(particlePosition, 1), world).xyz;
|
float3 position = mul(float4(particlePosition, 1), world).xyz;
|
||||||
@@ -463,11 +463,12 @@ VertexOutput VS_Model(ModelInput input, uint particleIndex : SV_InstanceID)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Read particle data
|
// Read particle data
|
||||||
|
float4x4 worldMatrix = ToMatrix4x4(WorldMatrix);
|
||||||
float3 particlePosition = GetParticleVec3(particleIndex, PositionOffset);
|
float3 particlePosition = GetParticleVec3(particleIndex, PositionOffset);
|
||||||
float3 particleScale = GetParticleVec3(particleIndex, ScaleOffset);
|
float3 particleScale = GetParticleVec3(particleIndex, ScaleOffset);
|
||||||
float3 particleRotation = GetParticleVec3(particleIndex, RotationOffset);
|
float3 particleRotation = GetParticleVec3(particleIndex, RotationOffset);
|
||||||
int modelFacingMode = ModelFacingModeOffset != -1 ? GetParticleInt(particleIndex, ModelFacingModeOffset) : -1;
|
int modelFacingMode = ModelFacingModeOffset != -1 ? GetParticleInt(particleIndex, ModelFacingModeOffset) : -1;
|
||||||
float3 position = mul(float4(particlePosition, 1), WorldMatrix).xyz;
|
float3 position = mul(float4(particlePosition, 1), worldMatrix).xyz;
|
||||||
|
|
||||||
// Compute final vertex position in the world
|
// Compute final vertex position in the world
|
||||||
float3x3 eulerMatrix = EulerMatrix(radians(particleRotation));
|
float3x3 eulerMatrix = EulerMatrix(radians(particleRotation));
|
||||||
@@ -506,7 +507,7 @@ VertexOutput VS_Model(ModelInput input, uint particleIndex : SV_InstanceID)
|
|||||||
world = mul(world, scaleMatrix);
|
world = mul(world, scaleMatrix);
|
||||||
}
|
}
|
||||||
world = transpose(world);
|
world = transpose(world);
|
||||||
world = mul(world, WorldMatrix);
|
world = mul(world, worldMatrix);
|
||||||
|
|
||||||
// Calculate the vertex position in world space
|
// Calculate the vertex position in world space
|
||||||
output.WorldPosition = mul(float4(input.Position, 1), world).xyz;
|
output.WorldPosition = mul(float4(input.Position, 1), world).xyz;
|
||||||
@@ -520,12 +521,12 @@ VertexOutput VS_Model(ModelInput input, uint particleIndex : SV_InstanceID)
|
|||||||
#if USE_VERTEX_COLOR
|
#if USE_VERTEX_COLOR
|
||||||
output.VertexColor = input.Color;
|
output.VertexColor = input.Color;
|
||||||
#endif
|
#endif
|
||||||
output.InstanceOrigin = WorldMatrix[3].xyz;
|
output.InstanceOrigin = worldMatrix[3].xyz;
|
||||||
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 = CalcTangentToLocal(input);
|
half3x3 tangentToLocal = CalcTangentToLocal(input);
|
||||||
half3x3 tangentToWorld = CalcTangentToWorld(WorldMatrix, tangentToLocal);
|
half3x3 tangentToWorld = CalcTangentToWorld(worldMatrix, tangentToLocal);
|
||||||
output.TBN = tangentToWorld;
|
output.TBN = tangentToWorld;
|
||||||
|
|
||||||
// Get material input params if need to evaluate any material property
|
// Get material input params if need to evaluate any material property
|
||||||
@@ -625,12 +626,13 @@ VertexOutput VS_Ribbon(RibbonInput input, uint vertexIndex : SV_VertexID)
|
|||||||
#if USE_VERTEX_COLOR
|
#if USE_VERTEX_COLOR
|
||||||
output.VertexColor = 1;
|
output.VertexColor = 1;
|
||||||
#endif
|
#endif
|
||||||
output.InstanceOrigin = WorldMatrix[3].xyz;
|
float4x4 world = ToMatrix4x4(WorldMatrix);
|
||||||
|
output.InstanceOrigin = world[3].xyz;
|
||||||
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 = float3x3(tangentRight, tangentUp, cross(tangentRight, tangentUp));
|
||||||
half3x3 tangentToWorld = CalcTangentToWorld(WorldMatrix, tangentToLocal);
|
half3x3 tangentToWorld = CalcTangentToWorld(world, tangentToLocal);
|
||||||
output.TBN = tangentToWorld;
|
output.TBN = tangentToWorld;
|
||||||
|
|
||||||
// Get material input params if need to evaluate any material property
|
// Get material input params if need to evaluate any material property
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#define MATERIAL 1
|
#define MATERIAL 1
|
||||||
#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,17 +11,19 @@
|
|||||||
@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)
|
||||||
float4x4 WorldMatrix;
|
|
||||||
float4x4 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
|
||||||
{
|
{
|
||||||
@@ -32,12 +35,8 @@ struct GeometryData
|
|||||||
#endif
|
#endif
|
||||||
float3 WorldNormal : TEXCOORD3;
|
float3 WorldNormal : TEXCOORD3;
|
||||||
float4 WorldTangent : TEXCOORD4;
|
float4 WorldTangent : TEXCOORD4;
|
||||||
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;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Interpolants passed from the vertex shader
|
// Interpolants passed from the vertex shader
|
||||||
@@ -80,11 +79,8 @@ 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
|
||||||
@@ -103,11 +99,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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -143,11 +135,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 +144,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 +153,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 = 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 +197,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 +205,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 +213,26 @@ 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 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,19 +291,22 @@ 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), 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);
|
||||||
@@ -338,22 +316,15 @@ VertexOutput VS(ModelInput input)
|
|||||||
#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 = input.LightmapUV;
|
||||||
#endif
|
#endif
|
||||||
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 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,10 +332,11 @@ 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
|
||||||
|
|
||||||
@@ -392,33 +364,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 = 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];
|
||||||
@@ -430,7 +396,9 @@ float3x4 GetPrevBoneMatrix(int index)
|
|||||||
float3 SkinPrevPosition(ModelInput_Skinned input)
|
float3 SkinPrevPosition(ModelInput_Skinned input)
|
||||||
{
|
{
|
||||||
float4 position = float4(input.Position.xyz, 1);
|
float4 position = float4(input.Position.xyz, 1);
|
||||||
float3x4 boneMatrix = input.BlendWeights.x * GetPrevBoneMatrix(input.BlendIndices.x);
|
float weightsSum = input.BlendWeights.x + input.BlendWeights.y + input.BlendWeights.z + input.BlendWeights.w;
|
||||||
|
float mainWeight = input.BlendWeights.x + (1.0f - weightsSum); // Re-normalize to account for 16-bit weights encoding erros
|
||||||
|
float3x4 boneMatrix = mainWeight * GetPrevBoneMatrix(input.BlendIndices.x);
|
||||||
boneMatrix += input.BlendWeights.y * GetPrevBoneMatrix(input.BlendIndices.y);
|
boneMatrix += input.BlendWeights.y * GetPrevBoneMatrix(input.BlendIndices.y);
|
||||||
boneMatrix += input.BlendWeights.z * GetPrevBoneMatrix(input.BlendIndices.z);
|
boneMatrix += input.BlendWeights.z * GetPrevBoneMatrix(input.BlendIndices.z);
|
||||||
boneMatrix += input.BlendWeights.w * GetPrevBoneMatrix(input.BlendIndices.w);
|
boneMatrix += input.BlendWeights.w * GetPrevBoneMatrix(input.BlendIndices.w);
|
||||||
@@ -439,12 +407,6 @@ float3 SkinPrevPosition(ModelInput_Skinned input)
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Cached skinning data to avoid multiple calculation
|
|
||||||
struct SkinningData
|
|
||||||
{
|
|
||||||
float3x4 BlendMatrix;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Calculates the transposed transform matrix for the given bone index
|
// Calculates the transposed transform matrix for the given bone index
|
||||||
float3x4 GetBoneMatrix(int index)
|
float3x4 GetBoneMatrix(int index)
|
||||||
{
|
{
|
||||||
@@ -457,7 +419,9 @@ float3x4 GetBoneMatrix(int index)
|
|||||||
// Calculates the transposed transform matrix for the given vertex (uses blending)
|
// Calculates the transposed transform matrix for the given vertex (uses blending)
|
||||||
float3x4 GetBoneMatrix(ModelInput_Skinned input)
|
float3x4 GetBoneMatrix(ModelInput_Skinned input)
|
||||||
{
|
{
|
||||||
float3x4 boneMatrix = input.BlendWeights.x * GetBoneMatrix(input.BlendIndices.x);
|
float weightsSum = input.BlendWeights.x + input.BlendWeights.y + input.BlendWeights.z + input.BlendWeights.w;
|
||||||
|
float mainWeight = input.BlendWeights.x + (1.0f - weightsSum); // Re-normalize to account for 16-bit weights encoding erros
|
||||||
|
float3x4 boneMatrix = mainWeight * GetBoneMatrix(input.BlendIndices.x);
|
||||||
boneMatrix += input.BlendWeights.y * GetBoneMatrix(input.BlendIndices.y);
|
boneMatrix += input.BlendWeights.y * GetBoneMatrix(input.BlendIndices.y);
|
||||||
boneMatrix += input.BlendWeights.z * GetBoneMatrix(input.BlendIndices.z);
|
boneMatrix += input.BlendWeights.z * GetBoneMatrix(input.BlendIndices.z);
|
||||||
boneMatrix += input.BlendWeights.w * GetBoneMatrix(input.BlendIndices.w);
|
boneMatrix += input.BlendWeights.w * GetBoneMatrix(input.BlendIndices.w);
|
||||||
@@ -465,13 +429,13 @@ float3x4 GetBoneMatrix(ModelInput_Skinned input)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Transforms the vertex position by weighted sum of the skinning matrices
|
// Transforms the vertex position by weighted sum of the skinning matrices
|
||||||
float3 SkinPosition(ModelInput_Skinned input, SkinningData data)
|
float3 SkinPosition(ModelInput_Skinned input, float3x4 boneMatrix)
|
||||||
{
|
{
|
||||||
return mul(data.BlendMatrix, float4(input.Position.xyz, 1));
|
return mul(boneMatrix, float4(input.Position.xyz, 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Transforms the vertex position by weighted sum of the skinning matrices
|
// Transforms the vertex position by weighted sum of the skinning matrices
|
||||||
float3x3 SkinTangents(ModelInput_Skinned input, SkinningData data)
|
float3x3 SkinTangents(ModelInput_Skinned input, float3x4 boneMatrix)
|
||||||
{
|
{
|
||||||
// Unpack vertex tangent frame
|
// Unpack vertex tangent frame
|
||||||
float bitangentSign = input.Tangent.w ? -1.0f : +1.0f;
|
float bitangentSign = input.Tangent.w ? -1.0f : +1.0f;
|
||||||
@@ -479,10 +443,10 @@ float3x3 SkinTangents(ModelInput_Skinned input, SkinningData data)
|
|||||||
float3 tangent = input.Tangent.xyz * 2.0 - 1.0;
|
float3 tangent = input.Tangent.xyz * 2.0 - 1.0;
|
||||||
|
|
||||||
// Apply skinning
|
// Apply skinning
|
||||||
tangent = mul(data.BlendMatrix, float4(tangent, 0));
|
tangent = normalize(mul(boneMatrix, float4(tangent, 0)));
|
||||||
normal = mul(data.BlendMatrix, float4(normal, 0));
|
normal = normalize(mul(boneMatrix, float4(normal, 0)));
|
||||||
|
|
||||||
float3 bitangent = cross(normal, tangent) * bitangentSign;
|
float3 bitangent = normalize(cross(normal, tangent) * bitangentSign);
|
||||||
return float3x3(tangent, bitangent, normal);
|
return float3x3(tangent, bitangent, normal);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -499,21 +463,23 @@ META_VS_IN_ELEMENT(BLENDWEIGHT, 0, R16G16B16A16_FLOAT,0, ALIGN, PER_VERTEX, 0,
|
|||||||
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
|
||||||
SkinningData data;
|
float3x4 boneMatrix = GetBoneMatrix(input);
|
||||||
data.BlendMatrix = GetBoneMatrix(input);
|
float3 position = SkinPosition(input, boneMatrix);
|
||||||
float3 position = SkinPosition(input, data);
|
float3x3 tangentToLocal = SkinTangents(input, boneMatrix);
|
||||||
float3x3 tangentToLocal = SkinTangents(input, data);
|
|
||||||
|
|
||||||
// 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), PrevWorldMatrix).xyz;
|
output.Geometry.PrevWorldPosition = mul(float4(prevPosition, 1), object.PrevWorldMatrix).xyz;
|
||||||
#else
|
#else
|
||||||
output.Geometry.PrevWorldPosition = mul(float4(position, 1), PrevWorldMatrix).xyz;
|
output.Geometry.PrevWorldPosition = mul(float4(position, 1), object.PrevWorldMatrix).xyz;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Compute clip space position
|
// Compute clip space position
|
||||||
@@ -525,15 +491,9 @@ VertexOutput VS_Skinned(ModelInput_Skinned input)
|
|||||||
output.Geometry.VertexColor = float4(0, 0, 0, 1);
|
output.Geometry.VertexColor = float4(0, 0, 0, 1);
|
||||||
#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;
|
||||||
@@ -541,10 +501,11 @@ 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
|
||||||
|
|
||||||
@@ -571,12 +532,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);
|
||||||
@@ -589,14 +550,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
|
||||||
@@ -17,7 +18,7 @@
|
|||||||
@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)
|
||||||
float4x4 WorldMatrix;
|
float4x3 WorldMatrix;
|
||||||
float3 WorldInvScale;
|
float3 WorldInvScale;
|
||||||
float WorldDeterminantSign;
|
float WorldDeterminantSign;
|
||||||
float PerInstanceRandom;
|
float PerInstanceRandom;
|
||||||
@@ -28,6 +29,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 +90,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 +150,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
|
||||||
@@ -194,7 +211,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)WorldMatrix;
|
float3x3 localToWorld = (float3x3)ToMatrix4x4(WorldMatrix);
|
||||||
//localToWorld = RemoveScaleFromLocalToWorld(localToWorld);
|
//localToWorld = RemoveScaleFromLocalToWorld(localToWorld);
|
||||||
return mul(localVector, localToWorld);
|
return mul(localVector, localToWorld);
|
||||||
}
|
}
|
||||||
@@ -202,7 +219,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)WorldMatrix;
|
float3x3 localToWorld = (float3x3)ToMatrix4x4(WorldMatrix);
|
||||||
//localToWorld = RemoveScaleFromLocalToWorld(localToWorld);
|
//localToWorld = RemoveScaleFromLocalToWorld(localToWorld);
|
||||||
return mul(localToWorld, worldVector);
|
return mul(localToWorld, worldVector);
|
||||||
}
|
}
|
||||||
@@ -210,7 +227,7 @@ float3 TransformWorldVectorToLocal(MaterialInput input, float3 worldVector)
|
|||||||
// Gets the current object position
|
// Gets the current object position
|
||||||
float3 GetObjectPosition(MaterialInput input)
|
float3 GetObjectPosition(MaterialInput input)
|
||||||
{
|
{
|
||||||
return WorldMatrix[3].xyz;
|
return ToMatrix4x4(WorldMatrix)[3].xyz;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Gets the current object size
|
// Gets the current object size
|
||||||
@@ -365,7 +382,8 @@ VertexOutput VS(TerrainVertexInput input)
|
|||||||
float3 position = float3(positionXZ.x, height, positionXZ.y);
|
float3 position = float3(positionXZ.x, height, positionXZ.y);
|
||||||
|
|
||||||
// Compute world space vertex position
|
// Compute world space vertex position
|
||||||
output.Geometry.WorldPosition = mul(float4(position, 1), WorldMatrix).xyz;
|
float4x4 worldMatrix = ToMatrix4x4(WorldMatrix);
|
||||||
|
output.Geometry.WorldPosition = mul(float4(position, 1), worldMatrix).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);
|
||||||
@@ -389,12 +407,13 @@ VertexOutput VS(TerrainVertexInput input)
|
|||||||
|
|
||||||
// Compute world space normal vector
|
// Compute world space normal vector
|
||||||
float3x3 tangentToLocal = CalcTangentBasisFromWorldNormal(normal);
|
float3x3 tangentToLocal = CalcTangentBasisFromWorldNormal(normal);
|
||||||
float3x3 tangentToWorld = CalcTangentToWorld(WorldMatrix, tangentToLocal);
|
float3x3 tangentToWorld = CalcTangentToWorld(worldMatrix, tangentToLocal);
|
||||||
output.Geometry.WorldNormal = tangentToWorld[2];
|
output.Geometry.WorldNormal = tangentToWorld[2];
|
||||||
|
|
||||||
// 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
|
||||||
|
|||||||
@@ -13,8 +13,8 @@
|
|||||||
// Primary constant buffer (with additional material parameters)
|
// Primary constant buffer (with additional material parameters)
|
||||||
META_CB_BEGIN(0, Data)
|
META_CB_BEGIN(0, Data)
|
||||||
float4x4 InverseViewProjectionMatrix;
|
float4x4 InverseViewProjectionMatrix;
|
||||||
float4x4 WorldMatrix;
|
float4x3 WorldMatrix;
|
||||||
float4x4 WorldMatrixInverseTransposed;
|
float4x3 WorldMatrixInverseTransposed;
|
||||||
float3 GridSize;
|
float3 GridSize;
|
||||||
float PerInstanceRandom;
|
float PerInstanceRandom;
|
||||||
float Dummy0;
|
float Dummy0;
|
||||||
@@ -49,7 +49,7 @@ struct MaterialInput
|
|||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
#define GetInstanceTransform(input) WorldMatrix;
|
#define GetInstanceTransform(input) ToMatrix4x4(WorldMatrix);
|
||||||
|
|
||||||
// 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)
|
||||||
@@ -170,12 +170,12 @@ float4 GetParticleVec4(uint particleIndex, int offset)
|
|||||||
|
|
||||||
float3 TransformParticlePosition(float3 input)
|
float3 TransformParticlePosition(float3 input)
|
||||||
{
|
{
|
||||||
return mul(float4(input, 1.0f), WorldMatrix).xyz;
|
return mul(float4(input, 1.0f), ToMatrix4x4(WorldMatrix)).xyz;
|
||||||
}
|
}
|
||||||
|
|
||||||
float3 TransformParticleVector(float3 input)
|
float3 TransformParticleVector(float3 input)
|
||||||
{
|
{
|
||||||
return mul(float4(input, 0.0f), WorldMatrixInverseTransposed).xyz;
|
return mul(float4(input, 0.0f), ToMatrix4x4(WorldMatrixInverseTransposed)).xyz;
|
||||||
}
|
}
|
||||||
|
|
||||||
@8
|
@8
|
||||||
@@ -219,7 +219,7 @@ void PS_VolumetricFog(Quad_GS2PS input, out float4 VBufferA : SV_Target0, out fl
|
|||||||
materialInput.ParticleIndex = ParticleIndex;
|
materialInput.ParticleIndex = ParticleIndex;
|
||||||
materialInput.TBN = float3x3(float3(1, 0, 0), float3(0, 1, 0), float3(0, 0, 1));
|
materialInput.TBN = float3x3(float3(1, 0, 0), float3(0, 1, 0), float3(0, 0, 1));
|
||||||
materialInput.TwoSidedSign = 1.0f;
|
materialInput.TwoSidedSign = 1.0f;
|
||||||
materialInput.InstanceOrigin = WorldMatrix[3].xyz;
|
materialInput.InstanceOrigin = ToMatrix4x4(WorldMatrix)[3].xyz;
|
||||||
materialInput.InstanceParams = PerInstanceRandom;
|
materialInput.InstanceParams = PerInstanceRandom;
|
||||||
materialInput.SvPosition = clipPos;
|
materialInput.SvPosition = clipPos;
|
||||||
Material material = GetMaterialPS(materialInput);
|
Material material = GetMaterialPS(materialInput);
|
||||||
|
|||||||
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.
@@ -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);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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.
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
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
Binary file not shown.
BIN
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
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
@@ -1,5 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Copyright (c) 2012-2023 Wojciech Figat. All rights reserved.
|
# Copyright (c) 2012-2024 Wojciech Figat. All rights reserved.
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user