diff --git a/Assets/Engine/EngineAssets/Animated/WaterVolume.dds b/Assets/Engine/EngineAssets/Animated/WaterVolume.dds
deleted file mode 100644
index f23d914406..0000000000
--- a/Assets/Engine/EngineAssets/Animated/WaterVolume.dds
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d5f8b854766f42212d788a884d2b5fd02b477a54baa6bbc931a0d7f4c9919eb2
-size 524416
diff --git a/Assets/Engine/EngineAssets/CodeCoverage/hit.tif b/Assets/Engine/EngineAssets/CodeCoverage/hit.tif
deleted file mode 100644
index 818db97d5d..0000000000
--- a/Assets/Engine/EngineAssets/CodeCoverage/hit.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a962f76c3c0046af0d07a39fb62ecffff907885beefd36560d89e23e208ade7d
-size 2784
diff --git a/Assets/Engine/EngineAssets/CodeCoverage/hit.tif.exportsettings b/Assets/Engine/EngineAssets/CodeCoverage/hit.tif.exportsettings
deleted file mode 100644
index 2410c3aa57..0000000000
--- a/Assets/Engine/EngineAssets/CodeCoverage/hit.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Diffuse_highQ
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/CodeCoverage/pbar.tif b/Assets/Engine/EngineAssets/CodeCoverage/pbar.tif
deleted file mode 100644
index 8db59eb7ed..0000000000
--- a/Assets/Engine/EngineAssets/CodeCoverage/pbar.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1e4f3852eb90c52351cb01260ece27a3d8809721c60c4f3d8c74e65ab1de4036
-size 999
diff --git a/Assets/Engine/EngineAssets/CodeCoverage/pbar.tif.exportsettings b/Assets/Engine/EngineAssets/CodeCoverage/pbar.tif.exportsettings
deleted file mode 100644
index 2410c3aa57..0000000000
--- a/Assets/Engine/EngineAssets/CodeCoverage/pbar.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Diffuse_highQ
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/CodeCoverage/unexpected.tif b/Assets/Engine/EngineAssets/CodeCoverage/unexpected.tif
deleted file mode 100644
index 008849b209..0000000000
--- a/Assets/Engine/EngineAssets/CodeCoverage/unexpected.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:df170ec3d1e1fc52c7c79f062d3454baa7e081883efd4210f0a4eee0f2ac232b
-size 98686
diff --git a/Assets/Engine/EngineAssets/CodeCoverage/unexpected.tif.exportsettings b/Assets/Engine/EngineAssets/CodeCoverage/unexpected.tif.exportsettings
deleted file mode 100644
index 80afdedb73..0000000000
--- a/Assets/Engine/EngineAssets/CodeCoverage/unexpected.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Diffuse_lowQ /reduce=1
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/LevelForSliceEditing/LevelForSliceEditing.ly b/Assets/Engine/EngineAssets/LevelForSliceEditing/LevelForSliceEditing.ly
deleted file mode 100644
index d7cb0f4527..0000000000
--- a/Assets/Engine/EngineAssets/LevelForSliceEditing/LevelForSliceEditing.ly
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:555c550540579ff4cc5bece0802b7e7f3a73ea0eddff1175ce4be57dd73d1630
-size 2120
diff --git a/Assets/Engine/EngineAssets/LevelForSliceEditing/filelist.xml b/Assets/Engine/EngineAssets/LevelForSliceEditing/filelist.xml
deleted file mode 100644
index e98d23124e..0000000000
--- a/Assets/Engine/EngineAssets/LevelForSliceEditing/filelist.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/Assets/Engine/EngineAssets/LevelForSliceEditing/level.pak b/Assets/Engine/EngineAssets/LevelForSliceEditing/level.pak
deleted file mode 100644
index feb989265e..0000000000
--- a/Assets/Engine/EngineAssets/LevelForSliceEditing/level.pak
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:dae9ecea1e60a2f58da6a6d8b126cd342e56769df25efa25685be7b01e6a370b
-size 8319
diff --git a/Assets/Engine/EngineAssets/LevelForSliceEditing/leveldata/environment.xml b/Assets/Engine/EngineAssets/LevelForSliceEditing/leveldata/environment.xml
deleted file mode 100644
index a5a665026b..0000000000
--- a/Assets/Engine/EngineAssets/LevelForSliceEditing/leveldata/environment.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Assets/Engine/EngineAssets/LevelForSliceEditing/leveldata/heightmap.dat b/Assets/Engine/EngineAssets/LevelForSliceEditing/leveldata/heightmap.dat
deleted file mode 100644
index 539b82d3de..0000000000
--- a/Assets/Engine/EngineAssets/LevelForSliceEditing/leveldata/heightmap.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f3a0a971e6cc457a5478b4ab8346f861f44c217a858345cab456f9d2f91ff449
-size 17407568
diff --git a/Assets/Engine/EngineAssets/LevelForSliceEditing/leveldata/terraintexture.xml b/Assets/Engine/EngineAssets/LevelForSliceEditing/leveldata/terraintexture.xml
deleted file mode 100644
index 0fa8b16c50..0000000000
--- a/Assets/Engine/EngineAssets/LevelForSliceEditing/leveldata/terraintexture.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/Assets/Engine/EngineAssets/LevelForSliceEditing/leveldata/timeofday.xml b/Assets/Engine/EngineAssets/LevelForSliceEditing/leveldata/timeofday.xml
deleted file mode 100644
index e183b92e70..0000000000
--- a/Assets/Engine/EngineAssets/LevelForSliceEditing/leveldata/timeofday.xml
+++ /dev/null
@@ -1,356 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Assets/Engine/EngineAssets/LevelForSliceEditing/leveldata/vegetationmap.dat b/Assets/Engine/EngineAssets/LevelForSliceEditing/leveldata/vegetationmap.dat
deleted file mode 100644
index dce5631cd0..0000000000
--- a/Assets/Engine/EngineAssets/LevelForSliceEditing/leveldata/vegetationmap.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0e6a5435c928079b27796f6b202bbc2623e7e454244ddc099a3cadf33b7cb9e9
-size 63
diff --git a/Assets/Engine/EngineAssets/LevelForSliceEditing/tags.txt b/Assets/Engine/EngineAssets/LevelForSliceEditing/tags.txt
deleted file mode 100644
index 0d6c1880e7..0000000000
--- a/Assets/Engine/EngineAssets/LevelForSliceEditing/tags.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-0,0,0,0,0,0
-0,0,0,0,0,0
-0,0,0,0,0,0
-0,0,0,0,0,0
-0,0,0,0,0,0
-0,0,0,0,0,0
-0,0,0,0,0,0
-0,0,0,0,0,0
-0,0,0,0,0,0
-0,0,0,0,0,0
-0,0,0,0,0,0
-0,0,0,0,0,0
diff --git a/Assets/Engine/EngineAssets/Materials/Fog/FogVolumeBox.mtl b/Assets/Engine/EngineAssets/Materials/Fog/FogVolumeBox.mtl
deleted file mode 100644
index cc8f18fbdb..0000000000
--- a/Assets/Engine/EngineAssets/Materials/Fog/FogVolumeBox.mtl
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/Assets/Engine/EngineAssets/Materials/Fog/FogVolumeEllipsoid.mtl b/Assets/Engine/EngineAssets/Materials/Fog/FogVolumeEllipsoid.mtl
deleted file mode 100644
index ae5c93c332..0000000000
--- a/Assets/Engine/EngineAssets/Materials/Fog/FogVolumeEllipsoid.mtl
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/Assets/Engine/EngineAssets/Materials/Fog/OceanInto.mtl b/Assets/Engine/EngineAssets/Materials/Fog/OceanInto.mtl
deleted file mode 100644
index b8f2cd4e9b..0000000000
--- a/Assets/Engine/EngineAssets/Materials/Fog/OceanInto.mtl
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/Assets/Engine/EngineAssets/Materials/Fog/OceanIntoLowSpec.mtl b/Assets/Engine/EngineAssets/Materials/Fog/OceanIntoLowSpec.mtl
deleted file mode 100644
index 2d8a816eca..0000000000
--- a/Assets/Engine/EngineAssets/Materials/Fog/OceanIntoLowSpec.mtl
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/Assets/Engine/EngineAssets/Materials/Fog/OceanOutof.mtl b/Assets/Engine/EngineAssets/Materials/Fog/OceanOutof.mtl
deleted file mode 100644
index a3eb530e3f..0000000000
--- a/Assets/Engine/EngineAssets/Materials/Fog/OceanOutof.mtl
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/Assets/Engine/EngineAssets/Materials/Fog/OceanOutofLowSpec.mtl b/Assets/Engine/EngineAssets/Materials/Fog/OceanOutofLowSpec.mtl
deleted file mode 100644
index b5c6eeadd3..0000000000
--- a/Assets/Engine/EngineAssets/Materials/Fog/OceanOutofLowSpec.mtl
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/Assets/Engine/EngineAssets/Materials/Fog/WaterFogVolumeInto.mtl b/Assets/Engine/EngineAssets/Materials/Fog/WaterFogVolumeInto.mtl
deleted file mode 100644
index c73833ad5a..0000000000
--- a/Assets/Engine/EngineAssets/Materials/Fog/WaterFogVolumeInto.mtl
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/Assets/Engine/EngineAssets/Materials/Fog/WaterFogVolumeOutof.mtl b/Assets/Engine/EngineAssets/Materials/Fog/WaterFogVolumeOutof.mtl
deleted file mode 100644
index ad306fadba..0000000000
--- a/Assets/Engine/EngineAssets/Materials/Fog/WaterFogVolumeOutof.mtl
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/Assets/Engine/EngineAssets/Materials/PhysProxyTooBig.mtl b/Assets/Engine/EngineAssets/Materials/PhysProxyTooBig.mtl
deleted file mode 100644
index 0e04aef821..0000000000
--- a/Assets/Engine/EngineAssets/Materials/PhysProxyTooBig.mtl
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/Assets/Engine/EngineAssets/Materials/Water/WaterOceanBottom.mtl b/Assets/Engine/EngineAssets/Materials/Water/WaterOceanBottom.mtl
deleted file mode 100644
index cb2c8e03fd..0000000000
--- a/Assets/Engine/EngineAssets/Materials/Water/WaterOceanBottom.mtl
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Materials/Water/ocean_default.mtl b/Assets/Engine/EngineAssets/Materials/Water/ocean_default.mtl
deleted file mode 100644
index acc003ab41..0000000000
--- a/Assets/Engine/EngineAssets/Materials/Water/ocean_default.mtl
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/Assets/Engine/EngineAssets/Materials/collision_proxy_entitiesonly.mtl b/Assets/Engine/EngineAssets/Materials/collision_proxy_entitiesonly.mtl
deleted file mode 100644
index ea40194f1e..0000000000
--- a/Assets/Engine/EngineAssets/Materials/collision_proxy_entitiesonly.mtl
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/Assets/Engine/EngineAssets/Materials/decals/default.mtl b/Assets/Engine/EngineAssets/Materials/decals/default.mtl
deleted file mode 100644
index 1a712ec0e1..0000000000
--- a/Assets/Engine/EngineAssets/Materials/decals/default.mtl
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/Assets/Engine/EngineAssets/Materials/lens_optics.mtl b/Assets/Engine/EngineAssets/Materials/lens_optics.mtl
deleted file mode 100644
index d417b01762..0000000000
--- a/Assets/Engine/EngineAssets/Materials/lens_optics.mtl
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/Assets/Engine/EngineAssets/Materials/sky/sky.mtl b/Assets/Engine/EngineAssets/Materials/sky/sky.mtl
deleted file mode 100644
index 16d9981c7a..0000000000
--- a/Assets/Engine/EngineAssets/Materials/sky/sky.mtl
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/Assets/Engine/EngineAssets/Materials/test/Holotest/hologram.mtl b/Assets/Engine/EngineAssets/Materials/test/Holotest/hologram.mtl
deleted file mode 100644
index ed5010322b..0000000000
--- a/Assets/Engine/EngineAssets/Materials/test/Holotest/hologram.mtl
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Assets/Engine/EngineAssets/Materials/test/Holotest/test2.tif b/Assets/Engine/EngineAssets/Materials/test/Holotest/test2.tif
deleted file mode 100644
index 18eaa06989..0000000000
--- a/Assets/Engine/EngineAssets/Materials/test/Holotest/test2.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ab2f93721ecf889c7804d6b4316772897f74d1422eb5fccba78f2de9f817c049
-size 4202922
diff --git a/Assets/Engine/EngineAssets/Materials/test/Holotest/test2.tif.exportsettings b/Assets/Engine/EngineAssets/Materials/test/Holotest/test2.tif.exportsettings
deleted file mode 100644
index d21922d983..0000000000
--- a/Assets/Engine/EngineAssets/Materials/test/Holotest/test2.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=DiffuseWithAlpha_highQ /reduce=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Materials/test/Holotest/tews1.tif b/Assets/Engine/EngineAssets/Materials/test/Holotest/tews1.tif
deleted file mode 100644
index 4f52e4653b..0000000000
--- a/Assets/Engine/EngineAssets/Materials/test/Holotest/tews1.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c2ec3755b3ec347c7e526a2b2d9b1a39e79a5f0946d9dfac830773f4e05bc35b
-size 264618
diff --git a/Assets/Engine/EngineAssets/Materials/test/Holotest/tews1.tif.exportsettings b/Assets/Engine/EngineAssets/Materials/test/Holotest/tews1.tif.exportsettings
deleted file mode 100644
index d21922d983..0000000000
--- a/Assets/Engine/EngineAssets/Materials/test/Holotest/tews1.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=DiffuseWithAlpha_highQ /reduce=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Materials/test/Holotest/tile1.cgf b/Assets/Engine/EngineAssets/Materials/test/Holotest/tile1.cgf
deleted file mode 100644
index eac42b2731..0000000000
--- a/Assets/Engine/EngineAssets/Materials/test/Holotest/tile1.cgf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f61fb9fe99952f2f155fbe5400ae731b3ec5910a47b2f517e78749dcb91085ec
-size 26588
diff --git a/Assets/Engine/EngineAssets/Materials/test/Holotest/tile1.max b/Assets/Engine/EngineAssets/Materials/test/Holotest/tile1.max
deleted file mode 100644
index c4fb039398..0000000000
--- a/Assets/Engine/EngineAssets/Materials/test/Holotest/tile1.max
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:31cfc06eba59c01370d6e648d634e2b7ea56ee01374b91e0733a31ead26a890e
-size 204800
diff --git a/Assets/Engine/EngineAssets/Materials/test/chromium.mtl b/Assets/Engine/EngineAssets/Materials/test/chromium.mtl
deleted file mode 100644
index dddf8bd768..0000000000
--- a/Assets/Engine/EngineAssets/Materials/test/chromium.mtl
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/Assets/Engine/EngineAssets/Materials/test/glass2.mtl b/Assets/Engine/EngineAssets/Materials/test/glass2.mtl
deleted file mode 100644
index 12c357e1af..0000000000
--- a/Assets/Engine/EngineAssets/Materials/test/glass2.mtl
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/Assets/Engine/EngineAssets/Materials/test/hologram.mtl b/Assets/Engine/EngineAssets/Materials/test/hologram.mtl
deleted file mode 100644
index 21066b8071..0000000000
--- a/Assets/Engine/EngineAssets/Materials/test/hologram.mtl
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/Assets/Engine/EngineAssets/Materials/test/lightbeam.mtl b/Assets/Engine/EngineAssets/Materials/test/lightbeam.mtl
deleted file mode 100644
index bb7558d001..0000000000
--- a/Assets/Engine/EngineAssets/Materials/test/lightbeam.mtl
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/Assets/Engine/EngineAssets/Materials/test/lightbeam_floodlight.mtl b/Assets/Engine/EngineAssets/Materials/test/lightbeam_floodlight.mtl
deleted file mode 100644
index 2d325a14d1..0000000000
--- a/Assets/Engine/EngineAssets/Materials/test/lightbeam_floodlight.mtl
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/Assets/Engine/EngineAssets/Materials/test/lighthouseBeam.mtl b/Assets/Engine/EngineAssets/Materials/test/lighthouseBeam.mtl
deleted file mode 100644
index c0ff0ecd88..0000000000
--- a/Assets/Engine/EngineAssets/Materials/test/lighthouseBeam.mtl
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/Assets/Engine/EngineAssets/Materials/test/lighthousetemplebeam.mtl b/Assets/Engine/EngineAssets/Materials/test/lighthousetemplebeam.mtl
deleted file mode 100644
index 0fd4cc5c5e..0000000000
--- a/Assets/Engine/EngineAssets/Materials/test/lighthousetemplebeam.mtl
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/Assets/Engine/EngineAssets/Materials/test/nodraw.mtl b/Assets/Engine/EngineAssets/Materials/test/nodraw.mtl
deleted file mode 100644
index 4638d7f47f..0000000000
--- a/Assets/Engine/EngineAssets/Materials/test/nodraw.mtl
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/Assets/Engine/EngineAssets/Materials/test/sky.mtl b/Assets/Engine/EngineAssets/Materials/test/sky.mtl
deleted file mode 100644
index 43ce732f83..0000000000
--- a/Assets/Engine/EngineAssets/Materials/test/sky.mtl
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/Assets/Engine/EngineAssets/Materials/test/skyHDR.mtl b/Assets/Engine/EngineAssets/Materials/test/skyHDR.mtl
deleted file mode 100644
index 16d9981c7a..0000000000
--- a/Assets/Engine/EngineAssets/Materials/test/skyHDR.mtl
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/Assets/Engine/EngineAssets/Materials/test/textures/glass_wall_ddn.tif b/Assets/Engine/EngineAssets/Materials/test/textures/glass_wall_ddn.tif
deleted file mode 100644
index db7e3a970e..0000000000
--- a/Assets/Engine/EngineAssets/Materials/test/textures/glass_wall_ddn.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3223666df872514edf7e611e96dac4f526c580f2b16252f9f9ba887a56f5e5dc
-size 12599662
diff --git a/Assets/Engine/EngineAssets/Materials/test/textures/templeBeam.tif b/Assets/Engine/EngineAssets/Materials/test/textures/templeBeam.tif
deleted file mode 100644
index c6bbcf0543..0000000000
--- a/Assets/Engine/EngineAssets/Materials/test/textures/templeBeam.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:371383e51b72e357e4e330a2acb79009443bb6e9ba34cddd49d1de626f262f19
-size 196920
diff --git a/Assets/Engine/EngineAssets/Materials/test/textures/templeBeam.tif.exportsettings b/Assets/Engine/EngineAssets/Materials/test/textures/templeBeam.tif.exportsettings
deleted file mode 100644
index 2d1dccbf99..0000000000
--- a/Assets/Engine/EngineAssets/Materials/test/textures/templeBeam.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Albedo /reduce=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Materials/test/volumeObject.mtl b/Assets/Engine/EngineAssets/Materials/test/volumeObject.mtl
deleted file mode 100644
index 1e6803e465..0000000000
--- a/Assets/Engine/EngineAssets/Materials/test/volumeObject.mtl
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/Assets/Engine/EngineAssets/Materials/test/volumeObject2.mtl b/Assets/Engine/EngineAssets/Materials/test/volumeObject2.mtl
deleted file mode 100644
index 9210077d15..0000000000
--- a/Assets/Engine/EngineAssets/Materials/test/volumeObject2.mtl
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/Assets/Engine/EngineAssets/Objects/Default.cgf b/Assets/Engine/EngineAssets/Objects/Default.cgf
deleted file mode 100644
index ff686e19eb..0000000000
--- a/Assets/Engine/EngineAssets/Objects/Default.cgf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:453caf22089182ad725c3cbb3580e48fee25ece5b1f09fa4ead4a6ae1efb6265
-size 6832
diff --git a/Assets/Engine/EngineAssets/Objects/helper.mtl b/Assets/Engine/EngineAssets/Objects/helper.mtl
deleted file mode 100644
index c01d1de65b..0000000000
--- a/Assets/Engine/EngineAssets/Objects/helper.mtl
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/Assets/Engine/EngineAssets/Production/MidGray.tif b/Assets/Engine/EngineAssets/Production/MidGray.tif
deleted file mode 100644
index fd963f0d50..0000000000
--- a/Assets/Engine/EngineAssets/Production/MidGray.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:928c40a3973d1834036a0d3068da9500397aed38a8e91129b86fd33f61888482
-size 12535
diff --git a/Assets/Engine/EngineAssets/Production/MidGray.tif.exportsettings b/Assets/Engine/EngineAssets/Production/MidGray.tif.exportsettings
deleted file mode 100644
index 2410c3aa57..0000000000
--- a/Assets/Engine/EngineAssets/Production/MidGray.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Diffuse_highQ
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Production/TangentReference_ddn.tif b/Assets/Engine/EngineAssets/Production/TangentReference_ddn.tif
deleted file mode 100644
index 16ed1f3d51..0000000000
--- a/Assets/Engine/EngineAssets/Production/TangentReference_ddn.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:52d078ae101308e1d04f7d7bc95ba24cc1781acd60567f344f96488f87976879
-size 197104
diff --git a/Assets/Engine/EngineAssets/Production/TangentReference_ddn.tif.exportsettings b/Assets/Engine/EngineAssets/Production/TangentReference_ddn.tif.exportsettings
deleted file mode 100644
index 98fc101e5c..0000000000
--- a/Assets/Engine/EngineAssets/Production/TangentReference_ddn.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /dns=1 /preset=Normalmap_highQ /reduce=0 /ser=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Production/UV.tif b/Assets/Engine/EngineAssets/Production/UV.tif
deleted file mode 100644
index 2a30ad939a..0000000000
--- a/Assets/Engine/EngineAssets/Production/UV.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e7e7637ab823391dae9fae61c2ed62648ef1a551e2562e78fab9e83768d0e326
-size 198934
diff --git a/Assets/Engine/EngineAssets/Production/UV.tif.exportsettings b/Assets/Engine/EngineAssets/Production/UV.tif.exportsettings
deleted file mode 100644
index 712c89ba18..0000000000
--- a/Assets/Engine/EngineAssets/Production/UV.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Diffuse_lowQ /reduce=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/ScreenSpace/AreaTex.dds b/Assets/Engine/EngineAssets/ScreenSpace/AreaTex.dds
deleted file mode 100644
index db3a44f87d..0000000000
--- a/Assets/Engine/EngineAssets/ScreenSpace/AreaTex.dds
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5018e1ce235e6f681eb1b19208783fe22989760f9c9ee467f477b41f901300cc
-size 358528
diff --git a/Assets/Engine/EngineAssets/ScreenSpace/NormalsFitting.dds b/Assets/Engine/EngineAssets/ScreenSpace/NormalsFitting.dds
deleted file mode 100644
index 9db18be8bc..0000000000
--- a/Assets/Engine/EngineAssets/ScreenSpace/NormalsFitting.dds
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:578fcd6565cb1b6ee80ee108f3d0bb3319f9512a165e86a71066dbca8a62a903
-size 349653
diff --git a/Assets/Engine/EngineAssets/ScreenSpace/PointsOnSphere4x4.tif b/Assets/Engine/EngineAssets/ScreenSpace/PointsOnSphere4x4.tif
deleted file mode 100644
index 590180d850..0000000000
--- a/Assets/Engine/EngineAssets/ScreenSpace/PointsOnSphere4x4.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6d57eb3a77e28f92f7b7984c32fb5241a8de9d13e31de7f3805ce772f4692e15
-size 411
diff --git a/Assets/Engine/EngineAssets/ScreenSpace/PointsOnSphere4x4.tif.exportsettings b/Assets/Engine/EngineAssets/ScreenSpace/PointsOnSphere4x4.tif.exportsettings
deleted file mode 100644
index de0af89e52..0000000000
--- a/Assets/Engine/EngineAssets/ScreenSpace/PointsOnSphere4x4.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /dns=1 /preset=Gradient /reduce=0 /srgb=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/ScreenSpace/PointsOnSphereVO4x4.tif b/Assets/Engine/EngineAssets/ScreenSpace/PointsOnSphereVO4x4.tif
deleted file mode 100644
index e871ef772c..0000000000
--- a/Assets/Engine/EngineAssets/ScreenSpace/PointsOnSphereVO4x4.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:befa683fbb462aafec5c6acd8c57b7110159b655aa3da179197d225a17608f63
-size 366
diff --git a/Assets/Engine/EngineAssets/ScreenSpace/PointsOnSphereVO4x4.tif.exportsettings b/Assets/Engine/EngineAssets/ScreenSpace/PointsOnSphereVO4x4.tif.exportsettings
deleted file mode 100644
index c48fb8632a..0000000000
--- a/Assets/Engine/EngineAssets/ScreenSpace/PointsOnSphereVO4x4.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Uncompressed
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/ScreenSpace/SearchTex.dds b/Assets/Engine/EngineAssets/ScreenSpace/SearchTex.dds
deleted file mode 100644
index 35d614fe84..0000000000
--- a/Assets/Engine/EngineAssets/ScreenSpace/SearchTex.dds
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:21270248fcd044e2862b71b2be501be57896d6a09cd342aa640bb3523e994a90
-size 2306
diff --git a/Assets/Engine/EngineAssets/ScreenSpace/bokeh_love.TIF b/Assets/Engine/EngineAssets/ScreenSpace/bokeh_love.TIF
deleted file mode 100644
index d1294aba2f..0000000000
--- a/Assets/Engine/EngineAssets/ScreenSpace/bokeh_love.TIF
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:28c65340053099c10ab182b683a47983485bd1fed0708595ba3ec85127f97e01
-size 13067
diff --git a/Assets/Engine/EngineAssets/ScreenSpace/bokeh_love.TIF.exportsettings b/Assets/Engine/EngineAssets/ScreenSpace/bokeh_love.TIF.exportsettings
deleted file mode 100644
index 9f0dd6e1fa..0000000000
--- a/Assets/Engine/EngineAssets/ScreenSpace/bokeh_love.TIF.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Gradient
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/ScreenSpace/bokeh_music.TIF b/Assets/Engine/EngineAssets/ScreenSpace/bokeh_music.TIF
deleted file mode 100644
index 6fab3244e2..0000000000
--- a/Assets/Engine/EngineAssets/ScreenSpace/bokeh_music.TIF
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e3ac9aff02465de837e4854bb5c4c7a616a180572a7dd91641b732392405df75
-size 13067
diff --git a/Assets/Engine/EngineAssets/ScreenSpace/bokeh_music.TIF.exportsettings b/Assets/Engine/EngineAssets/ScreenSpace/bokeh_music.TIF.exportsettings
deleted file mode 100644
index 9f0dd6e1fa..0000000000
--- a/Assets/Engine/EngineAssets/ScreenSpace/bokeh_music.TIF.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Gradient
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/ScreenSpace/bokeh_pentagon.TIF b/Assets/Engine/EngineAssets/ScreenSpace/bokeh_pentagon.TIF
deleted file mode 100644
index 259a265320..0000000000
--- a/Assets/Engine/EngineAssets/ScreenSpace/bokeh_pentagon.TIF
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:80d728327ce9967631e1e79c949b865565ff7f2a5f21a40d07a63c64178761a6
-size 13067
diff --git a/Assets/Engine/EngineAssets/ScreenSpace/bokeh_pentagon.TIF.exportsettings b/Assets/Engine/EngineAssets/ScreenSpace/bokeh_pentagon.TIF.exportsettings
deleted file mode 100644
index 9f0dd6e1fa..0000000000
--- a/Assets/Engine/EngineAssets/ScreenSpace/bokeh_pentagon.TIF.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Gradient
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/ScreenSpace/bokeh_spherical.TIF b/Assets/Engine/EngineAssets/ScreenSpace/bokeh_spherical.TIF
deleted file mode 100644
index ea26516c21..0000000000
--- a/Assets/Engine/EngineAssets/ScreenSpace/bokeh_spherical.TIF
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a66a0479747c7453a0c506584cd2b0c33caa3c570338e9bcd7f2b9319fa48376
-size 13067
diff --git a/Assets/Engine/EngineAssets/ScreenSpace/bokeh_spherical.TIF.exportsettings b/Assets/Engine/EngineAssets/ScreenSpace/bokeh_spherical.TIF.exportsettings
deleted file mode 100644
index 9f0dd6e1fa..0000000000
--- a/Assets/Engine/EngineAssets/ScreenSpace/bokeh_spherical.TIF.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Gradient
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/ScreenSpace/bokeh_square.TIF b/Assets/Engine/EngineAssets/ScreenSpace/bokeh_square.TIF
deleted file mode 100644
index 812d8f278b..0000000000
--- a/Assets/Engine/EngineAssets/ScreenSpace/bokeh_square.TIF
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2e6d776b137e482fc01a9ba98a0e5f554d05e150a872caa1df87fff74cb8a053
-size 13067
diff --git a/Assets/Engine/EngineAssets/ScreenSpace/bokeh_square.TIF.exportsettings b/Assets/Engine/EngineAssets/ScreenSpace/bokeh_square.TIF.exportsettings
deleted file mode 100644
index 9f0dd6e1fa..0000000000
--- a/Assets/Engine/EngineAssets/ScreenSpace/bokeh_square.TIF.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Gradient
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/ScreenSpace/bokeh_star.TIF b/Assets/Engine/EngineAssets/ScreenSpace/bokeh_star.TIF
deleted file mode 100644
index a24cb21caa..0000000000
--- a/Assets/Engine/EngineAssets/ScreenSpace/bokeh_star.TIF
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6465de4b41e18f4ee51fd29717a5aff96c1370a80f488de8ac06898fb310268f
-size 13067
diff --git a/Assets/Engine/EngineAssets/ScreenSpace/bokeh_star.TIF.exportsettings b/Assets/Engine/EngineAssets/ScreenSpace/bokeh_star.TIF.exportsettings
deleted file mode 100644
index 9f0dd6e1fa..0000000000
--- a/Assets/Engine/EngineAssets/ScreenSpace/bokeh_star.TIF.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Gradient
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/ScreenSpace/film_grain.dds b/Assets/Engine/EngineAssets/ScreenSpace/film_grain.dds
deleted file mode 100644
index f521bfa4dc..0000000000
--- a/Assets/Engine/EngineAssets/ScreenSpace/film_grain.dds
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:802275dac19c1f748e2c5b356a3e7f5540654b3ecd206dfd41050c7f94780fa5
-size 1572992
diff --git a/Assets/Engine/EngineAssets/ScreenSpace/grain_bayer_mul.tif b/Assets/Engine/EngineAssets/ScreenSpace/grain_bayer_mul.tif
deleted file mode 100644
index 0899240067..0000000000
--- a/Assets/Engine/EngineAssets/ScreenSpace/grain_bayer_mul.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c25375716743c4ec47285567acec21d0c72594b88100664eecd9ec48e727833f
-size 17291
diff --git a/Assets/Engine/EngineAssets/ScreenSpace/grain_bayer_mul.tif.exportsettings b/Assets/Engine/EngineAssets/ScreenSpace/grain_bayer_mul.tif.exportsettings
deleted file mode 100644
index d70fd85e40..0000000000
--- a/Assets/Engine/EngineAssets/ScreenSpace/grain_bayer_mul.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=SF_Gradient /reduce=-1 /ser=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Shading/SonarVisionGradient.TIF b/Assets/Engine/EngineAssets/Shading/SonarVisionGradient.TIF
deleted file mode 100644
index 09001a069e..0000000000
--- a/Assets/Engine/EngineAssets/Shading/SonarVisionGradient.TIF
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1e917e70760dc1b574ffbf1764912d7b8906639f6472604d351c89cec4b0bff7
-size 3371
diff --git a/Assets/Engine/EngineAssets/Shading/SonarVisionGradient.TIF.exportsettings b/Assets/Engine/EngineAssets/Shading/SonarVisionGradient.TIF.exportsettings
deleted file mode 100644
index 9f0dd6e1fa..0000000000
--- a/Assets/Engine/EngineAssets/Shading/SonarVisionGradient.TIF.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Gradient
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Shading/ThermalVisionGradient.tif b/Assets/Engine/EngineAssets/Shading/ThermalVisionGradient.tif
deleted file mode 100644
index e380d56cc1..0000000000
--- a/Assets/Engine/EngineAssets/Shading/ThermalVisionGradient.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c75fc9f981c6826f1dd6f0b325dd8f2ee8d94449688a29d8822a3e08a233e1c5
-size 3371
diff --git a/Assets/Engine/EngineAssets/Shading/ThermalVisionGradient.tif.exportsettings b/Assets/Engine/EngineAssets/Shading/ThermalVisionGradient.tif.exportsettings
deleted file mode 100644
index 9f0dd6e1fa..0000000000
--- a/Assets/Engine/EngineAssets/Shading/ThermalVisionGradient.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Gradient
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Shading/ThermalVisionGradient02.TIF b/Assets/Engine/EngineAssets/Shading/ThermalVisionGradient02.TIF
deleted file mode 100644
index efe3af05de..0000000000
--- a/Assets/Engine/EngineAssets/Shading/ThermalVisionGradient02.TIF
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:000dfce317f50263e56e25933d1ccaa128d2651c2ee266b311d239cf3f0d0c28
-size 3479
diff --git a/Assets/Engine/EngineAssets/Shading/ThermalVisionGradient02.TIF.exportsettings b/Assets/Engine/EngineAssets/Shading/ThermalVisionGradient02.TIF.exportsettings
deleted file mode 100644
index bc731e2711..0000000000
--- a/Assets/Engine/EngineAssets/Shading/ThermalVisionGradient02.TIF.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Gradient /reduce=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Shading/WaterFoam.TIF b/Assets/Engine/EngineAssets/Shading/WaterFoam.TIF
deleted file mode 100644
index c659fd61a5..0000000000
--- a/Assets/Engine/EngineAssets/Shading/WaterFoam.TIF
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0e070eafa1ab2c80f927564c5af84192fbcdb962402fa72dd25052f041bcdab8
-size 198974
diff --git a/Assets/Engine/EngineAssets/Shading/WaterFoam.TIF.exportsettings b/Assets/Engine/EngineAssets/Shading/WaterFoam.TIF.exportsettings
deleted file mode 100644
index 341ab759f8..0000000000
--- a/Assets/Engine/EngineAssets/Shading/WaterFoam.TIF.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=TerrainDiffuseHighPassed /reduce=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Shading/cook_d_sampler_G16R16F.dds b/Assets/Engine/EngineAssets/Shading/cook_d_sampler_G16R16F.dds
deleted file mode 100644
index 363c6b2d5b..0000000000
--- a/Assets/Engine/EngineAssets/Shading/cook_d_sampler_G16R16F.dds
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:994eae624d2e3b892be75e8b7a52b1d8230bd2386f146146a4a558c647dafbb4
-size 262272
diff --git a/Assets/Engine/EngineAssets/Shading/defaultProbe_cm.tif b/Assets/Engine/EngineAssets/Shading/defaultProbe_cm.tif
deleted file mode 100644
index fe0b3b293f..0000000000
--- a/Assets/Engine/EngineAssets/Shading/defaultProbe_cm.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:949b4333296e4b9737267e88c84d6d8246fcf3e9679fbb02c5b730fc7fabd925
-size 3148654
diff --git a/Assets/Engine/EngineAssets/Shading/environmentBRDF.tif b/Assets/Engine/EngineAssets/Shading/environmentBRDF.tif
deleted file mode 100644
index d729f0015b..0000000000
--- a/Assets/Engine/EngineAssets/Shading/environmentBRDF.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f6fe5555c0b647f041242a0efb6122ffb98e3fda7d47f48aed7b6a28bfe81157
-size 103538
diff --git a/Assets/Engine/EngineAssets/Shading/generic_reflections.tif b/Assets/Engine/EngineAssets/Shading/generic_reflections.tif
deleted file mode 100644
index 3b477ea004..0000000000
--- a/Assets/Engine/EngineAssets/Shading/generic_reflections.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b29aec5b1be93af523df229cb3d73ca71a8ba6e9fa12676e46ab8a3111d94680
-size 787752
diff --git a/Assets/Engine/EngineAssets/Shading/generic_reflections.tif.exportsettings b/Assets/Engine/EngineAssets/Shading/generic_reflections.tif.exportsettings
deleted file mode 100644
index 9cb8c9bd23..0000000000
--- a/Assets/Engine/EngineAssets/Shading/generic_reflections.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /ms=0 /preset=HDRCubemapRGBK_highQ /reduce=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Shading/layer_effect_anim_function.tif b/Assets/Engine/EngineAssets/Shading/layer_effect_anim_function.tif
deleted file mode 100644
index 08b2e96902..0000000000
--- a/Assets/Engine/EngineAssets/Shading/layer_effect_anim_function.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:7fd2e2965686fc63dd79d76ded948dd70fd429ab4367b1dffb73cde9440e4bd0
-size 66829
diff --git a/Assets/Engine/EngineAssets/Shading/layer_effect_anim_function.tif.exportsettings b/Assets/Engine/EngineAssets/Shading/layer_effect_anim_function.tif.exportsettings
deleted file mode 100644
index 9f0dd6e1fa..0000000000
--- a/Assets/Engine/EngineAssets/Shading/layer_effect_anim_function.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Gradient
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Shading/nanosuit_mask.TIF b/Assets/Engine/EngineAssets/Shading/nanosuit_mask.TIF
deleted file mode 100644
index f4a3c49d56..0000000000
--- a/Assets/Engine/EngineAssets/Shading/nanosuit_mask.TIF
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f6e1305f40ef4f36c21ecb21173c651c9f32465650a680aceb5d9e18dae36906
-size 17315
diff --git a/Assets/Engine/EngineAssets/Shading/nanosuit_mask.TIF.exportsettings b/Assets/Engine/EngineAssets/Shading/nanosuit_mask.TIF.exportsettings
deleted file mode 100644
index 53c03113a0..0000000000
--- a/Assets/Engine/EngineAssets/Shading/nanosuit_mask.TIF.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Diffuse_highQ /reduce=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Shading/nanosuit_modes_grads.TIF b/Assets/Engine/EngineAssets/Shading/nanosuit_modes_grads.TIF
deleted file mode 100644
index d5d1870807..0000000000
--- a/Assets/Engine/EngineAssets/Shading/nanosuit_modes_grads.TIF
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6027e69770cf5644425cfc8ea412479b097d18e5ff9818085b6441217f06d128
-size 3371
diff --git a/Assets/Engine/EngineAssets/Shading/nanosuit_modes_grads.TIF.exportsettings b/Assets/Engine/EngineAssets/Shading/nanosuit_modes_grads.TIF.exportsettings
deleted file mode 100644
index 9f0dd6e1fa..0000000000
--- a/Assets/Engine/EngineAssets/Shading/nanosuit_modes_grads.TIF.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Gradient
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Shading/vignetting.TIF b/Assets/Engine/EngineAssets/Shading/vignetting.TIF
deleted file mode 100644
index f6927566c9..0000000000
--- a/Assets/Engine/EngineAssets/Shading/vignetting.TIF
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:db9bd4b033da336c4247b07997e20fff1446345ff015e44b9955473008518ae6
-size 13169
diff --git a/Assets/Engine/EngineAssets/Shading/vignetting.TIF.exportsettings b/Assets/Engine/EngineAssets/Shading/vignetting.TIF.exportsettings
deleted file mode 100644
index bc731e2711..0000000000
--- a/Assets/Engine/EngineAssets/Shading/vignetting.TIF.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Gradient /reduce=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Sky/optical.lut b/Assets/Engine/EngineAssets/Sky/optical.lut
deleted file mode 100644
index 8d450f306c..0000000000
--- a/Assets/Engine/EngineAssets/Sky/optical.lut
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:480dc461f0601e645dc99dd13375e40eeec34ff826e374d017303a87f3f9d39c
-size 65928
diff --git a/Assets/Engine/EngineAssets/Sky/stars.dat b/Assets/Engine/EngineAssets/Sky/stars.dat
deleted file mode 100644
index 6974b2ebc2..0000000000
--- a/Assets/Engine/EngineAssets/Sky/stars.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:7a1aeecd89902230c98fbeea34ab0a41f2473d493a037572c5b97d7ffcf06ffb
-size 106956
diff --git a/Assets/Engine/EngineAssets/TextureMsg/DefaultNoUVs.tif b/Assets/Engine/EngineAssets/TextureMsg/DefaultNoUVs.tif
deleted file mode 100644
index bd812efa25..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/DefaultNoUVs.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5e9e1371fb108a057d246935b01374f2bb86ae0b126bae471176ce62284eacd7
-size 793918
diff --git a/Assets/Engine/EngineAssets/TextureMsg/DefaultNoUVs.tif.exportsettings b/Assets/Engine/EngineAssets/TextureMsg/DefaultNoUVs.tif.exportsettings
deleted file mode 100644
index 4295f71465..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/DefaultNoUVs.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /dns=0 /preset=Uncompressed /reduce=0 /ser=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/TextureMsg/DefaultNoUVs_ddn.tif b/Assets/Engine/EngineAssets/TextureMsg/DefaultNoUVs_ddn.tif
deleted file mode 100644
index fc02b1f376..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/DefaultNoUVs_ddn.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1b56097f0df01da7ed49311462002f5e1a61b8496306c7ab3b12e17c27afb28a
-size 793918
diff --git a/Assets/Engine/EngineAssets/TextureMsg/DefaultNoUVs_spec.tif b/Assets/Engine/EngineAssets/TextureMsg/DefaultNoUVs_spec.tif
deleted file mode 100644
index e7180a711a..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/DefaultNoUVs_spec.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ba52ff6d59f50b4b5dea6e266572c9e7feb92d5fd85bd0738e0d07d42d234bf7
-size 810996
diff --git a/Assets/Engine/EngineAssets/TextureMsg/DefaultSolids.mtl b/Assets/Engine/EngineAssets/TextureMsg/DefaultSolids.mtl
deleted file mode 100644
index 3e2308aeee..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/DefaultSolids.mtl
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/Assets/Engine/EngineAssets/TextureMsg/DefaultSolids_ddn.tif b/Assets/Engine/EngineAssets/TextureMsg/DefaultSolids_ddn.tif
deleted file mode 100644
index 8b4be7cc8a..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/DefaultSolids_ddn.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ab9a26b4a4b8b4df6bb715b918e1da5a9fcb9b8d55b5d59300f35a5aa1524604
-size 810472
diff --git a/Assets/Engine/EngineAssets/TextureMsg/DefaultSolids_diff.tif b/Assets/Engine/EngineAssets/TextureMsg/DefaultSolids_diff.tif
deleted file mode 100644
index d7f1be254d..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/DefaultSolids_diff.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8b07c594df091bcba9cb73cbf836643adcd0ebad5a38458584f62a9b1b47e41e
-size 793918
diff --git a/Assets/Engine/EngineAssets/TextureMsg/DefaultSolids_diff.tif.exportsettings b/Assets/Engine/EngineAssets/TextureMsg/DefaultSolids_diff.tif.exportsettings
deleted file mode 100644
index 8fbd75fa00..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/DefaultSolids_diff.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Uncompressed /reduce=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/TextureMsg/DefaultSolids_spec.tif b/Assets/Engine/EngineAssets/TextureMsg/DefaultSolids_spec.tif
deleted file mode 100644
index 6516098879..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/DefaultSolids_spec.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:9d1efa9b4a4bf2c826777c1bf5f2a258b179eb6c1ac64f2abb0666f773d37039
-size 810444
diff --git a/Assets/Engine/EngineAssets/TextureMsg/NotFound.psd b/Assets/Engine/EngineAssets/TextureMsg/NotFound.psd
deleted file mode 100644
index 32a7533e48..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/NotFound.psd
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8f26330e140874de1643c3ded94b6b483ef48eede7f6f00ff7b394731a57f400
-size 182830
diff --git a/Assets/Engine/EngineAssets/TextureMsg/NotFound.tif b/Assets/Engine/EngineAssets/TextureMsg/NotFound.tif
deleted file mode 100644
index 4879db8bde..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/NotFound.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b6ba0c05656f79dcdaa5b27a643a8617eb13b506bd19fbcc6b6d8212713045b8
-size 53670
diff --git a/Assets/Engine/EngineAssets/TextureMsg/NotFound_a.tif b/Assets/Engine/EngineAssets/TextureMsg/NotFound_a.tif
deleted file mode 100644
index 4a708f6d6f..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/NotFound_a.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4137a407abce4fc68ccc7e186257364177e1fdaf1fd17703a4740f54fc70de0e
-size 53668
diff --git a/Assets/Engine/EngineAssets/TextureMsg/NotFound_cm.tif b/Assets/Engine/EngineAssets/TextureMsg/NotFound_cm.tif
deleted file mode 100644
index 1c32465d5a..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/NotFound_cm.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2749c2aa22d0864743b4b454938ec6d69bf812698e08f63bd490b407a437e9d0
-size 299472
diff --git a/Assets/Engine/EngineAssets/TextureMsg/NotFound_ddn.tif b/Assets/Engine/EngineAssets/TextureMsg/NotFound_ddn.tif
deleted file mode 100644
index 7fcf759a80..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/NotFound_ddn.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:57aabaa778f8f754c8d25daebeb5d27d25c4f1359668f713107af0f8e425d695
-size 53694
diff --git a/Assets/Engine/EngineAssets/TextureMsg/NotFound_ddna.tif b/Assets/Engine/EngineAssets/TextureMsg/NotFound_ddna.tif
deleted file mode 100644
index 010c7b7cbc..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/NotFound_ddna.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5b4eb4033e2759c2738dedfec4a99eba316f29af31c9cf963232a907a678fd51
-size 70100
diff --git a/Assets/Engine/EngineAssets/TextureMsg/PhysProxyTooBig.tif b/Assets/Engine/EngineAssets/TextureMsg/PhysProxyTooBig.tif
deleted file mode 100644
index c6b5bd1825..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/PhysProxyTooBig.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8f7b61e52df58dec940df92a021c8fb33aad85bed8184403872620b1208568c7
-size 50467
diff --git a/Assets/Engine/EngineAssets/TextureMsg/PhysProxyTooBig.tif.exportsettings b/Assets/Engine/EngineAssets/TextureMsg/PhysProxyTooBig.tif.exportsettings
deleted file mode 100644
index f1ffc00b42..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/PhysProxyTooBig.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /mipmaps=0 /preset=Diffuse_highQ /reduce=-1
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/TextureMsg/RCError.psd b/Assets/Engine/EngineAssets/TextureMsg/RCError.psd
deleted file mode 100644
index fedbe43dac..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/RCError.psd
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:bfe4844d90e5659245c22742c323332c19bb3ffff14f7d09c4efe902b4427f4d
-size 181770
diff --git a/Assets/Engine/EngineAssets/TextureMsg/RCError.tif b/Assets/Engine/EngineAssets/TextureMsg/RCError.tif
deleted file mode 100644
index d4dfcfd4c1..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/RCError.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c3db1ee5ca4dc4fb29c8072833eeac60ecec967d53a299b0e2e2933d4af946af
-size 69030
diff --git a/Assets/Engine/EngineAssets/TextureMsg/RCError_a.tif b/Assets/Engine/EngineAssets/TextureMsg/RCError_a.tif
deleted file mode 100644
index 770d6fa012..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/RCError_a.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:36e916d3b5d4625fc78cf9c36ce5d12b8b676635baf07fef7c53ed154223e6de
-size 53866
diff --git a/Assets/Engine/EngineAssets/TextureMsg/RCError_a.tif.exportsettings b/Assets/Engine/EngineAssets/TextureMsg/RCError_a.tif.exportsettings
deleted file mode 100644
index a9e8dd5937..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/RCError_a.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /dns=1 /preset=Bump2Normalmap_highQ /reduce=0 /ser=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/TextureMsg/RCError_cm.tif b/Assets/Engine/EngineAssets/TextureMsg/RCError_cm.tif
deleted file mode 100644
index 38a78ab5e7..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/RCError_cm.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b83bbaa7a94202b9314f1d4c4ace4a8d0e6cc176cac1a7a1d8e223cc285499f0
-size 299454
diff --git a/Assets/Engine/EngineAssets/TextureMsg/RCError_ddn.tif b/Assets/Engine/EngineAssets/TextureMsg/RCError_ddn.tif
deleted file mode 100644
index 253aad4f60..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/RCError_ddn.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:7cdc6612d476d7013ac3209efdb15f33202b91b5ceb191285722501b1e9dce74
-size 53666
diff --git a/Assets/Engine/EngineAssets/TextureMsg/RCError_ddn.tif.exportsettings b/Assets/Engine/EngineAssets/TextureMsg/RCError_ddn.tif.exportsettings
deleted file mode 100644
index e73350d801..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/RCError_ddn.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Normalmap_highQ /reduce=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/TextureMsg/RCError_ddna.tif b/Assets/Engine/EngineAssets/TextureMsg/RCError_ddna.tif
deleted file mode 100644
index 7742890eba..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/RCError_ddna.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5e13819b05cb55abad806d3a1ce200a801bf42f86c51e28fb78478944fc1f9af
-size 70062
diff --git a/Assets/Engine/EngineAssets/TextureMsg/RCError_ddna.tif.exportsettings b/Assets/Engine/EngineAssets/TextureMsg/RCError_ddna.tif.exportsettings
deleted file mode 100644
index f37d4e3f12..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/RCError_ddna.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=NormalmapWithGlossInAlpha_highQ /reduce=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/TextureMsg/ReplaceMe.tif b/Assets/Engine/EngineAssets/TextureMsg/ReplaceMe.tif
deleted file mode 100644
index 3d645a95ba..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/ReplaceMe.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:44c90e668c659fa48d21a104c8556b8e40af07bf977076cb104c8ccddec117a5
-size 53668
diff --git a/Assets/Engine/EngineAssets/TextureMsg/ReplaceMe.tif.exportsettings b/Assets/Engine/EngineAssets/TextureMsg/ReplaceMe.tif.exportsettings
deleted file mode 100644
index 3b06f73a73..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/ReplaceMe.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /dns=1 /preset=Diffuse_lowQ /reduce=0 /ser=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/TextureMsg/ReplaceMeCm.tif b/Assets/Engine/EngineAssets/TextureMsg/ReplaceMeCm.tif
deleted file mode 100644
index f4d76062ca..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/ReplaceMeCm.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:227999171ec57ac074d2bceb949a75bb96d1c1276ca4d925f39799c2275b9d0b
-size 299460
diff --git a/Assets/Engine/EngineAssets/TextureMsg/ReplaceMeCm.tif.exportsettings b/Assets/Engine/EngineAssets/TextureMsg/ReplaceMeCm.tif.exportsettings
deleted file mode 100644
index ba038977fa..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/ReplaceMeCm.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /dns=1 /preset=EnvironmentProbeHDR /reduce=0 /ser=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/TextureMsg/ReplaceMeRelease.tif b/Assets/Engine/EngineAssets/TextureMsg/ReplaceMeRelease.tif
deleted file mode 100644
index 10f24b0b5f..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/ReplaceMeRelease.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:bb0e9c6d1dc4851d06605876cc9abda2fb24323acea94190059ac78ddc4799ee
-size 3586
diff --git a/Assets/Engine/EngineAssets/TextureMsg/ReplaceMeRelease.tif.exportsettings b/Assets/Engine/EngineAssets/TextureMsg/ReplaceMeRelease.tif.exportsettings
deleted file mode 100644
index 712c89ba18..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/ReplaceMeRelease.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Diffuse_lowQ /reduce=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/TextureMsg/ShaderCompiling.tif b/Assets/Engine/EngineAssets/TextureMsg/ShaderCompiling.tif
deleted file mode 100644
index 84fba5a9a4..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/ShaderCompiling.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c8b00659e3d718cab216073d780819a79294b3e13376b30a332ba188f386e2be
-size 50616
diff --git a/Assets/Engine/EngineAssets/TextureMsg/ShaderCompiling.tif.exportsettings b/Assets/Engine/EngineAssets/TextureMsg/ShaderCompiling.tif.exportsettings
deleted file mode 100644
index 3b06f73a73..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/ShaderCompiling.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /dns=1 /preset=Diffuse_lowQ /reduce=0 /ser=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/TextureMsg/ShaderError.tif b/Assets/Engine/EngineAssets/TextureMsg/ShaderError.tif
deleted file mode 100644
index 991a474820..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/ShaderError.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:7d5f77281d5cd2819011171f6b1b1e22357f1cfe1c44678237b103b0bab5b982
-size 50616
diff --git a/Assets/Engine/EngineAssets/TextureMsg/ShaderError.tif.exportsettings b/Assets/Engine/EngineAssets/TextureMsg/ShaderError.tif.exportsettings
deleted file mode 100644
index 3b06f73a73..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/ShaderError.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /dns=1 /preset=Diffuse_lowQ /reduce=0 /ser=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling.tif b/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling.tif
deleted file mode 100644
index 4510b103e6..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:93028743fba595e586eff6ef960cdd7bf928329930f05e1d2d4717e697e0c8f9
-size 53670
diff --git a/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_a.tif b/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_a.tif
deleted file mode 100644
index a40c2c71b6..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_a.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c24db9d91faedad981ab373f1ec8f9737310f56b69a450b04b20560a40eb4915
-size 53862
diff --git a/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_a.tif.exportsettings b/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_a.tif.exportsettings
deleted file mode 100644
index f8126cdc0c..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_a.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Opacity /reduce=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_cm.tif b/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_cm.tif
deleted file mode 100644
index 820b6e1c0d..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_cm.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b59034f263dc988ffd904cc4bb8e43192c8ee07cd17f109e4f7afe8589ae371a
-size 299446
diff --git a/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_ddn.tif b/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_ddn.tif
deleted file mode 100644
index fcd06dbe9b..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_ddn.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:9e1c5aee7fb4f600c112b15e4abce667be8acd0f24c2251e0a6b52d82c79c00d
-size 53676
diff --git a/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_ddn.tif.exportsettings b/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_ddn.tif.exportsettings
deleted file mode 100644
index e73350d801..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_ddn.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Normalmap_highQ /reduce=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_ddna.tif b/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_ddna.tif
deleted file mode 100644
index 7dff871219..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_ddna.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:11c35a276c494a289734bcd98e8dc08d2a141827b574349c64eadc0e577b5353
-size 70072
diff --git a/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_ddna.tif.exportsettings b/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_ddna.tif.exportsettings
deleted file mode 100644
index f37d4e3f12..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/TextureCompiling_ddna.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=NormalmapWithGlossInAlpha_highQ /reduce=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/TextureMsg/color_Black.tif b/Assets/Engine/EngineAssets/TextureMsg/color_Black.tif
deleted file mode 100644
index d28af6e982..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/color_Black.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:22c0c29e3f3e35c8933b0759eb527fee366634f624971c79075f4b16fd91419c
-size 3538
diff --git a/Assets/Engine/EngineAssets/TextureMsg/color_Blue.tif b/Assets/Engine/EngineAssets/TextureMsg/color_Blue.tif
deleted file mode 100644
index fb7d4bd8e7..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/color_Blue.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b550cc5e03a79150b03a65c0d151e2760f941af3acd24ef5128f80bba3f98ff5
-size 3536
diff --git a/Assets/Engine/EngineAssets/TextureMsg/color_Cyan.tif b/Assets/Engine/EngineAssets/TextureMsg/color_Cyan.tif
deleted file mode 100644
index db2c504fd9..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/color_Cyan.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:597ca43034cf330e1ebac3eeb5a4131e6844378c73ed541864280ce15a721dc2
-size 3538
diff --git a/Assets/Engine/EngineAssets/TextureMsg/color_Green.tif b/Assets/Engine/EngineAssets/TextureMsg/color_Green.tif
deleted file mode 100644
index 75c3fb7a00..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/color_Green.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:cb312fc852bfa7cb70817d6b21fbd82c3e8a65b4afed4b39613a3b4d3e7222c5
-size 3536
diff --git a/Assets/Engine/EngineAssets/TextureMsg/color_Magenta.tif b/Assets/Engine/EngineAssets/TextureMsg/color_Magenta.tif
deleted file mode 100644
index 13497a0fc7..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/color_Magenta.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a54d9825737381e9bc091c58457c7d130b0d93e23e856d03c3f8f7fa132da639
-size 3536
diff --git a/Assets/Engine/EngineAssets/TextureMsg/color_Orange.tif b/Assets/Engine/EngineAssets/TextureMsg/color_Orange.tif
deleted file mode 100644
index 2996fa693a..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/color_Orange.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:06954a7449a60d6b0671634ae8ae8886c993d040ec26df4bef4967dcd3d3d9b4
-size 3540
diff --git a/Assets/Engine/EngineAssets/TextureMsg/color_Purple.tif b/Assets/Engine/EngineAssets/TextureMsg/color_Purple.tif
deleted file mode 100644
index ce71982b5c..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/color_Purple.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5ca7dbd42dc1d68a6c3d45f5cc79bdf7cd67678b0d999ad40ac2f61a31b37bbc
-size 3538
diff --git a/Assets/Engine/EngineAssets/TextureMsg/color_Red.tif b/Assets/Engine/EngineAssets/TextureMsg/color_Red.tif
deleted file mode 100644
index 36d743d698..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/color_Red.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:443d42f6d4b5fe288a1ea05c6c3e455ec05c510a2b29fae1a5b7cb0e4645aa8f
-size 3536
diff --git a/Assets/Engine/EngineAssets/TextureMsg/color_White.tif b/Assets/Engine/EngineAssets/TextureMsg/color_White.tif
deleted file mode 100644
index 7722aa77c6..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/color_White.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1465b842db8dfad5838068b6a993dace78aeb740a458bfdd8a2e82d408d16d40
-size 3538
diff --git a/Assets/Engine/EngineAssets/TextureMsg/color_Yellow.tif b/Assets/Engine/EngineAssets/TextureMsg/color_Yellow.tif
deleted file mode 100644
index c35aebc273..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/color_Yellow.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8e6a94114b07c23157298553c808610ecca867c3bd3f4db8f8c9a920e7463309
-size 3538
diff --git a/Assets/Engine/EngineAssets/TextureMsg/mipmapdebug.tif b/Assets/Engine/EngineAssets/TextureMsg/mipmapdebug.tif
deleted file mode 100644
index 1b4477b9b2..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/mipmapdebug.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:79ce630d5559f9b28ded476de84583311f439db69b55d3fa5b175ba78a6abb18
-size 3546
diff --git a/Assets/Engine/EngineAssets/TextureMsg/orange_for_designer.tif b/Assets/Engine/EngineAssets/TextureMsg/orange_for_designer.tif
deleted file mode 100644
index 5f2b8e6ea4..0000000000
--- a/Assets/Engine/EngineAssets/TextureMsg/orange_for_designer.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:75d21a62e73a5515ce264f8788d2d307924ccc873db90cca78b3925dce702583
-size 3538
diff --git a/Assets/Engine/EngineAssets/Textures/BlackAlpha.tif b/Assets/Engine/EngineAssets/Textures/BlackAlpha.tif
deleted file mode 100644
index 7e959f6d3b..0000000000
--- a/Assets/Engine/EngineAssets/Textures/BlackAlpha.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:423ca7cc5b4a2df64cd31781772fcf099485ec3ab44cd7353afd85fdebcdff70
-size 3538
diff --git a/Assets/Engine/EngineAssets/Textures/BlackCM.tif b/Assets/Engine/EngineAssets/Textures/BlackCM.tif
deleted file mode 100644
index 33d891bc08..0000000000
--- a/Assets/Engine/EngineAssets/Textures/BlackCM.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:db1535dfa207940127002f3bfefbb08509bc1803b179197fdff43bf9d01657df
-size 1168
diff --git a/Assets/Engine/EngineAssets/Textures/BlackCM.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/BlackCM.tif.exportsettings
deleted file mode 100644
index f7cc2642d2..0000000000
--- a/Assets/Engine/EngineAssets/Textures/BlackCM.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=HDRCubemapRGBK_highQ /reduce=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/Cursor_Green.tif b/Assets/Engine/EngineAssets/Textures/Cursor_Green.tif
deleted file mode 100644
index 01e65389c3..0000000000
--- a/Assets/Engine/EngineAssets/Textures/Cursor_Green.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a268774eb6d4d4590960c28edbf2a35d3fb7a73caab38d9ad15812c3df1c0c02
-size 4529
diff --git a/Assets/Engine/EngineAssets/Textures/Cursor_Green.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/Cursor_Green.tif.exportsettings
deleted file mode 100644
index c87bba7f00..0000000000
--- a/Assets/Engine/EngineAssets/Textures/Cursor_Green.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /dns=0 /preset=Diffuse_highQ /reduce=0 /ser=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/FogVolShadowJitter.tif b/Assets/Engine/EngineAssets/Textures/FogVolShadowJitter.tif
deleted file mode 100644
index 87bc05818f..0000000000
--- a/Assets/Engine/EngineAssets/Textures/FogVolShadowJitter.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a993ca7b260014be203dfbcbe6064ea8ec03a6ec66b8f4afd220867f6f8e18b0
-size 17206
diff --git a/Assets/Engine/EngineAssets/Textures/FogVolShadowJitter.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/FogVolShadowJitter.tif.exportsettings
deleted file mode 100644
index 17b79cd4e8..0000000000
--- a/Assets/Engine/EngineAssets/Textures/FogVolShadowJitter.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=ReferenceImage_NoSrgb /reduce=-1 /ser=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/Frozen/frost_noise3.dds b/Assets/Engine/EngineAssets/Textures/Frozen/frost_noise3.dds
deleted file mode 100644
index 037dbce2f8..0000000000
--- a/Assets/Engine/EngineAssets/Textures/Frozen/frost_noise3.dds
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4fd2bf67390d06f52597c54eabead09dedd50c4484c818b68f27aaa7e3c34ba4
-size 21972
diff --git a/Assets/Engine/EngineAssets/Textures/Frozen/frost_noise4.tif b/Assets/Engine/EngineAssets/Textures/Frozen/frost_noise4.tif
deleted file mode 100644
index 3a9a28c11a..0000000000
--- a/Assets/Engine/EngineAssets/Textures/Frozen/frost_noise4.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:45a60cfdb575835df036c69060bb4b29361d3966bd673d97efcc704fc4cb6c07
-size 1056136
diff --git a/Assets/Engine/EngineAssets/Textures/Frozen/snow_spatter.tif b/Assets/Engine/EngineAssets/Textures/Frozen/snow_spatter.tif
deleted file mode 100644
index eab7d12646..0000000000
--- a/Assets/Engine/EngineAssets/Textures/Frozen/snow_spatter.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:7b5e13697bd4ea81f14f9b081c45f21915d1708aa0016c3f1831f9099f2d81eb
-size 1056152
diff --git a/Assets/Engine/EngineAssets/Textures/GreyAlpha.tif b/Assets/Engine/EngineAssets/Textures/GreyAlpha.tif
deleted file mode 100644
index 299ec84640..0000000000
--- a/Assets/Engine/EngineAssets/Textures/GreyAlpha.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1efa5c1e51858933ac5a72e78f37488da1a9cb1d80b53ff5fa7c496b55d678cc
-size 431
diff --git a/Assets/Engine/EngineAssets/Textures/GreyAlpha.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/GreyAlpha.tif.exportsettings
deleted file mode 100644
index 80d11a15b9..0000000000
--- a/Assets/Engine/EngineAssets/Textures/GreyAlpha.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=MergedDetailMap /reduce=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/Palette/cloak_interlation.dds b/Assets/Engine/EngineAssets/Textures/Palette/cloak_interlation.dds
deleted file mode 100644
index c155112b57..0000000000
--- a/Assets/Engine/EngineAssets/Textures/Palette/cloak_interlation.dds
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1e5bd1ea5a3b122d459d77d74a78cf375680c2756c9b291adc9f2b5d30681462
-size 1152
diff --git a/Assets/Engine/EngineAssets/Textures/Palette/cloak_palette.tif b/Assets/Engine/EngineAssets/Textures/Palette/cloak_palette.tif
deleted file mode 100644
index bd74559b54..0000000000
--- a/Assets/Engine/EngineAssets/Textures/Palette/cloak_palette.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:99703d2e8dc577ec1591f88d55a3ebf4e65194512dfa236cae7b69ea33f585a9
-size 3473
diff --git a/Assets/Engine/EngineAssets/Textures/Palette/cloak_palette.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/Palette/cloak_palette.tif.exportsettings
deleted file mode 100644
index bc731e2711..0000000000
--- a/Assets/Engine/EngineAssets/Textures/Palette/cloak_palette.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Gradient /reduce=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/Palette/cloak_sparks.dds b/Assets/Engine/EngineAssets/Textures/Palette/cloak_sparks.dds
deleted file mode 100644
index cfd7222f74..0000000000
--- a/Assets/Engine/EngineAssets/Textures/Palette/cloak_sparks.dds
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:9f51c0778122da00197d9395bee100ce911a6565734fccdae693ca5f19a9c230
-size 1152
diff --git a/Assets/Engine/EngineAssets/Textures/Palette/cloak_transition.dds b/Assets/Engine/EngineAssets/Textures/Palette/cloak_transition.dds
deleted file mode 100644
index 3b92b87e56..0000000000
--- a/Assets/Engine/EngineAssets/Textures/Palette/cloak_transition.dds
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:790a11459b577d50f00c0a5fc6cffaf275142bce57d297d9fa02fa95ecaa0263
-size 2176
diff --git a/Assets/Engine/EngineAssets/Textures/TexelsPerMeterGrad.tif b/Assets/Engine/EngineAssets/Textures/TexelsPerMeterGrad.tif
deleted file mode 100644
index a18bbefdbd..0000000000
--- a/Assets/Engine/EngineAssets/Textures/TexelsPerMeterGrad.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:60a366c2b9499a085df672a5c227f8892de3f628bd92f0317b514a548cd71d14
-size 2348
diff --git a/Assets/Engine/EngineAssets/Textures/TexelsPerMeterGrad.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/TexelsPerMeterGrad.tif.exportsettings
deleted file mode 100644
index 69cc248bb2..0000000000
--- a/Assets/Engine/EngineAssets/Textures/TexelsPerMeterGrad.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /dns=1 /mipmaps=0 /preset=Uncompressed
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/VolumeRaster.tif b/Assets/Engine/EngineAssets/Textures/VolumeRaster.tif
deleted file mode 100644
index 45bbb8142e..0000000000
--- a/Assets/Engine/EngineAssets/Textures/VolumeRaster.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:7387bff8d94078be705ae422ef158a11f1c153677981142b49d4862a8e288c5f
-size 17206
diff --git a/Assets/Engine/EngineAssets/Textures/VolumeRaster.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/VolumeRaster.tif.exportsettings
deleted file mode 100644
index 17b79cd4e8..0000000000
--- a/Assets/Engine/EngineAssets/Textures/VolumeRaster.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=ReferenceImage_NoSrgb /reduce=-1 /ser=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/alienhud_distortionimage.tif b/Assets/Engine/EngineAssets/Textures/alienhud_distortionimage.tif
deleted file mode 100644
index 0c52b4d0e5..0000000000
--- a/Assets/Engine/EngineAssets/Textures/alienhud_distortionimage.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d962e98843482e3eae63f4ad6b7cf828712dd7c5d234c9281a576840a239d5fb
-size 1052998
diff --git a/Assets/Engine/EngineAssets/Textures/alienhud_distortionimage.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/alienhud_distortionimage.tif.exportsettings
deleted file mode 100644
index 2d83032435..0000000000
--- a/Assets/Engine/EngineAssets/Textures/alienhud_distortionimage.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=SF_Image /reduce=0 /ser=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/alienhud_noise1.tif b/Assets/Engine/EngineAssets/Textures/alienhud_noise1.tif
deleted file mode 100644
index 13ee608513..0000000000
--- a/Assets/Engine/EngineAssets/Textures/alienhud_noise1.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b1dddb54cf1a5be262e2bb842dd97696be0119fcff42b3cdb46a12117445110d
-size 198956
diff --git a/Assets/Engine/EngineAssets/Textures/alienhud_noise1.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/alienhud_noise1.tif.exportsettings
deleted file mode 100644
index 2d83032435..0000000000
--- a/Assets/Engine/EngineAssets/Textures/alienhud_noise1.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=SF_Image /reduce=0 /ser=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/black.tif b/Assets/Engine/EngineAssets/Textures/black.tif
deleted file mode 100644
index 362a8033ac..0000000000
--- a/Assets/Engine/EngineAssets/Textures/black.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:94f90a6cf57f680eaaac836e35a0b7e3dd92bbf7e21dcad689ba34b64f431574
-size 310
diff --git a/Assets/Engine/EngineAssets/Textures/black.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/black.tif.exportsettings
deleted file mode 100644
index 0653bb85eb..0000000000
--- a/Assets/Engine/EngineAssets/Textures/black.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Diffuse_lowQ
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/caustics_sampler.dds b/Assets/Engine/EngineAssets/Textures/caustics_sampler.dds
deleted file mode 100644
index a02713c3ab..0000000000
--- a/Assets/Engine/EngineAssets/Textures/caustics_sampler.dds
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:09ef87c3b5538c599d18312d9d93133ae1c80b20e9069b9db26c71333a5a1894
-size 65664
diff --git a/Assets/Engine/EngineAssets/Textures/color.tif b/Assets/Engine/EngineAssets/Textures/color.tif
deleted file mode 100644
index ec9993147c..0000000000
--- a/Assets/Engine/EngineAssets/Textures/color.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:fa4c2cc16af7e442d9d828087a56e295d071c41939bd3846bc0dc92520b0b7df
-size 790872
diff --git a/Assets/Engine/EngineAssets/Textures/default_cch.tif b/Assets/Engine/EngineAssets/Textures/default_cch.tif
deleted file mode 100644
index 28a9a2eb69..0000000000
--- a/Assets/Engine/EngineAssets/Textures/default_cch.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4d9854402feb18ed483c16c70241f52e680e8c723a0b1950107eef0e9bf29080
-size 17472
diff --git a/Assets/Engine/EngineAssets/Textures/default_cch.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/default_cch.tif.exportsettings
deleted file mode 100644
index 5b43521555..0000000000
--- a/Assets/Engine/EngineAssets/Textures/default_cch.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=ColorChart
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/defaults/16_12.tif b/Assets/Engine/EngineAssets/Textures/defaults/16_12.tif
deleted file mode 100644
index 96994f25ea..0000000000
--- a/Assets/Engine/EngineAssets/Textures/defaults/16_12.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4c181af84676aee6732bfd7a3171e6cc0989e826df3a0175b93149be0128ad09
-size 13126
diff --git a/Assets/Engine/EngineAssets/Textures/defaults/16_34.tif b/Assets/Engine/EngineAssets/Textures/defaults/16_34.tif
deleted file mode 100644
index e4b4591a23..0000000000
--- a/Assets/Engine/EngineAssets/Textures/defaults/16_34.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f83408f5be5e3c0b71f749338738884ffba4da1934fa59aaf3bac14a7f99d60d
-size 13126
diff --git a/Assets/Engine/EngineAssets/Textures/defaults/16_5.tif b/Assets/Engine/EngineAssets/Textures/defaults/16_5.tif
deleted file mode 100644
index 628bf229ef..0000000000
--- a/Assets/Engine/EngineAssets/Textures/defaults/16_5.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6ff88186273d111ee3970626106550fffee3724317ff593c5ae772d198251b72
-size 13126
diff --git a/Assets/Engine/EngineAssets/Textures/defaults/16_grey.tif b/Assets/Engine/EngineAssets/Textures/defaults/16_grey.tif
deleted file mode 100644
index 5dd7c1d7df..0000000000
--- a/Assets/Engine/EngineAssets/Textures/defaults/16_grey.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ff67e4b0bcd86d52555c1758d0b3f0b5735efa20c9dda29039c13adebdb43e4b
-size 13124
diff --git a/Assets/Engine/EngineAssets/Textures/defaults/spot_default.tif b/Assets/Engine/EngineAssets/Textures/defaults/spot_default.tif
deleted file mode 100644
index 2e8bd1e02b..0000000000
--- a/Assets/Engine/EngineAssets/Textures/defaults/spot_default.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4722bd7c54465e26a5cd02a81a0bbf1a29723df120999597ecebd90e2dcc62b7
-size 794016
diff --git a/Assets/Engine/EngineAssets/Textures/detailDecalVariation.tif b/Assets/Engine/EngineAssets/Textures/detailDecalVariation.tif
deleted file mode 100644
index 327eae043d..0000000000
--- a/Assets/Engine/EngineAssets/Textures/detailDecalVariation.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:14270aa89ebece4066186f0e2c44e649ef186d393b744e11c16cee5ec86cad03
-size 267632
diff --git a/Assets/Engine/EngineAssets/Textures/dither_2.dds b/Assets/Engine/EngineAssets/Textures/dither_2.dds
deleted file mode 100644
index 0729d5358e..0000000000
--- a/Assets/Engine/EngineAssets/Textures/dither_2.dds
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b73c9acf07a788406561f8bc4769da87f08a70db15c758f41155ed9ce3060dea
-size 176
diff --git a/Assets/Engine/EngineAssets/Textures/dither_pattern_2d.dds b/Assets/Engine/EngineAssets/Textures/dither_pattern_2d.dds
deleted file mode 100644
index 19215fb340..0000000000
--- a/Assets/Engine/EngineAssets/Textures/dither_pattern_2d.dds
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:bb308cbf964b143199b913fc3131c68606659f7710648b079ae702da95ecfb59
-size 176
diff --git a/Assets/Engine/EngineAssets/Textures/flares/Flare_Glow001.tif b/Assets/Engine/EngineAssets/Textures/flares/Flare_Glow001.tif
deleted file mode 100644
index 52ec56faf5..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/Flare_Glow001.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8c77ba9db464c6b31dbd708d45fa2fc2efaec9d707bd260c4751cd678dfe346c
-size 793958
diff --git a/Assets/Engine/EngineAssets/Textures/flares/Flare_Glow002.tif b/Assets/Engine/EngineAssets/Textures/flares/Flare_Glow002.tif
deleted file mode 100644
index 4168d56d7c..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/Flare_Glow002.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:137939729f93182e8fd0dc8363e0bdcee796fc87273c10e93adb3947b65ebcf7
-size 793958
diff --git a/Assets/Engine/EngineAssets/Textures/flares/Flare_Orbs001.tif b/Assets/Engine/EngineAssets/Textures/flares/Flare_Orbs001.tif
deleted file mode 100644
index ac9e0273cb..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/Flare_Orbs001.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3c1d84cca5c354e21af51823920fe2823fba4a2fffa9fa41fced489b81019090
-size 793958
diff --git a/Assets/Engine/EngineAssets/Textures/flares/Flare_SoftSpot001.tif b/Assets/Engine/EngineAssets/Textures/flares/Flare_SoftSpot001.tif
deleted file mode 100644
index ac5266a852..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/Flare_SoftSpot001.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8924ed3a3e55a182d4968c3f8e5f41888e05855f632b25f46d41a406dd0aa492
-size 793962
diff --git a/Assets/Engine/EngineAssets/Textures/flares/Flare_SoftSpot002.tif b/Assets/Engine/EngineAssets/Textures/flares/Flare_SoftSpot002.tif
deleted file mode 100644
index 02344f56e1..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/Flare_SoftSpot002.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:39ac7b3a670d78e4f7846bd98ae8e5abe5eaebc914d2d477b6f221b78523d87e
-size 793962
diff --git a/Assets/Engine/EngineAssets/Textures/flares/Flare_Sun001.tif b/Assets/Engine/EngineAssets/Textures/flares/Flare_Sun001.tif
deleted file mode 100644
index 6b8069bd7f..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/Flare_Sun001.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6a398be45e9d505c6630951754e73cde1e122fa11347a613ea3f7fd1e46b8db8
-size 793956
diff --git a/Assets/Engine/EngineAssets/Textures/flares/flare01.tif b/Assets/Engine/EngineAssets/Textures/flares/flare01.tif
deleted file mode 100644
index 8f872817c6..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/flare01.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:83f6c11eb3297e6b2293947da0b23cb847b27a030e22763de578f34ab7a3313a
-size 794050
diff --git a/Assets/Engine/EngineAssets/Textures/flares/flare02.tif b/Assets/Engine/EngineAssets/Textures/flares/flare02.tif
deleted file mode 100644
index 03d84d772a..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/flare02.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:631da85e4104df95ac439cde3104f35337be5454e63e20648f93c862a1e70c08
-size 794050
diff --git a/Assets/Engine/EngineAssets/Textures/flares/ghost_grey.tif b/Assets/Engine/EngineAssets/Textures/flares/ghost_grey.tif
deleted file mode 100644
index d4bf1b2293..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/ghost_grey.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a8627c0f73a249364dae7354d4e1dfa6c0f5c95335d5261153aa9b1514939c2c
-size 790877
diff --git a/Assets/Engine/EngineAssets/Textures/flares/ghost_multicolor.tif b/Assets/Engine/EngineAssets/Textures/flares/ghost_multicolor.tif
deleted file mode 100644
index df78cffbdb..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/ghost_multicolor.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2f640d0b47bee027916a1b521caa66df374fe9f775e52f42bb4b4d9d8ab10994
-size 790869
diff --git a/Assets/Engine/EngineAssets/Textures/flares/icons/ghost.tif b/Assets/Engine/EngineAssets/Textures/flares/icons/ghost.tif
deleted file mode 100644
index 7577b29834..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/icons/ghost.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:fec00c80ab81af76176ee5073f6371e26ed0d571dd90dce7a179026125a87aa0
-size 27908
diff --git a/Assets/Engine/EngineAssets/Textures/flares/icons/ghost.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/flares/icons/ghost.tif.exportsettings
deleted file mode 100644
index 11f6c88e68..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/icons/ghost.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=ReferenceImage
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/flares/icons/glow.tif b/Assets/Engine/EngineAssets/Textures/flares/icons/glow.tif
deleted file mode 100644
index eac524272c..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/icons/glow.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a050c8cd0d529e6c8de4eac5208696bd71d9fc68c8339427ea5f5f13f9c88d54
-size 27908
diff --git a/Assets/Engine/EngineAssets/Textures/flares/icons/glow.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/flares/icons/glow.tif.exportsettings
deleted file mode 100644
index 11f6c88e68..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/icons/glow.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=ReferenceImage
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/flares/icons/iris_shafts.tif b/Assets/Engine/EngineAssets/Textures/flares/icons/iris_shafts.tif
deleted file mode 100644
index 552e18c617..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/icons/iris_shafts.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:49a8aa0008e248669c7972717e3eec67ac29632d903d1dcced34c4e236fafcf6
-size 27908
diff --git a/Assets/Engine/EngineAssets/Textures/flares/icons/iris_shafts.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/flares/icons/iris_shafts.tif.exportsettings
deleted file mode 100644
index 11f6c88e68..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/icons/iris_shafts.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=ReferenceImage
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/flares/icons/multi_ghost.tif b/Assets/Engine/EngineAssets/Textures/flares/icons/multi_ghost.tif
deleted file mode 100644
index 2818e6c8dd..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/icons/multi_ghost.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:76b338b371b44807169eaaf83f7cfa3fa901ac0898982e2adb2438f12560b669
-size 27908
diff --git a/Assets/Engine/EngineAssets/Textures/flares/icons/multi_ghost.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/flares/icons/multi_ghost.tif.exportsettings
deleted file mode 100644
index 11f6c88e68..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/icons/multi_ghost.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=ReferenceImage
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/flares/icons/orbs.tif b/Assets/Engine/EngineAssets/Textures/flares/icons/orbs.tif
deleted file mode 100644
index 2059681db0..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/icons/orbs.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d0841184dd71588598ebbe85ec798141f13916414cca14d221128a24c3da4ae5
-size 27908
diff --git a/Assets/Engine/EngineAssets/Textures/flares/icons/orbs.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/flares/icons/orbs.tif.exportsettings
deleted file mode 100644
index 11f6c88e68..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/icons/orbs.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=ReferenceImage
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/flares/icons/ring.tif b/Assets/Engine/EngineAssets/Textures/flares/icons/ring.tif
deleted file mode 100644
index 46aee37873..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/icons/ring.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:501707ed6d406e1092a8a2785b5aa50c36b93cdfa6c75d7f525cfe377fa63554
-size 27908
diff --git a/Assets/Engine/EngineAssets/Textures/flares/icons/ring.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/flares/icons/ring.tif.exportsettings
deleted file mode 100644
index 11f6c88e68..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/icons/ring.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=ReferenceImage
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/flares/icons/test_demo.tif b/Assets/Engine/EngineAssets/Textures/flares/icons/test_demo.tif
deleted file mode 100644
index 5dc4467499..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/icons/test_demo.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:15c2a87908377086f513ca4234a1987fd70b29309879ea4006d4858ae9717de9
-size 27908
diff --git a/Assets/Engine/EngineAssets/Textures/flares/icons/test_demo.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/flares/icons/test_demo.tif.exportsettings
deleted file mode 100644
index 11f6c88e68..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/icons/test_demo.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=ReferenceImage
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/flares/icons/vol_shafts.tif b/Assets/Engine/EngineAssets/Textures/flares/icons/vol_shafts.tif
deleted file mode 100644
index 7da59996a6..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/icons/vol_shafts.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6a6374b5b1b90ce2bae2f3f47a7f40323baf64a39a01d02efc90669519138748
-size 27908
diff --git a/Assets/Engine/EngineAssets/Textures/flares/icons/vol_shafts.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/flares/icons/vol_shafts.tif.exportsettings
deleted file mode 100644
index 11f6c88e68..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/icons/vol_shafts.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=ReferenceImage
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/flares/iris_shaft.tif b/Assets/Engine/EngineAssets/Textures/flares/iris_shaft.tif
deleted file mode 100644
index 52a3fdd86f..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/iris_shaft.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c2814503c64308e8beb1fbe302b205450f150a6ba4f798793fed97c82d615aec
-size 794062
diff --git a/Assets/Engine/EngineAssets/Textures/flares/lens_blurshape.tif b/Assets/Engine/EngineAssets/Textures/flares/lens_blurshape.tif
deleted file mode 100644
index eb2afde8b9..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/lens_blurshape.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c37d3db5176041d8702462dba6c1e1c4bff1aecd99f18a8d2b4c4f053601ec0f
-size 794058
diff --git a/Assets/Engine/EngineAssets/Textures/flares/lens_dirtyglass.tif b/Assets/Engine/EngineAssets/Textures/flares/lens_dirtyglass.tif
deleted file mode 100644
index 090991ec7a..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/lens_dirtyglass.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:265ae231486dc6d5d61aa2416b0010ea743722f7238660faeed9edacd46e8a6b
-size 6303186
diff --git a/Assets/Engine/EngineAssets/Textures/flares/lens_noise01.tif b/Assets/Engine/EngineAssets/Textures/flares/lens_noise01.tif
deleted file mode 100644
index 481fc4d483..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/lens_noise01.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:bec356e60aa7ca108bd0d03eefde867eafa8b7c1b20d3797d0cc8cbdeb06648d
-size 794058
diff --git a/Assets/Engine/EngineAssets/Textures/flares/lens_raindrops.tif b/Assets/Engine/EngineAssets/Textures/flares/lens_raindrops.tif
deleted file mode 100644
index a81a1e6356..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/lens_raindrops.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:388a880d5d678578c4b7813423a1c468232fdec811b2c04122a50f2fe3b490e7
-size 794058
diff --git a/Assets/Engine/EngineAssets/Textures/flares/lens_raindrops02.tif b/Assets/Engine/EngineAssets/Textures/flares/lens_raindrops02.tif
deleted file mode 100644
index a5bae77b8b..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/lens_raindrops02.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3f9991d8c0a8e9d4b8d067cdd2bca01c1dc0d9460c92d038ff7c823930b4f2df
-size 794060
diff --git a/Assets/Engine/EngineAssets/Textures/flares/orb_01.tif b/Assets/Engine/EngineAssets/Textures/flares/orb_01.tif
deleted file mode 100644
index 0de0036a23..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/orb_01.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:9fa816ae4ee1a729e137fe568b3f4556d3e470110d71e43717ad43c80159ce22
-size 202178
diff --git a/Assets/Engine/EngineAssets/Textures/flares/orb_cell01.tif b/Assets/Engine/EngineAssets/Textures/flares/orb_cell01.tif
deleted file mode 100644
index b91c873815..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/orb_cell01.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:7e1f49250a2a07597550717764d8e322c26de96ad1bec56d167a7345aecce595
-size 202184
diff --git a/Assets/Engine/EngineAssets/Textures/flares/orb_cell02.tif b/Assets/Engine/EngineAssets/Textures/flares/orb_cell02.tif
deleted file mode 100644
index ef1111742d..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/orb_cell02.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a27b92aa9639a6aa940e08d26dfed1a4e7d0e1fd8f2619d4809dc656f2677e8a
-size 202184
diff --git a/Assets/Engine/EngineAssets/Textures/flares/orb_cell03.tif b/Assets/Engine/EngineAssets/Textures/flares/orb_cell03.tif
deleted file mode 100644
index 07f5293493..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/orb_cell03.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e8ce1d69a2f3bb7d5da1d7dfe87a6a5712c0890645eaa6f24caa54665f3b4efc
-size 798173
diff --git a/Assets/Engine/EngineAssets/Textures/flares/orb_cell04.tif b/Assets/Engine/EngineAssets/Textures/flares/orb_cell04.tif
deleted file mode 100644
index 1c854fab2f..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/orb_cell04.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b34e12872f9a1d5a0b70cd1dfb3c6e20b0b14d68896a642ce1a4c42803f76b90
-size 53702
diff --git a/Assets/Engine/EngineAssets/Textures/flares/spectrum_full.tif b/Assets/Engine/EngineAssets/Textures/flares/spectrum_full.tif
deleted file mode 100644
index 644f8f35e0..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/spectrum_full.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:61bf33e6e739832cbff12fe789756639ffc52f08d28db4d99ce47b4ae3de3a59
-size 794066
diff --git a/Assets/Engine/EngineAssets/Textures/flares/spectrum_half.tif b/Assets/Engine/EngineAssets/Textures/flares/spectrum_half.tif
deleted file mode 100644
index 81faf7487e..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/spectrum_half.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6d769fadcd0d1b20cf44b105551ce5ae403376f8a168a2aca92d21db8cde8ee3
-size 794056
diff --git a/Assets/Engine/EngineAssets/Textures/flares/spectrum_quater.tif b/Assets/Engine/EngineAssets/Textures/flares/spectrum_quater.tif
deleted file mode 100644
index 396200d7a1..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/spectrum_quater.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1a83f72076ae762808b7c3173b9beef754b58163883a470b5b68563f302b9581
-size 794060
diff --git a/Assets/Engine/EngineAssets/Textures/flares/spectrum_specs.tif b/Assets/Engine/EngineAssets/Textures/flares/spectrum_specs.tif
deleted file mode 100644
index 7813ee37e1..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/spectrum_specs.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8eb26394629105cbe1595eb034094e4b8104ba833bc767e0382ec32d985a28ae
-size 808996
diff --git a/Assets/Engine/EngineAssets/Textures/flares/streak01.tif b/Assets/Engine/EngineAssets/Textures/flares/streak01.tif
deleted file mode 100644
index 43771db88d..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/streak01.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:32e1b029417e3a9caff71744a396ad4eb84f3fd6653fb8bb1b18528710016053
-size 794076
diff --git a/Assets/Engine/EngineAssets/Textures/flares/visor_scratch.tif b/Assets/Engine/EngineAssets/Textures/flares/visor_scratch.tif
deleted file mode 100644
index dd578dbef9..0000000000
--- a/Assets/Engine/EngineAssets/Textures/flares/visor_scratch.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:14de7594947439df9bcc984028568f604784699ca3724d52333f9f4d0c0bdaec
-size 6300034
diff --git a/Assets/Engine/EngineAssets/Textures/fresnel_sampler.dds b/Assets/Engine/EngineAssets/Textures/fresnel_sampler.dds
deleted file mode 100644
index 48efb8e480..0000000000
--- a/Assets/Engine/EngineAssets/Textures/fresnel_sampler.dds
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:9066ff9efb84d409b43a0608334e5b90cc762b7c68361f663cf645d96a5e579d
-size 87508
diff --git a/Assets/Engine/EngineAssets/Textures/fringe_map.dds b/Assets/Engine/EngineAssets/Textures/fringe_map.dds
deleted file mode 100644
index 79a9a20091..0000000000
--- a/Assets/Engine/EngineAssets/Textures/fringe_map.dds
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:7910413d84f4e9749963ed3b0ad9a3acccddc4a29448e2a754412f5b58c49ad6
-size 896
diff --git a/Assets/Engine/EngineAssets/Textures/frost_refl2.tif b/Assets/Engine/EngineAssets/Textures/frost_refl2.tif
deleted file mode 100644
index 49ac6e1f79..0000000000
--- a/Assets/Engine/EngineAssets/Textures/frost_refl2.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e0d0de8ebc89184b7c2263aac6b733ffccfe7409e5c1a52496749fc2bc558224
-size 198887
diff --git a/Assets/Engine/EngineAssets/Textures/frost_refl2.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/frost_refl2.tif.exportsettings
deleted file mode 100644
index 2410c3aa57..0000000000
--- a/Assets/Engine/EngineAssets/Textures/frost_refl2.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Diffuse_highQ
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/fuzzy_pow_sampler_merged.dds b/Assets/Engine/EngineAssets/Textures/fuzzy_pow_sampler_merged.dds
deleted file mode 100644
index 03992c26e5..0000000000
--- a/Assets/Engine/EngineAssets/Textures/fuzzy_pow_sampler_merged.dds
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:da9f41e52140a76be2231f96839df627fa4afcf583ae607eb24fc45ca770b6f7
-size 87508
diff --git a/Assets/Engine/EngineAssets/Textures/glass_decalatlas_ddn.tif b/Assets/Engine/EngineAssets/Textures/glass_decalatlas_ddn.tif
deleted file mode 100644
index ee25a17a54..0000000000
--- a/Assets/Engine/EngineAssets/Textures/glass_decalatlas_ddn.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ad762bd8660396808ec8a9d3ef1831f0c1deddbbccac75884dda6f3f051f616e
-size 25182583
diff --git a/Assets/Engine/EngineAssets/Textures/glass_decalatlas_ddn.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/glass_decalatlas_ddn.tif.exportsettings
deleted file mode 100644
index 83bc16b18c..0000000000
--- a/Assets/Engine/EngineAssets/Textures/glass_decalatlas_ddn.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Normalmap_highQ /reduce="pc:1"
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/glass_decalatlas_diff.tif b/Assets/Engine/EngineAssets/Textures/glass_decalatlas_diff.tif
deleted file mode 100644
index f37374b454..0000000000
--- a/Assets/Engine/EngineAssets/Textures/glass_decalatlas_diff.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:92c252b664982ecd184335eb946442ef615d0da245489f84a844834335924fa3
-size 25182588
diff --git a/Assets/Engine/EngineAssets/Textures/glass_decalatlas_diff.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/glass_decalatlas_diff.tif.exportsettings
deleted file mode 100644
index 4a6fc54658..0000000000
--- a/Assets/Engine/EngineAssets/Textures/glass_decalatlas_diff.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Diffuse_lowQ /reduce="pc:1"
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/grey.dds b/Assets/Engine/EngineAssets/Textures/grey.dds
deleted file mode 100644
index f4f478dba2..0000000000
--- a/Assets/Engine/EngineAssets/Textures/grey.dds
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2eb5576242217caaf4d8332bdde2a9716b238c57d8c0965eced06f9db1bae55f
-size 192
diff --git a/Assets/Engine/EngineAssets/Textures/hex.tif b/Assets/Engine/EngineAssets/Textures/hex.tif
deleted file mode 100644
index 8a4ab6bf86..0000000000
--- a/Assets/Engine/EngineAssets/Textures/hex.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:9961f8812d463296d812a53ca6f01e6240f9a3f7d8d1f6083ba7d62e2662b547
-size 50543
diff --git a/Assets/Engine/EngineAssets/Textures/hex.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/hex.tif.exportsettings
deleted file mode 100644
index 199cea8ed3..0000000000
--- a/Assets/Engine/EngineAssets/Textures/hex.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /mipmaps=0 /preset=Diffuse_lowQ /reduce=-1 /ser=1
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/hex_ddn.tif b/Assets/Engine/EngineAssets/Textures/hex_ddn.tif
deleted file mode 100644
index bb7e66905f..0000000000
--- a/Assets/Engine/EngineAssets/Textures/hex_ddn.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f8f5ed1388fa7cb4c7aa50551a15290b54b69bb92f7a958e4887f3b01a9aa5bb
-size 50424
diff --git a/Assets/Engine/EngineAssets/Textures/hex_ddn.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/hex_ddn.tif.exportsettings
deleted file mode 100644
index 9a63850ec9..0000000000
--- a/Assets/Engine/EngineAssets/Textures/hex_ddn.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Normalmap_lowQ
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/hex_grad.tif b/Assets/Engine/EngineAssets/Textures/hex_grad.tif
deleted file mode 100644
index aa6af0c386..0000000000
--- a/Assets/Engine/EngineAssets/Textures/hex_grad.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4e081233f7f5ebdb51f8503d87e5140053be296291f32dd96a02c0f518f787b3
-size 17768
diff --git a/Assets/Engine/EngineAssets/Textures/hex_grad.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/hex_grad.tif.exportsettings
deleted file mode 100644
index 7ee86ca75e..0000000000
--- a/Assets/Engine/EngineAssets/Textures/hex_grad.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /mipmaps=0 /preset=Diffuse_highQ /reduce=-1 /ser=1
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/hex_line.tif b/Assets/Engine/EngineAssets/Textures/hex_line.tif
deleted file mode 100644
index afacca679f..0000000000
--- a/Assets/Engine/EngineAssets/Textures/hex_line.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e0e7205eea74d13546a22d61d245c62a93b312392bb51efb1e87b817f60479de
-size 13040
diff --git a/Assets/Engine/EngineAssets/Textures/hex_line.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/hex_line.tif.exportsettings
deleted file mode 100644
index 712c89ba18..0000000000
--- a/Assets/Engine/EngineAssets/Textures/hex_line.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Diffuse_lowQ /reduce=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/hex_rand.tif b/Assets/Engine/EngineAssets/Textures/hex_rand.tif
deleted file mode 100644
index 964e1b2937..0000000000
--- a/Assets/Engine/EngineAssets/Textures/hex_rand.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:64fda4614ddb8ca6765c1ae6e53f50b1ec4521fdbcab817f173a6bb750fc0bd5
-size 50550
diff --git a/Assets/Engine/EngineAssets/Textures/hex_rand.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/hex_rand.tif.exportsettings
deleted file mode 100644
index 7ee86ca75e..0000000000
--- a/Assets/Engine/EngineAssets/Textures/hex_rand.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /mipmaps=0 /preset=Diffuse_highQ /reduce=-1 /ser=1
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/hiteffect_areas.tif b/Assets/Engine/EngineAssets/Textures/hiteffect_areas.tif
deleted file mode 100644
index 7edcc8a777..0000000000
--- a/Assets/Engine/EngineAssets/Textures/hiteffect_areas.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c604c8974e674df414d57c293690658a7f98775491e4e6f2c05adb374c1cd1f5
-size 17164
diff --git a/Assets/Engine/EngineAssets/Textures/hiteffect_areas.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/hiteffect_areas.tif.exportsettings
deleted file mode 100644
index bc731e2711..0000000000
--- a/Assets/Engine/EngineAssets/Textures/hiteffect_areas.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Gradient /reduce=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/hiteffect_blurmask_ddn.tif b/Assets/Engine/EngineAssets/Textures/hiteffect_blurmask_ddn.tif
deleted file mode 100644
index b6f8514726..0000000000
--- a/Assets/Engine/EngineAssets/Textures/hiteffect_blurmask_ddn.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:60d0cf3babee2d146964a6ff8be053d2189cba453d4979ca79da563ca464cdba
-size 790805
diff --git a/Assets/Engine/EngineAssets/Textures/hiteffect_blurmask_ddn.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/hiteffect_blurmask_ddn.tif.exportsettings
deleted file mode 100644
index e73350d801..0000000000
--- a/Assets/Engine/EngineAssets/Textures/hiteffect_blurmask_ddn.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Normalmap_highQ /reduce=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/hiteffect_healthgradient.tif b/Assets/Engine/EngineAssets/Textures/hiteffect_healthgradient.tif
deleted file mode 100644
index 7b1f8dd841..0000000000
--- a/Assets/Engine/EngineAssets/Textures/hiteffect_healthgradient.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:fdeadbe5f9e01934776eb9b1d5a75548044b65ef9b2d642f07d8917c23018593
-size 2347
diff --git a/Assets/Engine/EngineAssets/Textures/hiteffect_healthgradient.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/hiteffect_healthgradient.tif.exportsettings
deleted file mode 100644
index bc731e2711..0000000000
--- a/Assets/Engine/EngineAssets/Textures/hiteffect_healthgradient.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Gradient /reduce=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/hiteffect_lvlgradient.tif b/Assets/Engine/EngineAssets/Textures/hiteffect_lvlgradient.tif
deleted file mode 100644
index df926cf637..0000000000
--- a/Assets/Engine/EngineAssets/Textures/hiteffect_lvlgradient.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b967fcd2289d80903525b359b8d64d5c892192299380bae6e10dc502053953ef
-size 8491
diff --git a/Assets/Engine/EngineAssets/Textures/hiteffect_lvlgradient.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/hiteffect_lvlgradient.tif.exportsettings
deleted file mode 100644
index bc731e2711..0000000000
--- a/Assets/Engine/EngineAssets/Textures/hiteffect_lvlgradient.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Gradient /reduce=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/hiteffect_round.tif b/Assets/Engine/EngineAssets/Textures/hiteffect_round.tif
deleted file mode 100644
index 68e873b211..0000000000
--- a/Assets/Engine/EngineAssets/Textures/hiteffect_round.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5d8dd60330e367cce032cea92fdc5b8a19756bbba8529372b484af27ffa6ae8a
-size 17138
diff --git a/Assets/Engine/EngineAssets/Textures/hiteffect_round.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/hiteffect_round.tif.exportsettings
deleted file mode 100644
index 712c89ba18..0000000000
--- a/Assets/Engine/EngineAssets/Textures/hiteffect_round.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Diffuse_lowQ /reduce=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/hiteffect_veinsblood.tif b/Assets/Engine/EngineAssets/Textures/hiteffect_veinsblood.tif
deleted file mode 100644
index d995578cdb..0000000000
--- a/Assets/Engine/EngineAssets/Textures/hiteffect_veinsblood.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c14b5f9d12681dc19932331fe54dfcc76e1ae477d6a5dba452207367df8c1202
-size 264453
diff --git a/Assets/Engine/EngineAssets/Textures/hiteffect_veinsblood.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/hiteffect_veinsblood.tif.exportsettings
deleted file mode 100644
index 712c89ba18..0000000000
--- a/Assets/Engine/EngineAssets/Textures/hiteffect_veinsblood.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Diffuse_lowQ /reduce=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/interference.dds b/Assets/Engine/EngineAssets/Textures/interference.dds
deleted file mode 100644
index 5c26a187a0..0000000000
--- a/Assets/Engine/EngineAssets/Textures/interference.dds
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:de64a9dc421e6cecd6f2bca8c7f557be919681366089b949395eeb803ccf047a
-size 12416
diff --git a/Assets/Engine/EngineAssets/Textures/jumpnoisehighfrequency_x27y19.dds b/Assets/Engine/EngineAssets/Textures/jumpnoisehighfrequency_x27y19.dds
deleted file mode 100644
index 86b4b32659..0000000000
--- a/Assets/Engine/EngineAssets/Textures/jumpnoisehighfrequency_x27y19.dds
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ee574cfd5356863428c8dae829c87709ca77050c9c9085b200dffa55f606067b
-size 21972
diff --git a/Assets/Engine/EngineAssets/Textures/moisturedroplets.tif b/Assets/Engine/EngineAssets/Textures/moisturedroplets.tif
deleted file mode 100644
index 5b0fc51b6e..0000000000
--- a/Assets/Engine/EngineAssets/Textures/moisturedroplets.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:07972bfac5649cf7840a6f5f552db9b21479a391d20b295ae7f2fc6dbb923faf
-size 790849
diff --git a/Assets/Engine/EngineAssets/Textures/moisturedroplets.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/moisturedroplets.tif.exportsettings
deleted file mode 100644
index 2410c3aa57..0000000000
--- a/Assets/Engine/EngineAssets/Textures/moisturedroplets.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Diffuse_highQ
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/nightvis_grad.tif b/Assets/Engine/EngineAssets/Textures/nightvis_grad.tif
deleted file mode 100644
index e67ecbd35c..0000000000
--- a/Assets/Engine/EngineAssets/Textures/nightvis_grad.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8d16c7932e9dc5bb8efbb2e1ef54a58b1cfe6ee8a23c7c4fe51e5151636e5f19
-size 8456
diff --git a/Assets/Engine/EngineAssets/Textures/nightvis_grad.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/nightvis_grad.tif.exportsettings
deleted file mode 100644
index 0653bb85eb..0000000000
--- a/Assets/Engine/EngineAssets/Textures/nightvis_grad.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Diffuse_lowQ
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/noise.tif b/Assets/Engine/EngineAssets/Textures/noise.tif
deleted file mode 100644
index 2ad824cefa..0000000000
--- a/Assets/Engine/EngineAssets/Textures/noise.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e53ca51b5f5aacfa21226a6288b55a4154080fba17238a272b3d3573b448280f
-size 20352
diff --git a/Assets/Engine/EngineAssets/Textures/noise3d.dds b/Assets/Engine/EngineAssets/Textures/noise3d.dds
deleted file mode 100644
index 2753ef5b98..0000000000
--- a/Assets/Engine/EngineAssets/Textures/noise3d.dds
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4e3fce3fcecd1bdac2a9d62e9cb5719a9f25c5b6fe001df509cba748f7f0cc83
-size 299722
diff --git a/Assets/Engine/EngineAssets/Textures/oceanwaves_ddn.tif b/Assets/Engine/EngineAssets/Textures/oceanwaves_ddn.tif
deleted file mode 100644
index 9da18f6bf7..0000000000
--- a/Assets/Engine/EngineAssets/Textures/oceanwaves_ddn.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c39553c7cceda6a5444e27a84f856d93dc507dd8d9ad623586cc30455a822a37
-size 197114
diff --git a/Assets/Engine/EngineAssets/Textures/oceanwaves_ddn.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/oceanwaves_ddn.tif.exportsettings
deleted file mode 100644
index 98fc101e5c..0000000000
--- a/Assets/Engine/EngineAssets/Textures/oceanwaves_ddn.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /dns=1 /preset=Normalmap_highQ /reduce=0 /ser=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/palletteInst.dds b/Assets/Engine/EngineAssets/Textures/palletteInst.dds
deleted file mode 100644
index 406465c100..0000000000
--- a/Assets/Engine/EngineAssets/Textures/palletteInst.dds
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:9094bd4e1fa2103865adc9a638a334dc9219c5af42e140eea4974d237c91c80a
-size 4224
diff --git a/Assets/Engine/EngineAssets/Textures/perlinNoise2d.tif b/Assets/Engine/EngineAssets/Textures/perlinNoise2d.tif
deleted file mode 100644
index 53f93082ee..0000000000
--- a/Assets/Engine/EngineAssets/Textures/perlinNoise2d.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1a0a2454422829c1d867d3e4deecfd4a38431db955b1f9abe60365aaf41c104a
-size 198887
diff --git a/Assets/Engine/EngineAssets/Textures/perlinNoise2d.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/perlinNoise2d.tif.exportsettings
deleted file mode 100644
index 2410c3aa57..0000000000
--- a/Assets/Engine/EngineAssets/Textures/perlinNoise2d.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Diffuse_highQ
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/perlinNoiseDerivatives.tif b/Assets/Engine/EngineAssets/Textures/perlinNoiseDerivatives.tif
deleted file mode 100644
index c1ee03cd2c..0000000000
--- a/Assets/Engine/EngineAssets/Textures/perlinNoiseDerivatives.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a12e89f12c3c07f544ea62d77b3a4d82a150d488bceb02a3ef6c06dfa9352d3a
-size 199038
diff --git a/Assets/Engine/EngineAssets/Textures/perlinNoiseDerivatives.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/perlinNoiseDerivatives.tif.exportsettings
deleted file mode 100644
index 38c8fd65a9..0000000000
--- a/Assets/Engine/EngineAssets/Textures/perlinNoiseDerivatives.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /mipmaps=0 /preset=MergedDetailMap_HighQ /reduce=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/perlinNoiseNormal_ddn.tif b/Assets/Engine/EngineAssets/Textures/perlinNoiseNormal_ddn.tif
deleted file mode 100644
index 3f7a251cdc..0000000000
--- a/Assets/Engine/EngineAssets/Textures/perlinNoiseNormal_ddn.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:fd95c4f0a57629a775c1b5c589136f3d572f1b18430a35599337139432b1692a
-size 198919
diff --git a/Assets/Engine/EngineAssets/Textures/perlinNoiseNormal_ddn.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/perlinNoiseNormal_ddn.tif.exportsettings
deleted file mode 100644
index 313e5f7937..0000000000
--- a/Assets/Engine/EngineAssets/Textures/perlinNoiseNormal_ddn.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Normalmap_highQ
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/perlinNoise_sum.tif b/Assets/Engine/EngineAssets/Textures/perlinNoise_sum.tif
deleted file mode 100644
index ebdb9ca7c9..0000000000
--- a/Assets/Engine/EngineAssets/Textures/perlinNoise_sum.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f86e52e64ce696d71d81a9d54e221660c7e12a756335c032310d62785bb52188
-size 198945
diff --git a/Assets/Engine/EngineAssets/Textures/perlinNoise_sum.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/perlinNoise_sum.tif.exportsettings
deleted file mode 100644
index f7de8b3e1c..0000000000
--- a/Assets/Engine/EngineAssets/Textures/perlinNoise_sum.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /mipmaps=0 /preset=SpecularLinear_highQ /reduce=-1 /ser=1
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/perlinNoise_sum_small.tif b/Assets/Engine/EngineAssets/Textures/perlinNoise_sum_small.tif
deleted file mode 100644
index b8da5ce22a..0000000000
--- a/Assets/Engine/EngineAssets/Textures/perlinNoise_sum_small.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2c60abdef7206b096dce61064e2e275b34bdbdcbccd6e93c1bdd786f9474e287
-size 50465
diff --git a/Assets/Engine/EngineAssets/Textures/perlinNoise_sum_small.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/perlinNoise_sum_small.tif.exportsettings
deleted file mode 100644
index f7de8b3e1c..0000000000
--- a/Assets/Engine/EngineAssets/Textures/perlinNoise_sum_small.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /mipmaps=0 /preset=SpecularLinear_highQ /reduce=-1 /ser=1
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/pixeltex.dds b/Assets/Engine/EngineAssets/Textures/pixeltex.dds
deleted file mode 100644
index df603b8aac..0000000000
--- a/Assets/Engine/EngineAssets/Textures/pixeltex.dds
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:13878e66de29eef2b7edf25daa225551afafb5db2df6f54d1db2b2d66486cf72
-size 5588
diff --git a/Assets/Engine/EngineAssets/Textures/rotrandomcm.dds b/Assets/Engine/EngineAssets/Textures/rotrandomcm.dds
deleted file mode 100644
index fe7a3f4a6e..0000000000
--- a/Assets/Engine/EngineAssets/Textures/rotrandomcm.dds
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:44e4dd06faa8b66883f360fd12dc615e4430b487e6249fea0cf76fb2f69734d2
-size 21972
diff --git a/Assets/Engine/EngineAssets/Textures/scratch.tif b/Assets/Engine/EngineAssets/Textures/scratch.tif
deleted file mode 100644
index 9a718ac4e2..0000000000
--- a/Assets/Engine/EngineAssets/Textures/scratch.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ab9f1c094f9e7c8fc570c8853e0f35f17eeacc403d49130b2ef66f27e2a98e36
-size 790759
diff --git a/Assets/Engine/EngineAssets/Textures/scratch.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/scratch.tif.exportsettings
deleted file mode 100644
index 2410c3aa57..0000000000
--- a/Assets/Engine/EngineAssets/Textures/scratch.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Diffuse_highQ
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/scratch_ddn.tif b/Assets/Engine/EngineAssets/Textures/scratch_ddn.tif
deleted file mode 100644
index cbe4308d2f..0000000000
--- a/Assets/Engine/EngineAssets/Textures/scratch_ddn.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d47552ddf5692150e190f83e5879318e9f02d77e558eae0b437fcb72c9ee7025
-size 790795
diff --git a/Assets/Engine/EngineAssets/Textures/scratch_ddn.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/scratch_ddn.tif.exportsettings
deleted file mode 100644
index 313e5f7937..0000000000
--- a/Assets/Engine/EngineAssets/Textures/scratch_ddn.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Normalmap_highQ
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/screen_noisy_bump.dds b/Assets/Engine/EngineAssets/Textures/screen_noisy_bump.dds
deleted file mode 100644
index 4ce73a7534..0000000000
--- a/Assets/Engine/EngineAssets/Textures/screen_noisy_bump.dds
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f46279db44ae90f067a696bb65f46240e1e7e2575986be0f9e106c8d558a6fb0
-size 196736
diff --git a/Assets/Engine/EngineAssets/Textures/screenfrost_alpha.TIF b/Assets/Engine/EngineAssets/Textures/screenfrost_alpha.TIF
deleted file mode 100644
index 5d1c63d430..0000000000
--- a/Assets/Engine/EngineAssets/Textures/screenfrost_alpha.TIF
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d762b6a42f549eb1292a9370fb9bcbcf7a2da1b94a78923f72cd3ee3820465b8
-size 790759
diff --git a/Assets/Engine/EngineAssets/Textures/screenfrost_alpha.TIF.exportsettings b/Assets/Engine/EngineAssets/Textures/screenfrost_alpha.TIF.exportsettings
deleted file mode 100644
index 2410c3aa57..0000000000
--- a/Assets/Engine/EngineAssets/Textures/screenfrost_alpha.TIF.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Diffuse_highQ
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/screenfrost_ddn.TIF b/Assets/Engine/EngineAssets/Textures/screenfrost_ddn.TIF
deleted file mode 100644
index b8e70bfdb5..0000000000
--- a/Assets/Engine/EngineAssets/Textures/screenfrost_ddn.TIF
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1bc7e428d3a86f1aaa3ffc56acd0d161448efad229df6c045119f5d1f937ae5c
-size 790761
diff --git a/Assets/Engine/EngineAssets/Textures/screenfrost_ddn.TIF.exportsettings b/Assets/Engine/EngineAssets/Textures/screenfrost_ddn.TIF.exportsettings
deleted file mode 100644
index 313e5f7937..0000000000
--- a/Assets/Engine/EngineAssets/Textures/screenfrost_ddn.TIF.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Normalmap_highQ
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/snowflakes.tif b/Assets/Engine/EngineAssets/Textures/snowflakes.tif
deleted file mode 100644
index 3aa735bd3e..0000000000
--- a/Assets/Engine/EngineAssets/Textures/snowflakes.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f33f071b6f2328de78ef587d49431ebdfe80196f6de67fa7de4020e2a6ba530c
-size 264574
diff --git a/Assets/Engine/EngineAssets/Textures/snowflakes.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/snowflakes.tif.exportsettings
deleted file mode 100644
index 48e278914d..0000000000
--- a/Assets/Engine/EngineAssets/Textures/snowflakes.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /mipmaps=0 /preset=MergedDetailMap_HighQ /reduce=-1 /ser=1
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/startscreen.tif b/Assets/Engine/EngineAssets/Textures/startscreen.tif
deleted file mode 100644
index 863a543967..0000000000
--- a/Assets/Engine/EngineAssets/Textures/startscreen.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:02be3914c92506ba4daad73c968fd760eb02cc9f2d956b7869a62fba6fd20281
-size 6298508
diff --git a/Assets/Engine/EngineAssets/Textures/startscreen.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/startscreen.tif.exportsettings
deleted file mode 100644
index 6ec5b5fdc0..0000000000
--- a/Assets/Engine/EngineAssets/Textures/startscreen.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=ReferenceImage_Linear
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/user_tex1.tif b/Assets/Engine/EngineAssets/Textures/user_tex1.tif
deleted file mode 100644
index d995578cdb..0000000000
--- a/Assets/Engine/EngineAssets/Textures/user_tex1.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c14b5f9d12681dc19932331fe54dfcc76e1ae477d6a5dba452207367df8c1202
-size 264453
diff --git a/Assets/Engine/EngineAssets/Textures/user_tex2.tif b/Assets/Engine/EngineAssets/Textures/user_tex2.tif
deleted file mode 100644
index 53f93082ee..0000000000
--- a/Assets/Engine/EngineAssets/Textures/user_tex2.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1a0a2454422829c1d867d3e4deecfd4a38431db955b1f9abe60365aaf41c104a
-size 198887
diff --git a/Assets/Engine/EngineAssets/Textures/vector_noise.dds b/Assets/Engine/EngineAssets/Textures/vector_noise.dds
deleted file mode 100644
index 037dbce2f8..0000000000
--- a/Assets/Engine/EngineAssets/Textures/vector_noise.dds
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4fd2bf67390d06f52597c54eabead09dedd50c4484c818b68f27aaa7e3c34ba4
-size 21972
diff --git a/Assets/Engine/EngineAssets/Textures/water_droplets.dds b/Assets/Engine/EngineAssets/Textures/water_droplets.dds
deleted file mode 100644
index 5b2df9cb03..0000000000
--- a/Assets/Engine/EngineAssets/Textures/water_droplets.dds
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8742fe47027898df8cfb3cfeb48cd4259fdd6d5a3bf7c65ece8aad1281d50c32
-size 349652
diff --git a/Assets/Engine/EngineAssets/Textures/water_gloss.tif b/Assets/Engine/EngineAssets/Textures/water_gloss.tif
deleted file mode 100644
index b0096fcba8..0000000000
--- a/Assets/Engine/EngineAssets/Textures/water_gloss.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:50d5ad54b7dbcd8adc0bb34e54fca04b6de2173a452a6b199fc9c9a1df72d112
-size 790869
diff --git a/Assets/Engine/EngineAssets/Textures/water_gloss.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/water_gloss.tif.exportsettings
deleted file mode 100644
index 53c03113a0..0000000000
--- a/Assets/Engine/EngineAssets/Textures/water_gloss.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Diffuse_highQ /reduce=0
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/white.tif b/Assets/Engine/EngineAssets/Textures/white.tif
deleted file mode 100644
index 349b265d38..0000000000
--- a/Assets/Engine/EngineAssets/Textures/white.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2265f065d74da5357a5e33109944d586c861d8fb5aa560eeb2a77e0332edc4a6
-size 328
diff --git a/Assets/Engine/EngineAssets/Textures/white.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/white.tif.exportsettings
deleted file mode 100644
index 0653bb85eb..0000000000
--- a/Assets/Engine/EngineAssets/Textures/white.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /preset=Diffuse_lowQ
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/white_cm.tif b/Assets/Engine/EngineAssets/Textures/white_cm.tif
deleted file mode 100644
index 05ae4b6861..0000000000
--- a/Assets/Engine/EngineAssets/Textures/white_cm.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:49e9c083ea2c8c8b2a5d58b83f03ef10b1eb3583f7fb50d8ef7391991218a857
-size 679
diff --git a/Assets/Engine/EngineAssets/Textures/white_cm.tif.exportsettings b/Assets/Engine/EngineAssets/Textures/white_cm.tif.exportsettings
deleted file mode 100644
index 4e668d38f8..0000000000
--- a/Assets/Engine/EngineAssets/Textures/white_cm.tif.exportsettings
+++ /dev/null
@@ -1 +0,0 @@
-/autooptimizefile=0 /mipmaps=0 /ms=0 /preset=HDRCubemapRGBK_highQ /reduce=4
\ No newline at end of file
diff --git a/Assets/Engine/EngineAssets/Textures/white_ddn.tif b/Assets/Engine/EngineAssets/Textures/white_ddn.tif
deleted file mode 100644
index dc70af1eda..0000000000
--- a/Assets/Engine/EngineAssets/Textures/white_ddn.tif
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:042240663b9c5df981e3f93431226a9561843621a52dbf064fad439441e3a5a6
-size 512
diff --git a/Assets/Engine/EngineAssets/defaulttextures.xml b/Assets/Engine/EngineAssets/defaulttextures.xml
deleted file mode 100644
index e4c73f7f2a..0000000000
--- a/Assets/Engine/EngineAssets/defaulttextures.xml
+++ /dev/null
@@ -1,79 +0,0 @@
-
-
-
- Usage="NoTextureCM", FileName="EngineAssets/TextureMsg/ReplaceMeCM.dds", Flags="FT_DONT_RELEASE | FT_DONT_STREAM"
-
-
-
-
-
-
-
- EngineAssets/Textures/caustics_sampler.dds
- EngineAssets/Textures/default_cch.dds
- EngineAssets/Textures/detailDecalVariation.dds
- EngineAssets/Textures/dither_2.dds
- EngineAssets/Textures/dither_pattern_2d.dds
- EngineAssets/Textures/fresnel_sampler.dds
- EngineAssets/Textures/fringe_map.dds
- EngineAssets/Textures/frost_refl2.dds
- EngineAssets/Textures/fuzzy_pow_sampler_merged.dds
- EngineAssets/Textures/glass_decalatlas_ddn.dds
- EngineAssets/Textures/glass_decalatlas_diff.dds
- EngineAssets/Textures/interference.dds
- EngineAssets/Textures/noise.dds
- EngineAssets/Textures/noise3d.dds
- EngineAssets/Textures/oceanwaves_ddn.dds
- EngineAssets/Textures/palette/cloak_interlation.dds
- EngineAssets/Textures/palette/cloak_palette.dds
- EngineAssets/Textures/palette/cloak_sparks.dds
- EngineAssets/Textures/palette/cloak_transition.dds
- EngineAssets/Textures/perlinNoise2D.dds
- EngineAssets/Textures/perlinNoiseNormal_ddn.dds
- EngineAssets/Textures/rotrandom.dds
- EngineAssets/Textures/rotrandomCM.dds
- EngineAssets/Textures/scratch.dds
- EngineAssets/Textures/screen_noisy_bump.dds
- EngineAssets/Textures/screenfrost_alpha.dds
- EngineAssets/Textures/screenfrost_ddn.dds
- EngineAssets/Textures/water_droplets.dds
- EngineAssets/Textures/water_gloss.dds
- EngineAssets/Textures/perlinNoise_sum.dds
- EngineAssets/ScreenSpace/NormalsFitting.dds
- EngineAssets/ScreenSpace/PointsOnSphere4x4.dds
- EngineAssets/Shading/layer_effect_anim_function.dds
- EngineAssets/Shading/WaterFoam.dds
- EngineAssets/Shading/generic_reflections.dds
- EngineAssets/Shading/ThermalVisionGradient.dds
- EngineAssets/Shading/environmentBRDF.dds
- EngineAssets/Shading/defaultprobe_cm.dds
- EngineAssets/Shading/defaultprobe_cm_diff.dds
- EngineAssets/TextureMsg/ShaderCompiling.dds
- EngineAssets/TextureMsg/ShaderError.dds
- EngineAssets/Textures/JumpNoiseHighFrequency_x27y19.dds
- EngineAssets/Textures/TexelsPerMeterGrad.dds
- EngineAssets/Textures/vector_noise.dds
- EngineAssets/Textures/alienhud_distortionimage.dds
- EngineAssets/Textures/alienhud_noise1.dds
- EngineAssets/Icons/LevelShaderCacheMiss.dds
- EngineAssets/ScreenSpace/grain_bayer_mul.dds
- EngineAssets/Textures/pixeltex.dds
- EngineAssets/Textures/white_cm.dds
- EngineAssets/Textures/hex_ddn.dds
- engineassets/screenspace/bokeh_pentagon.dds
- engineassets/screenspace/areatex.dds
- engineassets/screenspace/searchtex.dds
- engineassets/textures/nightvis_grad.dds
- engineassets/shading/sonarvisiongradient.dds
- engineassets/shading/thermalvisiongradient.dds
- engineassets/textures/hex.dds
- engineassets/textures/hex_rand.dds
- engineassets/textures/hex_grad.dds
- engineassets/textures/perlinnoise_sum_small.dds
- engineassets/textures/fogvolshadowjitter.dds
-
-
-
-
-
diff --git a/AutomatedTesting/Gem/Code/enabled_gems.cmake b/AutomatedTesting/Gem/Code/enabled_gems.cmake
index f732281487..f27d61908a 100644
--- a/AutomatedTesting/Gem/Code/enabled_gems.cmake
+++ b/AutomatedTesting/Gem/Code/enabled_gems.cmake
@@ -48,7 +48,14 @@ set(ENABLED_GEMS
LyShine
HttpRequestor
Atom_AtomBridge
- AWSCore
- AWSClientAuth
- AWSMetrics
)
+
+# TODO remove conditional add once AWSNativeSDK libs are fixed for Android and Linux Monolithic release.
+set(aws_excluded_platforms Linux Android)
+if (NOT (LY_MONOLITHIC_GAME AND ${PAL_PLATFORM_NAME} IN_LIST aws_excluded_platforms))
+ list(APPEND ENABLED_GEMS
+ AWSCore
+ AWSClientAuth
+ AWSMetrics
+ )
+endif()
diff --git a/AutomatedTesting/Gem/PythonTests/AWS/CMakeLists.txt b/AutomatedTesting/Gem/PythonTests/AWS/CMakeLists.txt
index 8f228c34fc..8ba799d638 100644
--- a/AutomatedTesting/Gem/PythonTests/AWS/CMakeLists.txt
+++ b/AutomatedTesting/Gem/PythonTests/AWS/CMakeLists.txt
@@ -17,7 +17,6 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED AND PAL_TRAIT_BUILD_HOST_TOOLS)
TEST_SUITE periodic
TEST_SERIAL
PATH ${CMAKE_CURRENT_LIST_DIR}/${PAL_PLATFORM_NAME}/
- TIMEOUT 3000
RUNTIME_DEPENDENCIES
Legacy::Editor
AZ::AssetProcessor
diff --git a/AutomatedTesting/preview.png b/AutomatedTesting/preview.png
index c6928d31fc..82234dbf6b 100644
--- a/AutomatedTesting/preview.png
+++ b/AutomatedTesting/preview.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:b9cd9d6f67440c193a85969ec5c082c6343e6d1fff3b6f209a0a6931eb22dd47
-size 2949
+oid sha256:1cf8339fb51f82a68d2ab475c0476960e75a79d96d239c5b7cd272fbe4990ffe
+size 2770
diff --git a/Code/CryEngine/CryCommon/LyShine/Bus/UiSystemBus.h b/Code/CryEngine/CryCommon/LyShine/Bus/UiSystemBus.h
index 682bfe753e..8b17ca591c 100644
--- a/Code/CryEngine/CryCommon/LyShine/Bus/UiSystemBus.h
+++ b/Code/CryEngine/CryCommon/LyShine/Bus/UiSystemBus.h
@@ -18,11 +18,6 @@ public:
// Public functions
- //! Initialize the UI system. This should be called when all other systems that the UI
- //! system depends upon are initialized. Once the engine is fully modularized this
- //! function will be unnecessary.
- virtual void InitializeSystem() {}
-
//! Register a component type with the UI system.
//! The order in which component types are registered is the order that they show up in
//! the add component and in the properties pane.
diff --git a/Code/CryEngine/CrySystem/System.h b/Code/CryEngine/CrySystem/System.h
index 2ecc8ebeb2..8c122d0df2 100644
--- a/Code/CryEngine/CrySystem/System.h
+++ b/Code/CryEngine/CrySystem/System.h
@@ -431,7 +431,6 @@ private:
bool InitFileSystem();
bool InitFileSystem_LoadEngineFolders(const SSystemInitParams& initParams);
bool InitAudioSystem(const SSystemInitParams& initParams);
- bool InitShine(const SSystemInitParams& initParams);
//@}
diff --git a/Code/CryEngine/CrySystem/SystemInit.cpp b/Code/CryEngine/CrySystem/SystemInit.cpp
index 7464df8ec2..4b07de6933 100644
--- a/Code/CryEngine/CrySystem/SystemInit.cpp
+++ b/Code/CryEngine/CrySystem/SystemInit.cpp
@@ -852,16 +852,6 @@ bool CSystem::InitVTuneProfiler()
return true;
}
-/////////////////////////////////////////////////////////////////////////////////
-bool CSystem::InitShine([[maybe_unused]] const SSystemInitParams& initParams)
-{
- LOADING_TIME_PROFILE_SECTION(GetISystem());
-
- EBUS_EVENT(UiSystemBus, InitializeSystem);
-
- return true;
-}
-
//////////////////////////////////////////////////////////////////////////
void CSystem::InitLocalization()
{
@@ -1550,20 +1540,6 @@ AZ_POP_DISABLE_WARNING
}
m_Time.ResetTimer();
- //////////////////////////////////////////////////////////////////////////
- // UI. Should be after input and hardware mouse
- //////////////////////////////////////////////////////////////////////////
- if (!m_bDedicatedServer)
- {
- AZ_Printf(AZ_TRACE_SYSTEM_WINDOW, "UI system initialization");
- INDENT_LOG_DURING_SCOPE();
- if (!InitShine(startupParams))
- {
- return false;
- }
- }
-
- InlineInitializationProcessing("CSystem::Init InitShine");
// CONSOLE
//////////////////////////////////////////////////////////////////////////
if (!InitConsole())
diff --git a/Code/Framework/AzCore/AzCore/Component/Entity.cpp b/Code/Framework/AzCore/AzCore/Component/Entity.cpp
index 0d643b933f..a6a7d4899d 100644
--- a/Code/Framework/AzCore/AzCore/Component/Entity.cpp
+++ b/Code/Framework/AzCore/AzCore/Component/Entity.cpp
@@ -14,6 +14,7 @@
#include
#include
#include
+#include
#include
#include
@@ -927,13 +928,39 @@ namespace AZ
return candidateInfo;
}
+ static constexpr AZStd::string_view GetExtendedDependencySortFailureMessage(const Entity::DependencySortResult code)
+ {
+ switch (code)
+ {
+ case Entity::DependencySortResult::MissingRequiredService:
+ return {
+ "One or more components that provide required services are not in the list of components to activate.\n"
+ "This can often happen when an AZ::Module containing the required service wasn't loaded, check the log for details.\n"
+ "\n"
+ "This can also be caused by misconfigured services on the component or related components.\n"
+ "Check that the ccomponent's service functions ('GetProvidedServices', 'GetIncompatibleServices' etc) are accurate.\n"};
+ case Entity::DependencySortResult::HasIncompatibleServices:
+ return {
+ "A component is incompatible with a service provided by another component.\n"
+ "Check that the component's service functions ('GetProvidedServices', 'GetIncompatibleServices' etc) are accurate.\n"};
+ case Entity::DependencySortResult::DescriptorNotRegistered:
+ return { "A component descriptor was not registered with the ComponentApplication.\n"
+ "Make sure the component's descriptor is registered by adding it to the appropriate\n"
+ "AZ::Module's m_descriptors list." };
+ default:
+ return {};
+ }
+ }
+
// Shortcut for returning a FailedSortDetails as an AZ::Failure.
static FailureValue FailureCode(Entity::DependencySortResult code, const char* formatMessage, ...)
{
va_list args;
va_start(args, formatMessage);
-
- return Failure(Entity::FailedSortDetails{ code, AZStd::string::format_arg(formatMessage, args) });
+ auto failure = Failure(Entity::FailedSortDetails{ code, AZStd::string::format_arg(formatMessage, args),
+ GetExtendedDependencySortFailureMessage(code) });
+ va_end(args);
+ return failure;
}
// Function that creates a nice error message when incompatible components are found.
@@ -1066,7 +1093,7 @@ namespace AZ
ComponentDescriptorBus::EventResult(componentDescriptor, azrtti_typeid(component), &ComponentDescriptorBus::Events::GetDescriptor);
if (!componentDescriptor)
{
- return FailureCode(DependencySortResult::MissingDescriptor, "No descriptor found for Component class '%s'.", component->RTTI_GetTypeName());
+ return FailureCode(DependencySortResult::DescriptorNotRegistered, "No descriptor registered for Component class '%s'.", component->RTTI_GetTypeName());
}
componentInfos.push_back();
diff --git a/Code/Framework/AzCore/AzCore/Component/Entity.h b/Code/Framework/AzCore/AzCore/Component/Entity.h
index 236df89c88..d874b21cea 100644
--- a/Code/Framework/AzCore/AzCore/Component/Entity.h
+++ b/Code/Framework/AzCore/AzCore/Component/Entity.h
@@ -73,7 +73,6 @@ namespace AZ
HasCyclicDependency, ///< A cycle in component service dependencies was detected.
HasIncompatibleServices, ///< A component is incompatible with a service provided by another component.
DescriptorNotRegistered, ///< A component descriptor was not registered with the AZ::ComponentApplication.
- MissingDescriptor, ///< Cannot find a component's ComponentDescriptor
// Deprecated values
DSR_OK = Success,
@@ -315,6 +314,7 @@ namespace AZ
{
DependencySortResult m_code;
AZStd::string m_message;
+ AZStd::string m_extendedMessage;
};
using DependencySortOutcome = AZ::Outcome;
diff --git a/Code/Framework/AzCore/AzCore/Module/ModuleManager.cpp b/Code/Framework/AzCore/AzCore/Module/ModuleManager.cpp
index e90157d9bb..cbdf71b7e9 100644
--- a/Code/Framework/AzCore/AzCore/Module/ModuleManager.cpp
+++ b/Code/Framework/AzCore/AzCore/Module/ModuleManager.cpp
@@ -16,6 +16,7 @@
#include
#include
#include
+#include
#include
#include
@@ -24,7 +25,7 @@
namespace
{
- static const char* s_moduleLoggingScope = "Module";
+ static const char* s_moduleLoggingScope = "Module Manager";
}
namespace AZ
@@ -596,6 +597,25 @@ namespace AZ
return {};
}
+ //=========================================================================
+ // HandleDependencySortError
+ //=========================================================================
+ void ModuleManager::HandleDependencySortError(const Entity::DependencySortOutcome& outcome)
+ {
+ // Print a short message to the log, and an extended message to the nativeUI (if available)
+ auto errorMessage = AZStd::string::format("Modules Entities cannot be activated.\n\n%s", outcome.GetError().m_message.c_str());
+ AZ_Error(s_moduleLoggingScope, false, errorMessage.c_str());
+
+ auto nativeUI = AZ::Interface::Get();
+ if (nativeUI)
+ {
+ errorMessage.append("\n\n");
+ errorMessage.append(outcome.GetError().m_extendedMessage);
+ auto choice = nativeUI->DisplayBlockingDialog(s_moduleLoggingScope, errorMessage, { "Quit", "Ignore" });
+ m_quitRequested = (choice == "Quit");
+ }
+ }
+
//=========================================================================
// OnEntityActivated
//=========================================================================
@@ -682,15 +702,24 @@ namespace AZ
const Entity::ComponentArrayType& systemEntityComponents = systemEntity->GetComponents();
componentsToActivate.insert(componentsToActivate.begin(), systemEntityComponents.begin(), systemEntityComponents.end());
}
-
+
// Topo sort components, activate them
Entity::DependencySortOutcome outcome = ModuleEntity::DependencySort(componentsToActivate);
if (!outcome.IsSuccess())
{
- AZ_Error(s_moduleLoggingScope, false, "Modules Entities cannot be activated. %s", outcome.GetError().m_message.c_str());
+ HandleDependencySortError(outcome);
+ if (m_quitRequested)
+ {
+ // Before letting the application quit, all the module entities should be restored back to init state
+ // because they never fully exited the activating state.
+ for (auto& moduleData : modulesToInit)
+ {
+ moduleData->m_moduleEntity->SetState(Entity::State::Init);
+ }
+ }
return;
}
-
+
for (auto componentIt = componentsToActivate.begin(); componentIt != componentsToActivate.end(); )
{
Component* component = *componentIt;
@@ -706,7 +735,6 @@ namespace AZ
++componentIt;
}
}
-
// Activate the entities in the appropriate order
for (Component* component : componentsToActivate)
diff --git a/Code/Framework/AzCore/AzCore/Module/ModuleManager.h b/Code/Framework/AzCore/AzCore/Module/ModuleManager.h
index d138d53f57..369b4ab70b 100644
--- a/Code/Framework/AzCore/AzCore/Module/ModuleManager.h
+++ b/Code/Framework/AzCore/AzCore/Module/ModuleManager.h
@@ -128,6 +128,9 @@ namespace AZ
// Get the split list of system component tags specified at startup
const AZStd::vector& GetSystemComponentTags() { return m_systemComponentTags; }
+ // Whether the user wants to quit the Application on errors rather than proceeding in a likely bad state
+ bool m_quitRequested = false;
+
protected:
////////////////////////////////////////////////////////////////////////
// ModuleManagerRequestBus
@@ -143,7 +146,10 @@ namespace AZ
//! @return shared ptr to an ModuleData structure if the module is loaded and managed by the ModuleManager
AZStd::shared_ptr GetLoadedModule(AZStd::string_view modulePath);
- ////////////////////////////////////////////////////////////////////////
+
+ //! On dependency sort errors, display error message with details.
+ //! Additionally send the message to NativeUI (if available) and ask user what to do,
+ void HandleDependencySortError(const Entity::DependencySortOutcome& outcome);
////////////////////////////////////////////////////////////////////////
// EntityBus
diff --git a/Code/Framework/AzCore/AzCore/NativeUI/NativeUIRequests.h b/Code/Framework/AzCore/AzCore/NativeUI/NativeUIRequests.h
index fc6c0b0374..7959846a6e 100644
--- a/Code/Framework/AzCore/AzCore/NativeUI/NativeUIRequests.h
+++ b/Code/Framework/AzCore/AzCore/NativeUI/NativeUIRequests.h
@@ -12,7 +12,7 @@
namespace AZ::NativeUI
{
- enum AssertAction
+ enum class AssertAction
{
IGNORE_ASSERT = 0,
IGNORE_ALL_ASSERTS,
@@ -20,27 +20,60 @@ namespace AZ::NativeUI
NONE,
};
+ enum class Mode
+ {
+ DISABLED = 0,
+ ENABLED,
+ };
+
class NativeUIRequests
{
public:
AZ_RTTI(NativeUIRequests, "{48361EE6-C1E7-4965-A13A-7425B2691817}");
virtual ~NativeUIRequests() = default;
- // Waits for user to select an option before execution continues
- // Returns the option string selected by the user
- virtual AZStd::string DisplayBlockingDialog(const AZStd::string& /*title*/, const AZStd::string& /*message*/, const AZStd::vector& /*options*/) const { return ""; };
+ //! Waits for user to select an option before execution continues
+ //! Returns the option string selected by the user
+ virtual AZStd::string DisplayBlockingDialog(
+ [[maybe_unused]] const AZStd::string& title,
+ [[maybe_unused]] const AZStd::string& message,
+ [[maybe_unused]] const AZStd::vector& options) const
+ {
+ return {};
+ }
- // Waits for user to select an option ('Ok' or optionally 'Cancel') before execution continues
- // Returns the option string selected by the user
- virtual AZStd::string DisplayOkDialog(const AZStd::string& /*title*/, const AZStd::string& /*message*/, bool /*showCancel*/) const { return ""; };
+ //! Waits for user to select an option ('Ok' or optionally 'Cancel') before execution continues
+ //! Returns the option string selected by the user
+ virtual AZStd::string DisplayOkDialog(
+ [[maybe_unused]] const AZStd::string& title,
+ [[maybe_unused]] const AZStd::string& message,
+ [[maybe_unused]] bool showCancel) const
+ {
+ return {};
+ }
- // Waits for user to select an option ('Yes', 'No' or optionally 'Cancel') before execution continues
- // Returns the option string selected by the user
- virtual AZStd::string DisplayYesNoDialog(const AZStd::string& /*title*/, const AZStd::string& /*message*/, bool /*showCancel*/) const { return ""; };
+ //! Waits for user to select an option ('Yes', 'No' or optionally 'Cancel') before execution continues
+ //! Returns the option string selected by the user
+ virtual AZStd::string DisplayYesNoDialog(
+ [[maybe_unused]] const AZStd::string& title,
+ [[maybe_unused]] const AZStd::string& message,
+ [[maybe_unused]] bool showCancel) const
+ {
+ return {};
+ }
- // Displays an assert dialog box
- // Returns the action selected by the user
- virtual AssertAction DisplayAssertDialog(const AZStd::string& /*message*/) const { return AssertAction::NONE; };
+ //! Displays an assert dialog box
+ //! Returns the action selected by the user
+ virtual AssertAction DisplayAssertDialog([[maybe_unused]] const AZStd::string& message) const { return AssertAction::NONE; }
+
+ //! Set the operation mode of the native UI systen
+ void SetMode(NativeUI::Mode mode)
+ {
+ m_mode = mode;
+ }
+
+ protected:
+ NativeUI::Mode m_mode = NativeUI::Mode::DISABLED;
};
class NativeUIEBusTraits
diff --git a/Code/Framework/AzCore/AzCore/NativeUI/NativeUISystemComponent.cpp b/Code/Framework/AzCore/AzCore/NativeUI/NativeUISystemComponent.cpp
index 293aa93384..66cd69f739 100644
--- a/Code/Framework/AzCore/AzCore/NativeUI/NativeUISystemComponent.cpp
+++ b/Code/Framework/AzCore/AzCore/NativeUI/NativeUISystemComponent.cpp
@@ -24,6 +24,11 @@ namespace AZ::NativeUI
AssertAction NativeUISystem::DisplayAssertDialog(const AZStd::string& message) const
{
+ if (m_mode == NativeUI::Mode::DISABLED)
+ {
+ return AssertAction::NONE;
+ }
+
static const char* buttonNames[3] = { "Ignore", "Ignore All", "Break" };
AZStd::vector options;
options.push_back(buttonNames[0]);
@@ -31,8 +36,8 @@ namespace AZ::NativeUI
options.push_back(buttonNames[1]);
#endif
options.push_back(buttonNames[2]);
- AZStd::string result;
- result = DisplayBlockingDialog("Assert Failed!", message, options);
+
+ AZStd::string result = DisplayBlockingDialog("Assert Failed!", message, options);
if (result.compare(buttonNames[0]) == 0)
return AssertAction::IGNORE_ASSERT;
@@ -46,9 +51,13 @@ namespace AZ::NativeUI
AZStd::string NativeUISystem::DisplayOkDialog(const AZStd::string& title, const AZStd::string& message, bool showCancel) const
{
- AZStd::vector options;
+ if (m_mode == NativeUI::Mode::DISABLED)
+ {
+ return {};
+ }
+
+ AZStd::vector options{ "OK" };
- options.push_back("OK");
if (showCancel)
{
options.push_back("Cancel");
@@ -59,10 +68,13 @@ namespace AZ::NativeUI
AZStd::string NativeUISystem::DisplayYesNoDialog(const AZStd::string& title, const AZStd::string& message, bool showCancel) const
{
- AZStd::vector options;
+ if (m_mode == NativeUI::Mode::DISABLED)
+ {
+ return {};
+ }
+
+ AZStd::vector options{ "Yes", "No" };
- options.push_back("Yes");
- options.push_back("No");
if (showCancel)
{
options.push_back("Cancel");
diff --git a/Code/Framework/AzCore/AzCore/Serialization/EditContextConstants.inl b/Code/Framework/AzCore/AzCore/Serialization/EditContextConstants.inl
index 4c0dbc4cdb..f63aedb3c2 100644
--- a/Code/Framework/AzCore/AzCore/Serialization/EditContextConstants.inl
+++ b/Code/Framework/AzCore/AzCore/Serialization/EditContextConstants.inl
@@ -181,7 +181,7 @@ namespace AZ
//! @code{.cpp}
//! editContext->Class("Lua Script", "The Lua Script component allows you to add arbitrary Lua logic to an entity in the form of a Lua script")
//! ->ClassElement(AZ::Edit::ClassElements::EditorData, "")
- //! ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.o3de.org/docs/user-guide/components/reference/lua-script/")
+ //! ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://o3de.org/docs/user-guide/components/reference/lua-script/")
//! @endcode
const static AZ::Crc32 HelpPageURL = AZ_CRC("HelpPageURL", 0xa344d681);
diff --git a/Code/Framework/AzCore/AzCore/Serialization/Json/JsonSerializer.cpp b/Code/Framework/AzCore/AzCore/Serialization/Json/JsonSerializer.cpp
index 51943536e8..057c0591b0 100644
--- a/Code/Framework/AzCore/AzCore/Serialization/Json/JsonSerializer.cpp
+++ b/Code/Framework/AzCore/AzCore/Serialization/Json/JsonSerializer.cpp
@@ -483,6 +483,9 @@ namespace AZ
// tell the caller of this function to write the type id and provide a default object, if requested, for
// the specific polymorphic instance the pointer is pointing to.
const AZ::Uuid& actualClassId = rtti.GetActualUuid(object);
+
+ // Note: If it is crashing here, it might be that you're serializing a pointer and forgot to initialize it with nullptr.
+ // Check the elementClassData to identify the causing element.
const AZ::Uuid& actualDefaultClassId = rtti.GetActualUuid(defaultObject);
if (actualClassId != rtti.GetTypeId())
diff --git a/Code/Framework/AzCore/Platform/Android/AzCore/NativeUI/NativeUISystemComponent_Android.cpp b/Code/Framework/AzCore/Platform/Android/AzCore/NativeUI/NativeUISystemComponent_Android.cpp
index fd7fb7aa40..39f1bf98b8 100644
--- a/Code/Framework/AzCore/Platform/Android/AzCore/NativeUI/NativeUISystemComponent_Android.cpp
+++ b/Code/Framework/AzCore/Platform/Android/AzCore/NativeUI/NativeUISystemComponent_Android.cpp
@@ -19,6 +19,11 @@ namespace AZ
{
AZStd::string NativeUISystem::DisplayBlockingDialog(const AZStd::string& title, const AZStd::string& message, const AZStd::vector& options) const
{
+ if (m_mode == NativeUI::Mode::DISABLED)
+ {
+ return {};
+ }
+
AZ::Android::JNI::Object object("com/amazon/lumberyard/NativeUI/LumberyardNativeUI");
object.RegisterStaticMethod("DisplayDialog", "(Landroid/app/Activity;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V");
object.RegisterStaticMethod("GetUserSelection", "()Ljava/lang/String;");
diff --git a/Code/Framework/AzCore/Platform/Mac/AzCore/NativeUI/NativeUISystemComponent_Mac.mm b/Code/Framework/AzCore/Platform/Mac/AzCore/NativeUI/NativeUISystemComponent_Mac.mm
index 11f669c52f..4691bb6c24 100644
--- a/Code/Framework/AzCore/Platform/Mac/AzCore/NativeUI/NativeUISystemComponent_Mac.mm
+++ b/Code/Framework/AzCore/Platform/Mac/AzCore/NativeUI/NativeUISystemComponent_Mac.mm
@@ -23,6 +23,11 @@ namespace AZ
{
AZStd::string NativeUISystem::DisplayBlockingDialog(const AZStd::string& title, const AZStd::string& message, const AZStd::vector& options) const
{
+ if (m_mode == NativeUI::Mode::DISABLED)
+ {
+ return {};
+ }
+
__block NSModalResponse response = -1;
auto showDialog = ^()
diff --git a/Code/Framework/AzCore/Platform/Windows/AzCore/NativeUI/NativeUISystemComponent_Windows.cpp b/Code/Framework/AzCore/Platform/Windows/AzCore/NativeUI/NativeUISystemComponent_Windows.cpp
index 58f56f9772..6c28c63a75 100644
--- a/Code/Framework/AzCore/Platform/Windows/AzCore/NativeUI/NativeUISystemComponent_Windows.cpp
+++ b/Code/Framework/AzCore/Platform/Windows/AzCore/NativeUI/NativeUISystemComponent_Windows.cpp
@@ -242,6 +242,11 @@ namespace AZ
{
AZStd::string NativeUISystem::DisplayBlockingDialog(const AZStd::string& title, const AZStd::string& message, const AZStd::vector& options) const
{
+ if (m_mode == NativeUI::Mode::DISABLED)
+ {
+ return {};
+ }
+
if (options.size() >= MAX_ITEMS)
{
AZ_Assert(false, "Cannot create dialog box with more than %d buttons", (MAX_ITEMS - 1));
diff --git a/Code/Framework/AzCore/Platform/iOS/AzCore/NativeUI/NativeUISystemComponent_iOS.mm b/Code/Framework/AzCore/Platform/iOS/AzCore/NativeUI/NativeUISystemComponent_iOS.mm
index 3b6f5f372e..24729cb669 100644
--- a/Code/Framework/AzCore/Platform/iOS/AzCore/NativeUI/NativeUISystemComponent_iOS.mm
+++ b/Code/Framework/AzCore/Platform/iOS/AzCore/NativeUI/NativeUISystemComponent_iOS.mm
@@ -15,6 +15,11 @@ namespace AZ
{
AZStd::string NativeUISystem::DisplayBlockingDialog(const AZStd::string& title, const AZStd::string& message, const AZStd::vector& options) const
{
+ if (m_mode == NativeUI::Mode::DISABLED)
+ {
+ return {};
+ }
+
__block AZStd::string userSelection = "";
NSString* nsTitle = [NSString stringWithUTF8String:title.c_str()];
diff --git a/Code/Framework/AzCore/Tests/Components.cpp b/Code/Framework/AzCore/Tests/Components.cpp
index 163f9f3e6f..8a6649570a 100644
--- a/Code/Framework/AzCore/Tests/Components.cpp
+++ b/Code/Framework/AzCore/Tests/Components.cpp
@@ -904,14 +904,14 @@ namespace UnitTest
EXPECT_EQ(2, m_entity->GetComponents().size());
}
- TEST_F(ComponentDependency, ComponentWithoutDescriptor_FailsDueToMissingDescriptor)
+ TEST_F(ComponentDependency, ComponentWithoutDescriptor_FailsDueToUnregisteredDescriptor)
{
CreateComponents_ABCDE();
// delete ComponentB's descriptor
ComponentDescriptorBus::Event(azrtti_typeid(), &ComponentDescriptorBus::Events::ReleaseDescriptor);
- EXPECT_EQ(Entity::DependencySortResult::MissingDescriptor, m_entity->EvaluateDependencies());
+ EXPECT_EQ(Entity::DependencySortResult::DescriptorNotRegistered, m_entity->EvaluateDependencies());
}
TEST_F(ComponentDependency, StableSort_GetsSameResultsEveryTime)
diff --git a/Code/Framework/AzCore/Tests/Serialization/Json/JsonSerializerConformityTests.h b/Code/Framework/AzCore/Tests/Serialization/Json/JsonSerializerConformityTests.h
index b2d90964b6..b2ab3df6b2 100644
--- a/Code/Framework/AzCore/Tests/Serialization/Json/JsonSerializerConformityTests.h
+++ b/Code/Framework/AzCore/Tests/Serialization/Json/JsonSerializerConformityTests.h
@@ -1201,8 +1201,10 @@ namespace JsonSerializationTests
if (this->m_features.m_enableInitializationTest)
{
auto instance = this->m_description.CreateDefaultInstance();
- AZStd::remove_cvref_t compare;
+ AZ_PUSH_DISABLE_WARNING(4701, "-Wuninitialized-const-reference")
+ typename TypeParam::Type compare;
if (!this->m_description.AreEqual(*instance, compare))
+ AZ_POP_DISABLE_WARNING
{
auto serializer = this->m_description.CreateSerializer();
BaseJsonSerializer::OperationFlags flags = serializer->GetOperationsFlags();
diff --git a/Code/Framework/AzFramework/AzFramework/Application/Application.cpp b/Code/Framework/AzFramework/AzFramework/Application/Application.cpp
index 3459372191..bb2e1ec050 100644
--- a/Code/Framework/AzFramework/AzFramework/Application/Application.cpp
+++ b/Code/Framework/AzFramework/AzFramework/Application/Application.cpp
@@ -255,7 +255,7 @@ namespace AzFramework
systemEntity->Activate();
AZ_Assert(systemEntity->GetState() == AZ::Entity::State::Active, "System Entity failed to activate.");
- m_isStarted = true;
+ m_isStarted = (systemEntity->GetState() == AZ::Entity::State::Active);
}
void Application::PreModuleLoad()
diff --git a/Code/Framework/AzNetworking/AzNetworking/Framework/ICompressor.h b/Code/Framework/AzNetworking/AzNetworking/Framework/ICompressor.h
index fce7ceed3d..552df26984 100644
--- a/Code/Framework/AzNetworking/AzNetworking/Framework/ICompressor.h
+++ b/Code/Framework/AzNetworking/AzNetworking/Framework/ICompressor.h
@@ -31,7 +31,7 @@ namespace AzNetworking
//! @brief Packet data compressor interface.
//!
//! ICompressor is an abstract compression interface meant for user provided GEMs to implement (such as the [Multiplayer
- //! Compression Gem](http://docs.o3de.org/docs/user-guide/gems/reference/multiplayer-compression)).
+ //! Compression Gem](http://o3de.org/docs/user-guide/gems/reference/multiplayer-compression)).
//! Compression is supported for both TCP and UDP connections. Instantiation of a compressor is controlled by the
//! `net_UdpCompressor` or `net_TcpCompressor` cvar for their respective protocols.
@@ -94,7 +94,7 @@ namespace AzNetworking
//! ICompressorFactory is an abstract compression interface meant for user provided GEMs to implement. ICompressorFactory
//! implementations can be registered to classes implementing INetworking. Registered factories can then be used to create
//! ICompressor implementations on demand. The [Multiplayer Compression
- //! Gem](http://docs.o3de.org/docs/user-guide/gems/reference/multiplayer-compression) is an example of an ICompressorFactory
+ //! Gem](http://o3de.org/docs/user-guide/gems/reference/multiplayer-compression) is an example of an ICompressorFactory
//! for an LZ4 Compressor. In it, MultiplayerCompressionSystemComponent registers its ICompressorFactory with
//! NetworkingSystemComponent, which is an implementation of INetworking. Registered factories are keyed by their AZ Name
//! which is accessed through the factory's GetFactoryName method.
diff --git a/Code/Framework/AzNetworking/AzNetworking/Framework/INetworking.h b/Code/Framework/AzNetworking/AzNetworking/Framework/INetworking.h
index 020ac4171d..b418db83e2 100644
--- a/Code/Framework/AzNetworking/AzNetworking/Framework/INetworking.h
+++ b/Code/Framework/AzNetworking/AzNetworking/Framework/INetworking.h
@@ -25,7 +25,7 @@ namespace AzNetworking
//!
//! INetworking is also responsible for registering ICompressorFactory implementations. This allows a developer to have
//! access to multiple ICompressorFactory implementations by name. The [MultiplayerCompressor
- //! Gem](http://docs.o3de.org/docs/user-guide/gems/reference/multiplayer-compression) is an example of this using the
+ //! Gem](http://o3de.org/docs/user-guide/gems/reference/multiplayer-compression) is an example of this using the
//! [LZ4](https://wikipedia.org/wiki/LZ4_%28compression_algorithm%29) algorithm.
//!
diff --git a/Code/Framework/AzNetworking/AzNetworking/PacketLayer/IPacket.h b/Code/Framework/AzNetworking/AzNetworking/PacketLayer/IPacket.h
index 83d681ae43..264674f914 100644
--- a/Code/Framework/AzNetworking/AzNetworking/PacketLayer/IPacket.h
+++ b/Code/Framework/AzNetworking/AzNetworking/PacketLayer/IPacket.h
@@ -27,7 +27,7 @@ namespace AzNetworking
//! ISerializer to move data between hosts safely and efficiently.
//!
//! For more information on the packet format and best practices for extending the packet system, read
- //! [Networking Packets](http://docs.o3de.org/docs/user-guide/networking/packets) on the O3DE documentation site.
+ //! [Networking Packets](http://o3de.org/docs/user-guide/networking/packets) on the O3DE documentation site.
class IPacket
{
public:
diff --git a/Code/Framework/AzNetworking/AzNetworking/TcpTransport/TcpNetworkInterface.h b/Code/Framework/AzNetworking/AzNetworking/TcpTransport/TcpNetworkInterface.h
index aad153345a..47dc80e158 100644
--- a/Code/Framework/AzNetworking/AzNetworking/TcpTransport/TcpNetworkInterface.h
+++ b/Code/Framework/AzNetworking/AzNetworking/TcpTransport/TcpNetworkInterface.h
@@ -34,7 +34,7 @@ namespace AzNetworking
//! * Header - Details the type of packet and other information related to reliability
//! * Payload - The actual serialized content of the packet
//!
- //! For more information, read [Networking Packets](http://docs.o3de.org/docs/user-guide/networking/packets) in the O3DE documentation.
+ //! For more information, read [Networking Packets](http://o3de.org/docs/user-guide/networking/packets) in the O3DE documentation.
//!
//! ## Reliability
//!
diff --git a/Code/Framework/AzNetworking/AzNetworking/UdpTransport/UdpNetworkInterface.h b/Code/Framework/AzNetworking/AzNetworking/UdpTransport/UdpNetworkInterface.h
index 1cb3cfddec..b3e7e3f823 100644
--- a/Code/Framework/AzNetworking/AzNetworking/UdpTransport/UdpNetworkInterface.h
+++ b/Code/Framework/AzNetworking/AzNetworking/UdpTransport/UdpNetworkInterface.h
@@ -43,7 +43,7 @@ namespace AzNetworking
//! * Header - Details the type of packet and other information related to reliability
//! * Payload - The actual serialized content of the packet
//!
- //! For more information, read [Networking Packets](http://docs.o3de.org/docs/user-guide/networking/packets) in the O3DE documentation.
+ //! For more information, read [Networking Packets](http://o3de.org/docs/user-guide/networking/packets) in the O3DE documentation.
//!
//! ### Reliability
//!
@@ -72,7 +72,7 @@ namespace AzNetworking
//! ### Encryption
//!
//! AzNetworking uses the [OpenSSL](https://www.openssl.org/) library to implement Datagram Layer Transport Security (DTLS) encryption
- //! on UDP traffic. Encryption operates as described in [O3DE Networking Encryption](http://docs.o3de.org/docs/user-guide/networking/encryption)
+ //! on UDP traffic. Encryption operates as described in [O3DE Networking Encryption](http://o3de.org/docs/user-guide/networking/encryption)
//! on the documentation website. Once both endpoints have completed their handshake, all traffic is expected to be fully encrypted.
class UdpNetworkInterface final
: public INetworkInterface
diff --git a/Code/Framework/AzQtComponents/AzQtComponents/AzQtComponentsAPI.h b/Code/Framework/AzQtComponents/AzQtComponents/AzQtComponentsAPI.h
index 2ad7c1da03..aaabb06136 100644
--- a/Code/Framework/AzQtComponents/AzQtComponents/AzQtComponentsAPI.h
+++ b/Code/Framework/AzQtComponents/AzQtComponents/AzQtComponentsAPI.h
@@ -19,7 +19,7 @@
* API refernce for all tools developers that are extending Open 3D Engine. The API reference
* is intended for C++ programmers building tools. For UX designers looking to understand
* the best patterns and practices when making a tool to comfortably integrate with
- * the Open 3D Engine editor, see the [UI 2.0 design guide](https://docs.o3de.org/docs/tools-ui/ui-dev-intro/).
+ * the Open 3D Engine editor, see the [UI 2.0 design guide](https://o3de.org/docs/tools-ui/ui-dev-intro/).
*/
#include
diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/VectorInput.cpp b/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/VectorInput.cpp
index c140941bd0..e012a10ef0 100644
--- a/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/VectorInput.cpp
+++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/VectorInput.cpp
@@ -10,6 +10,7 @@
#include
#include
+#include
#include
#include
@@ -38,7 +39,7 @@ VectorElement::VectorElement(QWidget* parent)
VectorElement::layout(this, m_spinBox, m_label, false);
connect(m_spinBox, QOverload::of(&AzQtComponents::DoubleSpinBox::valueChanged), this, &VectorElement::onValueChanged);
- connect(m_spinBox, &AzQtComponents::DoubleSpinBox::editingFinished, this, &VectorElement::editingFinished);
+ connect(m_spinBox, &AzQtComponents::DoubleSpinBox::editingFinished, this, &VectorElement::onSpinBoxEditingFinished);
}
void VectorElement::SetLabel(const char* label)
@@ -60,6 +61,22 @@ const QString& VectorElement::label() const
void VectorElement::setValue(double newValue)
{
+ // Nothing to do if the value is not actually changed
+ if (AZ::IsCloseMag(m_value, newValue, AZStd::numeric_limits::epsilon()))
+ {
+ return;
+ }
+
+ // If the spin box currently has focus, the user is editing it, so we should not
+ // change the value from non-user input while they're in the middle of editing
+ if (m_spinBox->hasFocus())
+ {
+ auto& deferredValue = m_deferredExternalValue.emplace();
+ deferredValue.value = newValue;
+ deferredValue.prevValue = m_value;
+ return;
+ }
+
m_value = newValue;
const QSignalBlocker blocker(m_spinBox);
m_spinBox->setValue(newValue);
@@ -67,6 +84,23 @@ void VectorElement::setValue(double newValue)
emit valueChanged(newValue);
}
+void VectorElement::onSpinBoxEditingFinished()
+{
+ if (m_deferredExternalValue)
+ {
+ DeferredSetValue deferredValue = *m_deferredExternalValue;
+ m_deferredExternalValue.reset();
+
+ if (m_value == deferredValue.prevValue)
+ {
+ AZ_Assert(!m_spinBox->hasFocus(), "Editing finished but the spinbox still has focus");
+ setValue(deferredValue.value);
+ }
+ }
+
+ emit editingFinished();
+}
+
void VectorElement::setCoordinate(VectorElement::Coordinate coordinate)
{
setProperty(g_CoordinatePropertyName, QVariant::fromValue(coordinate));
@@ -249,7 +283,7 @@ VectorInput::VectorInput(QWidget* parent, int elementCount, int elementsPerRow,
{
OnValueChangedInElement(value, elementIndex);
});
- connect(m_elements[elementIndex]->GetSpinBox(), &AzQtComponents::DoubleSpinBox::editingFinished, this, &VectorInput::editingFinished);
+ connect(m_elements[elementIndex], &VectorElement::editingFinished, this, &VectorInput::editingFinished);
numberOfElementsRemaining--;
}
diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/VectorInput.h b/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/VectorInput.h
index 44caa59e49..17eacea8dd 100644
--- a/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/VectorInput.h
+++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/VectorInput.h
@@ -9,6 +9,7 @@
#if !defined(Q_MOC_RUN)
#include
#include
+#include
#endif
class QLabel;
@@ -18,6 +19,10 @@ namespace AzQtComponents
class Style;
+ // 'AzQtComponents::VectorElement::m_deferredExternalValue': class 'AZStd::optional' needs to
+ // have dll-interface to be used by clients of class 'AzQtComponents::VectorElement'
+ AZ_PUSH_DISABLE_DLL_EXPORT_MEMBER_WARNING
+
/*!
* \class VectorElement
* \brief All flexible vector GUI's are constructed using a number vector elements. Each Vector
@@ -98,7 +103,15 @@ namespace AzQtComponents
void resizeLabel();
+ void onSpinBoxEditingFinished();
+
private:
+ struct DeferredSetValue
+ {
+ double prevValue;
+ double value;
+ };
+
// m_labelText must be initialised before m_spinBox. It is used by editFieldRect, which gets
// called by the spin box constructor.
QString m_labelText = {};
@@ -108,8 +121,13 @@ namespace AzQtComponents
double m_value = 0.0;
//! Indicates whether the value in the spin box has been edited by the user or not
bool m_wasValueEditedByUser = false;
+ //! If a value is editing, but not by the user, and the user is currently editing the value,
+ //! avoid overwriting their work, until they finish editing
+ AZStd::optional m_deferredExternalValue;
};
+ AZ_POP_DISABLE_DLL_EXPORT_MEMBER_WARNING
+
//////////////////////////////////////////////////////////////////////////
/*!
diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Gallery/CardPage.cpp b/Code/Framework/AzQtComponents/AzQtComponents/Gallery/CardPage.cpp
index 61a7a8cd7f..5964b1546f 100644
--- a/Code/Framework/AzQtComponents/AzQtComponents/Gallery/CardPage.cpp
+++ b/Code/Framework/AzQtComponents/AzQtComponents/Gallery/CardPage.cpp
@@ -64,7 +64,7 @@ AzQtComponents::CardHeader* header = ui->functionalCard->header();
header->setIcon(QIcon(":/Cards/img/UI20/Cards/slice_item.png"));
// Set the help url to open in a browser if the user clicks the help button
-header->setHelpURL("https://docs.o3de.org/docs/");
+header->setHelpURL("https://o3de.org/docs/");
// Clear the help url
header->clearHelpURL();
@@ -103,7 +103,7 @@ card->mockDisabledState(true);
ui->disabledCard->setTitle("Actually Disabled Card");
ui->disabledCard->setContentWidget(new QWidget());
ui->disabledCard->header()->setIcon(QIcon(QStringLiteral(":/stylesheet/img/search.svg")));
- ui->disabledCard->header()->setHelpURL("https://docs.o3de.org/docs/");
+ ui->disabledCard->header()->setHelpURL("https://o3de.org/docs/");
ui->disabledCard->setSecondaryTitle("Secondary Title");
ui->disabledCard->setSecondaryContentWidget(new QWidget());
ui->disabledCard->setEnabled(false);
@@ -111,7 +111,7 @@ card->mockDisabledState(true);
ui->disabledCard2->setTitle("Mock Disabled Card");
ui->disabledCard2->setContentWidget(new QWidget());
ui->disabledCard2->header()->setIcon(QIcon(QStringLiteral(":/stylesheet/img/search.svg")));
- ui->disabledCard2->header()->setHelpURL("https://docs.o3de.org/docs/");
+ ui->disabledCard2->header()->setHelpURL("https://o3de.org/docs/");
ui->disabledCard2->setSecondaryTitle("Secondary Title");
ui->disabledCard2->setSecondaryContentWidget(new QWidget());
ui->disabledCard2->mockDisabledState(true);
@@ -122,7 +122,7 @@ card->mockDisabledState(true);
// put in an example icon
AzQtComponents::CardHeader* header = ui->functionalCard->header();
header->setIcon(QIcon(":/Cards/img/UI20/Cards/slice_item.png"));
- header->setHelpURL("https://docs.o3de.org/docs/");
+ header->setHelpURL("https://o3de.org/docs/");
connect(ui->addButton, &QPushButton::clicked, this, &CardPage::addNotification);
diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Gallery/ReflectedPropertyEditorPage.cpp b/Code/Framework/AzQtComponents/AzQtComponents/Gallery/ReflectedPropertyEditorPage.cpp
index 739cf3e549..3ed448b1c2 100644
--- a/Code/Framework/AzQtComponents/AzQtComponents/Gallery/ReflectedPropertyEditorPage.cpp
+++ b/Code/Framework/AzQtComponents/AzQtComponents/Gallery/ReflectedPropertyEditorPage.cpp
@@ -316,7 +316,7 @@ See the documentation linked above for more details.
)";
ui->exampleText->setHtml(exampleText);
- ui->hyperlinkLabel->setText(QStringLiteral(R"(Reflected Property Editor docs)"));
+ ui->hyperlinkLabel->setText(QStringLiteral(R"(Reflected Property Editor docs)"));
}
ReflectedPropertyEditorPage::~ReflectedPropertyEditorPage()
diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Views/EntryDelegate.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Views/EntryDelegate.cpp
index 611e26582d..a557b7e3b3 100644
--- a/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Views/EntryDelegate.cpp
+++ b/Code/Framework/AzToolsFramework/AzToolsFramework/AssetBrowser/Views/EntryDelegate.cpp
@@ -121,9 +121,9 @@ namespace AzToolsFramework
{
return 0;
}
- bool thumbnailLoading;
- ThumbnailerRequestsBus::BroadcastResult(thumbnailLoading, &ThumbnailerRequests::IsLoading, thumbnailKey, m_thumbnailContext.c_str());
- if (thumbnailLoading)
+
+ const Thumbnail::State thumbnailState = thumbnail->GetState();
+ if (thumbnailState == Thumbnail::State::Loading)
{
AzQtComponents::StyledBusyLabel* busyLabel;
AssetBrowserComponentRequestBus::BroadcastResult(busyLabel , &AssetBrowserComponentRequests::GetStyledBusyLabel);
@@ -132,7 +132,7 @@ namespace AzToolsFramework
busyLabel->DrawTo(painter, QRectF(point.x(), point.y(), size.width(), size.height()));
}
}
- else
+ else if (thumbnailState == Thumbnail::State::Ready)
{
// Scaling and centering pixmap within bounds to preserve aspect ratio
const QPixmap pixmap = thumbnail->GetPixmap().scaled(size, Qt::KeepAspectRatio, Qt::SmoothTransformation);
@@ -140,6 +140,10 @@ namespace AzToolsFramework
const QPoint pointDelta = QPoint(sizeDelta.width() / 2, sizeDelta.height() / 2);
painter->drawPixmap(point + pointDelta, pixmap);
}
+ else
+ {
+ AZ_Assert(false, "Thumbnail state %d unexpected here", int(thumbnailState));
+ }
return m_iconSize;
}
diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/PrefabSystemComponent.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/PrefabSystemComponent.cpp
index c58379ea3e..9d1e95657d 100644
--- a/Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/PrefabSystemComponent.cpp
+++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/PrefabSystemComponent.cpp
@@ -414,7 +414,6 @@ namespace AzToolsFramework
}
m_templateFilePathToIdMap.emplace(AZStd::make_pair(filePath, newTemplateId));
- newTemplate.MarkAsDirty(true);
return newTemplateId;
}
diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/PrefabUndoCache.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/PrefabUndoCache.cpp
index bc48846585..dcf2a57c64 100644
--- a/Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/PrefabUndoCache.cpp
+++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Prefab/PrefabUndoCache.cpp
@@ -130,10 +130,7 @@ namespace AzToolsFramework
if (!instanceOptionalReference.has_value())
{
- AZ_Warning(
- "Undo", false,
- "PrefabUndoCache was told to update the cache for entity of id %p (%s), but that entity does not have an owning instance.",
- entityId, entity->GetName().c_str());
+ // This is not an error, we just don't handle this entity.
return;
}
diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/PythonTerminal/ScriptTermDialog.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/PythonTerminal/ScriptTermDialog.cpp
index ab5ec8bdce..87a320ac41 100644
--- a/Code/Framework/AzToolsFramework/AzToolsFramework/PythonTerminal/ScriptTermDialog.cpp
+++ b/Code/Framework/AzToolsFramework/AzToolsFramework/PythonTerminal/ScriptTermDialog.cpp
@@ -51,7 +51,7 @@ namespace AzToolsFramework
connect(ui->SCRIPT_INPUT, &QLineEdit::textChanged, this, &CScriptTermDialog::OnScriptInputTextChanged);
connect(ui->SCRIPT_HELP, &QToolButton::clicked, this, &CScriptTermDialog::OnScriptHelp);
connect(ui->SCRIPT_DOCS, &QToolButton::clicked, this, []() {
- QDesktopServices::openUrl(QUrl("https://docs.o3de.org/docs/user-guide/scripting/"));
+ QDesktopServices::openUrl(QUrl("https://o3de.org/docs/user-guide/scripting/"));
});
InitCompleter();
diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/ToolsComponents/ScriptEditorComponent.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/ToolsComponents/ScriptEditorComponent.cpp
index 4aeff10ae9..7f81d001d0 100644
--- a/Code/Framework/AzToolsFramework/AzToolsFramework/ToolsComponents/ScriptEditorComponent.cpp
+++ b/Code/Framework/AzToolsFramework/AzToolsFramework/ToolsComponents/ScriptEditorComponent.cpp
@@ -1023,7 +1023,7 @@ namespace AzToolsFramework
->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/LuaScript.svg")
->Attribute(AZ::Edit::Attributes::PrimaryAssetType, AZ::AzTypeInfo::Uuid())
->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Script.png")
- ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.o3de.org/docs/user-guide/components/reference/lua-script/")
+ ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://o3de.org/docs/user-guide/components/reference/lua-script/")
->DataElement("AssetRef", &ScriptEditorComponent::m_scriptAsset, "Script", "Which script to use")
->Attribute(AZ::Edit::Attributes::ChangeNotify, &ScriptEditorComponent::ScriptHasChanged)
->Attribute("BrowseIcon", ":/stylesheet/img/UI20/browse-edit-select-files.svg")
diff --git a/Code/Framework/AzToolsFramework/Tests/Entity/EditorEntitySearchComponentTests.cpp b/Code/Framework/AzToolsFramework/Tests/Entity/EditorEntitySearchComponentTests.cpp
index aeca29e877..3480471565 100644
--- a/Code/Framework/AzToolsFramework/Tests/Entity/EditorEntitySearchComponentTests.cpp
+++ b/Code/Framework/AzToolsFramework/Tests/Entity/EditorEntitySearchComponentTests.cpp
@@ -47,7 +47,7 @@ namespace AzToolsFramework
->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Tag.png")
->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Tag.png")
->Attribute(AZ::Edit::Attributes::AutoExpand, true)
- ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.o3de.org/docs/user-guide/components")
+ ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://o3de.org/docs/user-guide/components")
->DataElement(AZ::Edit::UIHandlers::Default, &EntitySearch_TestComponent1::m_boolValue, "Bool", "")
->DataElement(AZ::Edit::UIHandlers::Default, &EntitySearch_TestComponent1::m_intValue, "Int", "")
;
@@ -106,7 +106,7 @@ namespace AzToolsFramework
->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Tag.png")
->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Tag.png")
->Attribute(AZ::Edit::Attributes::AutoExpand, true)
- ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.o3de.org/docs/user-guide/components")
+ ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://o3de.org/docs/user-guide/components")
->DataElement(AZ::Edit::UIHandlers::Default, &EntitySearch_TestComponent2::m_floatValue, "Float", "")
;
}
diff --git a/Code/Framework/AzToolsFramework/Tests/EntityInspectorTests.cpp b/Code/Framework/AzToolsFramework/Tests/EntityInspectorTests.cpp
index 897d514715..7daceafe25 100644
--- a/Code/Framework/AzToolsFramework/Tests/EntityInspectorTests.cpp
+++ b/Code/Framework/AzToolsFramework/Tests/EntityInspectorTests.cpp
@@ -118,7 +118,7 @@ namespace UnitTest
->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Tag.png")
->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Tag.png")
->Attribute(AZ::Edit::Attributes::AutoExpand, true)
- ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.o3de.org/docs/user-guide/components")
+ ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://o3de.org/docs/user-guide/components")
->DataElement(AZ::Edit::UIHandlers::Default, &Inspector_TestComponent2::m_data, "Data", "The component's Data");
}
}
@@ -187,7 +187,7 @@ namespace UnitTest
->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Tag.png")
->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Tag.png")
->Attribute(AZ::Edit::Attributes::AutoExpand, true)
- ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://docs.o3de.org/docs/user-guide/components")
+ ->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://o3de.org/docs/user-guide/components")
->DataElement(AZ::Edit::UIHandlers::Default, &Inspector_TestComponent3::m_data, "Data", "The component's Data");
}
}
diff --git a/Code/LauncherUnified/Launcher.cpp b/Code/LauncherUnified/Launcher.cpp
index fa2c79c8dc..575c9d1c38 100644
--- a/Code/LauncherUnified/Launcher.cpp
+++ b/Code/LauncherUnified/Launcher.cpp
@@ -568,6 +568,14 @@ namespace O3DELauncher
AZ_Assert(AZ::AllocatorInstance::IsReady(), "System allocator was not created or creation failed.");
//Initialize the Debug trace instance to create necessary environment variables
AZ::Debug::Trace::Instance().Init();
+
+ if (!IsDedicatedServer() && !systemInitParams.bToolMode && !systemInitParams.bTestMode)
+ {
+ if (auto nativeUI = AZ::Interface::Get(); nativeUI != nullptr)
+ {
+ nativeUI->SetMode(AZ::NativeUI::Mode::ENABLED);
+ }
+ }
}
if (mainInfo.m_onPostAppStart)
diff --git a/Code/Sandbox/Editor/AboutDialog.cpp b/Code/Sandbox/Editor/AboutDialog.cpp
index 5e2b5c2aa8..e1ec7756c8 100644
--- a/Code/Sandbox/Editor/AboutDialog.cpp
+++ b/Code/Sandbox/Editor/AboutDialog.cpp
@@ -32,7 +32,6 @@ CAboutDialog::CAboutDialog(QString versionText, QString richTextCopyrightNotice,
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
connect(m_ui->m_transparentAgreement, &QLabel::linkActivated, this, &CAboutDialog::OnCustomerAgreement);
- connect(m_ui->m_transparentNotice, &QLabel::linkActivated, this, &CAboutDialog::OnPrivacyNotice);
m_ui->m_transparentTrademarks->setText(versionText);
@@ -41,7 +40,6 @@ CAboutDialog::CAboutDialog(QString versionText, QString richTextCopyrightNotice,
m_ui->m_transparentAllRightReserved->setText(richTextCopyrightNotice);
m_ui->m_transparentAgreement->setObjectName("link");
- m_ui->m_transparentNotice->setObjectName("link");
setStyleSheet( "CAboutDialog > QLabel#copyrightNotice { color: #AAAAAA; font-size: 9px; }\
CAboutDialog > QLabel#link { text-decoration: underline; color: #00A1C9; }");
@@ -81,12 +79,7 @@ void CAboutDialog::mouseReleaseEvent(QMouseEvent* event)
void CAboutDialog::OnCustomerAgreement()
{
- QDesktopServices::openUrl(QUrl(QStringLiteral("https://lfprojects.org/policies/terms-of-use/")));
-}
-
-void CAboutDialog::OnPrivacyNotice()
-{
- QDesktopServices::openUrl(QUrl(QStringLiteral("https://lfprojects.org/policies/privacy-policy/")));
+ QDesktopServices::openUrl(QUrl(QStringLiteral("https://www.o3debinaries.org/license")));
}
#include
diff --git a/Code/Sandbox/Editor/AboutDialog.h b/Code/Sandbox/Editor/AboutDialog.h
index fe07f12416..ee31020240 100644
--- a/Code/Sandbox/Editor/AboutDialog.h
+++ b/Code/Sandbox/Editor/AboutDialog.h
@@ -30,7 +30,6 @@ public:
private:
void OnCustomerAgreement();
- void OnPrivacyNotice();
void mouseReleaseEvent(QMouseEvent* event) override;
void paintEvent(QPaintEvent* event) override;
diff --git a/Code/Sandbox/Editor/AboutDialog.ui b/Code/Sandbox/Editor/AboutDialog.ui
index a6f44eea9d..48ec82da5c 100644
--- a/Code/Sandbox/Editor/AboutDialog.ui
+++ b/Code/Sandbox/Editor/AboutDialog.ui
@@ -92,7 +92,7 @@
-
- Open 3D Engine Editor
+ O3DE Editor
Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
@@ -102,7 +102,7 @@
-
- Development version
+ Developer Preview
Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
@@ -164,19 +164,6 @@
- -
-
-
- Privacy Notice
-
-
- Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
-
-
- true
-
-
-
-
diff --git a/Code/Sandbox/Editor/AssetImporter/UI/SelectDestinationDialog.cpp b/Code/Sandbox/Editor/AssetImporter/UI/SelectDestinationDialog.cpp
index 3bfa7a55c1..03c10e4e9b 100644
--- a/Code/Sandbox/Editor/AssetImporter/UI/SelectDestinationDialog.cpp
+++ b/Code/Sandbox/Editor/AssetImporter/UI/SelectDestinationDialog.cpp
@@ -19,7 +19,7 @@ AZ_PUSH_DISABLE_DLL_EXPORT_MEMBER_WARNING
AZ_POP_DISABLE_DLL_EXPORT_MEMBER_WARNING
-static const char* g_assetProcessorLink = "Asset Processor";
+static const char* g_assetProcessorLink = "Asset Processor";
static const char* g_copyFilesMessage = "The original file will remain outside of the project and the %1 will not monitor the file.";
static const char* g_moveFilesMessage = "The original file will be moved inside of the project and the %1 will monitor the file for changes.";
static const char* g_selectDestinationFilesPath = "AssetImporter/SelectDestinationFilesPath";
diff --git a/Code/Sandbox/Editor/Core/LevelEditorMenuHandler.cpp b/Code/Sandbox/Editor/Core/LevelEditorMenuHandler.cpp
index 178dd771a8..4af1d2c5e2 100644
--- a/Code/Sandbox/Editor/Core/LevelEditorMenuHandler.cpp
+++ b/Code/Sandbox/Editor/Core/LevelEditorMenuHandler.cpp
@@ -798,7 +798,7 @@ QMenu* LevelEditorMenuHandler::CreateHelpMenu()
auto text = lineEdit->text();
if (text.isEmpty())
{
- QDesktopServices::openUrl(QUrl("https://docs.o3de.org/docs/"));
+ QDesktopServices::openUrl(QUrl("https://o3de.org/docs/"));
}
else
{
@@ -807,17 +807,10 @@ QMenu* LevelEditorMenuHandler::CreateHelpMenu()
const SFileVersion& productVersion = gEnv->pSystem->GetProductVersion();
productVersion.ToString(productVersionString, versionStringSize);
- QUrl docSearchUrl("https://docs.aws.amazon.com/search/doc-search.html");
+ QUrl docSearchUrl("https://o3de.org/docs/");
QUrlQuery docSearchQuery;
- QString o3deProductString = QUrl::toPercentEncoding("Open 3D Engine");
- // The order of these QueryItems matters. wiki Search URL Formatting
- docSearchQuery.addQueryItem("searchPath", "documentation-product");
- docSearchQuery.addQueryItem("searchQuery", text);
- docSearchQuery.addQueryItem("this_doc_product", o3deProductString);
- docSearchQuery.addQueryItem("ref", "lye");
- docSearchQuery.addQueryItem("ev", productVersionString);
+ docSearchQuery.addQueryItem("query", text);
docSearchUrl.setQuery(docSearchQuery);
- docSearchUrl.setFragment(QString("facet_doc_product=%1").arg(o3deProductString));
QDesktopServices::openUrl(docSearchUrl);
}
lineEdit->clear();
diff --git a/Code/Sandbox/Editor/CryEdit.cpp b/Code/Sandbox/Editor/CryEdit.cpp
index 2002e741a5..ea17861cb5 100644
--- a/Code/Sandbox/Editor/CryEdit.cpp
+++ b/Code/Sandbox/Editor/CryEdit.cpp
@@ -547,7 +547,6 @@ public:
{
bool dummy;
QCommandLineParser parser;
- QString appRootOverride;
parser.addHelpOption();
parser.setSingleDashWordOptionMode(QCommandLineParser::ParseAsLongOptions);
parser.setApplicationDescription(QObject::tr("Open 3D Engine"));
@@ -633,7 +632,7 @@ public:
option.second = parser.value(option.first.valueName);
}
- m_bExport = m_bExport | m_bExportTexture;
+ m_bExport = m_bExport || m_bExportTexture;
const QStringList positionalArgs = parser.positionalArguments();
@@ -923,9 +922,9 @@ QString FormatRichTextCopyrightNotice()
{
// copyright symbol is HTML Entity = ©
QString copyrightHtmlSymbol = "©";
- QString copyrightString = QObject::tr("Open 3D Engine and related materials Copyright %1 %2 Amazon Web Services, Inc., its affiliates or licensors.
By accessing or using these materials, you agree to the terms of the AWS Customer Agreement.");
+ QString copyrightString = QObject::tr("Copyright %1 Contributors to the Open 3D Engine Project");
- return copyrightString.arg(copyrightHtmlSymbol).arg(O3DE_COPYRIGHT_YEAR);
+ return copyrightString.arg(copyrightHtmlSymbol);
}
/////////////////////////////////////////////////////////////////////////////
@@ -1717,7 +1716,7 @@ BOOL CCryEditApp::InitInstance()
}
}
- SetEditorWindowTitle();
+ SetEditorWindowTitle(0, AZ::Utils::GetProjectName().c_str(), 0);
if (!GetIEditor()->IsInMatEditMode())
{
m_pEditor->InitFinished();
@@ -1839,7 +1838,7 @@ void CCryEditApp::LoadFile(QString fileName)
if (MainWindow::instance() || m_pConsoleDialog)
{
- SetEditorWindowTitle(0, 0, GetIEditor()->GetGameEngine()->GetLevelName());
+ SetEditorWindowTitle(0, AZ::Utils::GetProjectName().c_str(), GetIEditor()->GetGameEngine()->GetLevelName());
}
GetIEditor()->SetModifiedFlag(false);
@@ -4029,7 +4028,6 @@ void CCryEditApp::SetEditorWindowTitle(QString sTitleStr, QString sPreTitleStr,
{
if (MainWindow::instance() || m_pConsoleDialog)
{
-
if (sTitleStr.isEmpty())
{
sTitleStr = QObject::tr("O3DE Editor [Developer Preview]");
@@ -4037,7 +4035,7 @@ void CCryEditApp::SetEditorWindowTitle(QString sTitleStr, QString sPreTitleStr,
if (!sPreTitleStr.isEmpty())
{
- sTitleStr.insert(0, sPreTitleStr);
+ sTitleStr.insert(sTitleStr.length(), QStringLiteral(" - %1").arg(sPreTitleStr));
}
if (!sPostTitleStr.isEmpty())
@@ -4331,6 +4329,18 @@ extern "C" int AZ_DLL_EXPORT CryEditMain(int argc, char* argv[])
{
EditorInternal::EditorToolsApplication AZToolsApp(&argc, &argv);
+ {
+ CEditCommandLineInfo cmdInfo;
+ if (!cmdInfo.m_bAutotestMode && !cmdInfo.m_bConsoleMode && !cmdInfo.m_bExport && !cmdInfo.m_bExportTexture &&
+ !cmdInfo.m_bNullRenderer && !cmdInfo.m_bMatEditMode && !cmdInfo.m_bTest)
+ {
+ if (auto nativeUI = AZ::Interface::Get(); nativeUI != nullptr)
+ {
+ nativeUI->SetMode(AZ::NativeUI::Mode::ENABLED);
+ }
+ }
+ }
+
// The settings registry has been created by the AZ::ComponentApplication constructor at this point
AZ::SettingsRegistryInterface& registry = *AZ::SettingsRegistry::Get();
AZ::SettingsRegistryMergeUtils::MergeSettingsToRegistry_AddBuildSystemTargetSpecialization(
diff --git a/Code/Sandbox/Editor/EditorPreferencesPageAWS.cpp b/Code/Sandbox/Editor/EditorPreferencesPageAWS.cpp
index 5ba4e94d9a..6db7daa92e 100644
--- a/Code/Sandbox/Editor/EditorPreferencesPageAWS.cpp
+++ b/Code/Sandbox/Editor/EditorPreferencesPageAWS.cpp
@@ -27,13 +27,13 @@ void CEditorPreferencesPage_AWS::Reflect(AZ::SerializeContext& serialize)
if (editContext)
{
editContext->Class("Options", "")
- ->DataElement(AZ::Edit::UIHandlers::CheckBox, &UsageOptions::m_awsAttributionEnabled, "Send Metrics usage to AWS",
- "Reports Gem usage to AWS on Editor launch");
+ ->DataElement(AZ::Edit::UIHandlers::CheckBox, &UsageOptions::m_awsAttributionEnabled, "Allow O3DE to send information about your use of AWS Core Gem to AWS",
+ "");
editContext->Class("AWS Preferences", "AWS Preferences")
->ClassElement(AZ::Edit::ClassElements::EditorData, "")
->Attribute(AZ::Edit::Attributes::Visibility, AZ_CRC("PropertyVisibility_ShowChildrenOnly", 0xef428f20))
- ->DataElement(AZ::Edit::UIHandlers::Default, &CEditorPreferencesPage_AWS::m_usageOptions, "AWS Usage Data", "AWS Usage Options");
+ ->DataElement(AZ::Edit::UIHandlers::Default, &CEditorPreferencesPage_AWS::m_usageOptions, "AWS Data Collection and Use", "AWS Data Collection and Use");
}
}
@@ -52,7 +52,7 @@ CEditorPreferencesPage_AWS::~CEditorPreferencesPage_AWS()
const char* CEditorPreferencesPage_AWS::GetTitle()
{
- return "AWS";
+ return "Cloud";
}
QIcon& CEditorPreferencesPage_AWS::GetIcon()
diff --git a/Code/Sandbox/Editor/EditorToolsApplication.cpp b/Code/Sandbox/Editor/EditorToolsApplication.cpp
index bf2150b524..f9fdde6c4e 100644
--- a/Code/Sandbox/Editor/EditorToolsApplication.cpp
+++ b/Code/Sandbox/Editor/EditorToolsApplication.cpp
@@ -86,10 +86,12 @@ namespace EditorInternal
void EditorToolsApplication::StartCommon(AZ::Entity* systemEntity)
{
AzToolsFramework::ToolsApplication::StartCommon(systemEntity);
+
+ m_StartupAborted = m_moduleManager->m_quitRequested;
+
if (systemEntity->GetState() != AZ::Entity::State::Active)
{
m_StartupAborted = true;
- return;
}
}
@@ -101,6 +103,7 @@ namespace EditorInternal
AzToolsFramework::ToolsApplication::Start({}, params);
if (IsStartupAborted() || !m_systemEntity)
{
+ AzToolsFramework::ToolsApplication::Stop();
return false;
}
return true;
diff --git a/Code/Sandbox/Editor/MainWindow.cpp b/Code/Sandbox/Editor/MainWindow.cpp
index 98ade01322..b4cf317c26 100644
--- a/Code/Sandbox/Editor/MainWindow.cpp
+++ b/Code/Sandbox/Editor/MainWindow.cpp
@@ -30,6 +30,7 @@ AZ_POP_DISABLE_WARNING
#include
#include
#include
+#include
// AzFramework
#include
@@ -92,14 +93,6 @@ AZ_POP_DISABLE_WARNING
#include "AssetEditor/AssetEditorWindow.h"
#include "ActionManager.h"
-// uncomment this to show thumbnail demo widget
-// #define ThumbnailDemo
-
-#ifdef ThumbnailDemo
-#include "Editor/Thumbnails/Example/ThumbnailsSampleWidget.h"
-#endif
-
-
using namespace AZ;
using namespace AzQtComponents;
using namespace AzToolsFramework;
@@ -1275,7 +1268,7 @@ void MainWindow::OnEditorNotifyEvent(EEditorNotifyEvent ev)
auto cryEdit = CCryEditApp::instance();
if (cryEdit)
{
- cryEdit->SetEditorWindowTitle(0, 0, GetIEditor()->GetGameEngine()->GetLevelName());
+ cryEdit->SetEditorWindowTitle(0, AZ::Utils::GetProjectName().c_str(), GetIEditor()->GetGameEngine()->GetLevelName());
}
}
break;
@@ -1284,7 +1277,7 @@ void MainWindow::OnEditorNotifyEvent(EEditorNotifyEvent ev)
auto cryEdit = CCryEditApp::instance();
if (cryEdit)
{
- cryEdit->SetEditorWindowTitle();
+ cryEdit->SetEditorWindowTitle(0, AZ::Utils::GetProjectName().c_str(), 0);
}
}
break;
@@ -1357,14 +1350,6 @@ void MainWindow::RegisterStdViewClasses()
AzAssetBrowserWindow::RegisterViewClass();
AssetEditorWindow::RegisterViewClass();
-#ifdef ThumbnailDemo
- ThumbnailsSampleWidget::RegisterViewClass();
-#endif
-
- //These view dialogs aren't used anymore so they became disabled.
- //CLightmapCompilerDialog::RegisterViewClass();
- //CLightmapCompilerDialog::RegisterViewClass();
-
// Notify that views can now be registered
AzToolsFramework::EditorEvents::Bus::Broadcast(
&AzToolsFramework::EditorEvents::Bus::Events::NotifyRegisterViews);
diff --git a/Code/Sandbox/Editor/ViewportTitleDlg.cpp b/Code/Sandbox/Editor/ViewportTitleDlg.cpp
index bd8291a0c8..deee886d16 100644
--- a/Code/Sandbox/Editor/ViewportTitleDlg.cpp
+++ b/Code/Sandbox/Editor/ViewportTitleDlg.cpp
@@ -162,6 +162,7 @@ void CViewportTitleDlg::SetupCameraDropdownMenu()
m_cameraSpeed = new QComboBox(cameraMenu);
m_cameraSpeed->setEditable(true);
m_cameraSpeed->setValidator(new QDoubleValidator(m_minSpeed, m_maxSpeed, m_numDecimals, m_cameraSpeed));
+ m_cameraSpeed->installEventFilter(this);
QHBoxLayout* cameraSpeedLayout = new QHBoxLayout;
cameraSpeedLayout->addWidget(cameraSpeedLabel);
@@ -814,6 +815,21 @@ void CViewportTitleDlg::UpdateCustomPresets(const QString& text, QStringList& cu
bool CViewportTitleDlg::eventFilter(QObject* object, QEvent* event)
{
+ if (object == m_cameraSpeed)
+ {
+ if (event->type() == QEvent::FocusIn)
+ {
+ QTimer::singleShot(
+ 0, this,
+ [this]
+ {
+ m_cameraSpeed->lineEdit()->selectAll();
+ });
+ }
+
+ return m_cameraSpeed->eventFilter(object, event);
+ }
+
bool consumeEvent = false;
// These events are forwarded from the toolbar that took ownership of our widgets
diff --git a/Code/Tools/AssetBundler/source/ui/MainWindow.cpp b/Code/Tools/AssetBundler/source/ui/MainWindow.cpp
index f4bafddcee..0846a1e995 100644
--- a/Code/Tools/AssetBundler/source/ui/MainWindow.cpp
+++ b/Code/Tools/AssetBundler/source/ui/MainWindow.cpp
@@ -199,7 +199,7 @@ namespace AssetBundler
void MainWindow::OnSupportClicked()
{
QDesktopServices::openUrl(
- QStringLiteral("https://docs.o3de.org/docs/user-guide/packaging/asset-bundler/"));
+ QStringLiteral("https://o3de.org/docs/user-guide/packaging/asset-bundler/"));
}
void MainWindow::ShowLogContextMenu(const QPoint& pos)
diff --git a/Code/Tools/AssetProcessor/native/ui/MainWindow.cpp b/Code/Tools/AssetProcessor/native/ui/MainWindow.cpp
index ae9cf07794..af5b16a2a2 100644
--- a/Code/Tools/AssetProcessor/native/ui/MainWindow.cpp
+++ b/Code/Tools/AssetProcessor/native/ui/MainWindow.cpp
@@ -509,7 +509,7 @@ void MainWindow::OnRescanButtonClicked()
void MainWindow::OnSupportClicked(bool /*checked*/)
{
QDesktopServices::openUrl(
- QStringLiteral("https://docs.o3de.org/docs/user-guide/assets/pipeline/"));
+ QStringLiteral("https://o3de.org/docs/user-guide/assets/pipeline/"));
}
void MainWindow::EditConnection(const QModelIndex& index)
diff --git a/Code/Tools/AssetProcessor/native/ui/ProductAssetDetailsPanel.cpp b/Code/Tools/AssetProcessor/native/ui/ProductAssetDetailsPanel.cpp
index 64865afd78..d5ec717764 100644
--- a/Code/Tools/AssetProcessor/native/ui/ProductAssetDetailsPanel.cpp
+++ b/Code/Tools/AssetProcessor/native/ui/ProductAssetDetailsPanel.cpp
@@ -438,7 +438,7 @@ namespace AssetProcessor
void ProductAssetDetailsPanel::OnSupportClicked(bool /*checked*/)
{
QDesktopServices::openUrl(
- QStringLiteral("https://docs.o3de.org/docs/user-guide/packaging/asset-bundler/assets-resolving/"));
+ QStringLiteral("https://o3de.org/docs/user-guide/packaging/asset-bundler/assets-resolving/"));
}
diff --git a/Code/Tools/ProjectManager/Resources/DefaultProjectImage.png b/Code/Tools/ProjectManager/Resources/DefaultProjectImage.png
index a3e13481c9..82234dbf6b 100644
--- a/Code/Tools/ProjectManager/Resources/DefaultProjectImage.png
+++ b/Code/Tools/ProjectManager/Resources/DefaultProjectImage.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4a5881b8d6cfbc4ceefb14ab96844484fe19407ee030824768f9fcce2f729d35
-size 2949
+oid sha256:1cf8339fb51f82a68d2ab475c0476960e75a79d96d239c5b7cd272fbe4990ffe
+size 2770
diff --git a/Code/Tools/ProjectManager/Resources/DefaultTemplate.png b/Code/Tools/ProjectManager/Resources/DefaultTemplate.png
index 2634c383fc..0f393ac886 100644
--- a/Code/Tools/ProjectManager/Resources/DefaultTemplate.png
+++ b/Code/Tools/ProjectManager/Resources/DefaultTemplate.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:8358f4dad9878c662b9819b2b346622af691eb45f8eddc28fff79a50650ae6cf
-size 2503
+oid sha256:7ac9dd09bde78f389e3725ac49d61eff109857e004840bc0bc3881739df9618d
+size 2217
diff --git a/Code/Tools/ProjectManager/Resources/o3de.svg b/Code/Tools/ProjectManager/Resources/o3de.svg
index bb6e596a00..a6bf0e78a8 100644
--- a/Code/Tools/ProjectManager/Resources/o3de.svg
+++ b/Code/Tools/ProjectManager/Resources/o3de.svg
@@ -1,3 +1,12 @@
-
+
+
\ No newline at end of file
diff --git a/Code/Tools/ProjectManager/Source/GemCatalog/GemCatalogHeaderWidget.cpp b/Code/Tools/ProjectManager/Source/GemCatalog/GemCatalogHeaderWidget.cpp
index 883ae79043..8fb35b906c 100644
--- a/Code/Tools/ProjectManager/Source/GemCatalog/GemCatalogHeaderWidget.cpp
+++ b/Code/Tools/ProjectManager/Source/GemCatalog/GemCatalogHeaderWidget.cpp
@@ -175,6 +175,14 @@ namespace O3DE::ProjectManager
ShowOverlay();
}
+ void CartButton::hideEvent(QHideEvent*)
+ {
+ if (m_cartOverlay)
+ {
+ m_cartOverlay->hide();
+ }
+ }
+
void CartButton::ShowOverlay()
{
const QVector toBeAdded = m_gemModel->GatherGemsToBeAdded();
diff --git a/Code/Tools/ProjectManager/Source/GemCatalog/GemCatalogHeaderWidget.h b/Code/Tools/ProjectManager/Source/GemCatalog/GemCatalogHeaderWidget.h
index 8d6606e63d..dc8f687b31 100644
--- a/Code/Tools/ProjectManager/Source/GemCatalog/GemCatalogHeaderWidget.h
+++ b/Code/Tools/ProjectManager/Source/GemCatalog/GemCatalogHeaderWidget.h
@@ -16,6 +16,7 @@
#include
#include
#include
+#include
#include
#endif
@@ -59,6 +60,7 @@ namespace O3DE::ProjectManager
private:
void mousePressEvent(QMouseEvent* event) override;
+ void hideEvent(QHideEvent*) override;
GemModel* m_gemModel = nullptr;
QHBoxLayout* m_layout = nullptr;
diff --git a/Code/Tools/ProjectManager/Source/ProjectBuilder.cpp b/Code/Tools/ProjectManager/Source/ProjectBuilder.cpp
index a97499ab44..4dfe46b3bf 100644
--- a/Code/Tools/ProjectManager/Source/ProjectBuilder.cpp
+++ b/Code/Tools/ProjectManager/Source/ProjectBuilder.cpp
@@ -24,8 +24,8 @@
namespace O3DE::ProjectManager
{
- // 10 Minutes
- constexpr int MaxBuildTimeMSecs = 600000;
+ // QProcess::waitForFinished uses -1 to indicate that the process should not timeout
+ constexpr int MaxBuildTimeMSecs = -1;
ProjectBuilderWorker::ProjectBuilderWorker(const ProjectInfo& projectInfo)
: QObject()
diff --git a/Code/Tools/ProjectManager/Source/ProjectManagerDefs.h b/Code/Tools/ProjectManager/Source/ProjectManagerDefs.h
index 1295e84281..1058dae68a 100644
--- a/Code/Tools/ProjectManager/Source/ProjectManagerDefs.h
+++ b/Code/Tools/ProjectManager/Source/ProjectManagerDefs.h
@@ -13,7 +13,7 @@ namespace O3DE::ProjectManager
inline constexpr static int ProjectPreviewImageWidth = 210;
inline constexpr static int ProjectPreviewImageHeight = 280;
- static const QString ProjectBuildPathPostfix = "Windows_VS2019";
+ static const QString ProjectBuildPathPostfix = "build/windows_vs2019";
static const QString ProjectBuildErrorLogPathPostfix = "CMakeFiles/CMakeProjectBuildError.log";
static const QString ProjectPreviewImagePath = "preview.png";
} // namespace O3DE::ProjectManager
diff --git a/Code/Tools/ProjectManager/Source/ProjectUtils.cpp b/Code/Tools/ProjectManager/Source/ProjectUtils.cpp
index d2da1ef437..5b93e4faca 100644
--- a/Code/Tools/ProjectManager/Source/ProjectUtils.cpp
+++ b/Code/Tools/ProjectManager/Source/ProjectUtils.cpp
@@ -14,6 +14,7 @@
#include
#include
#include
+#include
namespace O3DE::ProjectManager
{
@@ -118,9 +119,10 @@ namespace O3DE::ProjectManager
return false;
}
- // TODO: Block UX and Notify User they need to wait
-
+ QGuiApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
copyResult = CopyProject(origPath, newPath);
+ QGuiApplication::restoreOverrideCursor();
+
}
return copyResult;
diff --git a/Code/Tools/ProjectManager/Source/ProjectsScreen.cpp b/Code/Tools/ProjectManager/Source/ProjectsScreen.cpp
index 38d3d3b751..e079d97a8b 100644
--- a/Code/Tools/ProjectManager/Source/ProjectsScreen.cpp
+++ b/Code/Tools/ProjectManager/Source/ProjectsScreen.cpp
@@ -41,6 +41,7 @@
#include
#include
#include
+#include
//#define DISPLAY_PROJECT_DEV_DATA true
@@ -403,9 +404,11 @@ namespace O3DE::ProjectManager
if (warningResult == QMessageBox::Yes)
{
+ QGuiApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
// Remove project from O3DE and delete from disk
HandleRemoveProject(projectPath);
ProjectUtils::DeleteProjectFiles(projectPath);
+ QGuiApplication::restoreOverrideCursor();
}
}
}
diff --git a/Gems/AWSCore/Code/Include/Private/Editor/Attribution/AWSCoreAttributionConsentDialog.h b/Gems/AWSCore/Code/Include/Private/Editor/Attribution/AWSCoreAttributionConsentDialog.h
new file mode 100644
index 0000000000..88ba1b0f9a
--- /dev/null
+++ b/Gems/AWSCore/Code/Include/Private/Editor/Attribution/AWSCoreAttributionConsentDialog.h
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) Contributors to the Open 3D Engine Project
+ *
+ * SPDX-License-Identifier: Apache-2.0 OR MIT
+ *
+ */
+
+#pragma once
+
+#include
+
+#include
+
+namespace AWSCore
+{
+ //! Defines AWSCoreAttributionConsent QT dialog as QT message box.
+ class AWSCoreAttributionConsentDialog :
+ public QMessageBox
+ {
+ public:
+ AZ_CLASS_ALLOCATOR(AWSCoreAttributionConsentDialog, AZ::SystemAllocator, 0);
+ AWSCoreAttributionConsentDialog();
+ virtual ~AWSCoreAttributionConsentDialog() = default;
+
+ };
+} // namespace AWSCore
diff --git a/Gems/AWSCore/Code/Include/Private/Editor/Attribution/AWSCoreAttributionManager.h b/Gems/AWSCore/Code/Include/Private/Editor/Attribution/AWSCoreAttributionManager.h
index 2d15688cbd..5e4ad8c965 100644
--- a/Gems/AWSCore/Code/Include/Private/Editor/Attribution/AWSCoreAttributionManager.h
+++ b/Gems/AWSCore/Code/Include/Private/Editor/Attribution/AWSCoreAttributionManager.h
@@ -11,11 +11,13 @@
#include
#include
+#include
namespace AWSCore
{
//! Manages operational metrics for AWS gems
class AWSAttributionManager
+ : private AzToolsFramework::EditorEvents::Bus::Handler
{
public:
AWSAttributionManager();
@@ -32,16 +34,21 @@ namespace AWSCore
virtual void UpdateMetric(AttributionMetric& metric);
void UpdateLastSend();
void SetApiEndpointAndRegion(ServiceAPI::AWSAttributionRequestJob::Config* config);
+ virtual void ShowConsentDialog();
private:
bool ShouldGenerateMetric() const;
-
+ bool CheckAWSCredentialsConfigured();
+ bool CheckConsentShown();
AZStd::string GetEngineVersion() const;
AZStd::string GetPlatform() const;
void GetActiveAWSGems(AZStd::vector& gemNames);
void SaveSettingsRegistryFile();
+ // AzToolsFramework::EditorEvents interface implementation
+ void NotifyMainWindowInitialized(QMainWindow* mainWindow) override;
+
AZStd::unique_ptr m_settingsRegistry;
};
diff --git a/Gems/AWSCore/Code/Include/Private/Editor/Constants/AWSCoreEditorMenuLinks.h b/Gems/AWSCore/Code/Include/Private/Editor/Constants/AWSCoreEditorMenuLinks.h
index e84900e138..3567570175 100644
--- a/Gems/AWSCore/Code/Include/Private/Editor/Constants/AWSCoreEditorMenuLinks.h
+++ b/Gems/AWSCore/Code/Include/Private/Editor/Constants/AWSCoreEditorMenuLinks.h
@@ -9,40 +9,45 @@
namespace AWSCore
{
- static constexpr const char NewToAWSUrl[] = "https://docs.o3de.org/docs/user-guide/gems/reference/aws/";
+ static constexpr const char NewToAWSUrl[] = "https://o3de.org/docs/user-guide/gems/reference/aws/";
- static constexpr const char AWSAndScriptCanvasUrl[] = "https://docs.o3de.org/docs/user-guide/components/reference/aws/";
- static constexpr const char AWSAndComponentsUrl[] = "https://docs.o3de.org/docs/user-guide/components/reference/aws/";
- static constexpr const char CallAWSResourcesUrl[] = "https://docs.o3de.org/docs/user-guide/components/reference/aws/";
+ static constexpr const char AWSAndGettingStartedUrl[] =
+ "https://o3de.org/docs/user-guide/gems/reference/aws/aws-core/getting-started/";
+ static constexpr const char AWSAndResourceMappingsUrl[] =
+ "https://o3de.org/docs/user-guide/gems/reference/aws/aws-core/resource-mapping-files/";
+ static constexpr const char AWSAndResourceMappingToolUrl[] =
+ "https://o3de.org/docs/user-guide/gems/reference/aws/aws-core/resource-mapping-tool/";
+ static constexpr const char AWSAndScriptingUrl[] =
+ "https://o3de.org/docs/user-guide/gems/reference/aws/aws-core/scripting/";
static constexpr const char AWSCredentialConfigurationUrl[] =
- "https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-core/configuring-credentials/";
+ "https://o3de.org/docs/user-guide/gems/reference/aws/aws-core/configuring-credentials/";
static constexpr const char AWSClientAuthGemOverviewUrl[] =
- "https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-client-auth/";
+ "https://o3de.org/docs/user-guide/gems/reference/aws/aws-client-auth/";
+ static constexpr const char AWSClientAuthGemSetupUrl[] =
+ "https://o3de.org/docs/user-guide/gems/reference/aws/aws-client-auth/setup/";
static constexpr const char AWSClientAuthCDKAndResourcesUrl[] =
- "https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-client-auth/";
+ "https://o3de.org/docs/user-guide/gems/reference/aws/aws-client-auth/setup/#3-deploy-the-cdk-application";
static constexpr const char AWSClientAuthScriptCanvasAndLuaUrl[] =
- "https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-client-auth/";
+ "https://o3de.org/docs/user-guide/gems/reference/aws/aws-client-auth/scripting/";
static constexpr const char AWSClientAuth3rdPartyAuthProviderUrl[] =
- "https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-client-auth/";
+ "https://o3de.org/docs/user-guide/gems/reference/aws/aws-client-auth/authentication-providers/";
static constexpr const char AWSClientAuthCustomAuthProviderUrl[] =
- "https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-client-auth/";
- static constexpr const char AWSClientAuthPlatformSpecificUrl[] =
- "https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-client-auth/";
+ "https://o3de.org/docs/user-guide/gems/reference/aws/aws-client-auth/authentication-providers/#using-a-custom-provider";
static constexpr const char AWSClientAuthAPIReferenceUrl[] =
- "https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-client-auth/";
+ "https://o3de.org/docs/user-guide/gems/reference/aws/aws-client-auth/cpp-api/";
static constexpr const char AWSMetricsGemOverviewUrl[] =
- "https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-metrics/";
+ "https://o3de.org/docs/user-guide/gems/reference/aws/aws-metrics/";
static constexpr const char AWSMetricsSetupGemUrl[] =
- "https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-metrics/";
+ "https://o3de.org/docs/user-guide/gems/reference/aws/aws-metrics/setup/";
static constexpr const char AWSMetricsScriptingUrl[] =
- "https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-metrics/";
+ "https://o3de.org/docs/user-guide/gems/reference/aws/aws-metrics/scripting/";
static constexpr const char AWSMetricsAPIReferenceUrl[] =
- "https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-metrics/";
+ "https://o3de.org/docs/user-guide/gems/reference/aws/aws-metrics/cpp-api/";
static constexpr const char AWSMetricsAdvancedTopicsUrl[] =
- "https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-metrics/";
+ "https://o3de.org/docs/user-guide/gems/reference/aws/aws-metrics/advanced-topics/";
static constexpr const char AWSMetricsSettingsUrl[] =
- "https://docs.o3de.org/docs/user-guide/gems/reference/aws/aws-metrics/";
+ "https://o3de.org/docs/user-guide/gems/reference/aws/aws-metrics/";
} // namespace AWSCore
diff --git a/Gems/AWSCore/Code/Include/Private/Editor/Constants/AWSCoreEditorMenuNames.h b/Gems/AWSCore/Code/Include/Private/Editor/Constants/AWSCoreEditorMenuNames.h
index 5bc47964f4..3cb45ad521 100644
--- a/Gems/AWSCore/Code/Include/Private/Editor/Constants/AWSCoreEditorMenuNames.h
+++ b/Gems/AWSCore/Code/Include/Private/Editor/Constants/AWSCoreEditorMenuNames.h
@@ -11,29 +11,30 @@ namespace AWSCore
{
static constexpr const char NewToAWSActionText[] = "Getting started with AWS?";
- static constexpr const char AWSAndO3DEGlobalDocsText[] = "AWS & O3DE global docs";
- static constexpr const char AWSAndScriptCanvasActionText[] = "AWS && ScriptCanvas";
- static constexpr const char AWSAndComponentsActionText[] = "AWS & Components";
- static constexpr const char CallAWSResourcesActionText[] = "Call AWS resources";
+ static constexpr const char AWSAndO3DEGlobalDocsText[] = "AWS && O3DE";
+ static constexpr const char AWSAndO3DEGettingStartedActionText[] = "Getting started";
+ static constexpr const char AWSAndO3DEMappingsFileActionText[] = "Use AWS resources in O3DE";
+ static constexpr const char AWSAndO3DEResourceToolActionText[] = "Building a resource mappings file";
+ static constexpr const char AWSAndO3DEScriptingActionText[] = "Scripting reference";
static constexpr const char AWSCredentialConfigurationActionText[] = "AWS credential configuration";
static constexpr const char AWSResourceMappingToolActionText[] = "AWS Resource Mapping Tool...";
- static constexpr const char AWSClientAuthActionText[] = "Client Auth";
- static constexpr const char AWSClientAuthGemOverviewActionText[] = "Gem Overview";
- static constexpr const char AWSClientAuthCDKAndResourcesActionText[] = "CDK Application and Resource Mappings";
- static constexpr const char AWSClientAuthScriptCanvasAndLuaActionText[] = "Script Canvas and Lua";
- static constexpr const char AWSClientAuth3rdPartyAuthProviderActionText[] = "3rd Party developer Authentication Provider support";
- static constexpr const char AWSClientAuthCustomAuthProviderActionText[] = "Custom developer Authentication Provider support";
- static constexpr const char AWSClientAuthPlatformSpecificActionText[] = "Platform specific Callouts";
- static constexpr const char AWSClientAuthAPIReferenceActionText[] = "API Reference";
+ static constexpr const char AWSClientAuthActionText[] = "Client Auth Gem";
+ static constexpr const char AWSClientAuthGemOverviewActionText[] = "Client Auth Gem overview";
+ static constexpr const char AWSClientAuthGemSetupActionText[] = "Setup Client Auth Gem";
+ static constexpr const char AWSClientAuthCDKAndResourcesActionText[] = "CDK application and resource mappings";
+ static constexpr const char AWSClientAuthScriptCanvasAndLuaActionText[] = "Scripting reference";
+ static constexpr const char AWSClientAuth3rdPartyAuthProviderActionText[] = "3rd Party developer authentication provider support";
+ static constexpr const char AWSClientAuthCustomAuthProviderActionText[] = "Custom developer authentication provider support";
+ static constexpr const char AWSClientAuthAPIReferenceActionText[] = "API reference";
- static constexpr const char AWSMetricsActionText[] = "Metrics";
- static constexpr const char AWSMetricsGemOverviewActionText[] = "Metrics Overview";
+ static constexpr const char AWSMetricsActionText[] = "Metrics Gem";
+ static constexpr const char AWSMetricsGemOverviewActionText[] = "Metrics Gem overview";
static constexpr const char AWSMetricsSetupGemActionText[] = "Setup Metrics Gem";
- static constexpr const char AWSMetricsScriptingActionText[] = "Scripting with AWS Metrics";
- static constexpr const char AWSMetricsAPIReferenceActionText[] = "C++ API with AWS Metrics Gem";
+ static constexpr const char AWSMetricsScriptingActionText[] = "Scripting reference";
+ static constexpr const char AWSMetricsAPIReferenceActionText[] = "API reference";
static constexpr const char AWSMetricsAdvancedTopicsActionText[] = "Advanced topics";
- static constexpr const char AWSMetricsSettingsActionText[] = "Metrics Settings";
+ static constexpr const char AWSMetricsSettingsActionText[] = "Metrics settings";
} // namespace AWSCore
diff --git a/Gems/AWSCore/Code/Source/Editor/Attribution/AWSCoreAttributionConsentDialog.cpp b/Gems/AWSCore/Code/Source/Editor/Attribution/AWSCoreAttributionConsentDialog.cpp
new file mode 100644
index 0000000000..d67c53f389
--- /dev/null
+++ b/Gems/AWSCore/Code/Source/Editor/Attribution/AWSCoreAttributionConsentDialog.cpp
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) Contributors to the Open 3D Engine Project
+ *
+ * SPDX-License-Identifier: Apache-2.0 OR MIT
+ *
+ */
+
+#include
+
+#include
+#include
+
+namespace AWSCore
+{
+ constexpr const char* AWSAttributionConsentDialogTitle = "AWS Core Gem Usage Agreement";
+ constexpr const char* AWSAttributionConsentDialogMessage = "The AWS Core Gem has detected credentials for an Amazon Web Services account for this
\
+ instance of O3DE. Click here to learn more about AWS integration, including how to
\
+ manage your AWS credentials.
\
+ Please note: when credentials are detected, AWS Core Gem sends telemetry data to AWS,
\
+ which helps us improve AWS services for O3DE. You can change this setting below, and at
\
+ any time in Settings: Global Preferences. Data sent is subject to the AWS Privacy Policy.
\
+ Click here to learn more about what data is sent to AWS.";
+
+ constexpr const char* AWSAttributionConsentDialogCheckboxText = "Please share the information about my use of AWS Core Gem with AWS.";
+
+ AWSCoreAttributionConsentDialog::AWSCoreAttributionConsentDialog()
+ {
+ this->setWindowTitle(AWSAttributionConsentDialogTitle);
+ this->setText(AWSAttributionConsentDialogMessage);
+ QCheckBox* checkBox = new QCheckBox(AWSAttributionConsentDialogCheckboxText);
+ checkBox->setChecked(true);
+ this->setCheckBox(checkBox);
+ this->setStandardButtons(QMessageBox::Save | QMessageBox::Cancel);
+ this->setDefaultButton(QMessageBox::Save);
+ this->button(QMessageBox::Cancel)->hide();
+ this->setIcon(QMessageBox::Information);
+ QGridLayout* layout = (QGridLayout*)this->layout();
+ if (layout)
+ {
+ layout->setVerticalSpacing(20);
+ layout->setHorizontalSpacing(10);
+ }
+ }
+} // namespace AWSCore
diff --git a/Gems/AWSCore/Code/Source/Editor/Attribution/AWSCoreAttributionManager.cpp b/Gems/AWSCore/Code/Source/Editor/Attribution/AWSCoreAttributionManager.cpp
index b5788fdc17..c649e509be 100644
--- a/Gems/AWSCore/Code/Source/Editor/Attribution/AWSCoreAttributionManager.cpp
+++ b/Gems/AWSCore/Code/Source/Editor/Attribution/AWSCoreAttributionManager.cpp
@@ -7,6 +7,7 @@
#include
#include
+#include
#include
#include
#include
@@ -19,10 +20,10 @@
#include
#include
#include
+#include
#include
-#include
-
+#include
namespace AWSCore
@@ -34,6 +35,7 @@ namespace AWSCore
constexpr char AWSAttributionEnabledKey[] = "/Amazon/AWS/Preferences/AWSAttributionEnabled";
constexpr char AWSAttributionDelaySecondsKey[] = "/Amazon/AWS/Preferences/AWSAttributionDelaySeconds";
constexpr char AWSAttributionLastTimeStampKey[] = "/Amazon/AWS/Preferences/AWSAttributionLastTimeStamp";
+ constexpr char AWSAttributionConsentShown[] = "/Amazon/AWS/Preferences/AWSAttributionConsentShown";
constexpr char AWSAttributionApiId[] = "2zxvvmv8d7";
constexpr char AWSAttributionChinaApiId[] = "";
constexpr char AWSAttributionApiStage[] = "prod";
@@ -42,19 +44,49 @@ namespace AWSCore
AWSAttributionManager::AWSAttributionManager()
{
m_settingsRegistry = AZStd::make_unique();
+ AzToolsFramework::EditorEvents::Bus::Handler::BusConnect();
}
AWSAttributionManager::~AWSAttributionManager()
{
+ AzToolsFramework::EditorEvents::Bus::Handler::BusDisconnect();
m_settingsRegistry.reset();
}
void AWSAttributionManager::Init()
{
+ AZ::IO::FileIOBase* fileIO = AZ::IO::FileIOBase::GetInstance();
+ AZ_Assert(fileIO, "File IO is not initialized.");
+
+ // Resolve path to editor_aws_preferences.setreg
+ AZStd::string editorAWSPreferencesFilePath =
+ AZStd::string::format("@user@/%s/%s", AZ::SettingsRegistryInterface::RegistryFolder, EditorAWSPreferencesFileName);
+ AZStd::array resolvedPathAWSPreference{};
+ if (!fileIO->ResolvePath(editorAWSPreferencesFilePath.c_str(), resolvedPathAWSPreference.data(), resolvedPathAWSPreference.size()))
+ {
+ AZ_Warning("AWSAttributionManager", false, "Error resolving path %s", resolvedPathAWSPreference.data());
+ return;
+ }
+
+ if (fileIO->Exists(resolvedPathAWSPreference.data()))
+ {
+ m_settingsRegistry->MergeSettingsFile(
+ resolvedPathAWSPreference.data(), AZ::SettingsRegistryInterface::Format::JsonMergePatch, "");
+ }
}
void AWSAttributionManager::MetricCheck()
{
+ if (!CheckAWSCredentialsConfigured())
+ {
+ return;
+ }
+
+ if (!CheckConsentShown())
+ {
+ ShowConsentDialog();
+ }
+
if (ShouldGenerateMetric())
{
// Gather metadata and assemble metric
@@ -67,30 +99,12 @@ namespace AWSCore
}
bool AWSAttributionManager::ShouldGenerateMetric() const
- {
- AZ::IO::FileIOBase* fileIO = AZ::IO::FileIOBase::GetInstance();
- AZ_Assert(fileIO, "File IO is not initialized.");
-
- // Resolve path to editor_aws_preferences.setreg
- AZStd::string editorAWSPreferencesFilePath =
- AZStd::string::format("@user@/%s/%s", AZ::SettingsRegistryInterface::RegistryFolder, EditorAWSPreferencesFileName);
- AZStd::array resolvedPathAWSPreference{};
- if (!fileIO->ResolvePath(editorAWSPreferencesFilePath.c_str(), resolvedPathAWSPreference.data(), resolvedPathAWSPreference.size()))
- {
- AZ_Warning("AWSAttributionManager", false, "Error resolving path %s", resolvedPathAWSPreference.data());
- return false;
- }
-
- if (fileIO->Exists(resolvedPathAWSPreference.data()))
- {
- m_settingsRegistry->MergeSettingsFile(resolvedPathAWSPreference.data(), AZ::SettingsRegistryInterface::Format::JsonMergePatch, "");
- }
-
+ {
bool awsAttributionEnabled = false;
if (!m_settingsRegistry->Get(awsAttributionEnabled, AWSAttributionEnabledKey))
{
- // If not found default to sending the metric.
- awsAttributionEnabled = true;
+ AZ_Warning("AWSAttributionManager", false, "Key %s should be set by consent window", AWSAttributionEnabledKey);
+ return false;
}
if (!awsAttributionEnabled)
@@ -124,6 +138,50 @@ namespace AWSCore
return false;
}
+ bool AWSAttributionManager::CheckAWSCredentialsConfigured()
+ {
+ AWSCore::AWSCredentialResult credentialResult;
+ AWSCore::AWSCredentialRequestBus::BroadcastResult(credentialResult, &AWSCore::AWSCredentialRequests::GetCredentialsProvider);
+ if (credentialResult.result)
+ {
+ std::shared_ptr provider = credentialResult.result;
+ auto creds = provider->GetAWSCredentials();
+ if (!creds.IsEmpty())
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ void AWSAttributionManager::ShowConsentDialog()
+ {
+ AWSCoreAttributionConsentDialog* msgBox = aznew AWSCoreAttributionConsentDialog();
+ int ret = msgBox->exec();
+ m_settingsRegistry->Set(AWSAttributionConsentShown, true);
+ switch (ret)
+ {
+ case QMessageBox::Save:
+ m_settingsRegistry->Set(AWSAttributionEnabledKey, msgBox->checkBox());
+ break;
+ case QMessageBox::Cancel:
+ default:
+ m_settingsRegistry->Set(AWSAttributionEnabledKey, false);
+ break;
+ }
+
+ SaveSettingsRegistryFile();
+ delete msgBox;
+ }
+
+ // Waiting on Editor QT main window to be initialized before showing consent window.
+ // This will have the Editor loading screen in the background when showing consent dialog.
+ void AWSAttributionManager::NotifyMainWindowInitialized(QMainWindow* mainWindow)
+ {
+ AZ_UNUSED(mainWindow);
+ MetricCheck();
+ }
+
void AWSAttributionManager::SaveSettingsRegistryFile()
{
AZ::Job* job = AZ::CreateJobFunction(
@@ -199,6 +257,13 @@ namespace AWSCore
AWSResourceMappingUtils::FormatRESTApiUrl(apiId, config->region.value().c_str(), AWSAttributionApiStage).c_str();
}
+ bool AWSAttributionManager::CheckConsentShown()
+ {
+ bool consentShown = false;
+ m_settingsRegistry->Get(consentShown, AWSAttributionConsentShown);
+ return consentShown;
+ }
+
AZStd::string AWSAttributionManager::GetEngineVersion() const
{
AZStd::string engineVersion;
diff --git a/Gems/AWSCore/Code/Source/Editor/Attribution/AWSCoreAttributionSystemComponent.cpp b/Gems/AWSCore/Code/Source/Editor/Attribution/AWSCoreAttributionSystemComponent.cpp
index 8a0f8a5790..e19f899905 100644
--- a/Gems/AWSCore/Code/Source/Editor/Attribution/AWSCoreAttributionSystemComponent.cpp
+++ b/Gems/AWSCore/Code/Source/Editor/Attribution/AWSCoreAttributionSystemComponent.cpp
@@ -64,7 +64,6 @@ namespace AWSCore
void AWSAttributionSystemComponent::Activate()
{
- m_manager->MetricCheck();
}
void AWSAttributionSystemComponent::Deactivate()
diff --git a/Gems/AWSCore/Code/Source/Editor/UI/AWSCoreEditorMenu.cpp b/Gems/AWSCore/Code/Source/Editor/UI/AWSCoreEditorMenu.cpp
index 52a4ce2f16..8c61fa722d 100644
--- a/Gems/AWSCore/Code/Source/Editor/UI/AWSCoreEditorMenu.cpp
+++ b/Gems/AWSCore/Code/Source/Editor/UI/AWSCoreEditorMenu.cpp
@@ -131,9 +131,14 @@ namespace AWSCore
{
QMenu* globalDocsMenu = this->addMenu(QObject::tr(AWSAndO3DEGlobalDocsText));
- globalDocsMenu->addAction(AddExternalLinkAction(AWSAndScriptCanvasActionText, AWSAndScriptCanvasUrl, ":/Notifications/link.svg"));
- globalDocsMenu->addAction(AddExternalLinkAction(AWSAndComponentsActionText, AWSAndComponentsUrl, ":/Notifications/link.svg"));
- globalDocsMenu->addAction(AddExternalLinkAction(CallAWSResourcesActionText, CallAWSResourcesUrl, ":/Notifications/link.svg"));
+ globalDocsMenu->addAction(
+ AddExternalLinkAction(AWSAndO3DEGettingStartedActionText, AWSAndGettingStartedUrl, ":/Notifications/link.svg"));
+ globalDocsMenu->addAction(
+ AddExternalLinkAction(AWSAndO3DEMappingsFileActionText, AWSAndResourceMappingsUrl, ":/Notifications/link.svg"));
+ globalDocsMenu->addAction(
+ AddExternalLinkAction(AWSAndO3DEResourceToolActionText, AWSAndResourceMappingToolUrl, ":/Notifications/link.svg"));
+ globalDocsMenu->addAction(
+ AddExternalLinkAction(AWSAndO3DEScriptingActionText, AWSAndScriptingUrl, ":/Notifications/link.svg"));
AddSpaceForIcon(globalDocsMenu);
}
@@ -158,6 +163,8 @@ namespace AWSCore
subMenu->addAction(AddExternalLinkAction(
AWSClientAuthGemOverviewActionText, AWSClientAuthGemOverviewUrl, ":/Notifications/link.svg"));
+ subMenu->addAction(AddExternalLinkAction(
+ AWSClientAuthGemSetupActionText, AWSClientAuthGemSetupUrl, ":/Notifications/link.svg"));
subMenu->addAction(AddExternalLinkAction(
AWSClientAuthCDKAndResourcesActionText, AWSClientAuthCDKAndResourcesUrl, ":/Notifications/link.svg"));
subMenu->addAction(AddExternalLinkAction(
@@ -166,8 +173,6 @@ namespace AWSCore
AWSClientAuth3rdPartyAuthProviderActionText, AWSClientAuth3rdPartyAuthProviderUrl, ":/Notifications/link.svg"));
subMenu->addAction(AddExternalLinkAction(
AWSClientAuthCustomAuthProviderActionText, AWSClientAuthCustomAuthProviderUrl, ":/Notifications/link.svg"));
- subMenu->addAction(AddExternalLinkAction(
- AWSClientAuthPlatformSpecificActionText, AWSClientAuthPlatformSpecificUrl, ":/Notifications/link.svg"));
subMenu->addAction(AddExternalLinkAction(
AWSClientAuthAPIReferenceActionText, AWSClientAuthAPIReferenceUrl, ":/Notifications/link.svg"));
diff --git a/Gems/AWSCore/Code/Tests/Editor/Attribution/AWSCoreAttributionManagerTest.cpp b/Gems/AWSCore/Code/Tests/Editor/Attribution/AWSCoreAttributionManagerTest.cpp
index a99c1b3015..b151596d48 100644
--- a/Gems/AWSCore/Code/Tests/Editor/Attribution/AWSCoreAttributionManagerTest.cpp
+++ b/Gems/AWSCore/Code/Tests/Editor/Attribution/AWSCoreAttributionManagerTest.cpp
@@ -7,6 +7,7 @@
#include
#include
+#include
#include
#include
@@ -102,6 +103,30 @@ namespace AWSAttributionUnitTest
MOCK_METHOD1(IsModuleLoaded, bool(const char* modulePath));
};
+ class AWSCredentialRquestsBusMock
+ : public AWSCore::AWSCredentialRequestBus::Handler
+ {
+ public:
+ AWSCredentialRquestsBusMock()
+ {
+ m_provider = std::make_shared("TestAccessKey", "TestSecreKey", "TestSession");
+ AWSCore::AWSCredentialRequestBus::Handler::BusConnect();
+ ON_CALL(*this, GetCredentialsProvider()).WillByDefault(testing::Return(m_provider));
+ ON_CALL(*this, GetCredentialHandlerOrder()).WillByDefault(testing::Return(CredentialHandlerOrder::DEFAULT_CREDENTIAL_HANDLER));
+ }
+
+ ~AWSCredentialRquestsBusMock()
+ {
+ AWSCore::AWSCredentialRequestBus::Handler::BusDisconnect();
+ m_provider.reset();
+ }
+
+ MOCK_CONST_METHOD0(GetCredentialHandlerOrder, int());
+ MOCK_METHOD0(GetCredentialsProvider, std::shared_ptr());
+
+ std::shared_ptr m_provider;
+ };
+
class AWSAttributionManagerMock
: public AWSAttributionManager
{
@@ -109,7 +134,7 @@ namespace AWSAttributionUnitTest
using AWSAttributionManager::SubmitMetric;
using AWSAttributionManager::UpdateMetric;
using AWSAttributionManager::SetApiEndpointAndRegion;
-
+ using AWSAttributionManager::ShowConsentDialog;
AWSAttributionManagerMock()
{
@@ -117,6 +142,7 @@ namespace AWSAttributionUnitTest
}
MOCK_METHOD1(SubmitMetric, void(AttributionMetric& metric));
+ MOCK_METHOD0(ShowConsentDialog, void());
void SubmitMetricMock(AttributionMetric& metric)
{
@@ -141,6 +167,7 @@ namespace AWSAttributionUnitTest
AZStd::unique_ptr m_jobManager;
AZStd::array m_resolvedSettingsPath;
ModuleManagerRequestBusMock m_moduleManagerRequestBusMock;
+ AWSCredentialRquestsBusMock m_credentialRequestBusMock;
void SetUp() override
{
@@ -199,16 +226,16 @@ namespace AWSAttributionUnitTest
}
};
- TEST_F(AttributionManagerTest, MetricsSettings_AttributionDisabled_SkipsSend)
+ TEST_F(AttributionManagerTest, MetricsSettings_ConsentShown_AttributionDisabled_SkipsSend)
{
// GIVEN
AWSAttributionManagerMock manager;
- manager.Init();
CreateFile(m_resolvedSettingsPath.data(), R"({
"Amazon": {
"AWS": {
"Preferences": {
+ "AWSAttributionConsentShown": true,
"AWSAttributionEnabled": false,
"AWSAttributionDelaySeconds": 30
}
@@ -216,8 +243,11 @@ namespace AWSAttributionUnitTest
}
})");
+ manager.Init();
+
EXPECT_CALL(manager, SubmitMetric(testing::_)).Times(0);
EXPECT_CALL(m_moduleManagerRequestBusMock, EnumerateModules(testing::_)).Times(0);
+ EXPECT_CALL(m_credentialRequestBusMock, GetCredentialsProvider()).Times(1);
// WHEN
manager.MetricCheck();
@@ -231,25 +261,27 @@ namespace AWSAttributionUnitTest
RemoveFile(m_resolvedSettingsPath.data());
}
- TEST_F(AttributionManagerTest, AttributionEnabled_NoPreviousTimeStamp_SendSuccess)
+ TEST_F(AttributionManagerTest, AttributionEnabled_ContentShown_NoPreviousTimeStamp_SendSuccess)
{
// GIVEN
AWSAttributionManagerMock manager;
- manager.Init();
CreateFile(m_resolvedSettingsPath.data(), R"({
"Amazon": {
"AWS": {
"Preferences": {
+ "AWSAttributionConsentShown": true,
"AWSAttributionEnabled": true,
"AWSAttributionDelaySeconds": 30,
}
}
}
})");
+ manager.Init();
EXPECT_CALL(manager, SubmitMetric(testing::_)).Times(1);
EXPECT_CALL(m_moduleManagerRequestBusMock, EnumerateModules(testing::_)).Times(1);
+ EXPECT_CALL(m_credentialRequestBusMock, GetCredentialsProvider()).Times(1);
// WHEN
manager.MetricCheck();
@@ -264,16 +296,16 @@ namespace AWSAttributionUnitTest
RemoveFile(m_resolvedSettingsPath.data());
}
- TEST_F(AttributionManagerTest, AttributionEnabled_ValidPreviousTimeStamp_SendSuccess)
+ TEST_F(AttributionManagerTest, AttributionEnabled_ContentShown_ValidPreviousTimeStamp_SendSuccess)
{
// GIVEN
AWSAttributionManagerMock manager;
- manager.Init();
CreateFile(m_resolvedSettingsPath.data(), R"({
"Amazon": {
"AWS": {
"Preferences": {
+ "AWSAttributionConsentShown": true,
"AWSAttributionEnabled": true,
"AWSAttributionDelaySeconds": 30,
"AWSAttributionLastTimeStamp": 629400
@@ -282,8 +314,11 @@ namespace AWSAttributionUnitTest
}
})");
+ manager.Init();
+
EXPECT_CALL(manager, SubmitMetric(testing::_)).Times(1);
EXPECT_CALL(m_moduleManagerRequestBusMock, EnumerateModules(testing::_)).Times(1);
+ EXPECT_CALL(m_credentialRequestBusMock, GetCredentialsProvider()).Times(1);
// WHEN
manager.MetricCheck();
@@ -297,17 +332,16 @@ namespace AWSAttributionUnitTest
RemoveFile(m_resolvedSettingsPath.data());
}
- TEST_F(AttributionManagerTest, AttributionEnabled_DelayNotSatisfied_SendFail)
+ TEST_F(AttributionManagerTest, AttributionEnabled_ContentShown_DelayNotSatisfied_SendFail)
{
// GIVEN
AWSAttributionManagerMock manager;
- manager.Init();
-
CreateFile(m_resolvedSettingsPath.data(), R"({
"Amazon": {
"AWS": {
"Preferences": {
+ "AWSAttributionConsentShown": true,
"AWSAttributionEnabled": true,
"AWSAttributionDelaySeconds": 300,
"AWSAttributionLastTimeStamp": 0
@@ -316,11 +350,14 @@ namespace AWSAttributionUnitTest
}
})");
+ manager.Init();
+
AZ::u64 delayInSeconds = AZStd::chrono::duration_cast(AZStd::chrono::system_clock::now().time_since_epoch()).count();
ASSERT_TRUE(m_settingsRegistry->Set("/Amazon/AWS/Preferences/AWSAttributionLastTimeStamp", delayInSeconds));
EXPECT_CALL(manager, SubmitMetric(testing::_)).Times(1);
EXPECT_CALL(m_moduleManagerRequestBusMock, EnumerateModules(testing::_)).Times(1);
+ EXPECT_CALL(m_credentialRequestBusMock, GetCredentialsProvider()).Times(1);
// WHEN
manager.MetricCheck();
@@ -334,23 +371,26 @@ namespace AWSAttributionUnitTest
RemoveFile(m_resolvedSettingsPath.data());
}
- TEST_F(AttributionManagerTest, AttributionEnabledNotFound_SendSuccess)
+ TEST_F(AttributionManagerTest, AttributionEnabledNotFound_ContentShown_SendFail)
{
// GIVEN
AWSAttributionManagerMock manager;
- manager.Init();
CreateFile(m_resolvedSettingsPath.data(), R"({
"Amazon": {
"AWS": {
"Preferences": {
+ "AWSAttributionConsentShown": true
}
}
}
})");
- EXPECT_CALL(manager, SubmitMetric(testing::_)).Times(1);
- EXPECT_CALL(m_moduleManagerRequestBusMock, EnumerateModules(testing::_)).Times(1);
+ manager.Init();
+
+ EXPECT_CALL(manager, SubmitMetric(testing::_)).Times(0);
+ EXPECT_CALL(m_moduleManagerRequestBusMock, EnumerateModules(testing::_)).Times(0);
+ EXPECT_CALL(m_credentialRequestBusMock, GetCredentialsProvider()).Times(1);
// WHEN
manager.MetricCheck();
@@ -359,11 +399,29 @@ namespace AWSAttributionUnitTest
m_settingsRegistry->MergeSettingsFile(m_resolvedSettingsPath.data(), AZ::SettingsRegistryInterface::Format::JsonMergePatch, "");
AZ::u64 timeStamp = 0;
m_settingsRegistry->Get(timeStamp, "/Amazon/AWS/Preferences/AWSAttributionLastTimeStamp");
- ASSERT_TRUE(timeStamp != 0);
+ ASSERT_TRUE(timeStamp == 0);
RemoveFile(m_resolvedSettingsPath.data());
}
+ TEST_F(AttributionManagerTest, AttributionEnabledNotFound_ContentNotShown_SendFail)
+ {
+ // GIVEN
+ AWSAttributionManagerMock manager;
+ manager.Init();
+
+ EXPECT_CALL(manager, SubmitMetric(testing::_)).Times(0);
+ EXPECT_CALL(m_moduleManagerRequestBusMock, EnumerateModules(testing::_)).Times(0);
+ EXPECT_CALL(m_credentialRequestBusMock, GetCredentialsProvider()).Times(1);
+ EXPECT_CALL(manager, ShowConsentDialog()).Times(1);
+
+ // WHEN
+ manager.MetricCheck();
+
+ // THEN
+ ASSERT_FALSE(m_localFileIO->Exists(m_resolvedSettingsPath.data()));
+ }
+
TEST_F(AttributionManagerTest, SetApiEndpointAndRegion_Success)
{
// GIVEN
diff --git a/Gems/AWSCore/Code/awscore_editor_files.cmake b/Gems/AWSCore/Code/awscore_editor_files.cmake
index 8d8661a224..84c58dee67 100644
--- a/Gems/AWSCore/Code/awscore_editor_files.cmake
+++ b/Gems/AWSCore/Code/awscore_editor_files.cmake
@@ -12,6 +12,7 @@ set(FILES
Include/Private/Editor/Attribution/AWSCoreAttributionManager.h
Include/Private/Editor/Attribution/AWSCoreAttributionSystemComponent.h
Include/Private/Editor/Attribution/AWSAttributionServiceApi.h
+ Include/Private/Editor/Attribution/AWSCoreAttributionConsentDialog.h
Include/Private/Editor/AWSCoreEditorManager.h
Include/Private/Editor/Constants/AWSCoreEditorMenuLinks.h
Include/Private/Editor/Constants/AWSCoreEditorMenuNames.h
@@ -23,6 +24,7 @@ set(FILES
Source/Editor/Attribution/AWSCoreAttributionManager.cpp
Source/Editor/Attribution/AWSCoreAttributionSystemComponent.cpp
Source/Editor/Attribution/AWSAttributionServiceApi.cpp
+ Source/Editor/Attribution/AWSCoreAttributionConsentDialog.cpp
Source/Editor/UI/AWSCoreEditorMenu.cpp
Source/Editor/UI/AWSCoreResourceMappingToolAction.cpp
)
diff --git a/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Editor/TexturePropertyEditor.cpp b/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Editor/TexturePropertyEditor.cpp
index cbb3860bdc..85c7dea6f2 100644
--- a/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Editor/TexturePropertyEditor.cpp
+++ b/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Editor/TexturePropertyEditor.cpp
@@ -168,7 +168,7 @@ namespace ImageProcessingAtomEditor
void TexturePropertyEditor::OnHelp()
{
- QString webLink = tr("https://docs.o3de.org/docs/");
+ QString webLink = tr("https://o3de.org/docs/");
QDesktopServices::openUrl(QUrl(webLink));
}
diff --git a/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Previewer/ImagePreviewer.cpp b/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Previewer/ImagePreviewer.cpp
index fb3ecbf6df..a0e33e28cd 100644
--- a/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Previewer/ImagePreviewer.cpp
+++ b/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Previewer/ImagePreviewer.cpp
@@ -46,6 +46,12 @@ namespace ImageProcessingAtom
ImagePreviewer::~ImagePreviewer()
{
+ AZ::SystemTickBus::Handler::BusDisconnect();
+
+ if (m_createDisplayTextureResult.isRunning())
+ {
+ m_createDisplayTextureResult.waitForFinished();
+ }
}
void ImagePreviewer::Clear() const
@@ -209,21 +215,30 @@ namespace ImageProcessingAtom
m_ui->m_fileInfoCtrl->show();
m_fileinfo = QString::fromUtf8(product->GetName().c_str());
m_fileinfo += GetFileSize(product->GetRelativePath().c_str());
-
- AZ::Data::Asset imageAsset = Utils::LoadImageAsset(product->GetAssetId());
- IImageObjectPtr image = Utils::LoadImageFromImageAsset(imageAsset);
- if (image)
+ CreateAndDisplayTextureItemAsync(
+ [assetId = product->GetAssetId()]
+ () -> CreateDisplayTextureResult
{
- // Add product image info
- AZStd::string productInfo;
- GetImageInfoString(imageAsset, productInfo);
+ AZ::Data::Asset imageAsset = Utils::LoadImageAsset(assetId);
+ IImageObjectPtr image = Utils::LoadImageFromImageAsset(imageAsset);
- m_fileinfo += QStringLiteral("\r\n");
- m_fileinfo += productInfo.c_str();
+ if (image)
+ {
+ // Add product image info
+ AZStd::string productInfo;
+ GetImageInfoString(imageAsset, productInfo);
- m_previewImageObject = ConvertImageForPreview(image);
- }
+ QString fileInfo = QStringLiteral("\r\n");
+ fileInfo += productInfo.c_str();
+
+ return { ConvertImageForPreview(image), fileInfo };
+ }
+ else
+ {
+ return { nullptr, "" };
+ }
+ });
DisplayTextureItem();
}
@@ -234,19 +249,28 @@ namespace ImageProcessingAtom
m_fileinfo = QString::fromUtf8(source->GetName().c_str());
m_fileinfo += GetFileSize(source->GetFullPath().c_str());
- IImageObjectPtr image = IImageObjectPtr(LoadImageFromFile(source->GetFullPath()));
-
- if (image)
+ CreateAndDisplayTextureItemAsync(
+ [fullPath = source->GetFullPath()]
+ () -> CreateDisplayTextureResult
{
- // Add source image info
- AZStd::string sourceInfo;
- GetImageInfoString(image, sourceInfo);
+ IImageObjectPtr image = IImageObjectPtr(LoadImageFromFile(fullPath));
- m_fileinfo += QStringLiteral("\r\n");
- m_fileinfo += sourceInfo.c_str();
+ if (image)
+ {
+ // Add source image info
+ AZStd::string sourceInfo;
+ GetImageInfoString(image, sourceInfo);
- m_previewImageObject = ConvertImageForPreview(image);
- }
+ QString fileInfo = QStringLiteral("\r\n");
+ fileInfo += sourceInfo.c_str();
+
+ return { ConvertImageForPreview(image), fileInfo };
+ }
+ else
+ {
+ return { nullptr, "" };
+ }
+ });
DisplayTextureItem();
}
@@ -284,6 +308,27 @@ namespace ImageProcessingAtom
updateGeometry();
}
+ template
+ void ImagePreviewer::CreateAndDisplayTextureItemAsync(CreateFn create)
+ {
+ AZ::SystemTickBus::Handler::BusConnect();
+ m_createDisplayTextureResult = QtConcurrent::run(AZStd::move(create));
+ }
+
+ void ImagePreviewer::OnSystemTick()
+ {
+ if (m_createDisplayTextureResult.isFinished())
+ {
+ CreateDisplayTextureResult result = m_createDisplayTextureResult.result();
+ m_previewImageObject = AZStd::move(result.first);
+ m_fileinfo += result.second;
+
+ AZ::SystemTickBus::Handler::BusDisconnect();
+
+ DisplayTextureItem();
+ }
+ }
+
void ImagePreviewer::PreviewSubImage(uint32_t mip)
{
QImage previewImage = GetSubImagePreview(m_previewImageObject, mip);
diff --git a/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Previewer/ImagePreviewer.h b/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Previewer/ImagePreviewer.h
index f82a1cba5a..6888801d01 100644
--- a/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Previewer/ImagePreviewer.h
+++ b/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Previewer/ImagePreviewer.h
@@ -8,12 +8,15 @@
#if !defined(Q_MOC_RUN)
#include
+#include
#include
#include
#include
#include
+#include
+#include
#endif
namespace Ui
@@ -37,6 +40,7 @@ namespace ImageProcessingAtom
{
class ImagePreviewer
: public AzToolsFramework::AssetBrowser::Previewer
+ , private AZ::SystemTickBus::Handler
{
Q_OBJECT
public:
@@ -60,16 +64,27 @@ namespace ImageProcessingAtom
QString GetFileSize(const char* path);
void DisplayTextureItem();
+ template
+ void CreateAndDisplayTextureItemAsync(CreateFn create);
+
void PreviewSubImage(uint32_t mip);
// QLabel word wrap does not break long words such as filenames, so manual word wrap needed
static QString WordWrap(const QString& string, int maxLength);
+ // SystemTickBus
+ void OnSystemTick() override;
+
QScopedPointer m_ui;
QString m_fileinfo;
QString m_name = "ImagePreviewer";
// Decompressed image in preview. Cache it so we can preview its sub images
IImageObjectPtr m_previewImageObject;
+
+ // Properties for tracking the status of an asynchronous request to display an asset browser entry
+ using CreateDisplayTextureResult = AZStd::pair;
+
+ QFuture m_createDisplayTextureResult;
};
}//namespace ImageProcessingAtom
diff --git a/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Thumbnail/ImageThumbnail.cpp b/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Thumbnail/ImageThumbnail.cpp
index 235bb66864..0a2a837539 100644
--- a/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Thumbnail/ImageThumbnail.cpp
+++ b/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Thumbnail/ImageThumbnail.cpp
@@ -58,7 +58,7 @@ namespace ImageProcessingAtom
void ImageThumbnail::LoadThread()
{
- AzToolsFramework::Thumbnailer::ThumbnailerRendererRequestBus::QueueEvent(
+ AzToolsFramework::Thumbnailer::ThumbnailerRendererRequestBus::Event(
AZ::RPI::StreamingImageAsset::RTTI_Type(), &AzToolsFramework::Thumbnailer::ThumbnailerRendererRequests::RenderThumbnail,
m_key,
ImageThumbnailSize);
diff --git a/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Thumbnail/ImageThumbnailSystemComponent.cpp b/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Thumbnail/ImageThumbnailSystemComponent.cpp
index 56ffc186e0..cc64eaeed9 100644
--- a/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Thumbnail/ImageThumbnailSystemComponent.cpp
+++ b/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Thumbnail/ImageThumbnailSystemComponent.cpp
@@ -10,6 +10,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -110,8 +111,7 @@ namespace ImageProcessingAtom
void ImageThumbnailSystemComponent::RenderThumbnail(
AzToolsFramework::Thumbnailer::SharedThumbnailKey thumbnailKey, int thumbnailSize)
{
- auto sourceKey = azrtti_cast(thumbnailKey.data());
- if (sourceKey)
+ if (auto sourceKey = azrtti_cast(thumbnailKey.data()))
{
bool foundIt = false;
AZ::Data::AssetInfo assetInfo;
@@ -124,52 +124,72 @@ namespace ImageProcessingAtom
{
AZStd::string fullPath;
AZ::StringFunc::Path::Join(watchFolder.c_str(), assetInfo.m_relativePath.c_str(), fullPath);
- if (RenderThumbnailFromImage(thumbnailKey, thumbnailSize, IImageObjectPtr(LoadImageFromFile(fullPath))))
- {
- return;
- }
+ RenderThumbnailFromImage(thumbnailKey, thumbnailSize,
+ [fullPath]() { return IImageObjectPtr(LoadImageFromFile(fullPath)); }
+ );
}
}
-
- auto productKey = azrtti_cast(thumbnailKey.data());
- if (productKey)
+ else if (auto productKey = azrtti_cast(thumbnailKey.data()))
{
- if (RenderThumbnailFromImage(thumbnailKey, thumbnailSize, Utils::LoadImageFromImageAsset(productKey->GetAssetId())))
- {
- return;
- }
+ RenderThumbnailFromImage(thumbnailKey, thumbnailSize,
+ [assetId = productKey->GetAssetId()]() { return Utils::LoadImageFromImageAsset(assetId); }
+ );
+ }
+ else
+ {
+ AzToolsFramework::Thumbnailer::ThumbnailerRendererNotificationBus::Event(
+ thumbnailKey, &AzToolsFramework::Thumbnailer::ThumbnailerRendererNotifications::ThumbnailFailedToRender);
}
-
- AzToolsFramework::Thumbnailer::ThumbnailerRendererNotificationBus::Event(
- thumbnailKey, &AzToolsFramework::Thumbnailer::ThumbnailerRendererNotifications::ThumbnailFailedToRender);
}
- bool ImageThumbnailSystemComponent::RenderThumbnailFromImage(
- AzToolsFramework::Thumbnailer::SharedThumbnailKey thumbnailKey, int thumbnailSize, IImageObjectPtr previewImage) const
+ template
+ void ImageThumbnailSystemComponent::RenderThumbnailFromImage(
+ AzToolsFramework::Thumbnailer::SharedThumbnailKey thumbnailKey, int thumbnailSize, MkImageFn mkPreviewImage) const
{
- if (!previewImage)
+ const auto JobRunner = [mkPreviewImage, thumbnailKey, thumbnailSize]() mutable
{
- return false;
- }
+ IImageObjectPtr previewImage = mkPreviewImage();
+ if (!previewImage)
+ {
+ AZ::SystemTickBus::QueueFunction(
+ [
+ thumbnailKey
+ ]()
+ {
+ AzToolsFramework::Thumbnailer::ThumbnailerRendererNotificationBus::Event(
+ thumbnailKey, &AzToolsFramework::Thumbnailer::ThumbnailerRendererNotifications::ThumbnailFailedToRender);
+ });
- ImageToProcess imageToProcess(previewImage);
- imageToProcess.ConvertFormat(ePixelFormat_R8G8B8A8);
- previewImage = imageToProcess.Get();
+ return;
+ }
- AZ::u8* imageBuf = nullptr;
- AZ::u32 mip = 0;
- AZ::u32 pitch = 0;
- previewImage->GetImagePointer(mip, imageBuf, pitch);
- const AZ::u32 width = previewImage->GetWidth(mip);
- const AZ::u32 height = previewImage->GetHeight(mip);
+ ImageToProcess imageToProcess(previewImage);
+ imageToProcess.ConvertFormat(ePixelFormat_R8G8B8A8);
+ previewImage = imageToProcess.Get();
- QImage image(imageBuf, width, height, pitch, QImage::Format_RGBA8888);
+ AZ::u8* imageBuf = nullptr;
+ AZ::u32 mip = 0;
+ AZ::u32 pitch = 0;
+ previewImage->GetImagePointer(mip, imageBuf, pitch);
+ const AZ::u32 width = previewImage->GetWidth(mip);
+ const AZ::u32 height = previewImage->GetHeight(mip);
- AzToolsFramework::Thumbnailer::ThumbnailerRendererNotificationBus::Event(
- thumbnailKey, &AzToolsFramework::Thumbnailer::ThumbnailerRendererNotifications::ThumbnailRendered,
- QPixmap::fromImage(image.scaled(QSize(thumbnailSize, thumbnailSize), Qt::KeepAspectRatio, Qt::SmoothTransformation)));
+ // Note that this image holds a non-owning pointer to the `previewImage' raw data buffer
+ const QImage image(imageBuf, width, height, pitch, QImage::Format_RGBA8888);
- return true;
+ // Dispatch event on main thread
+ AZ::SystemTickBus::QueueFunction(
+ [
+ thumbnailKey, thumbnailSize,
+ pixmap = QPixmap::fromImage(image.scaled(QSize(thumbnailSize, thumbnailSize), Qt::KeepAspectRatio, Qt::SmoothTransformation))
+ ]() mutable
+ {
+ AzToolsFramework::Thumbnailer::ThumbnailerRendererNotificationBus::Event(
+ thumbnailKey, &AzToolsFramework::Thumbnailer::ThumbnailerRendererNotifications::ThumbnailRendered,
+ pixmap);
+ });
+ };
+ AZ::CreateJobFunction(JobRunner, true)->Start();
}
} // namespace Thumbnails
} // namespace ImageProcessingAtom
diff --git a/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Thumbnail/ImageThumbnailSystemComponent.h b/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Thumbnail/ImageThumbnailSystemComponent.h
index 2b5c722bd3..8830f282ca 100644
--- a/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Thumbnail/ImageThumbnailSystemComponent.h
+++ b/Gems/Atom/Asset/ImageProcessingAtom/Code/Source/Thumbnail/ImageThumbnailSystemComponent.h
@@ -47,8 +47,9 @@ namespace ImageProcessingAtom
bool Installed() const override;
void RenderThumbnail(AzToolsFramework::Thumbnailer::SharedThumbnailKey thumbnailKey, int thumbnailSize) override;
- bool RenderThumbnailFromImage(
- AzToolsFramework::Thumbnailer::SharedThumbnailKey thumbnailKey, int thumbnailSize, IImageObjectPtr previewImage) const;
+ template
+ void RenderThumbnailFromImage(
+ AzToolsFramework::Thumbnailer::SharedThumbnailKey thumbnailKey, int thumbnailSize, MkImageFn mkPreviewImage) const;
};
} // namespace Thumbnails
} // namespace ImageProcessingAtom
diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslShaderBuilderSystemComponent.cpp b/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslShaderBuilderSystemComponent.cpp
index 97d21ae4ea..5e51fd681d 100644
--- a/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslShaderBuilderSystemComponent.cpp
+++ b/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslShaderBuilderSystemComponent.cpp
@@ -81,7 +81,7 @@ namespace AZ
// Register AZSL's compilation products Builder
AssetBuilderSDK::AssetBuilderDesc azslBuilderDescriptor;
azslBuilderDescriptor.m_name = "AZSL Builder";
- azslBuilderDescriptor.m_version = 8; // ATOM-15276
+ azslBuilderDescriptor.m_version = 9; // ATOM-15837
// register all extensions thay may carry azsl code. header. main shader. or SRG
azslBuilderDescriptor.m_patterns.push_back(AssetBuilderSDK::AssetBuilderPattern(AZStd::string::format("*.%s", RPI::ShaderSourceData::Extension), AssetBuilderSDK::AssetBuilderPattern::PatternType::Wildcard));
azslBuilderDescriptor.m_patterns.push_back(AssetBuilderSDK::AssetBuilderPattern("*.azsl", AssetBuilderSDK::AssetBuilderPattern::PatternType::Wildcard));
@@ -97,7 +97,7 @@ namespace AZ
// Register Shader Resource Group Layout Builder
AssetBuilderSDK::AssetBuilderDesc srgLayoutBuilderDescriptor;
srgLayoutBuilderDescriptor.m_name = "Shader Resource Group Layout Builder";
- srgLayoutBuilderDescriptor.m_version = 55; // ATOM-15276
+ srgLayoutBuilderDescriptor.m_version = 56; // ATOM-15837
srgLayoutBuilderDescriptor.m_patterns.push_back(AssetBuilderSDK::AssetBuilderPattern("*.azsl", AssetBuilderSDK::AssetBuilderPattern::PatternType::Wildcard));
srgLayoutBuilderDescriptor.m_patterns.push_back(AssetBuilderSDK::AssetBuilderPattern("*.azsli", AssetBuilderSDK::AssetBuilderPattern::PatternType::Wildcard));
@@ -113,7 +113,7 @@ namespace AZ
// Register Shader Asset Builder
AssetBuilderSDK::AssetBuilderDesc shaderAssetBuilderDescriptor;
shaderAssetBuilderDescriptor.m_name = "Shader Asset Builder";
- shaderAssetBuilderDescriptor.m_version = 100; // ATOM-14298
+ shaderAssetBuilderDescriptor.m_version = 101; // ATOM-15837
// .shader file changes trigger rebuilds
shaderAssetBuilderDescriptor.m_patterns.push_back(AssetBuilderSDK::AssetBuilderPattern( AZStd::string::format("*.%s", RPI::ShaderSourceData::Extension), AssetBuilderSDK::AssetBuilderPattern::PatternType::Wildcard));
shaderAssetBuilderDescriptor.m_busId = azrtti_typeid();
@@ -128,7 +128,7 @@ namespace AZ
shaderVariantAssetBuilderDescriptor.m_name = "Shader Variant Asset Builder";
// Both "Shader Variant Asset Builder" and "Shader Asset Builder" produce ShaderVariantAsset products. If you update
// ShaderVariantAsset you will need to update BOTH version numbers, not just "Shader Variant Asset Builder".
- shaderVariantAssetBuilderDescriptor.m_version = 21; // ATOM-14298
+ shaderVariantAssetBuilderDescriptor.m_version = 22; // ATOM-15837
shaderVariantAssetBuilderDescriptor.m_patterns.push_back(AssetBuilderSDK::AssetBuilderPattern(AZStd::string::format("*.%s", RPI::ShaderVariantListSourceData::Extension), AssetBuilderSDK::AssetBuilderPattern::PatternType::Wildcard));
shaderVariantAssetBuilderDescriptor.m_busId = azrtti_typeid();
shaderVariantAssetBuilderDescriptor.m_createJobFunction = AZStd::bind(&ShaderVariantAssetBuilder::CreateJobs, &m_shaderVariantAssetBuilder, AZStd::placeholders::_1, AZStd::placeholders::_2);
@@ -140,7 +140,7 @@ namespace AZ
// Register Precompiled Shader Builder
AssetBuilderSDK::AssetBuilderDesc precompiledShaderBuilderDescriptor;
precompiledShaderBuilderDescriptor.m_name = "Precompiled Shader Builder";
- precompiledShaderBuilderDescriptor.m_version = 8; // ATOM-15276
+ precompiledShaderBuilderDescriptor.m_version = 9; // ATOM-15837
precompiledShaderBuilderDescriptor.m_patterns.push_back(AssetBuilderSDK::AssetBuilderPattern(AZStd::string::format("*.%s", AZ::PrecompiledShaderBuilder::Extension), AssetBuilderSDK::AssetBuilderPattern::PatternType::Wildcard));
precompiledShaderBuilderDescriptor.m_busId = azrtti_typeid();
precompiledShaderBuilderDescriptor.m_createJobFunction = AZStd::bind(&PrecompiledShaderBuilder::CreateJobs, &m_precompiledShaderBuilder, AZStd::placeholders::_1, AZStd::placeholders::_2);
@@ -148,43 +148,6 @@ namespace AZ
m_precompiledShaderBuilder.BusConnect(precompiledShaderBuilderDescriptor.m_busId);
AssetBuilderSDK::AssetBuilderBus::Broadcast(&AssetBuilderSDK::AssetBuilderBus::Handler::RegisterBuilderInformation, precompiledShaderBuilderDescriptor);
-
- // Register Shader Asset Builder 2
- AssetBuilderSDK::AssetBuilderDesc shaderAssetBuilder2Descriptor;
- shaderAssetBuilder2Descriptor.m_name = "Shader Asset Builder 2";
- shaderAssetBuilder2Descriptor.m_version = 1; // ATOM-15276
- // .shader2 file changes trigger rebuilds
- shaderAssetBuilder2Descriptor.m_patterns.push_back(AssetBuilderSDK::AssetBuilderPattern(
- AZStd::string::format("*.%s", RPI::ShaderSourceData::Extension2),
- AssetBuilderSDK::AssetBuilderPattern::PatternType::Wildcard));
- shaderAssetBuilder2Descriptor.m_busId = azrtti_typeid();
- shaderAssetBuilder2Descriptor.m_createJobFunction =
- AZStd::bind(&ShaderAssetBuilder2::CreateJobs, &m_shaderAssetBuilder2, AZStd::placeholders::_1, AZStd::placeholders::_2);
- shaderAssetBuilder2Descriptor.m_processJobFunction =
- AZStd::bind(&ShaderAssetBuilder2::ProcessJob, &m_shaderAssetBuilder2, AZStd::placeholders::_1, AZStd::placeholders::_2);
-
- m_shaderAssetBuilder2.BusConnect(shaderAssetBuilder2Descriptor.m_busId);
- AssetBuilderSDK::AssetBuilderBus::Broadcast(
- &AssetBuilderSDK::AssetBuilderBus::Handler::RegisterBuilderInformation, shaderAssetBuilder2Descriptor);
-
- // Register Shader Variant Asset Builder 2
- AssetBuilderSDK::AssetBuilderDesc shaderVariantAssetBuilder2Descriptor;
- shaderVariantAssetBuilder2Descriptor.m_name = "Shader Variant Asset Builder 2";
- // Both "Shader Variant Asset Builder" and "Shader Asset Builder" produce ShaderVariantAsset products. If you update
- // ShaderVariantAsset you will need to update BOTH version numbers, not just "Shader Variant Asset Builder".
- shaderVariantAssetBuilder2Descriptor.m_version = 1; // ATOM-15276
- shaderVariantAssetBuilder2Descriptor.m_patterns.push_back(AssetBuilderSDK::AssetBuilderPattern(
- AZStd::string::format("*.%s", RPI::ShaderVariantListSourceData::Extension2),
- AssetBuilderSDK::AssetBuilderPattern::PatternType::Wildcard));
- shaderVariantAssetBuilder2Descriptor.m_busId = azrtti_typeid();
- shaderVariantAssetBuilder2Descriptor.m_createJobFunction = AZStd::bind(
- &ShaderVariantAssetBuilder2::CreateJobs, &m_shaderVariantAssetBuilder2, AZStd::placeholders::_1, AZStd::placeholders::_2);
- shaderVariantAssetBuilder2Descriptor.m_processJobFunction = AZStd::bind(
- &ShaderVariantAssetBuilder2::ProcessJob, &m_shaderVariantAssetBuilder2, AZStd::placeholders::_1, AZStd::placeholders::_2);
-
- m_shaderVariantAssetBuilder2.BusConnect(shaderVariantAssetBuilder2Descriptor.m_busId);
- AssetBuilderSDK::AssetBuilderBus::Broadcast(
- &AssetBuilderSDK::AssetBuilderBus::Handler::RegisterBuilderInformation, shaderVariantAssetBuilder2Descriptor);
}
void AzslShaderBuilderSystemComponent::Deactivate()
@@ -193,8 +156,6 @@ namespace AZ
m_srgLayoutBuilder.BusDisconnect();
m_shaderVariantAssetBuilder.BusDisconnect();
m_precompiledShaderBuilder.BusDisconnect();
- m_shaderAssetBuilder2.BusDisconnect();
- m_shaderVariantAssetBuilder2.BusDisconnect();
RHI::ShaderPlatformInterfaceRegisterBus::Handler::BusDisconnect();
ShaderPlatformInterfaceRequestBus::Handler::BusDisconnect();
diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslShaderBuilderSystemComponent.h b/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslShaderBuilderSystemComponent.h
index c1ebac0424..9112e9089a 100644
--- a/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslShaderBuilderSystemComponent.h
+++ b/Gems/Atom/Asset/Shader/Code/Source/Editor/AzslShaderBuilderSystemComponent.h
@@ -19,8 +19,6 @@
#include "ShaderVariantAssetBuilder.h"
#include "PrecompiledShaderBuilder.h"
#include "ShaderPlatformInterfaceRequest.h"
-#include "ShaderAssetBuilder2.h"
-#include "ShaderVariantAssetBuilder2.h"
namespace AZ
{
@@ -68,8 +66,6 @@ namespace AZ
ShaderAssetBuilder m_shaderAssetBuilder;
ShaderVariantAssetBuilder m_shaderVariantAssetBuilder;
PrecompiledShaderBuilder m_precompiledShaderBuilder;
- ShaderAssetBuilder2 m_shaderAssetBuilder2;
- ShaderVariantAssetBuilder2 m_shaderVariantAssetBuilder2;
/// Contains the ShaderPlatformInterface for all registered RHIs
AZStd::unordered_map m_shaderPlatformInterfaces;
diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderAssetBuilder2.cpp b/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderAssetBuilder2.cpp
deleted file mode 100644
index 88ae3d5d74..0000000000
--- a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderAssetBuilder2.cpp
+++ /dev/null
@@ -1,679 +0,0 @@
-/*
- * Copyright (c) Contributors to the Open 3D Engine Project
- *
- * SPDX-License-Identifier: Apache-2.0 OR MIT
- *
- */
-
-#include "ShaderAssetBuilder2.h"
-
-#include
-#include
-
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-
-#include
-#include
-
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include "AzslBuilder.h"
-#include "ShaderVariantAssetBuilder2.h"
-#include "ShaderBuilderUtility.h"
-#include "ShaderPlatformInterfaceRequest.h"
-#include "AtomShaderConfig.h"
-
-#include
-#include
-namespace AZ
-{
- namespace ShaderBuilder
- {
- static constexpr char ShaderAssetBuilder2Name[] = "ShaderAssetBuilder2";
- static constexpr uint32_t ShaderAssetBuildTimestampParam = 0;
-
- void ShaderAssetBuilder2::CreateJobs(const AssetBuilderSDK::CreateJobsRequest& request, AssetBuilderSDK::CreateJobsResponse& response) const
- {
- AZStd::string fullPath;
- AzFramework::StringFunc::Path::ConstructFull(request.m_watchFolder.data(), request.m_sourceFile.data(), fullPath, true);
-
- AZ_TracePrintf(ShaderAssetBuilder2Name, "CreateJobs for Shader \"%s\"\n", fullPath.data());
-
- // Used to synchronize versions of the ShaderAsset and ShaderVariantTreeAsset, especially during hot-reload.
- // Note it's probably important for this to be set once outside the platform loop so every platform's ShaderAsset
- // has the same value, because later the ShaderVariantTreeAsset job will fetch this value from the local ShaderAsset
- // which could cross platforms (i.e. building an android ShaderVariantTreeAsset on PC would fetch the tiemstamp from
- // the PC's ShaderAsset).
- AZStd::sys_time_t shaderAssetBuildTimestamp = AZStd::GetTimeNowMicroSecond();
-
- // Need to get the name of the azsl file from the .shader source asset, to be able to declare a dependency to SRG Layout Job.
- // and the macro options to preprocess.
- auto descriptorParseOutcome = ShaderBuilderUtility::LoadShaderDataJson(fullPath);
- if (!descriptorParseOutcome.IsSuccess())
- {
- AZ_Error(
- ShaderAssetBuilder2Name, false, "Failed to parse Shader Descriptor JSON: %s",
- descriptorParseOutcome.GetError().c_str());
- return;
- }
-
- RPI::ShaderSourceData shaderSourceData = descriptorParseOutcome.TakeValue();
-
- AZStd::string azslFullPath;
- ShaderBuilderUtility::GetAbsolutePathToAzslFile(fullPath, shaderSourceData.m_source, azslFullPath);
- if (!IO::FileIOBase::GetInstance()->Exists(azslFullPath.c_str()))
- {
- AZ_Error(
- ShaderAssetBuilder2Name, false, "Shader program listed as the source entry does not exist: %s.", azslFullPath.c_str());
- response.m_result = AssetBuilderSDK::CreateJobsResultCode::Failed;
- return;
- }
-
-
- GlobalBuildOptions buildOptions = ReadBuildOptions(ShaderAssetBuilder2Name);
-
- // [GFX TODO] [ATOM-14966] In principle, based on macro definitions, included files can change per supervariant.
- // So, the list of source asset dependencies must be collected by running MCPP on each supervariant.
- // For now, we will run MCPP only once because CreateJobs() should be as light as possible.
- //
- // Regardless of the PlatformInfo and enabled ShaderPlatformInterfaces, the azsl file will be preprocessed
- // with the sole purpose of extracting all included files. For each included file a SourceDependency will be declared.
- PreprocessorData output;
- buildOptions.m_compilerArguments.Merge(shaderSourceData.m_compiler);
- PreprocessFile(azslFullPath, output, buildOptions.m_preprocessorSettings, true, true);
- for (auto includePath : output.includedPaths)
- {
- // m_sourceFileDependencyList does not support paths with "." or ".." for relative lookup, but the preprocessor
- // may produce path strings like "C:/a/b/c/../../d/file.azsli" so we have to normalize
- AzFramework::StringFunc::Path::Normalize(includePath);
-
- AssetBuilderSDK::SourceFileDependency includeFileDependency;
- includeFileDependency.m_sourceFileDependencyPath = includePath;
- response.m_sourceFileDependencyList.emplace_back(includeFileDependency);
- }
-
- {
- // Add the AZSL as source dependency
- AssetBuilderSDK::SourceFileDependency azslFileDependency;
- azslFileDependency.m_sourceFileDependencyPath = azslFullPath;
- response.m_sourceFileDependencyList.emplace_back(azslFileDependency);
- }
-
- for (const AssetBuilderSDK::PlatformInfo& platformInfo : request.m_enabledPlatforms)
- {
- AZ_TraceContext("For platform", platformInfo.m_identifier.data());
-
- // Get the platform interfaces to be able to access the prepend file
- AZStd::vector platformInterfaces = ShaderBuilderUtility::DiscoverValidShaderPlatformInterfaces(platformInfo);
- if (platformInterfaces.empty())
- {
- continue;
- }
-
- AssetBuilderSDK::JobDescriptor jobDescriptor;
- jobDescriptor.m_priority = 2;
- // [GFX TODO][ATOM-2830] Set 'm_critical' back to 'false' once proper fix for Atom startup issues are in
- jobDescriptor.m_critical = true;
- jobDescriptor.m_jobKey = ShaderAssetBuilder2JobKey;
- jobDescriptor.SetPlatformIdentifier(platformInfo.m_identifier.c_str());
- jobDescriptor.m_jobParameters.emplace(ShaderAssetBuildTimestampParam, AZStd::to_string(shaderAssetBuildTimestamp));
-
- response.m_createJobOutputs.push_back(jobDescriptor);
- } // for all request.m_enabledPlatforms
-
- response.m_result = AssetBuilderSDK::CreateJobsResultCode::Success;
- }
-
- static bool SerializeOutShaderAsset(Data::Asset shaderAsset,
- const AZStd::string& tempDirPath,
- AssetBuilderSDK::ProcessJobResponse& response)
- {
- AZStd::string shaderAssetFileName = AZStd::string::format("%s.%s", shaderAsset->GetName().GetCStr(), RPI::ShaderAsset2::Extension);
- AZStd::string shaderAssetOutputPath;
- AzFramework::StringFunc::Path::ConstructFull(tempDirPath.data(), shaderAssetFileName.data(), shaderAssetOutputPath, true);
-
- if (!Utils::SaveObjectToFile(shaderAssetOutputPath, DataStream::ST_BINARY, shaderAsset.Get()))
- {
- AZ_Error(ShaderAssetBuilder2Name, false, "Failed to output Shader Descriptor");
- return false;
- }
-
- AssetBuilderSDK::JobProduct shaderJobProduct;
- if (!AssetBuilderSDK::OutputObject(shaderAsset.Get(), shaderAssetOutputPath, azrtti_typeid(),
- aznumeric_cast(RPI::ShaderAsset2ProductSubId::ShaderAsset2), shaderJobProduct))
- {
- AZ_Error(ShaderAssetBuilder2Name, false, "Failed to output product dependencies.");
- return false;
- }
- response.m_outputProducts.push_back(AZStd::move(shaderJobProduct));
-
- return true;
- }
-
- static AZ::Outcome BuildAttributesMap(
- const RHI::ShaderPlatformInterface* shaderPlatformInterface,
- const AzslData& azslData,
- const MapOfStringToStageType& shaderEntryPoints,
- bool& hasRasterProgram)
- {
- hasRasterProgram = false;
- bool hasComputeProgram = false;
- bool hasRayTracingProgram = false;
- RHI::ShaderStageAttributeMapList attributeMaps;
- attributeMaps.resize(RHI::ShaderStageCount);
- for (const auto& shaderEntryPoint : shaderEntryPoints)
- {
- auto shaderEntryName = shaderEntryPoint.first;
- auto shaderStageType = shaderEntryPoint.second;
- auto assetBuilderShaderType = ShaderBuilderUtility::ToAssetBuilderShaderType(shaderStageType);
- hasRasterProgram |= shaderPlatformInterface->IsShaderStageForRaster(assetBuilderShaderType);
- hasComputeProgram |= shaderPlatformInterface->IsShaderStageForCompute(assetBuilderShaderType);
- hasRayTracingProgram |= shaderPlatformInterface->IsShaderStageForRayTracing(assetBuilderShaderType);
-
- auto findId = AZStd::find_if(AZ_BEGIN_END(azslData.m_functions), [&shaderEntryPoint](const auto& func) {
- return func.m_name == shaderEntryPoint.first;
- });
-
- if (findId == azslData.m_functions.end())
- {
- // shaderData.m_functions only contains Vertex, Fragment and Compute entries for now
- // Tessellation shaders will need to be handled too
- continue;
- }
-
- const auto shaderStage = ToRHIShaderStage(assetBuilderShaderType);
- for (const auto& attr : findId->attributesList)
- {
- // Some stages like RHI::ShaderStage::Tessellation are compound and consist of two or more shader entries
- const Name& attributeName = attr.first;
- const RHI::ShaderStageAttributeArguments& args = attr.second;
- const auto stageIndex = static_cast(shaderStage);
- AZ_Assert(stageIndex < RHI::ShaderStageCount, "Invalid shader stage specified!");
- attributeMaps[stageIndex][attributeName] = args;
- }
- }
-
- if (hasRasterProgram && hasComputeProgram)
- {
- return AZ::Failure(AZStd::string(" Shader asset descriptor defines both a raster entry point and a compute entry point."));
- }
-
- if (!hasRasterProgram && !hasComputeProgram && !hasRayTracingProgram)
- {
- AZStd::string entryPointNames = ShaderBuilderUtility::GetAcceptableDefaultEntryPointNames(azslData);
- return AZ::Failure(
- AZStd::string::format( "Shader asset descriptor has a program variant that does not define any entry points. Either declare entry "
- "points in the .shader file, or use one of the available default names (not case-sensitive): [%s]",
- entryPointNames.c_str()));
- }
-
- return AZ::Success(attributeMaps);
- }
-
- void ShaderAssetBuilder2::ProcessJob(const AssetBuilderSDK::ProcessJobRequest& request, AssetBuilderSDK::ProcessJobResponse& response) const
- {
- const AZStd::sys_time_t startTime = AZStd::GetTimeNowTicks();
- AZStd::string shaderFullPath;
- AzFramework::StringFunc::Path::ConstructFull(request.m_watchFolder.c_str(), request.m_sourceFile.c_str(), shaderFullPath, true);
- // Save .shader file name (no extension and no parent directory path)
- AZStd::string shaderFileName;
- AzFramework::StringFunc::Path::GetFileName(request.m_sourceFile.c_str(), shaderFileName);
-
- // No error checking because the same calls were already executed during CreateJobs()
- auto descriptorParseOutcome = ShaderBuilderUtility::LoadShaderDataJson(shaderFullPath);
- RPI::ShaderSourceData shaderSourceData = descriptorParseOutcome.TakeValue();
- AZStd::string azslFullPath;
- ShaderBuilderUtility::GetAbsolutePathToAzslFile(shaderFullPath, shaderSourceData.m_source, azslFullPath);
- AZ_TracePrintf(ShaderAssetBuilder2Name, "Original AZSL File: %s \n", azslFullPath.c_str());
-
- // The directory where the Azsl file was found must be added to the list of include paths
- AZStd::string azslFolderPath;
- AzFramework::StringFunc::Path::GetFolderPath(azslFullPath.c_str(), azslFolderPath);
- GlobalBuildOptions buildOptions = ReadBuildOptions(ShaderAssetBuilder2Name, azslFolderPath.c_str());
-
- // Request the list of valid shader platform interfaces for the target platform.
- AZStd::vector platformInterfaces = ShaderBuilderUtility::DiscoverEnabledShaderPlatformInterfaces(
- request.m_platformInfo, shaderSourceData);
- if (platformInterfaces.empty())
- {
- //No work to do. Exit gracefully.
- AZ_TracePrintf(ShaderAssetBuilder2Name,
- "No azshader is produced on behalf of %s because all valid RHI backends were disabled for this shader.\n",
- shaderFullPath.c_str());
- response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Success;
- return;
- }
-
- // Get the time stamp string as sys_time_t, and also convert back to string to make sure it was converted correctly.
- AZStd::sys_time_t shaderAssetBuildTimestamp = 0;
- auto shaderAssetBuildTimestampIterator = request.m_jobDescription.m_jobParameters.find(ShaderAssetBuildTimestampParam);
- if (shaderAssetBuildTimestampIterator != request.m_jobDescription.m_jobParameters.end())
- {
- shaderAssetBuildTimestamp = AZStd::stoull(shaderAssetBuildTimestampIterator->second);
-
- if (AZStd::to_string(shaderAssetBuildTimestamp) != shaderAssetBuildTimestampIterator->second)
- {
- response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed;
- AZ_Assert(false, "Incorrect conversion of ShaderAssetBuildTimestampParam");
- return;
- }
- }
-
- auto supervariantList = ShaderBuilderUtility::GetSupervariantListFromShaderSourceData(shaderSourceData);
-
- RPI::ShaderAssetCreator2 shaderAssetCreator;
- shaderAssetCreator.Begin(Uuid::CreateRandom());
-
- shaderAssetCreator.SetName(AZ::Name{shaderFileName.c_str()});
- shaderAssetCreator.SetDrawListName(Name(shaderSourceData.m_drawListName));
- shaderAssetCreator.SetShaderAssetBuildTimestamp(shaderAssetBuildTimestamp);
-
- // The ShaderOptionGroupLayout must be the same across all supervariants because
- // there can be only a single ShaderVariantTreeAsset per ShaderAsset.
- // We will store here the one that results when the *.azslin file is
- // compiled for the default, nameless, supervariant.
- // For all other supervariants we just make sure the hashes are the same
- // as this one.
- RPI::Ptr finalShaderOptionGroupLayout = nullptr;
-
-
- // Time to describe the big picture.
- // 1- Preprocess an AZSL file with MCPP (a C-Preprocessor), and generate a flat AZSL file without #include lines and any macros in it.
- // Let's call it the Flat-AZSL file. There are two levels of macro definition that need to be merged before we can invoke MCPP:
- // 1.1- From /Config/shader_global_build_options.json, which we have stored in the local variable @buildOptions.
- // 1.2- From the "Supervariant" definition key, which can be different for each supervariant.
- // 2- There will be one Flat-AZSL per supervariant. Each Flat-AZSL will be transpiled to HLSL with AZSLc. This means there will be one HLSL file
- // per supervariant.
- // 3- The generated HLSL (one HLSL per supervariant) file may contain C-Preprocessor Macros inserted by AZSLc. And that file will be given to DXC.
- // DXC has a preprocessor embedded in it. DXC will be executed once for each entry function listed in the .shader file.
- // There will be one DXIL compiled binary for each entry function. All the DXIL compiled binaries for each supervariant will be combined
- // in the ROOT ShaderVariantAsset.
-
- // Remark: In general, the work done by the ShaderVariantAssetBuilder is similar, but it will start from the HLSL file created; in step 2, mentioned above; by this builder,
- // for each supervariant.
-
- // At this moment We have global build options that should be merged with the build options that are common
- // to all the supervariants of this shader.
- buildOptions.m_compilerArguments.Merge(shaderSourceData.m_compiler);
-
- for (RHI::ShaderPlatformInterface* shaderPlatformInterface : platformInterfaces)
- {
- AZStd::string apiName(shaderPlatformInterface->GetAPIName().GetCStr());
- AZ_TraceContext("Platform API", apiName);
- // Signal the begin of shader data for an RHI API.
- shaderAssetCreator.BeginAPI(shaderPlatformInterface->GetAPIType());
-
- // Each shaderPlatformInterface has its own azsli header that needs to be prepended to the AZSL file before
- // preprocessing. We will create a new temporary file that contains the combined data.
- RHI::PrependArguments args;
- args.m_sourceFile = azslFullPath.c_str();
- args.m_prependFile = shaderPlatformInterface->GetAzslHeader(request.m_platformInfo);
- args.m_addSuffixToFileName = apiName.c_str();
- args.m_destinationFolder = request.m_tempDirPath.c_str();
-
- AZStd::string prependedAzslFilePath = RHI::PrependFile(args);
- if (prependedAzslFilePath == azslFullPath)
- {
- // The specific error is already reported by RHI::PrependFile().
- response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed;
- return;
- }
-
- // Cache common AZSLC invokation arguments related with the current RHI Backend.
- // Each supervariant can, optionally, remove or add more arguments for AZSLc.
- AZStd::string commonAzslcCompilerParameters =
- shaderPlatformInterface->GetAzslCompilerParameters(buildOptions.m_compilerArguments);
- commonAzslcCompilerParameters += " ";
- commonAzslcCompilerParameters +=
- shaderPlatformInterface->GetAzslCompilerWarningParameters(buildOptions.m_compilerArguments);
- AtomShaderConfig::AddParametersFromConfigFile(commonAzslcCompilerParameters, request.m_platformInfo);
-
- // The register number only makes sense if the platform uses "spaces",
- // since the register Id of the resource will not change even if the pipeline layout changes.
- // We can pass in a default ShaderCompilerArguments because all we care about is whether the shaderPlatformInterface
- // appends the "--use-spaces" flag.
- const bool platformUsesRegisterSpaces =
- (AzFramework::StringFunc::Find(commonAzslcCompilerParameters, "--use-spaces") != AZStd::string::npos);
-
- uint32_t supervariantIndex = 0;
- for (const auto& supervariantInfo : supervariantList)
- {
- AssetBuilderSDK::JobCancelListener jobCancelListener(request.m_jobId);
- if (jobCancelListener.IsCancelled())
- {
- response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Cancelled;
- return;
- }
-
- shaderAssetCreator.BeginSupervariant(supervariantInfo.m_name);
-
- // Let's combine the global macro definitions, with the macro definitions particular to this
- // supervariant. Two steps:
- // 1- Supervariants can specify which macros to remove from the global definitions.
- AZStd::vector macroDefinitionNamesToRemove = supervariantInfo.GetCombinedListOfMacroDefinitionNamesToRemove();
- PreprocessorOptions preprocessorOptions = buildOptions.m_preprocessorSettings;
- preprocessorOptions.RemovePredefinedMacros(macroDefinitionNamesToRemove);
- // 2- Supervariants can specify which macros to add.
- AZStd::vector macroDefinitionsToAdd = supervariantInfo.GetMacroDefinitionsToAdd();
- preprocessorOptions.m_predefinedMacros.insert(
- preprocessorOptions.m_predefinedMacros.end(), macroDefinitionsToAdd.begin(), macroDefinitionsToAdd.end());
- // Run the preprocessor.
- PreprocessorData output;
- PreprocessFile(prependedAzslFilePath, output, preprocessorOptions, true, true);
- RHI::ReportErrorMessages(ShaderAssetBuilder2Name, output.diagnostics);
- // Dump the preprocessed string as a flat AZSL file with extension .azslin, which will be given to AZSLc to generate the HLSL file.
- AZStd::string superVariantAzslinStemName = shaderFileName;
- if (!supervariantInfo.m_name.IsEmpty())
- {
- superVariantAzslinStemName += AZStd::string::format("-%s", supervariantInfo.m_name.GetCStr());
- }
- AZStd::string azslinFullPath = ShaderBuilderUtility::DumpPreprocessedCode(
- ShaderAssetBuilder2Name, output.code, request.m_tempDirPath, superVariantAzslinStemName,
- apiName, true /*add2*/);
- if (azslinFullPath.empty())
- {
- response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed;
- return;
- }
- AZ_TracePrintf(ShaderAssetBuilder2Name, "Preprocessed AZSL File: %s \n", prependedAzslFilePath.c_str());
-
- // Before transpiling the flat-AZSL(.azslin) file into HLSL it is necessary
- // to setup the AZSLc arguments as required by the current supervariant.
- AZStd::string azslcCompilerParameters = supervariantInfo.GetCustomizedArgumentsForAzslc(commonAzslcCompilerParameters);
-
- // Ready to transpile the azslin file into HLSL.
- ShaderBuilder::AzslCompiler azslc(azslinFullPath);
- AZStd::string hlslFullPath = AZStd::string::format("%s_%s.hlsl2", superVariantAzslinStemName.c_str(), apiName.c_str());
- AzFramework::StringFunc::Path::Join(request.m_tempDirPath.c_str(), hlslFullPath.c_str(), hlslFullPath, true);
- auto emitFullOutcome = azslc.EmitFullData(azslcCompilerParameters, hlslFullPath, "2");
- if (!emitFullOutcome.IsSuccess())
- {
- response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed;
- return;
- }
- ShaderBuilderUtility::AzslSubProducts::Paths subProductsPaths = emitFullOutcome.TakeValue();
-
- // In addition to the hlsl file, there are other json files that were generated.
- // Each output file will become a product.
- for (int i = 0; i < subProductsPaths.size(); ++i)
- {
- AssetBuilderSDK::JobProduct jobProduct;
- jobProduct.m_productFileName = subProductsPaths[i];
- static const AZ::Uuid AzslOutcomeType = "{6977AEB1-17AD-4992-957B-23BB2E85B18B}";
- jobProduct.m_productAssetType = AzslOutcomeType;
- // uint32_t rhiApiUniqueIndex, uint32_t supervariantIndex, uint32_t subProductType
- jobProduct.m_productSubID = RPI::ShaderAsset2::MakeProductAssetSubId(
- shaderPlatformInterface->GetAPIUniqueIndex(), supervariantIndex,
- aznumeric_cast(ShaderBuilderUtility::AzslSubProducts::SubList[i]));
- jobProduct.m_dependenciesHandled = true;
- // Note that the output products are not traditional product assets that will be used by the game project.
- // They are artifacts that are produced once, cached, and used later by other AssetBuilders as a way to centralize
- // build organization.
- response.m_outputProducts.push_back(AZStd::move(jobProduct));
- }
-
- AZStd::shared_ptr files(new ShaderFiles);
- AzslData azslData(files);
- azslData.m_preprocessedFullPath = azslinFullPath;
- RPI::ShaderResourceGroupLayoutList srgLayoutList;
- RPI::Ptr shaderOptionGroupLayout = RPI::ShaderOptionGroupLayout::Create();
- BindingDependencies bindingDependencies;
- RootConstantData rootConstantData;
- AssetBuilderSDK::ProcessJobResultCode azslJsonReadResult = ShaderBuilderUtility::PopulateAzslDataFromJsonFiles(
- ShaderAssetBuilder2Name, subProductsPaths, platformUsesRegisterSpaces, azslData, srgLayoutList, shaderOptionGroupLayout,
- bindingDependencies, rootConstantData);
- if (azslJsonReadResult != AssetBuilderSDK::ProcessJobResult_Success)
-
- {
- response.m_resultCode = azslJsonReadResult;
- return;
- }
-
- shaderAssetCreator.SetSrgLayoutList(srgLayoutList);
-
- if (!finalShaderOptionGroupLayout)
- {
- finalShaderOptionGroupLayout = shaderOptionGroupLayout;
- shaderAssetCreator.SetShaderOptionGroupLayout(finalShaderOptionGroupLayout);
- const uint32_t usedShaderOptionBits = shaderOptionGroupLayout->GetBitSize();
- AZ_TracePrintf(
- ShaderAssetBuilder2Name, "Note: This shader uses %u of %u available shader variant key bits. \n",
- usedShaderOptionBits, RPI::ShaderVariantKeyBitCount);
- }
- else
- {
- if (finalShaderOptionGroupLayout->GetHash() != shaderOptionGroupLayout->GetHash())
- {
- AZ_Error(
- ShaderAssetBuilder2Name, false, "Supervariant %s has a different ShaderOptionGroupLayout",
- supervariantInfo.m_name.GetCStr())
- response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed;
- return;
- }
- }
-
- // Discover entry points & type of programs.
- MapOfStringToStageType shaderEntryPoints;
- if (shaderSourceData.m_programSettings.m_entryPoints.empty())
- {
- AZ_TracePrintf(
- ShaderAssetBuilder2Name,
- "ProgramSettings do not specify entry points, will use GetDefaultEntryPointsFromShader()\n");
- ShaderBuilderUtility::GetDefaultEntryPointsFromFunctionDataList(azslData.m_functions, shaderEntryPoints);
- }
- else
- {
- for (const auto& entryPoint : shaderSourceData.m_programSettings.m_entryPoints)
- {
- shaderEntryPoints[entryPoint.m_name] = entryPoint.m_type;
- }
- }
-
- bool hasRasterProgram = false;
- auto attributeMapsOutcome = BuildAttributesMap(shaderPlatformInterface, azslData, shaderEntryPoints, hasRasterProgram);
- if (!attributeMapsOutcome.IsSuccess())
- {
- AZ_Error(ShaderAssetBuilder2Name, false, "%s\n", attributeMapsOutcome.GetError().c_str());
- response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed;
- return;
- }
- shaderAssetCreator.SetShaderStageAttributeMapList(attributeMapsOutcome.TakeValue());
-
- // Check if we were canceled before we do any heavy processing of
- // the shader data (compiling the shader kernels, processing SRG
- // and pipeline layout data, etc.).
- if (jobCancelListener.IsCancelled())
- {
- response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Cancelled;
- return;
- }
-
- RHI::Ptr pipelineLayoutDescriptor =
- ShaderBuilderUtility::BuildPipelineLayoutDescriptorForApi(
- ShaderAssetBuilder2Name, srgLayoutList, shaderEntryPoints, buildOptions.m_compilerArguments, rootConstantData,
- shaderPlatformInterface, bindingDependencies);
- if (!pipelineLayoutDescriptor)
- {
- AZ_Error(
- ShaderAssetBuilder2Name, false, "Failed to build pipeline layout descriptor for api=[%s]",
- shaderPlatformInterface->GetAPIName().GetCStr());
- response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed;
- return;
- }
-
- shaderAssetCreator.SetPipelineLayout(pipelineLayoutDescriptor);
-
-
- RPI::ShaderInputContract shaderInputContract;
- RPI::ShaderOutputContract shaderOutputContract;
- size_t colorAttachmentCount = 0;
- ShaderBuilderUtility::CreateShaderInputAndOutputContracts(
- azslData, shaderEntryPoints, *shaderOptionGroupLayout.get(),
- subProductsPaths[ShaderBuilderUtility::AzslSubProducts::om],
- subProductsPaths[ShaderBuilderUtility::AzslSubProducts::ia],
- shaderInputContract, shaderOutputContract, colorAttachmentCount);
- shaderAssetCreator.SetInputContract(shaderInputContract);
- shaderAssetCreator.SetOutputContract(shaderOutputContract);
-
- if (hasRasterProgram)
- {
- // Set the various states to what is in the descriptor.
- const RHI::TargetBlendState& targetBlendState = shaderSourceData.m_blendState;
- RHI::RenderStates renderStates;
- renderStates.m_rasterState = shaderSourceData.m_rasterState;
- renderStates.m_depthStencilState = shaderSourceData.m_depthStencilState;
- // [GFX TODO][ATOM-930] We should support unique blend states per RT
- for (size_t i = 0; i < colorAttachmentCount; ++i)
- {
- renderStates.m_blendState.m_targets[i] = targetBlendState;
- }
-
- shaderAssetCreator.SetRenderStates(renderStates);
- }
-
- Outcome hlslSourceCodeOutcome = Utils::ReadFile(hlslFullPath);
- if (!hlslSourceCodeOutcome.IsSuccess())
- {
- AZ_Error(
- ShaderAssetBuilder2Name, false, "Failed to obtain shader source from %s. [%s]", hlslFullPath.c_str(),
- hlslSourceCodeOutcome.GetError().c_str());
- response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed;
- return;
- }
- AZStd::string hlslSourceCode = hlslSourceCodeOutcome.TakeValue();
-
- // The root ShaderVariantAsset needs to be created with the known uuid of the source .shader asset because
- // the ShaderAsset owns a Data::Asset<> reference that gets serialized. It must have the correct uuid
- // so the root ShaderVariantAsset is found when the ShaderAsset is deserialized.
- uint32_t rootVariantProductSubId = RPI::ShaderAsset2::MakeProductAssetSubId(
- shaderPlatformInterface->GetAPIUniqueIndex(), supervariantIndex,
- aznumeric_cast(RPI::ShaderAsset2ProductSubId::RootShaderVariantAsset));
- auto assetIdOutcome = RPI::AssetUtils::MakeAssetId(shaderFullPath, rootVariantProductSubId);
- AZ_Assert(assetIdOutcome.IsSuccess(), "Failed to get AssetId from shader %s", shaderFullPath.c_str());
- const Data::AssetId variantAssetId = assetIdOutcome.TakeValue();
-
- RPI::ShaderVariantListSourceData::VariantInfo rootVariantInfo;
- ShaderVariantCreationContext2 shaderVariantCreationContext = {
- *shaderPlatformInterface,
- request.m_platformInfo,
- buildOptions.m_compilerArguments,
- request.m_tempDirPath,
- startTime,
- shaderSourceData,
- *shaderOptionGroupLayout.get(),
- shaderEntryPoints,
- variantAssetId,
- superVariantAzslinStemName,
- hlslFullPath,
- hlslSourceCode};
-
-
- AZStd::optional outputByproducts;
- auto rootShaderVariantAssetOutcome = ShaderVariantAssetBuilder2::CreateShaderVariantAsset(rootVariantInfo, shaderVariantCreationContext, outputByproducts);
- if (!rootShaderVariantAssetOutcome.IsSuccess())
- {
- AZ_Error(ShaderAssetBuilder2Name, false, "%s\n", rootShaderVariantAssetOutcome.GetError().c_str())
- response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed;
- return;
- }
- Data::Asset rootShaderVariantAsset = rootShaderVariantAssetOutcome.TakeValue();
-
- shaderAssetCreator.SetRootShaderVariantAsset(rootShaderVariantAsset);
-
- if (!shaderAssetCreator.EndSupervariant())
- {
- AZ_Error(
- ShaderAssetBuilder2Name, false, "Failed to create shader asset for supervariant [%s]", supervariantInfo.m_name.GetCStr())
- response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed;
- return;
- }
-
- // Time to save the root variant related assets in the cache.
- AssetBuilderSDK::JobProduct assetProduct;
- if (!ShaderVariantAssetBuilder2::SerializeOutShaderVariantAsset(
- rootShaderVariantAsset, superVariantAzslinStemName, request.m_tempDirPath, *shaderPlatformInterface,
- rootVariantProductSubId,
- assetProduct))
- {
- response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed;
- return;
- }
- response.m_outputProducts.push_back(assetProduct);
-
- if (outputByproducts)
- {
- // add byproducts as job output products:
- uint32_t subProductType = aznumeric_cast(RPI::ShaderAsset2ProductSubId::FirstByProduct);
- for (const AZStd::string& byproduct : outputByproducts.value().m_intermediatePaths)
- {
- AssetBuilderSDK::JobProduct jobProduct;
- jobProduct.m_productFileName = byproduct;
- jobProduct.m_productAssetType = Uuid::CreateName("DebugInfoByProduct-PdbOrDxilTxt");
- jobProduct.m_productSubID = RPI::ShaderAsset2::MakeProductAssetSubId(
- shaderPlatformInterface->GetAPIUniqueIndex(), supervariantIndex,
- subProductType++);
- response.m_outputProducts.push_back(AZStd::move(jobProduct));
- }
- }
-
-
- supervariantIndex++;
-
- } // end for the supervariant
-
- shaderAssetCreator.EndAPI();
-
- } // end for all ShaderPlatformInterfaces
-
- Data::Asset shaderAsset;
- if (!shaderAssetCreator.End(shaderAsset))
- {
- response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed;
- return;
- }
-
- if (!SerializeOutShaderAsset(shaderAsset, request.m_tempDirPath, response))
- {
- response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Failed;
- return;
- }
-
- response.m_resultCode = AssetBuilderSDK::ProcessJobResult_Success;
-
- const AZStd::sys_time_t endTime = AZStd::GetTimeNowTicks();
- const AZStd::sys_time_t deltaTime = endTime - startTime;
- const float elapsedTimeSeconds = (float)(deltaTime) / (float)AZStd::GetTimeTicksPerSecond();
-
- AZ_TracePrintf(ShaderAssetBuilder2Name, "Finished processing %s in %.2f seconds\n", request.m_sourceFile.c_str(), elapsedTimeSeconds);
-
- ShaderBuilderUtility::LogProfilingData(ShaderAssetBuilder2Name, shaderFileName);
- }
-
- } // ShaderBuilder
-} // AZ
diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderAssetBuilder2.h b/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderAssetBuilder2.h
deleted file mode 100644
index 7da4d2707d..0000000000
--- a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderAssetBuilder2.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (c) Contributors to the Open 3D Engine Project
- *
- * SPDX-License-Identifier: Apache-2.0 OR MIT
- *
- */
-
-#pragma once
-
-#include
-#include
-#include
-
-#include
-
-namespace AZ
-{
- namespace Data
- {
- class AssetHandler;
- }
-
- namespace RHI
- {
- class ShaderPlatformInterface;
- }
-
- namespace ShaderBuilder
- {
- struct AzslData;
-
- class ShaderAssetBuilder2
- : public AssetBuilderSDK::AssetBuilderCommandBus::Handler
- {
- public:
- AZ_TYPE_INFO(ShaderAssetBuilder2, "{C94DA151-82BC-4475-86FA-E6C92A0BD6F8}");
-
- static constexpr const char* ShaderAssetBuilder2JobKey = "Shader Asset 2";
-
- ShaderAssetBuilder2() = default;
- ~ShaderAssetBuilder2() = default;
-
- // Asset Builder Callback Functions ...
- void CreateJobs(const AssetBuilderSDK::CreateJobsRequest& request, AssetBuilderSDK::CreateJobsResponse& response) const;
- void ProcessJob(const AssetBuilderSDK::ProcessJobRequest& request, AssetBuilderSDK::ProcessJobResponse& response) const;
-
- // AssetBuilderSDK::AssetBuilderCommandBus interface overrides ...
- void ShutDown() override { };
-
- private:
- AZ_DISABLE_COPY_MOVE(ShaderAssetBuilder2);
- };
-
- } // ShaderBuilder
-} // AZ
diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderBuilderUtility.cpp b/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderBuilderUtility.cpp
index a783849921..721a4c8b4e 100644
--- a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderBuilderUtility.cpp
+++ b/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderBuilderUtility.cpp
@@ -24,8 +24,7 @@
#include
#include
-#include // DEPRECATED - [ATOM-15472]
-#include
+#include
#include
#include
@@ -721,58 +720,6 @@ namespace AZ
return static_cast(subId) + (apiType << shiftLeft);
}
- Outcome ObtainBuildArtifactPathFromShaderAssetBuilder2(
- const uint32_t rhiUniqueIndex, const AZStd::string& platformIdentifier, const AZStd::string& shaderJsonPath,
- const uint32_t supervariantIndex, RPI::ShaderAssetSubId shaderAssetSubId)
- {
- // platform id from identifier
- AzFramework::PlatformId platformId = AzFramework::PlatformId::PC;
- if (platformIdentifier == "pc")
- {
- platformId = AzFramework::PlatformId::PC;
- }
- else if (platformIdentifier == "mac")
- {
- platformId = AzFramework::PlatformId::MAC_ID;
- }
- else if (platformIdentifier == "android")
- {
- platformId = AzFramework::PlatformId::ANDROID_ID;
- }
- else if (platformIdentifier == "ios")
- {
- platformId = AzFramework::PlatformId::IOS;
- }
-
- uint32_t assetSubId = RPI::ShaderAsset2::MakeProductAssetSubId(rhiUniqueIndex, supervariantIndex, aznumeric_cast(shaderAssetSubId));
- auto assetIdOutcome = RPI::AssetUtils::MakeAssetId(shaderJsonPath, assetSubId);
- if (!assetIdOutcome.IsSuccess())
- {
- return Failure(AZStd::string::format(
- "Missing ShaderAssetBuilder2 product %s, for sub %d", shaderJsonPath.c_str(), (uint32_t)shaderAssetSubId));
- }
-
- Data::AssetId assetId = assetIdOutcome.TakeValue();
- // get the relative path:
- AZStd::string assetPath;
- Data::AssetCatalogRequestBus::BroadcastResult(assetPath, &Data::AssetCatalogRequests::GetAssetPathById, assetId);
-
- // get the root:
- AZStd::string assetRoot = AzToolsFramework::PlatformAddressedAssetCatalog::GetAssetRootForPlatform(platformId);
- // join
- AZStd::string assetFullPath;
- AzFramework::StringFunc::Path::Join(assetRoot.c_str(), assetPath.c_str(), assetFullPath);
- bool fileExists = IO::FileIOBase::GetInstance()->Exists(assetFullPath.c_str()) &&
- !IO::FileIOBase::GetInstance()->IsDirectory(assetFullPath.c_str());
- if (!fileExists)
- {
- return Failure(AZStd::string::format(
- "asset [%s] from shader source %s and subId %d doesn't exist", assetFullPath.c_str(), shaderJsonPath.c_str(),
- (uint32_t)shaderAssetSubId));
- }
- return AZ::Success(assetFullPath);
- }
-
Outcome ObtainBuildArtifactsFromAzslBuilder([[maybe_unused]] const char* builderName, const AZStd::string& sourceFullPath, RHI::APIType apiType, const AZStd::string& platform)
{
AzslSubProducts::Paths products;
diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderBuilderUtility.h b/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderBuilderUtility.h
index d5bcfc17a3..918ccbfe8e 100644
--- a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderBuilderUtility.h
+++ b/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderBuilderUtility.h
@@ -13,7 +13,7 @@
#include
#include
-#include
+#include
#include
#include "AzslData.h"
@@ -179,11 +179,6 @@ namespace AZ
//! Job products sub id generation helper for AzslBuilder
uint32_t MakeAzslBuildProductSubId(RPI::ShaderAssetSubId subId, RHI::APIType apiType);
- //! Returns the asset path of a product artifact produced by ShaderAssetBuilder2.
- Outcome ObtainBuildArtifactPathFromShaderAssetBuilder2(
- const uint32_t rhiUniqueIndex, const AZStd::string& platformIdentifier, const AZStd::string& shaderJsonPath,
- const uint32_t supervariantIndex, RPI::ShaderAssetSubId shaderAssetSubId);
-
//! Reconstructs the expected output product paths of the AzslBuilder (from the 2 arguments @azslSourceFullPath and @apiType)
Outcome ObtainBuildArtifactsFromAzslBuilder(const char* builderName, const AZStd::string& azslSourceFullPath, RHI::APIType apiType, const AZStd::string& platform);
diff --git a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderVariantAssetBuilder2.cpp b/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderVariantAssetBuilder2.cpp
deleted file mode 100644
index 437c1bc165..0000000000
--- a/Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderVariantAssetBuilder2.cpp
+++ /dev/null
@@ -1,974 +0,0 @@
-/*
- * Copyright (c) Contributors to the Open 3D Engine Project
- *
- * SPDX-License-Identifier: Apache-2.0 OR MIT
- *
- */
-
-#include
-
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include
-
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include