diff --git a/AutomatedTesting/Gem/PythonTests/assetpipeline/asset_processor_tests/CMakeLists.txt b/AutomatedTesting/Gem/PythonTests/assetpipeline/asset_processor_tests/CMakeLists.txt index f05aff6db3..baf8e9733e 100644 --- a/AutomatedTesting/Gem/PythonTests/assetpipeline/asset_processor_tests/CMakeLists.txt +++ b/AutomatedTesting/Gem/PythonTests/assetpipeline/asset_processor_tests/CMakeLists.txt @@ -103,6 +103,19 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED AND PAL_TRAIT_BUILD_HOST_TOOLS) AZ::AssetBundlerBatch ) + ly_add_pytest( + NAME AssetPipelineTests.AssetBundler_SandBox + TEST_SUITE sandbox + PATH ${CMAKE_CURRENT_LIST_DIR}/asset_bundler_batch_tests.py + PYTEST_MARKS "SUITE_sandbox" # run only sandbox tests in this file + EXCLUDE_TEST_RUN_TARGET_FROM_IDE + TEST_SERIAL + TIMEOUT 1500 + RUNTIME_DEPENDENCIES + AZ::AssetProcessor + AZ::AssetBundlerBatch + ) + ly_add_pytest( NAME AssetPipelineTests.AssetBuilder PATH ${CMAKE_CURRENT_LIST_DIR}/asset_builder_tests.py diff --git a/AutomatedTesting/Gem/PythonTests/assetpipeline/asset_processor_tests/asset_bundler_batch_tests.py b/AutomatedTesting/Gem/PythonTests/assetpipeline/asset_processor_tests/asset_bundler_batch_tests.py index 926f1cc602..1a5ece92e1 100755 --- a/AutomatedTesting/Gem/PythonTests/assetpipeline/asset_processor_tests/asset_bundler_batch_tests.py +++ b/AutomatedTesting/Gem/PythonTests/assetpipeline/asset_processor_tests/asset_bundler_batch_tests.py @@ -730,6 +730,7 @@ class TestsAssetBundlerBatch_WindowsAndMac(object): @pytest.mark.BAT @pytest.mark.assetpipeline + @pytest.mark.SUITE_sandbox @pytest.mark.test_case_id("C16877174") @pytest.mark.test_case_id("C16877175") @pytest.mark.test_case_id("C16877178") diff --git a/AutomatedTesting/Gem/Resources/CryEngineLogoLauncher.bmp b/AutomatedTesting/Gem/Resources/CryEngineLogoLauncher.bmp deleted file mode 100644 index fe0adc54a4..0000000000 --- a/AutomatedTesting/Gem/Resources/CryEngineLogoLauncher.bmp +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cf6d56fe4c367d39bd78500dd34332fcad57ad41241768b52781dbdb60ddd972 -size 347568 diff --git a/AutomatedTesting/Gem/Resources/GameSDK.ico b/AutomatedTesting/Gem/Resources/GameSDK.ico index cb935cd926..0be1f28b6c 100644 --- a/AutomatedTesting/Gem/Resources/GameSDK.ico +++ b/AutomatedTesting/Gem/Resources/GameSDK.ico @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:61efd8df621780af995fc1250918df5e00364ff00f849bef67702cd4b0a152e1 -size 65537 +oid sha256:41239f8345fa91fe546442208461ad3cd17c7a7a7047af45018b97363bfea204 +size 109783 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPadAppIcon152x152.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPadAppIcon152x152.png index b0dd493c11..ad18894411 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPadAppIcon152x152.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPadAppIcon152x152.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e4901093fa6190bf37291b0fb6de23fba1be8ebbd742775a8565a4106722fbb6 -size 31942 +oid sha256:ebfc95bd4c0cbcc53d0ef9d314d26e09a347a22dabbf210597f405d9ed8646bf +size 7729 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPadAppIcon76x76.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPadAppIcon76x76.png index 21aa62e96b..888d8cf785 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPadAppIcon76x76.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPadAppIcon76x76.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e4ae97c4f44910121a61686862c8342ce598db4cdf9d46b29e96d3cb9e43bd06 -size 22158 +oid sha256:99cb7da9282cfcfa64598455827f27ca6791d45ca0d2c3c2dc090d82468dac03 +size 4447 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPadProAppIcon167x167.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPadProAppIcon167x167.png index 6b696a84b2..86aa72016a 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPadProAppIcon167x167.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPadProAppIcon167x167.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:061e2d0ce8dc852dd298c80f2aed5fee8ea4b87511c00662aa2d00922c0ba3c2 -size 30162 +oid sha256:101568e946f1d4cea86d666187bbf71116bbf62e6eaf6d80bc3c5e2e184bdb15 +size 7938 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPadSettingsIcon29x29.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPadSettingsIcon29x29.png index f3dfa05839..79331c29b1 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPadSettingsIcon29x29.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPadSettingsIcon29x29.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0fb4b4b77620d99dae7473b7bd8affe14630419835bd5719167ed200e657fa4f -size 17504 +oid sha256:cf930ffd4efb0b7b627e05aac6e0f56252ea206623e8b5d097d803aa315cdfb8 +size 1812 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPadSettingsIcon58x58.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPadSettingsIcon58x58.png index 5325b805fd..27c4aaef2e 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPadSettingsIcon58x58.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPadSettingsIcon58x58.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8aa9b1194f3244025578225a6a87cbc2dd12c70955ff615c8af640ea7f1334f1 -size 19619 +oid sha256:ba5fea53b349e254b4625035a308d5731cb06f6d0adc278874d14db2627962cb +size 3424 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPadSpotlightIcon40x40.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPadSpotlightIcon40x40.png index 98d8455838..df1630a95a 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPadSpotlightIcon40x40.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPadSpotlightIcon40x40.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0c25ffb1af8160b3202977de8c32aaa235e22c643ffd8004e4546c96868ef3b9 -size 18317 +oid sha256:cf087f357cd439d14651073ac079542c60f0648a30dced2a8d19912124b3f8b6 +size 2310 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPadSpotlightIcon80x80.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPadSpotlightIcon80x80.png index 7482f6c892..4b7f5d6318 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPadSpotlightIcon80x80.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPadSpotlightIcon80x80.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2db961b8f922a552d8ad374fdb56029efd4049a6cde10399b3d961242c82ce53 -size 22571 +oid sha256:421ad4db14c28ed18666158f9ec30747c5b8c757405c1efb32442978911b0c06 +size 4437 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPhoneAppIcon120x120.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPhoneAppIcon120x120.png index da987b86f9..674c6da124 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPhoneAppIcon120x120.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPhoneAppIcon120x120.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f39d897a57d4da0a70ede7c91339660b28e9d8c57b3e7d749807b13baa4b85f3 -size 28559 +oid sha256:0d0044ebf7e0a5dd23ed64a1289c705d8f6c3c41a62d65e5a1371058855b8cec +size 6546 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPhoneAppIcon180x180.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPhoneAppIcon180x180.png index 205e025c36..c0c10c2390 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPhoneAppIcon180x180.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPhoneAppIcon180x180.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:263b75d58328499eef1f8fa2e64c30706f546badcc0c4464a043b231da93cd0d -size 34969 +oid sha256:3b8717c5f2109dfce1bf7b017278059d4915b524a6eb7e83cfb1926e54ed6869 +size 7383 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPhoneSettingsIcon58x58.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPhoneSettingsIcon58x58.png index 0deb4f4f35..27c4aaef2e 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPhoneSettingsIcon58x58.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPhoneSettingsIcon58x58.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:33522ad8a8e826b22dd9ad214f56e63e24bf55c00bd8c845925d848b855dfb48 -size 19619 +oid sha256:ba5fea53b349e254b4625035a308d5731cb06f6d0adc278874d14db2627962cb +size 3424 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPhoneSettingsIcon87x87.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPhoneSettingsIcon87x87.png index 78591751d7..9093e13867 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPhoneSettingsIcon87x87.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPhoneSettingsIcon87x87.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f405c9f3d908d038aea26049e533b0d10955adfac370c7b3b80209997ea706d0 -size 24407 +oid sha256:a32908a839a6cb0ca2a76d6aa60376ba8a14b4428f06c13149ec277514eb5676 +size 4533 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPhoneSpotlightIcon120x120.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPhoneSpotlightIcon120x120.png index 034dcb9fed..674c6da124 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPhoneSpotlightIcon120x120.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPhoneSpotlightIcon120x120.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d110f6e151799a2327bcdf5ef94d6fc82b114783a8cc973a8915896679ba4a80 -size 28559 +oid sha256:0d0044ebf7e0a5dd23ed64a1289c705d8f6c3c41a62d65e5a1371058855b8cec +size 6546 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPhoneSpotlightIcon80x80.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPhoneSpotlightIcon80x80.png index f0fa89149c..4b7f5d6318 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPhoneSpotlightIcon80x80.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AppIcon.appiconset/iPhoneSpotlightIcon80x80.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:db8f00568fad4e49b05249aaa7a48c9fbf85c8b7a78489c83dc9b8161778bcef -size 22571 +oid sha256:421ad4db14c28ed18666158f9ec30747c5b8c757405c1efb32442978911b0c06 +size 4437 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPadAppIcon152x152.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPadAppIcon152x152.png index b0dd493c11..ad18894411 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPadAppIcon152x152.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPadAppIcon152x152.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e4901093fa6190bf37291b0fb6de23fba1be8ebbd742775a8565a4106722fbb6 -size 31942 +oid sha256:ebfc95bd4c0cbcc53d0ef9d314d26e09a347a22dabbf210597f405d9ed8646bf +size 7729 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPadAppIcon76x76.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPadAppIcon76x76.png index 21aa62e96b..888d8cf785 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPadAppIcon76x76.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPadAppIcon76x76.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e4ae97c4f44910121a61686862c8342ce598db4cdf9d46b29e96d3cb9e43bd06 -size 22158 +oid sha256:99cb7da9282cfcfa64598455827f27ca6791d45ca0d2c3c2dc090d82468dac03 +size 4447 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPadProAppIcon167x167.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPadProAppIcon167x167.png index 6b696a84b2..86aa72016a 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPadProAppIcon167x167.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPadProAppIcon167x167.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:061e2d0ce8dc852dd298c80f2aed5fee8ea4b87511c00662aa2d00922c0ba3c2 -size 30162 +oid sha256:101568e946f1d4cea86d666187bbf71116bbf62e6eaf6d80bc3c5e2e184bdb15 +size 7938 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPadSettingsIcon29x29.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPadSettingsIcon29x29.png index f3dfa05839..79331c29b1 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPadSettingsIcon29x29.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPadSettingsIcon29x29.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0fb4b4b77620d99dae7473b7bd8affe14630419835bd5719167ed200e657fa4f -size 17504 +oid sha256:cf930ffd4efb0b7b627e05aac6e0f56252ea206623e8b5d097d803aa315cdfb8 +size 1812 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPadSettingsIcon58x58.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPadSettingsIcon58x58.png index 5325b805fd..27c4aaef2e 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPadSettingsIcon58x58.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPadSettingsIcon58x58.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8aa9b1194f3244025578225a6a87cbc2dd12c70955ff615c8af640ea7f1334f1 -size 19619 +oid sha256:ba5fea53b349e254b4625035a308d5731cb06f6d0adc278874d14db2627962cb +size 3424 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPadSpotlightIcon40x40.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPadSpotlightIcon40x40.png index 98d8455838..df1630a95a 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPadSpotlightIcon40x40.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPadSpotlightIcon40x40.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0c25ffb1af8160b3202977de8c32aaa235e22c643ffd8004e4546c96868ef3b9 -size 18317 +oid sha256:cf087f357cd439d14651073ac079542c60f0648a30dced2a8d19912124b3f8b6 +size 2310 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPadSpotlightIcon80x80.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPadSpotlightIcon80x80.png index 7482f6c892..4b7f5d6318 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPadSpotlightIcon80x80.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPadSpotlightIcon80x80.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2db961b8f922a552d8ad374fdb56029efd4049a6cde10399b3d961242c82ce53 -size 22571 +oid sha256:421ad4db14c28ed18666158f9ec30747c5b8c757405c1efb32442978911b0c06 +size 4437 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPhoneAppIcon120x120.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPhoneAppIcon120x120.png index da987b86f9..674c6da124 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPhoneAppIcon120x120.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPhoneAppIcon120x120.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f39d897a57d4da0a70ede7c91339660b28e9d8c57b3e7d749807b13baa4b85f3 -size 28559 +oid sha256:0d0044ebf7e0a5dd23ed64a1289c705d8f6c3c41a62d65e5a1371058855b8cec +size 6546 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPhoneAppIcon180x180.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPhoneAppIcon180x180.png index 205e025c36..c0c10c2390 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPhoneAppIcon180x180.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPhoneAppIcon180x180.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:263b75d58328499eef1f8fa2e64c30706f546badcc0c4464a043b231da93cd0d -size 34969 +oid sha256:3b8717c5f2109dfce1bf7b017278059d4915b524a6eb7e83cfb1926e54ed6869 +size 7383 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPhoneSettingsIcon58x58.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPhoneSettingsIcon58x58.png index 0deb4f4f35..27c4aaef2e 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPhoneSettingsIcon58x58.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPhoneSettingsIcon58x58.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:33522ad8a8e826b22dd9ad214f56e63e24bf55c00bd8c845925d848b855dfb48 -size 19619 +oid sha256:ba5fea53b349e254b4625035a308d5731cb06f6d0adc278874d14db2627962cb +size 3424 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPhoneSettingsIcon87x87.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPhoneSettingsIcon87x87.png index 78591751d7..9093e13867 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPhoneSettingsIcon87x87.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPhoneSettingsIcon87x87.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f405c9f3d908d038aea26049e533b0d10955adfac370c7b3b80209997ea706d0 -size 24407 +oid sha256:a32908a839a6cb0ca2a76d6aa60376ba8a14b4428f06c13149ec277514eb5676 +size 4533 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPhoneSpotlightIcon120x120.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPhoneSpotlightIcon120x120.png index 034dcb9fed..674c6da124 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPhoneSpotlightIcon120x120.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPhoneSpotlightIcon120x120.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d110f6e151799a2327bcdf5ef94d6fc82b114783a8cc973a8915896679ba4a80 -size 28559 +oid sha256:0d0044ebf7e0a5dd23ed64a1289c705d8f6c3c41a62d65e5a1371058855b8cec +size 6546 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPhoneSpotlightIcon80x80.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPhoneSpotlightIcon80x80.png index f0fa89149c..4b7f5d6318 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPhoneSpotlightIcon80x80.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/AutomatedTestingAppIcon.appiconset/iPhoneSpotlightIcon80x80.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:db8f00568fad4e49b05249aaa7a48c9fbf85c8b7a78489c83dc9b8161778bcef -size 22571 +oid sha256:421ad4db14c28ed18666158f9ec30747c5b8c757405c1efb32442978911b0c06 +size 4437 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/Contents.json b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/Contents.json index 5ea213954f..f836f07ee7 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/Contents.json +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/Contents.json @@ -1,41 +1,5 @@ { "images" : [ - { - "extent" : "full-screen", - "filename" : "iPhoneLaunchImage1242x2688.png", - "idiom" : "iphone", - "minimum-system-version" : "12.0", - "orientation" : "portrait", - "scale" : "3x", - "subtype" : "2688h" - }, - { - "extent" : "full-screen", - "filename" : "iPhoneLaunchImage2688x1242.png", - "idiom" : "iphone", - "minimum-system-version" : "12.0", - "orientation" : "landscape", - "scale" : "3x", - "subtype" : "2688h" - }, - { - "extent" : "full-screen", - "filename" : "iPhoneLaunchImage828x1792.png", - "idiom" : "iphone", - "minimum-system-version" : "12.0", - "orientation" : "portrait", - "scale" : "2x", - "subtype" : "1792h" - }, - { - "extent" : "full-screen", - "filename" : "iPhoneLaunchImage1792x828.png", - "idiom" : "iphone", - "minimum-system-version" : "12.0", - "orientation" : "landscape", - "scale" : "2x", - "subtype" : "1792h" - }, { "extent" : "full-screen", "idiom" : "iphone", @@ -202,4 +166,4 @@ "version" : 1, "author" : "xcode" } -} +} \ No newline at end of file diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPadLaunchImage1024x768.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPadLaunchImage1024x768.png index 1249ef3703..9f586d6af3 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPadLaunchImage1024x768.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPadLaunchImage1024x768.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:31afa7ed44c5d9844c8d6ce08beccac482c3f43590869a3d190d06e2df377ccc -size 137472 +oid sha256:a4018d9df45b4a04d4cf24a40fe01aa7e30e44a9fdd8ad9a41b0d87791786c12 +size 30442 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPadLaunchImage1536x2048.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPadLaunchImage1536x2048.png index cdb6d5a82a..c978631c22 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPadLaunchImage1536x2048.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPadLaunchImage1536x2048.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0aac8ef9899442820bec0df8bf6434a46cc787d57c5d6d38a04727b8dc310048 -size 338281 +oid sha256:2eea06cb8ad05acefe9664551af5645d52d9763b82473b1fd4a2b2b6f62e96d3 +size 53550 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPadLaunchImage2048x1536.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPadLaunchImage2048x1536.png index 954d3084c8..a52e832a42 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPadLaunchImage2048x1536.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPadLaunchImage2048x1536.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c07495891f15b138ba09f142777b0f43217bf8be05cbb74ba938319f3425980c -size 321125 +oid sha256:90991aca91ab7222fdb85c03947cff38f549a6492551e7447e0c8f55022aae48 +size 52467 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPadLaunchImage768x1024.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPadLaunchImage768x1024.png index 021319fbc3..3e441fab3b 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPadLaunchImage768x1024.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPadLaunchImage768x1024.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d6bf6acb92421a453a36fc143ab6cefda14d631ea5e6dbf95c6e252a445fcbac -size 144797 +oid sha256:6c8439a64d18dbff17dd67f6405bf49f99695e9b22fc2cc541dc72c6e3167307 +size 30564 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPhoneLaunchImage1242x2688.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPhoneLaunchImage1242x2688.png deleted file mode 100644 index e190d2b585..0000000000 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPhoneLaunchImage1242x2688.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fc79117e25cc7533ccf6724453e3f44a01b4eaaecded6fa826abe897456f36ee -size 405896 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPhoneLaunchImage1792x828.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPhoneLaunchImage1792x828.png deleted file mode 100644 index 5601f081de..0000000000 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPhoneLaunchImage1792x828.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6c7191be3bdae09dc621012a26b0c1b9c15de1d567cf65ff1079e00f8636a32a -size 220720 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPhoneLaunchImage2688x1242.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPhoneLaunchImage2688x1242.png deleted file mode 100644 index 844b23fdd9..0000000000 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPhoneLaunchImage2688x1242.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dfbd362f9cb5f285c23807a032af98150cf5409c514445122683736a3c65008c -size 364976 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPhoneLaunchImage640x1136.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPhoneLaunchImage640x1136.png index a15fd777fa..e662e9675c 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPhoneLaunchImage640x1136.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPhoneLaunchImage640x1136.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e9ad650fda925b1c076a67d1ef70315fe4f14db888c9fd36ee4eba1d18c1e7d1 -size 166749 +oid sha256:f752615184160d7a78f28d9eef354c86e544f11eb1dde9f651d7acd315b3f2e6 +size 35934 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPhoneLaunchImage640x960.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPhoneLaunchImage640x960.png index 2855f4069d..2753529fc2 100644 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPhoneLaunchImage640x960.png +++ b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPhoneLaunchImage640x960.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:16f6e9d7bd15fc528d934c252213de8792812e708b1810191c5f1767f7165852 -size 142331 +oid sha256:1a43f1d893e85aa99d335a657ec0f6c13a741db976c033451ab9a2328b8a5970 +size 35559 diff --git a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPhoneLaunchImage828x1792.png b/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPhoneLaunchImage828x1792.png deleted file mode 100644 index 9ebb93e39c..0000000000 --- a/AutomatedTesting/Gem/Resources/IOSLauncher/Images.xcassets/LaunchImage.launchimage/iPhoneLaunchImage828x1792.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b0252b068b232f521ac6eca4a708fad6eaf257d0a66aa03f4f865f6a0b219cfc -size 236433 diff --git a/AutomatedTesting/Gem/Resources/LegacyLogoLauncher.bmp b/AutomatedTesting/Gem/Resources/LegacyLogoLauncher.bmp new file mode 100644 index 0000000000..7a35cddd49 --- /dev/null +++ b/AutomatedTesting/Gem/Resources/LegacyLogoLauncher.bmp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c8433178baebafe984ca23d9325d3c71b5a177fc3b3b869afbb01a583542fbe +size 462842 diff --git a/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/Contents.json b/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/Contents.json index bfa8bcf478..2b63c0ee15 100644 --- a/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/Contents.json +++ b/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/Contents.json @@ -33,7 +33,7 @@ { "size" : "128x128", "idiom" : "mac", - "filename" : "icon_128 _2x.png", + "filename" : "icon_128_2x.png", "scale" : "2x" }, { @@ -45,7 +45,7 @@ { "size" : "256x256", "idiom" : "mac", - "filename" : "icon_256 _2x.png", + "filename" : "icon_256_2x.png", "scale" : "2x" }, { diff --git a/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_128 _2x.png b/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_128 _2x.png deleted file mode 100644 index 5970ea34ba..0000000000 --- a/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_128 _2x.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e38257b6917cdf5d73e90e6009f10c8736d62b20c4e785085305075c7e6320e2 -size 32037 diff --git a/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_128.png b/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_128.png index 9e30e09547..5a73a4a54d 100644 --- a/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_128.png +++ b/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_128.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9f41a37d2347a617e93bd97adaf6d4c161c471ca3ef7e04b98c65ddda52396dc -size 27833 +oid sha256:f3c651ca45a83d0f68bdaa466826a29b2ca6f674e225d90e68b7dbadc2ba582d +size 6620 diff --git a/Templates/DefaultProject/Template/Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_128 _2x.png b/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_128_2x.png similarity index 100% rename from Templates/DefaultProject/Template/Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_128 _2x.png rename to AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_128_2x.png diff --git a/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_16.png b/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_16.png index aeb29abd0a..a7ec66841f 100644 --- a/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_16.png +++ b/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_16.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b07984494059bf827bc485cbea06d12e0283811face1a18799495f9ba7ae8af1 -size 20779 +oid sha256:f7d5b15add5104d91a03df7d86898f4bc415d095d11c23555b24440497371948 +size 1061 diff --git a/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_16_2x.png b/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_16_2x.png index 445a389d61..474378c926 100644 --- a/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_16_2x.png +++ b/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_16_2x.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e645142d284de40aafb7a4a858f3df92b6a5ba9b03fa5f1a2d3cb25211597926 -size 21857 +oid sha256:148fdae6493d7b7e1bb6cc6aae1861e0469838f54dcb3c15cc157a548c707fec +size 1910 diff --git a/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_256 _2x.png b/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_256 _2x.png deleted file mode 100644 index 0904cf7ce8..0000000000 --- a/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_256 _2x.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:07631f41b8dea80713d2463f81a713a9a93798975b6fb50afbeeb13d26c57fa2 -size 48899 diff --git a/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_256.png b/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_256.png index 5970ea34ba..d30f2d3686 100644 --- a/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_256.png +++ b/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_256.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e38257b6917cdf5d73e90e6009f10c8736d62b20c4e785085305075c7e6320e2 -size 32037 +oid sha256:094620c172320b062f9a1f8cc758ef4bbee11bc0a6049f46ad6b42f9bf613c92 +size 9679 diff --git a/Templates/DefaultProject/Template/Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_256 _2x.png b/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_256_2x.png similarity index 100% rename from Templates/DefaultProject/Template/Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_256 _2x.png rename to AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_256_2x.png diff --git a/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_32.png b/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_32.png index 445a389d61..474378c926 100644 --- a/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_32.png +++ b/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_32.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e645142d284de40aafb7a4a858f3df92b6a5ba9b03fa5f1a2d3cb25211597926 -size 21857 +oid sha256:148fdae6493d7b7e1bb6cc6aae1861e0469838f54dcb3c15cc157a548c707fec +size 1910 diff --git a/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_32_2x.png b/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_32_2x.png index 1fad9bda96..3359e99cd4 100644 --- a/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_32_2x.png +++ b/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_32_2x.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ad83faf98b49f4e37112baedeae726f4f8d71bcdd1961d9cdad31f043f8ca666 -size 24003 +oid sha256:749bcd29d73e5ef2d1ef8b2d878626d0bca09c6b0d5f1c9dc6cefe7b9082c8cc +size 3758 diff --git a/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_512.png b/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_512.png index e1517dddb6..f9ff1c15e3 100644 --- a/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_512.png +++ b/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_512.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:68529a6c11d5ffa7ecd9d5bbb11ceea28e6852bd45946b525af09602c9a1e1bf -size 48899 +oid sha256:934502e242ff7a2e34e21eed1424b5e0953e701761d158520b3297944132328e +size 18716 diff --git a/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_512_2x.png b/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_512_2x.png index b425cb685f..a736c7f6b8 100644 --- a/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_512_2x.png +++ b/AutomatedTesting/Gem/Resources/MacLauncher/Images.xcassets/AppIcon.appiconset/icon_512_2x.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8a70003840b418848b2ce6c18ed7cbbfcd6fcf76598a6601dca8b98d9b6c1a2f -size 114706 +oid sha256:5719043940db268dccd2e20bd9d6aa13131890d43edf002a173714ae33890422 +size 29510 diff --git a/AutomatedTesting/Gem/gem.json b/AutomatedTesting/Gem/gem.json index b1638002af..6c8c7829ce 100644 --- a/AutomatedTesting/Gem/gem.json +++ b/AutomatedTesting/Gem/gem.json @@ -1,16 +1,12 @@ { - "GemFormatVersion": 4, - "Uuid": "afc25e1593194d6283d9ff744ab6d5a1", - "Name": "AutomatedTesting", - "DisplayName": "AutomatedTesting", - "Version": "0.1.0", - "Summary": "A short description of my Gem.", - "Tags": ["Game"], - "IconPath": "preview.png", - "IsGameGem": true, - "Modules": [ - { - "Type": "GameModule" - } - ] + "gem_name": "AutomatedTesting", + "display_name": "AutomatedTesting", + "license": "Apache-2.0 Or MIT", + "origin": "Amazon Web Services, Inc.", + "type": "Code", + "summary": "Project Gem for customizing the AutomatedTesting project functionality.", + "canonical_tags": ["Gem"], + "user_tags": [], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Code/Editor/RenderViewport.h b/Code/Editor/RenderViewport.h index 1764028dd6..2a67e1bbc6 100644 --- a/Code/Editor/RenderViewport.h +++ b/Code/Editor/RenderViewport.h @@ -219,6 +219,7 @@ public: void SetFullScreenState(bool fullScreenState) override; bool CanToggleFullScreenState() const override; void ToggleFullScreenState() override; + float GetDpiScaleFactor() const override { return 1.0f; }; void ConnectViewportInteractionRequestBus(); void DisconnectViewportInteractionRequestBus(); diff --git a/Code/Editor/editor_lib_files.cmake b/Code/Editor/editor_lib_files.cmake index 5988d9385b..a7331edf70 100644 --- a/Code/Editor/editor_lib_files.cmake +++ b/Code/Editor/editor_lib_files.cmake @@ -21,7 +21,6 @@ set(FILES res/TreeView.bmp res/VisualLog_PlayerButtons.bmp res/ab_toolbar.bmp - res/about_dark.bmp res/anim.bmp res/animatio.bmp res/animations_tree_soundevent.bmp @@ -137,7 +136,6 @@ set(FILES res/litebulb.bmp res/lock_sel.bmp res/locksele.bmp - res/logo.bmp res/mainfram.bmp res/mann_tagdef_toolbar.bmp res/mann_tagdef_tree.bmp @@ -184,8 +182,6 @@ set(FILES res/rename.ico res/replace.ico res/ribbon_system_button.png - res/sandbox_dark.bmp - res/sb_welcome_dark.bmp res/selectobj.bmp res/seq_1_colour_keys.bmp res/seq_2_colour_keys.bmp diff --git a/Code/Editor/res/about_dark.bmp b/Code/Editor/res/about_dark.bmp deleted file mode 100644 index 2bf31764a6..0000000000 --- a/Code/Editor/res/about_dark.bmp +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:887d184cf49cf78c62a1fe53eac3cb8e7b071bb67e09b801a4893445ac4c800f -size 542456 diff --git a/Code/Editor/res/logo.bmp b/Code/Editor/res/logo.bmp deleted file mode 100644 index c67ca02a07..0000000000 --- a/Code/Editor/res/logo.bmp +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8b65af2765042354ae4110dc7bcbde905e4a55a4995f66b626d15ec6c0fa18c1 -size 96056 diff --git a/Code/Editor/res/logo.gif b/Code/Editor/res/logo.gif deleted file mode 100644 index 00534c61cc..0000000000 --- a/Code/Editor/res/logo.gif +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:79412e83b32bb6712d9701f78465878a2057a590698a4dc8d8c7aa11de2623ef -size 4227 diff --git a/Code/Editor/res/sandbox_dark.bmp b/Code/Editor/res/sandbox_dark.bmp deleted file mode 100644 index 2bf31764a6..0000000000 --- a/Code/Editor/res/sandbox_dark.bmp +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:887d184cf49cf78c62a1fe53eac3cb8e7b071bb67e09b801a4893445ac4c800f -size 542456 diff --git a/Code/Editor/res/sb_welcome_dark.bmp b/Code/Editor/res/sb_welcome_dark.bmp deleted file mode 100644 index 979c61e4af..0000000000 --- a/Code/Editor/res/sb_welcome_dark.bmp +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:704faeb96d930d3e6992a1449908aa6d7860b648e2feb38da8bf37cd7268a694 -size 184856 diff --git a/Code/Framework/AzCore/Tests/Platform/Windows/Tests/IO/Streamer/StorageDriveTests_Windows.cpp b/Code/Framework/AzCore/Tests/Platform/Windows/Tests/IO/Streamer/StorageDriveTests_Windows.cpp index e654ef4aa3..b505bba5dd 100644 --- a/Code/Framework/AzCore/Tests/Platform/Windows/Tests/IO/Streamer/StorageDriveTests_Windows.cpp +++ b/Code/Framework/AzCore/Tests/Platform/Windows/Tests/IO/Streamer/StorageDriveTests_Windows.cpp @@ -1155,7 +1155,7 @@ namespace Benchmark class StorageDriveWindowsFixture : public benchmark::Fixture { public: - constexpr static char* TestFileName = "StreamerBenchmark.bin"; + constexpr static const char* TestFileName = "StreamerBenchmark.bin"; constexpr static size_t FileSize = 64_mib; void SetupStreamer(bool enableFileSharing) diff --git a/Code/Framework/AzFramework/AzFramework/Windowing/NativeWindow.cpp b/Code/Framework/AzFramework/AzFramework/Windowing/NativeWindow.cpp index b92d8dc3bc..3e7d67888f 100644 --- a/Code/Framework/AzFramework/AzFramework/Windowing/NativeWindow.cpp +++ b/Code/Framework/AzFramework/AzFramework/Windowing/NativeWindow.cpp @@ -116,6 +116,11 @@ namespace AzFramework SetFullScreenState(!GetFullScreenState()); } + float NativeWindow::GetDpiScaleFactor() const + { + return m_pimpl->GetDpiScaleFactor(); + } + /*static*/ bool NativeWindow::GetFullScreenStateOfDefaultWindow() { NativeWindowHandle defaultWindowHandle = nullptr; @@ -228,4 +233,10 @@ namespace AzFramework return false; } + float NativeWindow::Implementation::GetDpiScaleFactor() const + { + // For platforms that aren't DPI-aware, we simply return a 1.0 ratio for no scaling + return 1.0f; + } + } // namespace AzFramework diff --git a/Code/Framework/AzFramework/AzFramework/Windowing/NativeWindow.h b/Code/Framework/AzFramework/AzFramework/Windowing/NativeWindow.h index 0b53b5b31c..2d5a897146 100644 --- a/Code/Framework/AzFramework/AzFramework/Windowing/NativeWindow.h +++ b/Code/Framework/AzFramework/AzFramework/Windowing/NativeWindow.h @@ -128,6 +128,7 @@ namespace AzFramework void SetFullScreenState(bool fullScreenState) override; bool CanToggleFullScreenState() const override; void ToggleFullScreenState() override; + float GetDpiScaleFactor() const override; //! Get the full screen state of the default window. //! \return True if the default window is currently in full screen, false otherwise. @@ -169,6 +170,7 @@ namespace AzFramework virtual bool GetFullScreenState() const; virtual void SetFullScreenState(bool fullScreenState); virtual bool CanToggleFullScreenState() const; + virtual float GetDpiScaleFactor() const; protected: uint32_t m_width = 0; diff --git a/Code/Framework/AzFramework/AzFramework/Windowing/WindowBus.h b/Code/Framework/AzFramework/AzFramework/Windowing/WindowBus.h index 959d7cc07b..f21993b80a 100644 --- a/Code/Framework/AzFramework/AzFramework/Windowing/WindowBus.h +++ b/Code/Framework/AzFramework/AzFramework/Windowing/WindowBus.h @@ -68,6 +68,11 @@ namespace AzFramework //! Toggle the full screen state of the window. virtual void ToggleFullScreenState() = 0; + + //! Returns a scalar multiplier representing how many dots-per-inch this window has, compared + //! to a "standard" value of 96, the default for Windows in a DPI unaware setting. This can + //! be used to scale user interface elements to ensure legibility on high density displays. + virtual float GetDpiScaleFactor() const = 0; }; using WindowRequestBus = AZ::EBus; @@ -87,6 +92,9 @@ namespace AzFramework //! This is called once when the window is Activated and also called if the user resizes the window. virtual void OnWindowResized(uint32_t width, uint32_t height) { AZ_UNUSED(width); AZ_UNUSED(height); }; + //! This is called if the window's underyling DPI scaling factor changes. + virtual void OnDpiScaleFactorChanged(float dpiScaleFactor) { AZ_UNUSED(dpiScaleFactor); } + //! This is called when the window is deactivated from code or if the user closes the window. virtual void OnWindowClosed() {}; }; diff --git a/Code/Framework/AzFramework/Platform/Windows/AzFramework/Windowing/NativeWindow_Windows.cpp b/Code/Framework/AzFramework/Platform/Windows/AzFramework/Windowing/NativeWindow_Windows.cpp index 44a3757aea..470594853c 100644 --- a/Code/Framework/AzFramework/Platform/Windows/AzFramework/Windowing/NativeWindow_Windows.cpp +++ b/Code/Framework/AzFramework/Platform/Windows/AzFramework/Windowing/NativeWindow_Windows.cpp @@ -8,6 +8,7 @@ #include #include +#include #include namespace AzFramework @@ -17,7 +18,7 @@ namespace AzFramework { public: AZ_CLASS_ALLOCATOR(NativeWindowImpl_Win32, AZ::SystemAllocator, 0); - NativeWindowImpl_Win32() = default; + NativeWindowImpl_Win32(); ~NativeWindowImpl_Win32() override; // NativeWindow::Implementation overrides... @@ -33,6 +34,7 @@ namespace AzFramework bool GetFullScreenState() const override; void SetFullScreenState(bool fullScreenState) override; bool CanToggleFullScreenState() const override { return true; } + float GetDpiScaleFactor() const override; private: static DWORD ConvertToWin32WindowStyleMask(const WindowStyleMasks& styleMasks); @@ -49,6 +51,9 @@ namespace AzFramework RECT m_windowRectToRestoreOnFullScreenExit; //!< The position and size of the window to restore when exiting full screen. UINT m_windowStyleToRestoreOnFullScreenExit; //!< The style(s) of the window to restore when exiting full screen. bool m_isInBorderlessWindowFullScreenState = false; //!< Was a borderless window used to enter full screen state? + + using GetDpiForWindowType = UINT(HWND hwnd); + GetDpiForWindowType* m_getDpiFunction = nullptr; }; const char* NativeWindowImpl_Win32::s_defaultClassName = "O3DEWin32Class"; @@ -58,6 +63,15 @@ namespace AzFramework return aznew NativeWindowImpl_Win32(); } + NativeWindowImpl_Win32::NativeWindowImpl_Win32() + { + // Attempt to load GetDpiForWindow from user32 at runtime, available on Windows 10+ versions >= 1607 + if (auto user32module = AZ::DynamicModuleHandle::Create("user32"); user32module->Load(false)) + { + m_getDpiFunction = user32module->GetFunction("GetDpiForWindow"); + } + } + NativeWindowImpl_Win32::~NativeWindowImpl_Win32() { DestroyWindow(m_win32Handle); @@ -237,6 +251,12 @@ namespace AzFramework // Send all other WM_SYSKEYDOWN messages to the default WndProc. break; } + case WM_DPICHANGED: + { + const float newScaleFactor = nativeWindowImpl->GetDpiScaleFactor(); + WindowNotificationBus::Event(nativeWindowImpl->GetWindowHandle(), &WindowNotificationBus::Events::OnDpiScaleFactorChanged, newScaleFactor); + break; + } default: return DefWindowProc(hWnd, message, wParam, lParam); break; @@ -330,6 +350,17 @@ namespace AzFramework } } + float NativeWindowImpl_Win32::GetDpiScaleFactor() const + { + constexpr UINT defaultDotsPerInch = 96; + UINT dotsPerInch = defaultDotsPerInch; + if (m_getDpiFunction) + { + dotsPerInch = m_getDpiFunction(m_win32Handle); + } + return aznumeric_cast(dotsPerInch) / aznumeric_cast(defaultDotsPerInch); + } + void NativeWindowImpl_Win32::EnterBorderlessWindowFullScreen() { if (m_isInBorderlessWindowFullScreenState) diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/Style.cpp b/Code/Framework/AzQtComponents/AzQtComponents/Components/Style.cpp index 4146d1d537..15240c3975 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Components/Style.cpp +++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/Style.cpp @@ -1289,6 +1289,10 @@ namespace AzQtComponents } break; + case QStyle::SP_MessageBoxInformation: + return QIcon(QString::fromUtf8(":/stylesheet/img/UI20/Info.svg")); + break; + default: break; } diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/BaseStyleSheet.qss b/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/BaseStyleSheet.qss index 894b2921d4..3499404572 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/BaseStyleSheet.qss +++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/BaseStyleSheet.qss @@ -123,6 +123,7 @@ QPlainTextEdit:focus @import "LineEdit.qss"; @import "Menu.qss"; @import "MenuBar.qss"; +@import "MessageBox.qss"; @import "ProgressBar.qss"; @import "PushButton.qss"; @import "QDockWidget.qss"; diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/MessageBox.qss b/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/MessageBox.qss new file mode 100644 index 0000000000..81aa7fd8d8 --- /dev/null +++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/Widgets/MessageBox.qss @@ -0,0 +1,21 @@ + +/* + * Copyright (c) Contributors to the Open 3D Engine Project + * + * SPDX-License-Identifier: Apache-2.0 OR MIT + * + */ + + /* correct the padding around the two main labels to give space at the borders */ +QMessageBox QLabel#qt_msgbox_label +{ + padding-top: 20px; + padding-right: 20px; + padding-bottom: 20px; +} + +QMessageBox QLabel#qt_msgboxex_icon_label +{ + padding-left: 20px; + padding-top: 20px; +} diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Components/resources.qrc b/Code/Framework/AzQtComponents/AzQtComponents/Components/resources.qrc index 904be3897f..642fc72745 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Components/resources.qrc +++ b/Code/Framework/AzQtComponents/AzQtComponents/Components/resources.qrc @@ -354,17 +354,17 @@ img/UI20/toolbar/Grid.svg img/UI20/toolbar/Lighting.svg img/UI20/toolbar/Load.svg - img/UI20/toolbar/Local.svg + img/UI20/toolbar/Local.svg img/UI20/toolbar/Locked.svg img/UI20/toolbar/Locked_Status.svg - img/UI20/toolbar/LUA.svg + img/UI20/toolbar/LUA.svg img/UI20/toolbar/Material.svg img/UI20/toolbar/Measure.svg img/UI20/toolbar/Move.svg img/UI20/toolbar/Object_follow_terrain.svg img/UI20/toolbar/Object_height.svg img/UI20/toolbar/Object_list.svg - img/UI20/toolbar/Parent.svg + img/UI20/toolbar/Parent.svg img/UI20/toolbar/particle.svg img/UI20/toolbar/Play.svg img/UI20/toolbar/Redo.svg @@ -383,7 +383,7 @@ img/UI20/toolbar/undo.svg img/UI20/toolbar/Unlocked.svg img/UI20/toolbar/Vertex_snapping.svg - img/UI20/toolbar/World.svg + img/UI20/toolbar/World.svg img/UI20/toolbar/X_axis.svg img/UI20/toolbar/Y_axis.svg img/UI20/toolbar/Z_axis.svg @@ -457,6 +457,7 @@ Widgets/ComboBoxConfig.ini Widgets/Menu.qss Widgets/MenuBar.qss + Widgets/MessageBox.qss Widgets/ProgressBarConfig.ini Widgets/ProgressBar.qss Widgets/PushButton.qss diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/UI/LegacyFramework/Core/EditorFrameworkApplication.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/UI/LegacyFramework/Core/EditorFrameworkApplication.cpp index ccc7ef1fd7..f342b1afab 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/UI/LegacyFramework/Core/EditorFrameworkApplication.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/UI/LegacyFramework/Core/EditorFrameworkApplication.cpp @@ -151,6 +151,12 @@ namespace LegacyFramework specializations.Append("tools"); } + void Application::CreateReflectionManager() + { + AZ::ComponentApplication::CreateReflectionManager(); + GetSerializeContext()->CreateEditContext(); + } + int Application::Run(const ApplicationDesc& desc) { if (!AZ::AllocatorInstance::IsReady()) diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/UI/LegacyFramework/Core/EditorFrameworkApplication.h b/Code/Framework/AzToolsFramework/AzToolsFramework/UI/LegacyFramework/Core/EditorFrameworkApplication.h index 42aacf3dbd..5cde088c2d 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/UI/LegacyFramework/Core/EditorFrameworkApplication.h +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/UI/LegacyFramework/Core/EditorFrameworkApplication.h @@ -56,6 +56,8 @@ namespace LegacyFramework virtual int Run(const ApplicationDesc& desc); Application(); + void CreateReflectionManager() override; + protected: // ------------------------------------------------------------------ diff --git a/Code/LauncherUnified/launcher_generator.cmake b/Code/LauncherUnified/launcher_generator.cmake index 85976e1cb9..628b5fffac 100644 --- a/Code/LauncherUnified/launcher_generator.cmake +++ b/Code/LauncherUnified/launcher_generator.cmake @@ -122,6 +122,8 @@ foreach(project_name project_path IN ZIP_LISTS LY_PROJECTS_TARGET_NAME LY_PROJEC FOLDER ${project_name} ) + # After ensuring that we correctly support DPI scaling, this should be switched to "PerMonitor" + set_property(TARGET ${project_name}.GameLauncher APPEND PROPERTY VS_DPI_AWARE "OFF") if(LY_DEFAULT_PROJECT_PATH) set_property(TARGET ${project_name}.GameLauncher APPEND PROPERTY VS_DEBUGGER_COMMAND_ARGUMENTS "--project-path=\"${LY_DEFAULT_PROJECT_PATH}\"") endif() diff --git a/Code/Tools/ProjectManager/Source/PythonBindings.cpp b/Code/Tools/ProjectManager/Source/PythonBindings.cpp index ca49542ccf..167cf6d10e 100644 --- a/Code/Tools/ProjectManager/Source/PythonBindings.cpp +++ b/Code/Tools/ProjectManager/Source/PythonBindings.cpp @@ -648,10 +648,10 @@ namespace O3DE::ProjectManager gemInfo.m_name = Py_To_String(data["gem_name"]); // optional - gemInfo.m_displayName = Py_To_String_Optional(data, "DisplayName", gemInfo.m_name); - gemInfo.m_summary = Py_To_String_Optional(data, "Summary", ""); - gemInfo.m_version = Py_To_String_Optional(data, "Version", ""); - gemInfo.m_requirement = Py_To_String_Optional(data, "Requirements", ""); + gemInfo.m_displayName = Py_To_String_Optional(data, "display_name", gemInfo.m_name); + gemInfo.m_summary = Py_To_String_Optional(data, "summary", ""); + gemInfo.m_version = ""; + gemInfo.m_requirement = Py_To_String_Optional(data, "requirements", ""); gemInfo.m_creator = Py_To_String_Optional(data, "origin", ""); if (gemInfo.m_creator.contains("Open 3D Engine")) @@ -659,13 +659,27 @@ namespace O3DE::ProjectManager gemInfo.m_gemOrigin = GemInfo::GemOrigin::Open3DEEngine; } - if (data.contains("Tags")) + if (data.contains("user_tags")) { - for (auto tag : data["Tags"]) + for (auto tag : data["user_tags"]) { gemInfo.m_features.push_back(Py_To_String(tag)); } } + + QString gemType = Py_To_String_Optional(data, "type", ""); + if (gemType == "Asset") + { + gemInfo.m_types |= GemInfo::Type::Asset; + } + if (gemType == "Code") + { + gemInfo.m_types |= GemInfo::Type::Code; + } + if (gemType == "Tool") + { + gemInfo.m_types |= GemInfo::Type::Tool; + } } catch ([[maybe_unused]] const std::exception& e) { diff --git a/Gems/AWSClientAuth/gem.json b/Gems/AWSClientAuth/gem.json index 89beb4a382..76183cd785 100644 --- a/Gems/AWSClientAuth/gem.json +++ b/Gems/AWSClientAuth/gem.json @@ -1,12 +1,12 @@ { "gem_name": "AWSClientAuth", - "GemFormatVersion": 3, - "Uuid": "c74f2756f5874c0d8d29646dfc9cb0ad", - "Name": "AWSClientAuth", - "DisplayName": "AWS Client Auth", - "Version": "0.1.0", - "LinkType": "Dynamic", - "Summary": "AWS Client Auth provides client authentication and AWS authorization solution", - "Tags": ["AWS", "Amazon Cognito", "Authentication", "Authorization"], - "IconPath": "preview.png" + "display_name": "AWS Client Authorization", + "license": "Apache-2.0 Or MIT", + "origin": "Amazon Web Services, Inc.", + "type": "Code", + "summary": "AWS Client Auth provides client authentication and AWS authorization solution.", + "canonical_tags": ["Gem"], + "user_tags": ["AWS", "Network", "SDK"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/AWSCore/gem.json b/Gems/AWSCore/gem.json index af52acf746..bbaa4eb155 100644 --- a/Gems/AWSCore/gem.json +++ b/Gems/AWSCore/gem.json @@ -1,18 +1,12 @@ { "gem_name": "AWSCore", - "GemFormatVersion": 4, - "Uuid": "c3710872891c4401b0cbdabfca066cb5", - "Name": "AWSCore", - "DisplayName": "AWS Core", - "Version": "0.1.0", - "LinkType": "Dynamic", - "Summary": "This Gem is automatically enabled when selecting any of the AWS Feature Gems. It provides basic shared functionalities such as AWS SDK initialization and client configuration.", - "Tags": [ - "AWS", - "API", - "AWSCore", - "Cloud", - "Connected" - ], - "IconPath": "preview.png" + "display_name": "AWS Core", + "license": "Apache-2.0 Or MIT", + "origin": "Amazon Web Services, Inc.", + "type": "Code", + "summary": "The AWS Core Gem provides basic shared AWS functionality such as AWS SDK initialization and client configuration, and is automatically added when selecting any AWS feature Gem.", + "canonical_tags": ["Gem"], + "user_tags": ["AWS", "Network", "SDK"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/AWSMetrics/gem.json b/Gems/AWSMetrics/gem.json index 014434d408..480200c565 100644 --- a/Gems/AWSMetrics/gem.json +++ b/Gems/AWSMetrics/gem.json @@ -1,16 +1,12 @@ { "gem_name": "AWSMetrics", - "GemFormatVersion": 4, - "Uuid": "cc6fc7a18fc047039a369a26100fcbbe", - "Name": "AWSMetrics", - "DisplayName": "AWS Metrics", - "Version": "0.1.0", - "LinkType": "Dynamic", - "Summary": "AWS Metrics provides metrics submission and analytics solution.", - "Tags": [ - "AWS", - "AWSMetrics", - "Cloud" - ], - "IconPath": "preview.png" + "display_name": "AWS Metrics", + "license": "Apache-2.0 Or MIT", + "origin": "Amazon Web Services, Inc.", + "type": "Code", + "summary": "The AWS Metrics Gem provides a solution for AWS metrics submission and analytics.", + "canonical_tags": ["Gem"], + "user_tags": ["AWS", "Network", "SDK"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/Achievements/gem.json b/Gems/Achievements/gem.json index 746e2a1e50..8a30390295 100644 --- a/Gems/Achievements/gem.json +++ b/Gems/Achievements/gem.json @@ -1,16 +1,12 @@ { "gem_name": "Achievements", - "GemFormatVersion": 4, - "Uuid": "6f8d953dd4fc4bb6ad34c9118a7b789f", - "Name": "Achievements", - "DisplayName": "Achievements", - "Version": "0.1.0", - "Summary": "Platform agnostic interface for retrieving achievement details and unlocking achievements.", - "Tags": ["Achievement", "Achievements", "Trophy", "Trophies"], - "IconPath": "preview.png", - "Modules": [ - { - "Type": "GameModule" - } - ] + "display_name": "Achievements", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Achievements Gem provides a target platform agnostic interface for retrieving achievement details and unlocking achievements.", + "canonical_tags": ["Gem"], + "user_tags": ["Gameplay", "Achievements"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/AssetMemoryAnalyzer/gem.json b/Gems/AssetMemoryAnalyzer/gem.json index 62b4387508..8c63d51e1a 100644 --- a/Gems/AssetMemoryAnalyzer/gem.json +++ b/Gems/AssetMemoryAnalyzer/gem.json @@ -1,25 +1,12 @@ { "gem_name": "AssetMemoryAnalyzer", - "GemFormatVersion": 4, - "Uuid": "35414634480a4d4c8412c60fe62f4c81", - "Name": "AssetMemoryAnalyzer", - "DisplayName": "AssetMemoryAnalyzer", - "Version": "0.1.0", - "Summary": "Provides debug visualization of the AssetMemoryDriller to show how individual assets are consuming memory.", - "Tags": ["debug"], - "IconPath": "preview.png", - "Modules": [ - { - "Type": "GameModule" - } - ], - "Dependencies": [ - { - "Uuid": "bab8807a1bc646b3909f3cc200ffeedf", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "ImGui GEM" - } - ] + "display_name": "Asset Memory Analyzer", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Asset Memory Analyzer Gem provides tools to profile asset memory usage in Open 3D Engine through ImGUI (Immediate Mode Graphical User Interface).", + "canonical_tags": ["Gem"], + "user_tags": ["Debug", "Utillity", "Tools"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/AssetValidation/gem.json b/Gems/AssetValidation/gem.json index 1f27fcb20f..8a00dc27ca 100644 --- a/Gems/AssetValidation/gem.json +++ b/Gems/AssetValidation/gem.json @@ -1,16 +1,12 @@ { "gem_name": "AssetValidation", - "GemFormatVersion": 4, - "Uuid": "5a5c3c10b91d4b4ea8baef474c5b5d49", - "Name": "AssetValidation", - "DisplayName": "AssetValidation", - "Version": "0.1.0", - "Summary": "Tools for managing your assets and their dependencies during development", - "Tags": ["Untagged"], - "IconPath": "preview.png", - "Modules": [ - { - "Type": "GameModule" - } - ] + "display_name": "Asset Validation", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Asset Validation Gem provides seed-related commands to ensure assets have valid seeds for asset bundling.", + "canonical_tags": ["Gem"], + "user_tags": ["Assets", "Utility", "Scripting"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/Atom/Asset/ImageProcessingAtom/gem.json b/Gems/Atom/Asset/ImageProcessingAtom/gem.json index 86256bff9d..45d96f7168 100644 --- a/Gems/Atom/Asset/ImageProcessingAtom/gem.json +++ b/Gems/Atom/Asset/ImageProcessingAtom/gem.json @@ -1,10 +1,14 @@ { "gem_name": "ImageProcessingAtom", "display_name": "Atom Image Processing", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", "summary": "", "canonical_tags": [ "Gem" ], "user_tags": [ - ] + ], + "requirements": "" } diff --git a/Gems/Atom/Asset/Shader/gem.json b/Gems/Atom/Asset/Shader/gem.json index 71c741f436..eadf34acff 100644 --- a/Gems/Atom/Asset/Shader/gem.json +++ b/Gems/Atom/Asset/Shader/gem.json @@ -1,10 +1,14 @@ { "gem_name": "AtomShader", "display_name": "Atom Shader Builder", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", "summary": "", "canonical_tags": [ "Gem" ], "user_tags": [ - ] + ], + "requirements": "" } diff --git a/Gems/Atom/Bootstrap/gem.json b/Gems/Atom/Bootstrap/gem.json index 8aa5cade6e..d5f287eb7f 100644 --- a/Gems/Atom/Bootstrap/gem.json +++ b/Gems/Atom/Bootstrap/gem.json @@ -1,10 +1,14 @@ { "gem_name": "Atom_Bootstrap", "display_name": "Atom Bootstrap", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", "summary": "", "canonical_tags": [ "Gem" ], "user_tags": [ - ] + ], + "requirements": "" } diff --git a/Gems/Atom/Component/DebugCamera/gem.json b/Gems/Atom/Component/DebugCamera/gem.json index 06d39d1fc0..cb2c597b07 100644 --- a/Gems/Atom/Component/DebugCamera/gem.json +++ b/Gems/Atom/Component/DebugCamera/gem.json @@ -1,10 +1,14 @@ { "gem_name": "Atom_Component_DebugCamera", "display_name": "Atom Debug Camera Component", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", "summary": "", "canonical_tags": [ "Gem" ], "user_tags": [ - ] + ], + "requirements": "" } diff --git a/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/Lights/Ltc.azsli b/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/Lights/Ltc.azsli index 292f8a8a22..8042758db8 100644 --- a/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/Lights/Ltc.azsli +++ b/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/Lights/Ltc.azsli @@ -80,14 +80,48 @@ float3x3 BuildViewAlignedOrthonormalBasis(in float3 normal, in float3 dirToView) // xy plane in positive z space. float IntegrateEdge(float3 v1, float3 v2) { + // This alternate version may work better for platforms where acos() precision is low. + /* + float x = dot(v1, v2); + float y = abs(x); + + float a = 5.42031 + (3.12829 + 0.0902326 * y) * y; + float b = 3.45068 + (4.18814 + y) * y; + float theta_sinTheta = a / b; + + if (x < 0.0) + { + theta_sinTheta = PI * rsqrt(saturate(1.0 - x * x)) - theta_sinTheta; + } + + float3 u = cross(v1, v2); + return theta_sinTheta * u.z; + */ + float cosTheta = dot(v1, v2); - cosTheta = clamp(cosTheta, -0.9999, 0.9999); + float theta = acos(cosTheta); // calculate 1.0 / sin(theta) - float invSinTheta = rsqrt(1.0 - cosTheta * cosTheta); + float invSinTheta = rsqrt(saturate(1.0 - cosTheta * cosTheta)); - float theta = acos(cosTheta); - return cross(v1, v2).z * theta * invSinTheta; + return cross(v1, v2).z * ((theta > 0.001) ? theta * invSinTheta : 1.0); +} + +// Cheaper version of above which is good enough for diffuse +float IntegrateEdgeDiffuse(float3 v1, float3 v2) +{ + float cosTheta = dot(v1, v2); + float theta_sinTheta = 0.0; + if (cosTheta > 0.0) + { + float absCosTheta = abs(cosTheta); + theta_sinTheta = 1.5708 + (-0.879406 + 0.308609 * absCosTheta) * absCosTheta; + } + else + { + theta_sinTheta = PI * rsqrt(1.0 - cosTheta * cosTheta) - theta_sinTheta; + } + return theta_sinTheta * cross(v1, v2).z; } // Returns the unnormalized z plane intersection point between pointAboveHorizon and pointBelowHorizon. @@ -189,42 +223,90 @@ void ClipQuadToHorizon(inout float3 p[5], out int vertexCount) } } -// Takes 4 points (p) from a quad plus a 5th dummy point, rotates them into the space of the normal, then transforms -// the points by the LTC matrix provided. The points are then clipped to the normal's hemisphere. The number of points -// after the clip is returned in vertexCount. It's possible for the resulting clipped quad to be a triangle (when 3 -// points are below the horizon), or a pentagon (when one point is below the horizon), or be a regular 4 point quad. -void LtcClipAndNormalizeQuad(in float3 normal, in float3 dirToView, float3x3 ltcMat, inout float3 p[5], out int vertexCount) +// Applies the LTC matrix to the clipped points of a quad. +void ApplyLtcMatrixToQuad(in float3x3 ltcMat, inout float3 p[5], in int vertexCount) { - // Rotate ltc matrix - ltcMat = mul(ltcMat, BuildViewAlignedOrthonormalBasis(normal, dirToView)); - // Transform points into ltc space - p[0] = mul(ltcMat, p[0].xyz); - p[1] = mul(ltcMat, p[1].xyz); - p[2] = mul(ltcMat, p[2].xyz); - p[3] = mul(ltcMat, p[3].xyz); + p[0] = mul(ltcMat, p[0]); + p[1] = mul(ltcMat, p[1]); + p[2] = mul(ltcMat, p[2]); - ClipQuadToHorizon(p, vertexCount); - - // visibility check - if (vertexCount == 0) + if (vertexCount > 3) { - return; + p[3] = mul(ltcMat, p[3]); } + if (vertexCount > 4) + { + p[4] = mul(ltcMat, p[4]); + } +} - // project onto sphere +// Projects the clipped points of a quad onto the sphere. +void NormalizeQuadPoints(inout float3 p[5], in int vertexCount) +{ + // project quad points onto a sphere. p[0] = normalize(p[0]); p[1] = normalize(p[1]); p[2] = normalize(p[2]); - p[3] = normalize(p[3]); - p[4] = normalize(p[4]); + + if (vertexCount > 3) + { + p[3] = normalize(p[3]); + } + if (vertexCount > 4) + { + p[4] = normalize(p[4]); + } +} + +// Transforms the 4 points of a quad into the hemisphere of the normal +void TransformQuadToOrthonormalBasis(in float3 normal, in float3 dirToView, inout float3 p[4]) +{ + float3x3 orthoNormalBasis = BuildViewAlignedOrthonormalBasis(normal, dirToView); + + // Transform points into orthonormal space + p[0] = mul(orthoNormalBasis, p[0]); + p[1] = mul(orthoNormalBasis, p[1]); + p[2] = mul(orthoNormalBasis, p[2]); + p[3] = mul(orthoNormalBasis, p[3]); } -float IntegrateQuad(in float3 v[5], in float vertexCount, in bool doubleSided) +// Integrates the edges of a quad for lambertian diffuse contribution. +float IntegrateQuadDiffuse(in float3 v[5], in float vertexCount, in bool doubleSided) { - // Integrate float sum = 0.0; + NormalizeQuadPoints(v, vertexCount); + + // There must be at least 3 points so don't check for the first 2 edges. + sum += IntegrateEdgeDiffuse(v[0], v[1]); + sum += IntegrateEdgeDiffuse(v[1], v[2]); + + if (vertexCount > 3) + { + sum += IntegrateEdgeDiffuse(v[2], v[3]); + if (vertexCount == 5) + { + sum += IntegrateEdgeDiffuse(v[3], v[4]); + } + } + + // Close the polygon + sum += IntegrateEdgeDiffuse(v[vertexCount - 1], v[0]); + + // Note: negated due to winding order + sum = doubleSided ? abs(sum) : max(0.0, -sum); + + return sum; +} + +// Integrates the edges of a quad for specular contribution. +float IntegrateQuadSpecular(in float3 v[5], in float vertexCount, in bool doubleSided) +{ + float sum = 0.0; + + NormalizeQuadPoints(v, vertexCount); + // There must be at least 3 points so don't check for the first 2 edges. sum += IntegrateEdge(v[0], v[1]); sum += IntegrateEdge(v[1], v[2]); @@ -247,26 +329,62 @@ float IntegrateQuad(in float3 v[5], in float vertexCount, in bool doubleSided) return sum; } -float LtcQuadEvaluate(in float3 normal, in float3 dirToView, in float3x3 ltcMat, in float3 p[4], in bool doubleSided) +// Evaluate linear transform cosine lighting for a 4 point quad. +// normal - The surface normal +// dirToView - Normalized direction from the surface to the view +// ltcMat - The LTC matrix for specular, or identity for diffuse. +// p[4] - The 4 light positions relative to the surface position. +// doubleSided - If the quad emits light from both sides +// diffuse - The output diffuse response for the quad light +// specular - The output specular response for the quad light +void LtcQuadEvaluate( + in float3 normal, + in float3 dirToView, + in float3x3 ltcMat, + in float3 p[4], + in bool doubleSided, + out float diffuse, + out float specular) { + // Transform the points of the light into the space of the normal's hemisphere. + TransformQuadToOrthonormalBasis(normal, dirToView, p); + // Initialize quad with dummy point at end in case one corner is clipped (resulting in 5 sided polygon) float3 v[5] = {p[0], p[1], p[2], p[3], float3(0.0, 0.0, 0.0)}; + // Clip the light polygon to the normal hemisphere. This is done before the LTC matrix is applied to prevent + // parts of the light below the horizon from impacting the surface. The number of points remaining after + // the clip is returned in vertexCount. It's possible for the vertexCount of the resulting clipped quad to be + // 0 - all points clipped (no work to do, so return) + // 3 - 3 points clipped, leaving only a triangular corner of the quad + // 4 - 2 or 0 points clipped, leaving a quad + // 5 - 1 point clipped leaving a pentagon. + int vertexCount = 0; - LtcClipAndNormalizeQuad(normal, dirToView, ltcMat, v, vertexCount); + ClipQuadToHorizon(v, vertexCount); - if (vertexCount > 0) + if (vertexCount == 0) { - return IntegrateQuad(v, vertexCount, doubleSided); + // Entire light is below the horizon. + return; } - return 0.0; + + // IntegrateQuadDiffuse is a cheap approximation compared to specular. + diffuse = IntegrateQuadDiffuse(v, vertexCount, doubleSided); + + ApplyLtcMatrixToQuad(ltcMat, v, vertexCount); + + // IntegrateQuadSpecular uses more accurate integration to handle smooth surfaces correctly. + specular = IntegrateQuadSpecular(v, vertexCount, doubleSided); } // Checks an edge against the horizon and integrates it. -// p0 - first point -// p1 - second point -// prevClipPoint - the clip point saved from the last time an edge went from above to below the horizon -// sum - the sum total of all integrations to contribute to. +// p0 - First point +// p1 - Second point +// prevClipPoint - The clip point saved from the last time an edge went from above to below the horizon +// ltcMat - The ltc lookup matrix for specular +// diffuse - The current sum total of diffuse contribution to apply additional contribution to +// specular - The current sum total of specular contribution to apply additional contribution to // // Explanation: // When evaluating edges of a polygon there are four possible states to deal with @@ -283,28 +401,34 @@ float LtcQuadEvaluate(in float3 normal, in float3 dirToView, in float3x3 ltcMat, // 4. Both points are below the horizon // - Do nothing. -void EvaluatePolyEdge(in float3 p0, in float3 p1, inout float3 prevClipPoint, inout float sum) +void EvaluatePolyEdge(in float3 p0, in float3 p1, inout float3 prevClipPoint, in float3x3 ltcMat, inout float diffuse, inout float specular) { if (p0.z > 0.0) { if (p1.z > 0.0) { // Both above horizon - sum += IntegrateEdge(normalize(p0), normalize(p1)); + diffuse += IntegrateEdgeDiffuse(normalize(p0), normalize(p1)); + specular += IntegrateEdge(normalize(mul(ltcMat, p0)), normalize(mul(ltcMat, p1))); } else { // Going from above to below horizon - prevClipPoint = normalize(ClipEdge(p0, p1)); - sum += IntegrateEdge(normalize(p0), prevClipPoint); + prevClipPoint = ClipEdge(p0, p1); + diffuse += IntegrateEdgeDiffuse(normalize(p0), normalize(prevClipPoint)); + specular += IntegrateEdge(normalize(mul(ltcMat, p0)), normalize(mul(ltcMat, prevClipPoint))); } } else if (p1.z > 0.0) { // Going from below to above horizon - float3 clipPoint = normalize(ClipEdge(p1, p0)); - sum += IntegrateEdge(prevClipPoint, clipPoint); - sum += IntegrateEdge(clipPoint, normalize(p1)); + float3 clipPoint = ClipEdge(p1, p0); + diffuse += IntegrateEdgeDiffuse(normalize(prevClipPoint), normalize(clipPoint)); + diffuse += IntegrateEdgeDiffuse(normalize(clipPoint), normalize(p1)); + + clipPoint = mul(ltcMat, clipPoint); + specular += IntegrateEdge(normalize(mul(ltcMat, prevClipPoint)), normalize(clipPoint)); + specular += IntegrateEdge(normalize(clipPoint), normalize(mul(ltcMat, p1))); } } @@ -316,26 +440,38 @@ void EvaluatePolyEdge(in float3 p0, in float3 p1, inout float3 prevClipPoint, in // positions - The buffer where the polygon positions are // startIdx - The index of the first polygon position // endIdx - The index of the point directly after the last polygon position -// +// diffuse - The output diffuse response for the polygon light +// specular - The output specular response for the polygon light // The most complicated aspect of this function is clipping the polygon against the horizon of the surface point. See // EvaluatePolyEdge() above for details on the general concept. However, this function must deal with the case of the // first point being below the horizon. In that case, it needs to search in reverse from the end for the first point // above the horizon, and save the intersection point between the above and below points so it can be used in // EvaluatePolyEdge() later. During this search it also adjusts the end point index as necessary to avoid processing // those points that are below the horizon. -float LtcPolygonEvaluate(in float3 pos, in float3 normal, in float3 dirToView, in float3x3 ltcMat, in StructuredBuffer positions, in uint startIdx, in uint endIdx) +void LtcPolygonEvaluate( + in float3 pos, + in float3 normal, + in float3 dirToView, + in float3x3 ltcMat, + in StructuredBuffer positions, + in uint startIdx, + in uint endIdx, + out float diffuse, + out float specular +) { if (endIdx - startIdx < 3) { - return 0.0; // Must have at least 3 points to form a polygon. + return; // Must have at least 3 points to form a polygon. } // Rotate ltc matrix - ltcMat = mul(ltcMat, BuildViewAlignedOrthonormalBasis(normal, dirToView)); + float3x3 orthonormalMat = BuildViewAlignedOrthonormalBasis(normal, dirToView); // Prepare initial values - float sum = 0.0; // sum of edge integation - float3 p0 = mul(ltcMat, positions[startIdx].xyz - pos); // First point in polygon + float3 p0 = mul(orthonormalMat, positions[startIdx].xyz - pos); // First point in polygon + diffuse = 0.0; + specular = 0.0; float3 prevClipPoint = float3(0.0, 0.0, 0.0); // Used to hold previous clip point when polygon dips below horizon. float3 closePoint = p0; @@ -349,10 +485,10 @@ float LtcPolygonEvaluate(in float3 pos, in float3 normal, in float3 dirToView, i // searching backwards, updating the endIdx along the way to avoid reprocessing those points later for ( ; endIdx > startIdx + 1; --endIdx) { - float3 prevPoint = mul(ltcMat, positions[endIdx - 1].xyz - pos); - if (prevPoint.z > 0) + float3 prevPoint = mul(orthonormalMat, positions[endIdx - 1].xyz - pos); + if (prevPoint.z > 0.0) { - prevClipPoint = normalize(ClipEdge(prevPoint, p0)); + prevClipPoint = ClipEdge(prevPoint, p0); closePoint = prevClipPoint; break; } @@ -362,7 +498,7 @@ float LtcPolygonEvaluate(in float3 pos, in float3 normal, in float3 dirToView, i // Check if all points below horizon if (endIdx == startIdx + 1) { - return 0.0; + return; } p0 = firstPoint; // Restore the original p0 @@ -371,13 +507,14 @@ float LtcPolygonEvaluate(in float3 pos, in float3 normal, in float3 dirToView, i // Evaluate all the points for (uint curIdx = startIdx + 1; curIdx < endIdx; ++curIdx) { - float3 p1 = mul(ltcMat, positions[curIdx].xyz - pos); // Current point in polygon - EvaluatePolyEdge(p0, p1, prevClipPoint, sum); + float3 p1 = mul(orthonormalMat, positions[curIdx].xyz - pos); // Current point in polygon + EvaluatePolyEdge(p0, p1, prevClipPoint, ltcMat, diffuse, specular); p0 = p1; } - EvaluatePolyEdge(p0, closePoint, prevClipPoint, sum); + EvaluatePolyEdge(p0, closePoint, prevClipPoint, ltcMat, diffuse, specular); // Note: negated due to winding order - return -sum; + diffuse = -diffuse; + specular = -specular; } diff --git a/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/Lights/PolygonLight.azsli b/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/Lights/PolygonLight.azsli index bbd3c1c9e3..d7313556a2 100644 --- a/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/Lights/PolygonLight.azsli +++ b/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/Lights/PolygonLight.azsli @@ -50,26 +50,25 @@ void ApplyPoylgonLight(ViewSrg::PolygonLight light, Surface surface, inout Light float radiusAttenuation = 1.0 - (falloff * falloff); radiusAttenuation = radiusAttenuation * radiusAttenuation; - // Diffuse - static const float3x3 identityMatrix = float3x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0); - float diffuse = LtcPolygonEvaluate(surface.position, surface.normal, lightingData.dirToCamera, identityMatrix, ViewSrg::m_polygonLightPoints, startIndex, endIndex); - diffuse = doubleSided ? abs(diffuse) : max(0.0, diffuse); - - // Specular float2 ltcCoords = LtcCoords(dot(surface.normal, lightingData.dirToCamera), surface.roughnessLinear); float3x3 ltcMat = LtcMatrix(SceneSrg::m_ltcMatrix, ltcCoords); - float3 specular = LtcPolygonEvaluate(surface.position, surface.normal, lightingData.dirToCamera, ltcMat, ViewSrg::m_polygonLightPoints, startIndex, endIndex); + + float diffuse = 0.0; + float specular = 0.0; + + LtcPolygonEvaluate(surface.position, surface.normal, lightingData.dirToCamera, ltcMat, ViewSrg::m_polygonLightPoints, startIndex, endIndex, diffuse, specular); + diffuse = doubleSided ? abs(diffuse) : max(0.0, diffuse); specular = doubleSided ? abs(specular) : max(0.0, specular); // Apply BRDF scale terms (BRDF magnitude and Schlick Fresnel) float2 schlick = SceneSrg::m_ltcAmplification.Sample(PassSrg::LinearSampler, ltcCoords).xy; - specular *= schlick.x + (1.0 - surface.specularF0) * schlick.y; + float3 specularRGB = specular * (schlick.x + (1.0 - surface.specularF0) * schlick.y); // Scale by inverse surface area of hemisphere (1/2pi), attenuation, and light intensity float3 intensity = 0.5 * INV_PI * radiusAttenuation * abs(light.m_rgbIntensityNits); lightingData.diffuseLighting += surface.albedo * diffuse * intensity; - lightingData.specularLighting += surface.specularF0 * specular * intensity; + lightingData.specularLighting += surface.specularF0 * specularRGB * intensity; } void ApplyPolygonLights(Surface surface, inout LightingData lightingData) diff --git a/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/Lights/QuadLight.azsli b/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/Lights/QuadLight.azsli index 91981e4f4d..29ee97fd6f 100644 --- a/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/Lights/QuadLight.azsli +++ b/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/Lights/QuadLight.azsli @@ -111,24 +111,22 @@ void ApplyQuadLight(ViewSrg::QuadLight light, Surface surface, inout LightingDat { float3 p[4] = {p0, p1, p2, p3}; - // Diffuse - float3x3 identityMatrix = float3x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0); - float diffuse = LtcQuadEvaluate(surface.normal, lightingData.dirToCamera, identityMatrix, p, doubleSided); - - // Specular float2 ltcCoords = LtcCoords(dot(surface.normal, lightingData.dirToCamera), surface.roughnessLinear); float3x3 ltcMat = LtcMatrix(SceneSrg::m_ltcMatrix, ltcCoords); - float3 specular = LtcQuadEvaluate(surface.normal, lightingData.dirToCamera, ltcMat, p, doubleSided); + + float diffuse = 0.0; + float specular = 0.0; + LtcQuadEvaluate(surface.normal, lightingData.dirToCamera, ltcMat, p, doubleSided, diffuse, specular); // Apply BRDF scale terms (BRDF magnitude and Schlick Fresnel) float2 schlick = SceneSrg::m_ltcAmplification.Sample(PassSrg::LinearSampler, ltcCoords).xy; - specular *= schlick.x + (1.0 - surface.specularF0) * schlick.y; + float3 specularRGB = specular * (schlick.x + (1.0 - surface.specularF0) * schlick.y); // Scale by inverse surface area of hemisphere (1/2pi), attenuation, and light intensity float3 intensity = 0.5 * INV_PI * radiusAttenuation * light.m_rgbIntensityNits; lightingData.diffuseLighting += surface.albedo * diffuse * intensity; - lightingData.specularLighting += surface.specularF0 * specular * intensity; + lightingData.specularLighting += surface.specularF0 * specularRGB * intensity; } else { diff --git a/Gems/Atom/Feature/Common/gem.json b/Gems/Atom/Feature/Common/gem.json index 6980863b4c..cbaa56e0d7 100644 --- a/Gems/Atom/Feature/Common/gem.json +++ b/Gems/Atom/Feature/Common/gem.json @@ -1,10 +1,14 @@ { "gem_name": "Atom_Feature_Common", "display_name": "Atom Feature Common", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", "summary": "", "canonical_tags": [ "Gem" ], "user_tags": [ - ] + ], + "requirements": "" } diff --git a/Gems/Atom/RHI/DX12/gem.json b/Gems/Atom/RHI/DX12/gem.json index 683ccfb43a..df0ae12cc4 100644 --- a/Gems/Atom/RHI/DX12/gem.json +++ b/Gems/Atom/RHI/DX12/gem.json @@ -1,10 +1,14 @@ { "gem_name": "Atom_RHI_DX12", "display_name": "Atom RHI DX12", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", "summary": "", "canonical_tags": [ "Gem" ], "user_tags": [ - ] + ], + "requirements": "" } diff --git a/Gems/Atom/RHI/Metal/gem.json b/Gems/Atom/RHI/Metal/gem.json index 3e1726e8fa..497e0149b6 100644 --- a/Gems/Atom/RHI/Metal/gem.json +++ b/Gems/Atom/RHI/Metal/gem.json @@ -1,10 +1,14 @@ { "gem_name": "Atom_RHI_Metal", "display_name": "Atom RHI Metal", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", "summary": "", "canonical_tags": [ "Gem" ], "user_tags": [ - ] + ], + "requirements": "" } diff --git a/Gems/Atom/RHI/Null/gem.json b/Gems/Atom/RHI/Null/gem.json index 4fa5f1e480..aa2e08501a 100644 --- a/Gems/Atom/RHI/Null/gem.json +++ b/Gems/Atom/RHI/Null/gem.json @@ -1,10 +1,14 @@ { "gem_name": "Atom_RHI_Null", "display_name": "Atom RHI Null", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", "summary": "", "canonical_tags": [ "Gem" ], "user_tags": [ - ] + ], + "requirements": "" } diff --git a/Gems/Atom/RHI/Vulkan/gem.json b/Gems/Atom/RHI/Vulkan/gem.json index 1f2fcd7f30..2b43de4ab1 100644 --- a/Gems/Atom/RHI/Vulkan/gem.json +++ b/Gems/Atom/RHI/Vulkan/gem.json @@ -1,10 +1,14 @@ { "gem_name": "Atom_RHI_Vulkan", "display_name": "Atom RHI Vulkan", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", "summary": "", "canonical_tags": [ "Gem" ], "user_tags": [ - ] + ], + "requirements": "" } diff --git a/Gems/Atom/RHI/gem.json b/Gems/Atom/RHI/gem.json index eb67e40a4a..015ee64994 100644 --- a/Gems/Atom/RHI/gem.json +++ b/Gems/Atom/RHI/gem.json @@ -1,10 +1,14 @@ { "gem_name": "Atom_RHI", "display_name": "Atom RHI", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", "summary": "", "canonical_tags": [ "Gem" ], "user_tags": [ - ] + ], + "requirements": "" } diff --git a/Gems/Atom/RPI/Code/CMakeLists.txt b/Gems/Atom/RPI/Code/CMakeLists.txt index 71e5d82e48..d806b8c687 100644 --- a/Gems/Atom/RPI/Code/CMakeLists.txt +++ b/Gems/Atom/RPI/Code/CMakeLists.txt @@ -25,6 +25,8 @@ ly_add_target( ../Assets/atom_rpi_asset_files.cmake ${pal_source_dir}/platform_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake ${MASKED_OCCLUSION_CULLING_FILES} + PLATFORM_INCLUDE_FILES + ${CMAKE_CURRENT_LIST_DIR}/Source/Platform/Common/${PAL_TRAIT_COMPILER_ID}/atom_rpi_public_${PAL_TRAIT_COMPILER_ID_LOWERCASE}.cmake INCLUDE_DIRECTORIES PRIVATE Source diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/ViewportContext.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/ViewportContext.h index 982ef498a0..92e50be75e 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/ViewportContext.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/ViewportContext.h @@ -65,9 +65,15 @@ namespace AZ ConstViewPtr GetDefaultView() const; //! Gets the current size of the viewport. + //! This value is cached and updated on-demand, so may be efficiently queried. AzFramework::WindowSize GetViewportSize() const; - // SceneNotificationBus interface + //! Gets the screen DPI scaling factor. + //! This value is cached and updated on-demand, so may be efficiently queried. + //! \see AzFramework::WindowRequests::GetDpiScaleFactor + float GetDpiScalingFactor() const; + + // SceneNotificationBus interface overrides... //! Ensures our default view remains set when our scene's render pipelines are modified. void OnRenderPipelineAdded(RenderPipelinePtr pipeline) override; //! Ensures our default view remains set when our scene's render pipelines are modified. @@ -75,15 +81,22 @@ namespace AZ //! OnBeginPrepareRender is forwarded to our RenderTick notification to allow subscribers to do rendering. void OnBeginPrepareRender() override; - //WindowNotificationBus interface - //! Used to fire a notification when our window resizes + // WindowNotificationBus interface overrides... + //! Used to fire a notification when our window resizes. void OnWindowResized(uint32_t width, uint32_t height) override; + //! Used to fire a notification when our window DPI changes. + void OnDpiScaleFactorChanged(float dpiScaleFactor) override; using SizeChangedEvent = AZ::Event; //! Notifies consumers when the viewport size has changed. //! Alternatively, connect to ViewportContextNotificationsBus and listen to ViewportContextNotifications::OnViewportSizeChanged. void ConnectSizeChangedHandler(SizeChangedEvent::Handler& handler); + using ScalarChangedEvent = AZ::Event; + //! Notifies consumers when the viewport DPI scaling ratio has changed. + //! Alternatively, connect to ViewportContextNotificationsBus and listen to ViewportContextNotifications::OnViewportDpiScalingChanged. + void ConnectDpiScalingFactorChangedHandler(ScalarChangedEvent::Handler& handler); + using MatrixChangedEvent = AZ::Event; //! Notifies consumers when the view matrix has changed. void ConnectViewMatrixChangedHandler(MatrixChangedEvent::Handler& handler); @@ -106,7 +119,7 @@ namespace AZ //! Notifies consumers when this ViewportContext is about to be destroyed. void ConnectAboutToBeDestroyedHandler(ViewportIdEvent::Handler& handler); - // ViewportRequestBus interface + // ViewportRequestBus interface overrides... //! Gets the current camera's view matrix. const AZ::Matrix4x4& GetCameraViewMatrix() const override; //! Sets the current camera's view matrix. @@ -130,8 +143,10 @@ namespace AZ WindowContextSharedPtr m_windowContext; ViewPtr m_defaultView; AzFramework::WindowSize m_viewportSize; + float m_viewportDpiScaleFactor = 1.0f; SizeChangedEvent m_sizeChangedEvent; + ScalarChangedEvent m_dpiScalingFactorChangedEvent; MatrixChangedEvent m_viewMatrixChangedEvent; MatrixChangedEvent::Handler m_onViewMatrixChangedHandler; MatrixChangedEvent m_projectionMatrixChangedEvent; diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/ViewportContextBus.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/ViewportContextBus.h index da0c850f3d..152c8cf2c1 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/ViewportContextBus.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/ViewportContextBus.h @@ -105,8 +105,10 @@ namespace AZ class ViewportContextNotifications { public: - //! Called when the underlying native window size changes for a given viewport context name. + //! Called when the underlying native window size changes for a given viewport context. virtual void OnViewportSizeChanged(AzFramework::WindowSize size){AZ_UNUSED(size);} + //! Called when the window DPI scaling changes for a given viewport context. + virtual void OnViewportDpiScalingChanged(float dpiScale){AZ_UNUSED(dpiScale);} //! Called when the active view for a given viewport context name changes. virtual void OnViewportDefaultViewChanged(AZ::RPI::ViewPtr view){AZ_UNUSED(view);} //! Called when the viewport is to be rendered. diff --git a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/ViewportContextManager.h b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/ViewportContextManager.h index 008565d178..e50525cff0 100644 --- a/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/ViewportContextManager.h +++ b/Gems/Atom/RPI/Code/Include/Atom/RPI.Public/ViewportContextManager.h @@ -51,6 +51,7 @@ namespace AZ { AZStd::weak_ptr context; ViewportContext::SizeChangedEvent::Handler sizeChangedHandler; + ViewportContext::ScalarChangedEvent::Handler dpiScalingChangedHandler; }; // ViewportContextManager is a singleton owned solely by RPISystem, which is tagged as a friend diff --git a/Gems/Atom/RPI/Code/Source/Platform/Common/Clang/atom_rpi_public_clang.cmake b/Gems/Atom/RPI/Code/Source/Platform/Common/Clang/atom_rpi_public_clang.cmake new file mode 100644 index 0000000000..88309e590c --- /dev/null +++ b/Gems/Atom/RPI/Code/Source/Platform/Common/Clang/atom_rpi_public_clang.cmake @@ -0,0 +1,18 @@ +# +# Copyright (c) Contributors to the Open 3D Engine Project. For complete copyright and license terms please see the LICENSE at the root of this distribution. +# +# SPDX-License-Identifier: Apache-2.0 OR MIT +# +# + +ly_add_source_properties( + SOURCES External/MaskedOcclusionCulling/MaskedOcclusionCullingAVX2.cpp + PROPERTY COMPILE_OPTIONS + VALUES -mavx2 -mfma -msse4.1 +) + +ly_add_source_properties( + SOURCES External/MaskedOcclusionCulling/MaskedOcclusionCulling.cpp + PROPERTY COMPILE_OPTIONS + VALUES -mno-avx +) diff --git a/Gems/Atom/RPI/Code/Source/Platform/Common/MSVC/atom_rpi_public_msvc.cmake b/Gems/Atom/RPI/Code/Source/Platform/Common/MSVC/atom_rpi_public_msvc.cmake new file mode 100644 index 0000000000..50cfc8a179 --- /dev/null +++ b/Gems/Atom/RPI/Code/Source/Platform/Common/MSVC/atom_rpi_public_msvc.cmake @@ -0,0 +1,19 @@ +# +# Copyright (c) Contributors to the Open 3D Engine Project. For complete copyright and license terms please see the LICENSE at the root of this distribution. +# +# SPDX-License-Identifier: Apache-2.0 OR MIT +# +# + +ly_add_source_properties( + SOURCES External/MaskedOcclusionCulling/MaskedOcclusionCullingAVX2.cpp + PROPERTY COMPILE_OPTIONS + VALUES /arch:AVX2 /W3 +) +ly_add_source_properties( + SOURCES + External/MaskedOcclusionCulling/MaskedOcclusionCullingAVX512.cpp + External/MaskedOcclusionCulling/MaskedOcclusionCulling.cpp + PROPERTY COMPILE_OPTIONS + VALUES /W3 +) diff --git a/Gems/Atom/RPI/Code/Source/Platform/Windows/PAL_windows.cmake b/Gems/Atom/RPI/Code/Source/Platform/Windows/PAL_windows.cmake index 896f505d05..a9e3cf10f9 100644 --- a/Gems/Atom/RPI/Code/Source/Platform/Windows/PAL_windows.cmake +++ b/Gems/Atom/RPI/Code/Source/Platform/Windows/PAL_windows.cmake @@ -7,16 +7,3 @@ set (PAL_TRAIT_BUILD_ATOM_RPI_ASSETS_SUPPORTED TRUE) set (PAL_TRAIT_BUILD_ATOM_RPI_MASKED_OCCLUSION_CULLING_SUPPORTED TRUE) - -ly_add_source_properties( - SOURCES External/MaskedOcclusionCulling/MaskedOcclusionCullingAVX2.cpp - PROPERTY COMPILE_OPTIONS - VALUES /arch:AVX2 /W3 -) -ly_add_source_properties( - SOURCES - External/MaskedOcclusionCulling/MaskedOcclusionCullingAVX512.cpp - External/MaskedOcclusionCulling/MaskedOcclusionCulling.cpp - PROPERTY COMPILE_OPTIONS - VALUES /W3 -) \ No newline at end of file diff --git a/Gems/Atom/RPI/Code/Source/RPI.Public/ViewportContext.cpp b/Gems/Atom/RPI/Code/Source/RPI.Public/ViewportContext.cpp index 23d5805c12..eacdbe0293 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Public/ViewportContext.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Public/ViewportContext.cpp @@ -28,6 +28,10 @@ namespace AZ m_viewportSize, nativeWindow, &AzFramework::WindowRequestBus::Events::GetClientAreaSize); + AzFramework::WindowRequestBus::EventResult( + m_viewportDpiScaleFactor, + nativeWindow, + &AzFramework::WindowRequestBus::Events::GetDpiScaleFactor); AzFramework::WindowNotificationBus::Handler::BusConnect(nativeWindow); AzFramework::ViewportRequestBus::Handler::BusConnect(id); @@ -148,11 +152,21 @@ namespace AZ return m_viewportSize; } + float ViewportContext::GetDpiScalingFactor() const + { + return m_viewportDpiScaleFactor; + } + void ViewportContext::ConnectSizeChangedHandler(SizeChangedEvent::Handler& handler) { handler.Connect(m_sizeChangedEvent); } + void ViewportContext::ConnectDpiScalingFactorChangedHandler(ScalarChangedEvent::Handler& handler) + { + handler.Connect(m_dpiScalingFactorChangedEvent); + } + void ViewportContext::ConnectViewMatrixChangedHandler(MatrixChangedEvent::Handler& handler) { handler.Connect(m_viewMatrixChangedEvent); @@ -289,5 +303,11 @@ namespace AZ m_sizeChangedEvent.Signal(m_viewportSize); } } + + void ViewportContext::OnDpiScaleFactorChanged(float dpiScaleFactor) + { + m_viewportDpiScaleFactor = dpiScaleFactor; + m_dpiScalingFactorChangedEvent.Signal(dpiScaleFactor); + } } // namespace RPI } // namespace AZ diff --git a/Gems/Atom/RPI/Code/Source/RPI.Public/ViewportContextManager.cpp b/Gems/Atom/RPI/Code/Source/RPI.Public/ViewportContextManager.cpp index 552304557f..606b5e5b8c 100644 --- a/Gems/Atom/RPI/Code/Source/RPI.Public/ViewportContextManager.cpp +++ b/Gems/Atom/RPI/Code/Source/RPI.Public/ViewportContextManager.cpp @@ -55,16 +55,28 @@ namespace AZ auto onSizeChanged = [this, viewportId](AzFramework::WindowSize size) { // Ensure we emit OnViewportSizeChanged with the correct name. - auto viewportContext = this->GetViewportContextById(viewportId); + auto viewportContext = GetViewportContextById(viewportId); if (viewportContext) { ViewportContextNotificationBus::Event(viewportContext->GetName(), &ViewportContextNotificationBus::Events::OnViewportSizeChanged, size); } ViewportContextIdNotificationBus::Event(viewportId, &ViewportContextIdNotificationBus::Events::OnViewportSizeChanged, size); }; + auto onDpiScalingChanged = [this, viewportId](float dpiScalingFactor) + { + // Ensure we emit OnViewportDpiScalingChanged with the correct name. + auto viewportContext = GetViewportContextById(viewportId); + if (viewportContext) + { + ViewportContextNotificationBus::Event(viewportContext->GetName(), &ViewportContextNotificationBus::Events::OnViewportDpiScalingChanged, dpiScalingFactor); + } + ViewportContextIdNotificationBus::Event(viewportId, &ViewportContextIdNotificationBus::Events::OnViewportDpiScalingChanged, dpiScalingFactor); + }; viewportContext->m_name = contextName; viewportData.sizeChangedHandler = ViewportContext::SizeChangedEvent::Handler(onSizeChanged); + viewportData.dpiScalingChangedHandler = ViewportContext::ScalarChangedEvent::Handler(onDpiScalingChanged); viewportContext->ConnectSizeChangedHandler(viewportData.sizeChangedHandler); + viewportContext->ConnectDpiScalingFactorChangedHandler(viewportData.dpiScalingChangedHandler); ViewPtrStack& associatedViews = GetOrCreateViewStackForContext(contextName); viewportContext->SetDefaultView(associatedViews.back()); onSizeChanged(viewportContext->GetViewportSize()); @@ -176,6 +188,7 @@ namespace AZ UpdateViewForContext(newContextName); // Ensure anyone listening on per-name viewport size updates gets notified. ViewportContextNotificationBus::Event(newContextName, &ViewportContextNotificationBus::Events::OnViewportSizeChanged, viewportContext->GetViewportSize()); + ViewportContextNotificationBus::Event(newContextName, &ViewportContextNotificationBus::Events::OnViewportDpiScalingChanged, viewportContext->GetDpiScalingFactor()); } void ViewportContextManager::EnumerateViewportContexts(AZStd::function visitorFunction) diff --git a/Gems/Atom/RPI/gem.json b/Gems/Atom/RPI/gem.json index 7e822611a9..f30a1c3201 100644 --- a/Gems/Atom/RPI/gem.json +++ b/Gems/Atom/RPI/gem.json @@ -2,9 +2,13 @@ "gem_name": "Atom_RPI", "display_name": "Atom API", "summary": "", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", "canonical_tags": [ "Gem" ], "user_tags": [ - ] + ], + "requirements": "" } diff --git a/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/Viewport/RenderViewportWidget.h b/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/Viewport/RenderViewportWidget.h index c649031280..10dcc6c5c9 100644 --- a/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/Viewport/RenderViewportWidget.h +++ b/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/Viewport/RenderViewportWidget.h @@ -113,6 +113,7 @@ namespace AtomToolsFramework void SetFullScreenState(bool fullScreenState) override; bool CanToggleFullScreenState() const override; void ToggleFullScreenState() override; + float GetDpiScaleFactor() const override; protected: // AzFramework::InputChannelEventListener ... diff --git a/Gems/Atom/Tools/AtomToolsFramework/Code/Source/Viewport/RenderViewportWidget.cpp b/Gems/Atom/Tools/AtomToolsFramework/Code/Source/Viewport/RenderViewportWidget.cpp index 529652e1a9..b12996442a 100644 --- a/Gems/Atom/Tools/AtomToolsFramework/Code/Source/Viewport/RenderViewportWidget.cpp +++ b/Gems/Atom/Tools/AtomToolsFramework/Code/Source/Viewport/RenderViewportWidget.cpp @@ -540,4 +540,9 @@ namespace AtomToolsFramework { // The RenderViewportWidget does not currently support full screen. } + + float RenderViewportWidget::GetDpiScaleFactor() const + { + return aznumeric_cast(devicePixelRatioF()); + } } //namespace AtomToolsFramework diff --git a/Gems/Atom/Tools/AtomToolsFramework/gem.json b/Gems/Atom/Tools/AtomToolsFramework/gem.json index 3060d3f51a..5cea71c5cc 100644 --- a/Gems/Atom/Tools/AtomToolsFramework/gem.json +++ b/Gems/Atom/Tools/AtomToolsFramework/gem.json @@ -1,10 +1,14 @@ { "gem_name": "AtomToolsFramework", "display_name": "Atom Tools Framework", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", "summary": "", "canonical_tags": [ "Gem" ], "user_tags": [ - ] + ], + "requirements": "" } diff --git a/Gems/Atom/Tools/MaterialEditor/gem.json b/Gems/Atom/Tools/MaterialEditor/gem.json index 5113effc0a..83d9909a84 100644 --- a/Gems/Atom/Tools/MaterialEditor/gem.json +++ b/Gems/Atom/Tools/MaterialEditor/gem.json @@ -1,10 +1,14 @@ { "gem_name": "MaterialEditor", "display_name": "Atom Material Editor", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Tool", "summary": "Editor for creating, modifying, and previewing materials", "canonical_tags": [ "Gem" ], "user_tags": [ - ] + ], + "requirements": "" } diff --git a/Gems/Atom/gem.json b/Gems/Atom/gem.json index 91bc9bcf53..c2aa033bf7 100644 --- a/Gems/Atom/gem.json +++ b/Gems/Atom/gem.json @@ -1,5 +1,12 @@ { "gem_name": "Atom", - "display_name": "Atom", - "summary": "Next-Gen Rendering Package for the O3DE engine" + "display_name": "Atom Renderer", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Atom Renderer Gem provides Atom Renderer and its associated tools (such as Material Editor), utilites, libraries, and interfaces.", + "canonical_tags": ["Gem"], + "user_tags": ["Rendering", "Core"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/AtomContent/ReferenceMaterials/gem.json b/Gems/AtomContent/ReferenceMaterials/gem.json index baa89f2a4a..cb1d6f7a2e 100644 --- a/Gems/AtomContent/ReferenceMaterials/gem.json +++ b/Gems/AtomContent/ReferenceMaterials/gem.json @@ -1,12 +1,12 @@ { "gem_name": "ReferenceMaterials", - "GemFormatVersion": 3, - "Uuid": "99eac95298d847a6914d7b9e69db6f84", - "Name": "ReferenceMaterials", - "DisplayName": "ReferenceMaterials", - "Version": "0.1.0", - "LinkType": "NoCode", - "Summary": "Atom Asset Gem with a library of reference materials for StandardPBR (and others in the future)", - "Tags": ["Asset"], - "IconPath": "preview.png" + "display_name": "ReferenceMaterials", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Asset", + "summary": "Atom Asset Gem with a library of reference materials for StandardPBR (and others in the future)", + "canonical_tags": ["Gem"], + "user_tags": ["Assets"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/AtomContent/Sponza/gem.json b/Gems/AtomContent/Sponza/gem.json index 0bf54d8e36..ef054ce55a 100644 --- a/Gems/AtomContent/Sponza/gem.json +++ b/Gems/AtomContent/Sponza/gem.json @@ -1,12 +1,12 @@ { "gem_name": "Sponza", - "GemFormatVersion": 3, - "Uuid": "860d8ef2aec5425ab197adc4484c09f1", - "Name": "Sponza", - "DisplayName": "Sponza", - "Version": "0.1.0", - "LinkType": "NoCode", - "Summary": "A standard test scene for Global Illumination (forked from crytek sponza scene)", - "Tags": ["Asset"], - "IconPath": "preview.png" + "display_name": "Sponza", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Asset", + "summary": "A standard test scene for Global Illumination (forked from crytek sponza scene)", + "canonical_tags": ["Gem"], + "user_tags": ["Assets"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/AtomContent/gem.json b/Gems/AtomContent/gem.json index b043cbbaca..b1bc35b77b 100644 --- a/Gems/AtomContent/gem.json +++ b/Gems/AtomContent/gem.json @@ -1,14 +1,12 @@ { "gem_name": "AtomContent", - "origin": "The primary repo for Atom goes here: i.e. http://www.mydomain.com", - "license": "What license Atom uses goes here: i.e. https://opensource.org/licenses/MIT", "display_name": "Atom Content", - "summary": "ontains multiple packages containing source Assets that can be used with Atom", - "canonical_tags": [ - "Gem" - ], - "user_tags": [ - "AtomContent" - ], - "icon_path": "preview.png" + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Asset", + "summary": "The Atom Content Gem provides assets for Atom Renderer and a modified version of the Pixar Look Development Studio (https://renderman.pixar.com/look-development-studio).", + "canonical_tags": ["Gem"], + "user_tags": ["Rendering", "Assets", "Tools"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/AtomLyIntegration/AtomBridge/gem.json b/Gems/AtomLyIntegration/AtomBridge/gem.json index 329741bb8e..49a56d2201 100644 --- a/Gems/AtomLyIntegration/AtomBridge/gem.json +++ b/Gems/AtomLyIntegration/AtomBridge/gem.json @@ -1,10 +1,14 @@ { "gem_name": "Atom_AtomBridge", "display_name": "Atom Bridge", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", "summary": "", "canonical_tags": [ "Gem" ], "user_tags": [ - ] + ], + "requirements": "" } diff --git a/Gems/AtomLyIntegration/AtomFont/gem.json b/Gems/AtomLyIntegration/AtomFont/gem.json index a609061ea3..7e1a71db86 100644 --- a/Gems/AtomLyIntegration/AtomFont/gem.json +++ b/Gems/AtomLyIntegration/AtomFont/gem.json @@ -1,10 +1,14 @@ { "gem_name": "AtomFont", "display_name": "Atom Font", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", "summary": "", "canonical_tags": [ "Gem" ], "user_tags": [ - ] + ], + "requirements": "" } diff --git a/Gems/AtomLyIntegration/AtomImGuiTools/gem.json b/Gems/AtomLyIntegration/AtomImGuiTools/gem.json index 5cee62f7bb..ff20d5a19f 100644 --- a/Gems/AtomLyIntegration/AtomImGuiTools/gem.json +++ b/Gems/AtomLyIntegration/AtomImGuiTools/gem.json @@ -1,10 +1,16 @@ { "gem_name": "AtomImGuiTools", "display_name": "Atom ImGui", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Tool", "summary": "", "canonical_tags": [ "Gem" ], "user_tags": [ - ] + "Debug", + "Rendering" + ], + "requirements": "" } diff --git a/Gems/AtomLyIntegration/AtomViewportDisplayIcons/gem.json b/Gems/AtomLyIntegration/AtomViewportDisplayIcons/gem.json index 41f69e33a0..52dbb219d3 100644 --- a/Gems/AtomLyIntegration/AtomViewportDisplayIcons/gem.json +++ b/Gems/AtomLyIntegration/AtomViewportDisplayIcons/gem.json @@ -1,10 +1,14 @@ { "gem_name": "AtomViewportDisplayIcons", "display_name": "Atom Viewport Display Icons", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", "summary": "", "canonical_tags": [ "Gem" ], "user_tags": [ - ] + ], + "requirements": "" } diff --git a/Gems/AtomLyIntegration/AtomViewportDisplayInfo/Code/Source/AtomViewportDisplayInfoSystemComponent.cpp b/Gems/AtomLyIntegration/AtomViewportDisplayInfo/Code/Source/AtomViewportDisplayInfoSystemComponent.cpp index 5b14fbebb9..af9fd7fdd8 100644 --- a/Gems/AtomLyIntegration/AtomViewportDisplayInfo/Code/Source/AtomViewportDisplayInfoSystemComponent.cpp +++ b/Gems/AtomLyIntegration/AtomViewportDisplayInfo/Code/Source/AtomViewportDisplayInfoSystemComponent.cpp @@ -155,9 +155,9 @@ namespace AZ::Render m_drawParams.m_drawViewportId = viewportContext->GetId(); auto viewportSize = viewportContext->GetViewportSize(); - m_drawParams.m_position = AZ::Vector3(viewportSize.m_width, 0.0f, 1.0f) + AZ::Vector3(r_topRightBorderPadding); + m_drawParams.m_position = AZ::Vector3(viewportSize.m_width, 0.0f, 1.0f) + AZ::Vector3(r_topRightBorderPadding) * viewportContext->GetDpiScalingFactor(); m_drawParams.m_color = AZ::Colors::White; - m_drawParams.m_scale = AZ::Vector2(0.7f); + m_drawParams.m_scale = AZ::Vector2(BaseFontSize * viewportContext->GetDpiScalingFactor()); m_drawParams.m_hAlign = AzFramework::TextHorizontalAlignment::Right; m_drawParams.m_monospace = false; m_drawParams.m_depthTest = false; diff --git a/Gems/AtomLyIntegration/AtomViewportDisplayInfo/Code/Source/AtomViewportDisplayInfoSystemComponent.h b/Gems/AtomLyIntegration/AtomViewportDisplayInfo/Code/Source/AtomViewportDisplayInfoSystemComponent.h index 13f42dd638..cec6cd958c 100644 --- a/Gems/AtomLyIntegration/AtomViewportDisplayInfo/Code/Source/AtomViewportDisplayInfoSystemComponent.h +++ b/Gems/AtomLyIntegration/AtomViewportDisplayInfo/Code/Source/AtomViewportDisplayInfoSystemComponent.h @@ -60,6 +60,8 @@ namespace AZ void DrawPassInfo(); void DrawFramerate(); + static constexpr float BaseFontSize = 0.7f; + AZStd::string m_rendererDescription; AzFramework::TextDrawParameters m_drawParams; AzFramework::FontDrawInterface* m_fontDrawInterface = nullptr; diff --git a/Gems/AtomLyIntegration/AtomViewportDisplayInfo/gem.json b/Gems/AtomLyIntegration/AtomViewportDisplayInfo/gem.json index 04e2464a26..f277d6cf82 100644 --- a/Gems/AtomLyIntegration/AtomViewportDisplayInfo/gem.json +++ b/Gems/AtomLyIntegration/AtomViewportDisplayInfo/gem.json @@ -1,10 +1,14 @@ { "gem_name": "AtomViewportDisplayInfo", "display_name": "Atom Viewport Display Info", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", "summary": "", "canonical_tags": [ "Gem" ], "user_tags": [ - ] + ], + "requirements": "" } diff --git a/Gems/AtomLyIntegration/CommonFeatures/gem.json b/Gems/AtomLyIntegration/CommonFeatures/gem.json index 306c61e6d7..8eceb50932 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/gem.json +++ b/Gems/AtomLyIntegration/CommonFeatures/gem.json @@ -1,10 +1,14 @@ { "gem_name": "CommonFeaturesAtom", "display_name": "Common Features Atom", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", "summary": "", "canonical_tags": [ "Gem" ], "user_tags": [ - ] + ], + "requirements": "" } diff --git a/Gems/AtomLyIntegration/EMotionFXAtom/gem.json b/Gems/AtomLyIntegration/EMotionFXAtom/gem.json index e2a81d0a5e..a7c3e96d2b 100644 --- a/Gems/AtomLyIntegration/EMotionFXAtom/gem.json +++ b/Gems/AtomLyIntegration/EMotionFXAtom/gem.json @@ -1,10 +1,14 @@ { "gem_name": "EMotionFX_Atom", "display_name": "EMotionFX Atom", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", "summary": "", "canonical_tags": [ "Gem" ], "user_tags": [ - ] + ], + "requirements": "" } diff --git a/Gems/AtomLyIntegration/ImguiAtom/Code/Source/ImguiAtomSystemComponent.cpp b/Gems/AtomLyIntegration/ImguiAtom/Code/Source/ImguiAtomSystemComponent.cpp index fd41ff45a5..843f30fced 100644 --- a/Gems/AtomLyIntegration/ImguiAtom/Code/Source/ImguiAtomSystemComponent.cpp +++ b/Gems/AtomLyIntegration/ImguiAtom/Code/Source/ImguiAtomSystemComponent.cpp @@ -50,7 +50,8 @@ namespace AZ { ImGui::OtherActiveImGuiRequestBus::Handler::BusConnect(); - auto atomViewportRequests = AZ::Interface::Get(); + auto atomViewportRequests = AZ::RPI::ViewportContextRequests::Get(); + AZ_Assert(atomViewportRequests, "AtomViewportContextRequests interface not found!"); const AZ::Name contextName = atomViewportRequests->GetDefaultViewportContextName(); AZ::RPI::ViewportContextNotificationBus::Handler::BusConnect(contextName); @@ -105,10 +106,20 @@ namespace AZ // Let our ImguiAtomSystemComponent know once we successfully connect and update the viewport size. if (!m_initialized) { + auto atomViewportRequests = AZ::RPI::ViewportContextRequests::Get(); + auto defaultViewportContext = atomViewportRequests->GetDefaultViewportContext(); + OnViewportDpiScalingChanged(defaultViewportContext->GetDpiScalingFactor()); m_initialized = true; } }); -#endif +#endif //define(IMGUI_ENABLED) + } + + void ImguiAtomSystemComponent::OnViewportDpiScalingChanged(float dpiScale) + { +#if defined(IMGUI_ENABLED) + ImGui::ImGuiManagerBus::Broadcast(&ImGui::ImGuiManagerBus::Events::SetDpiScalingFactor, dpiScale); +#endif //define(IMGUI_ENABLED) } } } diff --git a/Gems/AtomLyIntegration/ImguiAtom/Code/Source/ImguiAtomSystemComponent.h b/Gems/AtomLyIntegration/ImguiAtom/Code/Source/ImguiAtomSystemComponent.h index e487c9a39a..a0ff1a5dd9 100644 --- a/Gems/AtomLyIntegration/ImguiAtom/Code/Source/ImguiAtomSystemComponent.h +++ b/Gems/AtomLyIntegration/ImguiAtom/Code/Source/ImguiAtomSystemComponent.h @@ -51,6 +51,7 @@ namespace AZ // ViewportContextNotificationBus overrides... void OnRenderTick() override; void OnViewportSizeChanged(AzFramework::WindowSize size) override; + void OnViewportDpiScalingChanged(float dpiScale) override; DebugConsole m_debugConsole; bool m_initialized = false; diff --git a/Gems/AtomLyIntegration/ImguiAtom/gem.json b/Gems/AtomLyIntegration/ImguiAtom/gem.json index 6d6551b5fa..918414f053 100644 --- a/Gems/AtomLyIntegration/ImguiAtom/gem.json +++ b/Gems/AtomLyIntegration/ImguiAtom/gem.json @@ -1,10 +1,14 @@ { "gem_name": "ImguiAtom", "display_name": "Imgui Atom", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", "summary": "", "canonical_tags": [ "Gem" ], "user_tags": [ - ] + ], + "requirements": "" } diff --git a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/gem.json b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/gem.json index a867fe0f0f..f978d777cf 100644 --- a/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/gem.json +++ b/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface/gem.json @@ -2,6 +2,9 @@ "gem_name": "DccScriptingInterface", "display_name": "Atom DccScriptingInterface (DCCsi)", "summary": "A python framework for working with various DCC tools and workflows.", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", "canonical_tags": [ "Gem" ], @@ -10,5 +13,6 @@ "Digital", "Content", "Creation" - ] + ], + "requirements": "" } diff --git a/Gems/AtomLyIntegration/gem.json b/Gems/AtomLyIntegration/gem.json index 4f587a8806..72be2f9151 100644 --- a/Gems/AtomLyIntegration/gem.json +++ b/Gems/AtomLyIntegration/gem.json @@ -1,5 +1,12 @@ { "gem_name": "AtomLyIntegration", "display_name": "Atom O3DE Integration", - "summary": "Collection of module targets for integrating Atom with the O3DE engine" + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Atom O3DE Integration Gem provides components, libraries, and functionality to support and integrate Atom Renderer in Open 3D Engine.", + "canonical_tags": ["Gem"], + "user_tags": ["Rendering", "Core", "Utility"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/AtomTressFX/gem.json b/Gems/AtomTressFX/gem.json index 056ead5ec1..0099906dd1 100644 --- a/Gems/AtomTressFX/gem.json +++ b/Gems/AtomTressFX/gem.json @@ -1,13 +1,12 @@ { "gem_name": "AtomTressFX", - "GemFormatVersion": 3, - "Uuid": "d4a3e3d6b9b14e12982c774f35f48a7c", - "Name": "AtomTressFX", - "DisplayName": "AtomTressFX [PREVIEW]", - "Version": "0.1.0", - "LinkType": "Dynamic", - "Summary": "The AtomTressFX is a cutting edge hair technology based on TressFX 4.1 SDK from AMD. It was altered to integrate into Atom harnessing Atom's design and pipeline.", - "Tags": ["Hair", "TressFX"], - "IconPath": "preview.png", - "EditorModule": true + "display_name": "Atom TressFX", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Atom TressFX Gem provides realistic hair and fur simulation and rendering in Atom and Open 3D Engine with AMD TressFX.", + "canonical_tags": ["Gem"], + "user_tags": ["Rendering", "Physics", "Animation"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/AudioEngineWwise/gem.json b/Gems/AudioEngineWwise/gem.json index 5608641434..8c6b5767b0 100644 --- a/Gems/AudioEngineWwise/gem.json +++ b/Gems/AudioEngineWwise/gem.json @@ -1,28 +1,12 @@ { "gem_name": "AudioEngineWwise", - "GemFormatVersion": 4, - "Uuid": "67a80e2ac865406c990f2715feb55f7f", - "Name": "AudioEngineWwise", - "DisplayName": "Wwise Audio Integration", - "Version": "0.1.0", - "Summary": "Wwise engine integration and plugin to Audio Controls Editor.", - "Tags": ["Audio", "Sound", "Wwise"], - "IconPath": "preview.png", - "Modules": [ - { - "Type": "GameModule" - }, - { - "Name": "Editor", - "Type": "EditorModule", - "Extends": "GameModule" - } - ], - "Dependencies": [ - { - "Uuid": "6f63f2b6d07f4b89b4b7c86ebee7feb8", - "VersionConstraints": [">=0.1.0"], - "_comment": "AudioSystem" - } - ] + "display_name": "Wwise Audio Engine", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Wwise Audio Engine Gem provides support for Audiokinetic Wave Works Interactive Sound Engine (Wwise).", + "canonical_tags": ["Gem"], + "user_tags": ["Audio", "Utiltity", "Tools"], + "icon_path": "preview.png", + "requirements": "Users will need to download WWise from the AudioKinetic web site: https://www.audiokinetic.com/download/" } diff --git a/Gems/AudioSystem/gem.json b/Gems/AudioSystem/gem.json index fc43c37419..a1dbe9406f 100644 --- a/Gems/AudioSystem/gem.json +++ b/Gems/AudioSystem/gem.json @@ -1,21 +1,12 @@ { "gem_name": "AudioSystem", - "GemFormatVersion": 4, - "Uuid": "6f63f2b6d07f4b89b4b7c86ebee7feb8", - "Name": "AudioSystem", - "DisplayName": "Audio System", - "Version": "0.1.0", - "Summary": "Contains CrySoundSystem, the Audio Translation Layer (ATL), and the Audio Controls Editor", - "Tags": ["Audio", "Sound"], - "IconPath": "preview.png", - "Modules": [ - { - "Type": "GameModule" - }, - { - "Name": "Editor", - "Type": "EditorModule", - "Extends": "GameModule" - } - ] + "display_name": "Audio System", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Audio System Gem provides the Audio Translation Layer (ATL) and Audio Controls Editor, which add support for audio in Open 3D Engine.", + "canonical_tags": ["Gem"], + "user_tags": ["Audio", "Utiltity", "Tools"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/AutomatedLauncherTesting/gem.json b/Gems/AutomatedLauncherTesting/gem.json index 80abdc1cf0..c7ecd02739 100644 --- a/Gems/AutomatedLauncherTesting/gem.json +++ b/Gems/AutomatedLauncherTesting/gem.json @@ -1,16 +1,12 @@ { "gem_name": "AutomatedLauncherTesting", - "GemFormatVersion": 4, - "Uuid": "69504dac61f84a11bf895b8f05e4227f", - "Name": "AutomatedLauncherTesting", - "DisplayName": "Automated Launcher Testing", - "Version": "0.1.0", - "Summary": "This GEM is used to manage running of Automated Launcher Tests", - "Tags": ["Untagged"], - "IconPath": "preview.png", - "Modules": [ - { - "Type": "GameModule" - } - ] + "display_name": "Automated Launcher Testing", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Automated Launcher Testing Gem manages automated Open 3D Engine (O3DE) launcher tests.", + "canonical_tags": ["Gem"], + "user_tags": ["Debug", "Tools"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/Blast/gem.json b/Gems/Blast/gem.json index 0ba5aab8b1..a4eb9d6b31 100644 --- a/Gems/Blast/gem.json +++ b/Gems/Blast/gem.json @@ -1,37 +1,12 @@ { "gem_name": "Blast", - "GemFormatVersion": 4, - "Uuid": "414bd211c99d4f74aef3a266b9ca208c", - "Name": "Blast", - "DisplayName": "NVIDIA Blast [Experimental]", - "Version": "0.1.0", - "Summary": "Enables support for NVIDIA Blast objects in Lumberyard for high-fidelity destruction.", - "Tags": [ "Physics" ], - "IconPath": "preview.png", - "Modules": [ - { - "Type": "GameModule" - }, - { - "Name": "Editor", - "Type": "EditorModule", - "Extends": "GameModule" - } - ], - "Dependencies": [ - { - "Uuid": "ff06785f7145416b9d46fde39098cb0c", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "LmbrCentral" - }, - { - "Uuid": "4e08125824434932a0fe3717259caa47", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "PhysX" - } - ] + "display_name": "NVIDIA Blast", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The NVIDIA Blast Gem provides tools to author fractured mesh assets in Houdini, and functionality to create realistic destruction simulations in Open 3D Engine.", + "canonical_tags": ["Gem"], + "user_tags": ["Physics", "Simulation", "Animation"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/Camera/gem.json b/Gems/Camera/gem.json index 2d7e7370f5..f59bb8cc0d 100644 --- a/Gems/Camera/gem.json +++ b/Gems/Camera/gem.json @@ -1,21 +1,12 @@ { "gem_name": "Camera", - "GemFormatVersion": 4, - "Uuid": "f910686b6725452fbfc4671f95f733c6", - "Name": "Camera", - "Version": "0.1.0", - "DisplayName": "Camera", - "Tags": ["Camera"], - "Summary": "The Camera Gem includes a basic camera component that defines a frustum for runtime rendering.", - "IconPath": "preview.png", - "Modules": [ - { - "Type": "GameModule" - }, - { - "Name": "Editor", - "Type": "EditorModule", - "Extends": "GameModule" - } - ] + "display_name": "Camera", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Camera Gem provides a basic camera component that defines a frustum for runtime rendering.", + "canonical_tags": ["Gem"], + "user_tags": ["Rendering", "Utility"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/CameraFramework/gem.json b/Gems/CameraFramework/gem.json index 6a05537acf..6a6cbaf1f0 100644 --- a/Gems/CameraFramework/gem.json +++ b/Gems/CameraFramework/gem.json @@ -1,21 +1,12 @@ { "gem_name": "CameraFramework", - "Dependencies": [ - { - "Uuid": "f910686b6725452fbfc4671f95f733c6", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "Camera" - } - ], - "GemFormatVersion": 3, - "Uuid": "54f2763fe191432fa681ce4a354eedf5", - "Name": "CameraFramework", - "Version": "0.1.0", - "LinkType": "Dynamic", - "DisplayName": "Camera Framework [PREVIEW]", - "Tags": ["Camera", "Framework"], - "Summary": "The Camera Framework Gem includes the camera rig component which drives an entity through camera behaviors. Behaviors are provided in the Starting Point Camera Gem.", - "IconPath": "preview.png" + "display_name": "Camera Framework", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Camera Framework Gem provides a base for implementing more complex camera systems.", + "canonical_tags": ["Gem"], + "user_tags": ["Rendering", "Framework", "Utility"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/CertificateManager/gem.json b/Gems/CertificateManager/gem.json index c77afa4211..38005a7cd1 100644 --- a/Gems/CertificateManager/gem.json +++ b/Gems/CertificateManager/gem.json @@ -1,12 +1,12 @@ { "gem_name": "CertificateManager", - "GemFormatVersion": 3, - "Uuid": "659CFFFF33B14A10835BAFC6EA623F98", - "Name": "CertificateManager", - "DisplayName": "Amazon Certificate Manager", - "Version": "0.0.1", - "LinkType": "Dynamic", - "Summary": "The Amazon Certificate Manager Gem provides access to authentication files for secure game connections from S3, files on disk, and other 3rd party sources", - "Tags": ["Amazon Certificate Manager","Security","Multiplayer","Networking"], - "IconPath": "preview.png" + "display_name": "Certificate Manager", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Certificate Manager Gem provides access to authentication files for secure game connections from Amazon S3, files on disk, and other 3rd party sources.", + "canonical_tags": ["Gem"], + "user_tags": ["Network", "Framework"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/CrashReporting/gem.json b/Gems/CrashReporting/gem.json index 12297936ab..e1e06f0ac1 100644 --- a/Gems/CrashReporting/gem.json +++ b/Gems/CrashReporting/gem.json @@ -1,21 +1,12 @@ { "gem_name": "CrashReporting", - "GemFormatVersion": 4, - "Uuid": "089562a2cbbd41749b359f85fa04f1c9", - "Name": "CrashReporting", - "DisplayName": "CrashReporting", - "Version": "0.1.0", - "Summary": "Enable external crash reporting for a game project", - "Tags": ["Untagged"], - "IconPath": "preview.png", - "Modules": [ - { - "Type": "StaticLib", - "Name": "StaticLibrary" - }, - { - "Type": "Standalone", - "Name": "Uploader" - } - ] + "display_name": "Crash Reporting", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Crash Reporting Gem provides support for external crash reporting for Open 3D Engine projects.", + "canonical_tags": ["Gem"], + "user_tags": ["Debug", "Framework"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/CustomAssetExample/gem.json b/Gems/CustomAssetExample/gem.json index 47de0bc966..62bdcb1ff6 100644 --- a/Gems/CustomAssetExample/gem.json +++ b/Gems/CustomAssetExample/gem.json @@ -1,19 +1,12 @@ { "gem_name": "CustomAssetExample", - "GemFormatVersion": 3, - "Uuid": "ad082dd50c6545849729e9afeaaeaa1d", - "Name": "CustomAssetExample", - "DisplayName": "CustomAssetExample", - "Version": "0.1.0", - "Summary": "Contians example code for creating a custom asset in Lumberyard's asset pipeline", - "Tags": ["Assets, Example"], - "LinkType": "Dynamic", - "IconPath": "preview.png", - "EditorModule": true, - "Modules": [ - { - "Name": "Editor", - "Type": "EditorModule" - } - ] + "display_name": "Custom Asset Example", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Custom Asset Example Gem provides example code for creating a custom asset for Open 3D Engine's asset pipeline.", + "canonical_tags": ["Gem"], + "user_tags": ["Assets", "Tools"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/DebugDraw/gem.json b/Gems/DebugDraw/gem.json index 375483642e..0dd2e179f3 100644 --- a/Gems/DebugDraw/gem.json +++ b/Gems/DebugDraw/gem.json @@ -1,13 +1,12 @@ { "gem_name": "DebugDraw", - "GemFormatVersion": 3, - "Uuid": "66239f50bf754354b514c850c8b841fb", - "Name": "DebugDraw", - "DisplayName": "DebugDraw [PREVIEW]", - "Version": "0.1.0", - "LinkType": "Dynamic", - "Summary": "The DebugDraw Gem provides editor and game runtime debug visualization features.", - "Tags": ["Debugging"], - "IconPath": "preview.png", - "EditorModule": true + "display_name": "Debug Draw", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Debug Draw Gem provides Editor and runtime debug visualization features for Open 3D Engine.", + "canonical_tags": ["Gem"], + "user_tags": ["Debug", "Tools", "Utility"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/DevTextures/gem.json b/Gems/DevTextures/gem.json index a379bb8ad7..7a27d7c776 100644 --- a/Gems/DevTextures/gem.json +++ b/Gems/DevTextures/gem.json @@ -1,12 +1,12 @@ { "gem_name": "DevTextures", - "GemFormatVersion": 3, - "Uuid": "2c227161447b4d77a5b07c093e214fe3", - "Name": "DevTextures", - "DisplayName": "DevTextures", - "Version": "0.1.0", - "LinkType": "NoCode", - "Summary": "Collection of general purpose textures useful for prototypes and preproduction. ", - "Tags": ["Asset"], - "IconPath": "preview.png" + "display_name": "Dev Textures", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Asset", + "summary": "The Dev Textures Gem provides a collection of general purpose texture assets useful for prototypes and preproduction.", + "canonical_tags": ["Gem"], + "user_tags": ["Assets", "Debug", "Utility"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/EMotionFX/Code/EMotionFX/Pipeline/SceneAPIExt/Rules/MotionMetaDataRule.h b/Gems/EMotionFX/Code/EMotionFX/Pipeline/SceneAPIExt/Rules/MotionMetaDataRule.h index 873dccef72..e2f530a887 100644 --- a/Gems/EMotionFX/Code/EMotionFX/Pipeline/SceneAPIExt/Rules/MotionMetaDataRule.h +++ b/Gems/EMotionFX/Code/EMotionFX/Pipeline/SceneAPIExt/Rules/MotionMetaDataRule.h @@ -37,7 +37,7 @@ namespace EMotionFX::Pipeline::Rule AZStd::unique_ptr m_motionEventTable; }; - class MotionMetaDataRule + class MotionMetaDataRule final : public ExternalToolRule> { public: @@ -46,7 +46,7 @@ namespace EMotionFX::Pipeline::Rule MotionMetaDataRule(); MotionMetaDataRule(const AZStd::shared_ptr& data); - ~MotionMetaDataRule() final = default; + ~MotionMetaDataRule() = default; const AZStd::shared_ptr& GetData() const override { return m_data; } void SetData(const AZStd::shared_ptr& data) override { m_data = data; } diff --git a/Gems/EMotionFX/gem.json b/Gems/EMotionFX/gem.json index f116a6a2c0..74a060ed52 100644 --- a/Gems/EMotionFX/gem.json +++ b/Gems/EMotionFX/gem.json @@ -1,23 +1,12 @@ { "gem_name": "EMotionFX", - "Dependencies": [ - { - "Uuid": "ff06785f7145416b9d46fde39098cb0c", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "LmbrCentral" - } - ], - "GemFormatVersion": 3, - "Uuid": "044a63ea67d04479aa5daf62ded9d9ca", - "Name": "EMotionFX", - "DisplayName": "EMotion FX Animation", - "Version": "0.1.0", - "LinkType": "Dynamic", - "Summary": "EMotion FX is a character animation system used to set up animated controllable characters inside your project.\n", - "Tags": ["Animation"], - "IconPath": "EMotionFX.png", - "EditorModule" : true, - "DisableGemAutoUselib": true + "display_name": "EMotion FX Animation", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The EMotion FX Animation Gem provides Open 3D Engine's animation system for rigged actors and includes Animation Editor, a tool for creating animated behaviors, simulated objects, and colliders for rigged actors.", + "canonical_tags": ["Gem"], + "user_tags": ["Animation", "Tools", "Simulation"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/EditorPythonBindings/gem.json b/Gems/EditorPythonBindings/gem.json index 41d65cea43..a8ae59b22e 100644 --- a/Gems/EditorPythonBindings/gem.json +++ b/Gems/EditorPythonBindings/gem.json @@ -1,17 +1,12 @@ { - "gem_name": "EditorPythonBindings", - "GemFormatVersion": 4, - "Uuid": "b658359393884c4381c2fe2952b1472a", - "Name": "EditorPythonBindings", - "DisplayName": "EditorPythonBindings", - "Version": "0.1.0", - "Summary": "A gem to bind Editor commands via Python scripts.", - "Tags": ["Editor", "Assets", "Asset Pipeline", "Python"], - "IconPath": "preview.png", - "Modules": [ - { - "Name": "Editor", - "Type": "EditorModule" - } - ] + "gem_name": "EditorPythonBindings", + "display_name": "Editor Python Bindings", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Tool", + "summary": "The Editor Python Bindings Gem provides Python commands for Open 3D Engine Editor functions.", + "canonical_tags": ["Gem"], + "user_tags": ["Scripting", "Utility"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/ExpressionEvaluation/gem.json b/Gems/ExpressionEvaluation/gem.json index f85311a68c..9302af152a 100644 --- a/Gems/ExpressionEvaluation/gem.json +++ b/Gems/ExpressionEvaluation/gem.json @@ -1,16 +1,12 @@ { "gem_name": "ExpressionEvaluation", - "GemFormatVersion": 4, - "Uuid": "4c6f9df57ca2468f93c8d860ee6a1167", - "Name": "ExpressionEvaluation", - "DisplayName": "Expression Evaluation", - "Version": "0.1.0", - "Summary": "Provides a method for parsing and executing various string expressions(e.g. 1+1 or 2>3).", - "Tags": ["Untagged"], - "IconPath": "preview.png", - "Modules": [ - { - "Type": "GameModule" - } - ] + "display_name": "Expression Evaluation", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Expression Evaluation Gem provides a method for parsing and executing string expressions in Open 3D Engine.", + "canonical_tags": ["Gem"], + "user_tags": ["Scripting", "Utiltity"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/FastNoise/gem.json b/Gems/FastNoise/gem.json index 4d4da11ee1..f49db2aa02 100644 --- a/Gems/FastNoise/gem.json +++ b/Gems/FastNoise/gem.json @@ -1,37 +1,12 @@ { "gem_name": "FastNoise", - "GemFormatVersion": 4, - "Uuid": "c5f23032407f49ca8d8de1733423565c", - "Name": "FastNoise", - "DisplayName": "Fast Noise Gradient [PREVIEW]", - "Version": "0.1.0", - "Summary": "A Lumberyard Gem that provides a Gradient Signal component for FastNoise. FastNoise is a realtime noise generation library with a large collection of different noise algorithms.", - "Tags": ["Gradient"], - "IconPath": "preview.png", - "Modules": [ - { - "Type": "GameModule" - }, - { - "Name": "Editor", - "Type": "EditorModule", - "Extends": "GameModule" - } - ], - "Dependencies": [ - { - "Uuid": "8825563d9d964ec3be3bab681f3bd9f2", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "GradientSignal" - }, - { - "Uuid": "5de82d29d6094bfe97c1a4d35fcd5fbe", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "SurfaceData" - } - ] + "display_name": "Fast Noise", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The FastNoise Gradient Gem uses the third-party, open source FastNoise library to provide a variety of high-performance noise generation algorithms.", + "canonical_tags": ["Gem"], + "user_tags": ["Utility", "Tools", "Design"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/GameState/gem.json b/Gems/GameState/gem.json index e9b79f64ae..fe9569eb75 100644 --- a/Gems/GameState/gem.json +++ b/Gems/GameState/gem.json @@ -1,16 +1,12 @@ { "gem_name": "GameState", - "GemFormatVersion": 4, - "Uuid": "1a557ac19dc34f5697fe03f30be5b6e4", - "Name": "GameState", - "DisplayName": "GameState", - "Version": "0.1.0", - "Summary": "Provides a generic framework for managing game states and the transitions between them. Some sample game states are provided in the GameStateSamples Gem.", - "Tags": ["Game State"], - "IconPath": "preview.png", - "Modules": [ - { - "Type": "GameModule" - } - ] + "display_name": "Game State", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Game State Gem provides a generic framework to determine and manage game states and game state transitions in Open 3D Engine.", + "canonical_tags": ["Gem"], + "user_tags": ["Gameplay", "Framework", "Scripting"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/GameStateSamples/gem.json b/Gems/GameStateSamples/gem.json index 992ca59237..ce0fcbd868 100644 --- a/Gems/GameStateSamples/gem.json +++ b/Gems/GameStateSamples/gem.json @@ -1,49 +1,12 @@ { "gem_name": "GameStateSamples", - "Dependencies": - [ - { - "Uuid" : "1a557ac19dc34f5697fe03f30be5b6e4", - "VersionConstraints" : [">=0.1.0"], - "_comment" : "GameState" - }, - { - "Uuid" : "ff06785f7145416b9d46fde39098cb0c", - "VersionConstraints" : [">=0.1.0"], - "_comment" : "LmbrCentral" - }, - { - "Uuid" : "93ccb44a96b142f7942a3fb6b9ca36e1", - "VersionConstraints" : [">=0.1.0"], - "_comment" : "LocalUser" - }, - { - "Uuid" : "c7935ecf5e8047fe8ca947b34b11cadb", - "VersionConstraints" : [">=0.1.0"], - "_comment" : "LyShineExamples" - }, - { - "Uuid" : "89225422672547deaca9e7a22b883973", - "VersionConstraints" : [">=0.1.0"], - "_comment" : "MessagePopup" - }, - { - "Uuid" : "d96ab03f53d14c9e83f9b4528c8576d7", - "VersionConstraints" : [">=0.1.0"], - "_comment" : "SaveData" - } - ], - "GemFormatVersion": 4, - "Uuid": "76db0b1bcff84224a92cbceb373f4a85", - "Name": "GameStateSamples", - "DisplayName": "GameStateSamples", - "Version": "0.1.0", - "Summary": "Provides a set of sample game states (built on top of the generic GameState Gem), including primary user selection, main menu, level loading, level running, and level paused.", - "Tags": ["Game State", "Main Menu", "Level Loading", "Pause Menu", "Primary User", "Local Multiplayer", "Local Co-op", "Split Screen"], - "IconPath": "preview.png", - "Modules": [ - { - "Type": "GameModule" - } - ] + "display_name": "Game State Samples", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Game State Samples Gem provides a set of sample game states (built on top of the Game State Gem), including primary user selection, main menu, level loading, level running, and level paused.", + "canonical_tags": ["Gem"], + "user_tags": ["Gameplay", "Samples", "Assets"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/Gestures/gem.json b/Gems/Gestures/gem.json index efd3fa65b2..4c2f5fe67a 100644 --- a/Gems/Gestures/gem.json +++ b/Gems/Gestures/gem.json @@ -1,11 +1,12 @@ { "gem_name": "Gestures", - "GemFormatVersion": 3, - "Uuid": "6056556b6088413984309c4a413593ad", - "Name": "Gestures", - "Version": "1.0.0", - "LinkType": "Dynamic", - "Summary": "Gesture-based input, including click/tap, drag, hold, pinch, rotate, and swipe.", - "IconPath": "preview.png", - "Tags": ["Input", "Gestures"] + "display_name": "Gestures", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Gestures Gem provides detection for common gesture-based input actions on iOS and Android devices.", + "canonical_tags": ["Gem"], + "user_tags": ["Input", "Gameplay", "Scripting"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/GradientSignal/gem.json b/Gems/GradientSignal/gem.json index 4186bbe71e..cae1a272b1 100644 --- a/Gems/GradientSignal/gem.json +++ b/Gems/GradientSignal/gem.json @@ -1,37 +1,12 @@ { "gem_name": "GradientSignal", - "GemFormatVersion": 4, - "Uuid": "8825563d9d964ec3be3bab681f3bd9f2", - "Name": "GradientSignal", - "DisplayName": "Gradient Signal [PREVIEW]", - "Version": "0.1.0", - "Summary": "A Lumberyard Gem that provides a number of components for generating (ex: Random, Perlin), modifying (ex: Levels, Threshold), and mixing gradient signals.", - "Tags": ["Gradient", "Surface"], - "IconPath": "preview.png", - "Modules": [ - { - "Type": "GameModule" - }, - { - "Name": "Editor", - "Type": "EditorModule", - "Extends": "GameModule" - } - ], - "Dependencies": [ - { - "Uuid": "ff06785f7145416b9d46fde39098cb0c", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "LmbrCentral" - }, - { - "Uuid": "5de82d29d6094bfe97c1a4d35fcd5fbe", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "SurfaceData" - } - ] + "display_name": "Gradient Signal", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Gradient Signal Gem provides a number of components for generating, modifying, and mixing gradient signals.", + "canonical_tags": ["Gem"], + "user_tags": ["Utility", "Tools", "Design"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/GraphCanvas/gem.json b/Gems/GraphCanvas/gem.json index 32c828ea16..6884f6b9cb 100644 --- a/Gems/GraphCanvas/gem.json +++ b/Gems/GraphCanvas/gem.json @@ -1,13 +1,12 @@ { "gem_name": "GraphCanvas", - "GemFormatVersion": 3, - "Uuid": "875b6fcbdeea44deaae7984ad9bb6cdc", - "Name": "GraphCanvas", - "DisplayName": "GraphCanvas", - "Version": "0.1.0", - "LinkType": "Dynamic", - "Summary": "The Graph Canvas Gem includes a C++ framework for creating custom graphical node based editors.", - "Tags": ["GraphCanvas"], - "IconPath": "preview.png", - "EditorModule" : true + "display_name": "Graph Canvas", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Tool", + "summary": "The Graph Canvas Gem provides a C++ framework for creating custom graphical node based editors for Open 3D Engine.", + "canonical_tags": ["Gem"], + "user_tags": ["Framework", "Tools", "Utility"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/GraphModel/gem.json b/Gems/GraphModel/gem.json index 939b6719d3..52c914357d 100644 --- a/Gems/GraphModel/gem.json +++ b/Gems/GraphModel/gem.json @@ -1,26 +1,12 @@ { "gem_name": "GraphModel", - "GemFormatVersion": 4, - "Uuid": "0844f64a3acf4f5abf3a535dc9b63bc9", - "Name": "GraphModel", - "DisplayName": "GraphModel", - "Version": "0.1.0", - "Summary": "A generic node graph data model framework.", - "Tags": ["GraphModel", "Scripting", "Vegetation"], - "IconPath": "graphModelIcon.svg", - "Modules": [ - { - "Name": "Editor", - "Type": "EditorModule" - } - ], - "Dependencies": [ - { - "Uuid": "875b6fcbdeea44deaae7984ad9bb6cdc", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "GraphCanvas" - } - ] + "display_name": "Graph Model", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Graph Model Gem provides a generic node graph data model framework for Open 3D Engine.", + "canonical_tags": ["Gem"], + "user_tags": ["Framework", "Tools", "Utility"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/HttpRequestor/gem.json b/Gems/HttpRequestor/gem.json index 989a55d637..8beb77d839 100644 --- a/Gems/HttpRequestor/gem.json +++ b/Gems/HttpRequestor/gem.json @@ -1,12 +1,12 @@ { "gem_name": "HttpRequestor", - "GemFormatVersion": 3, - "Uuid": "28479e255bde466e91fc34eec808d9c7", - "Name": "HttpRequestor", - "DisplayName": "HttpRequestor", - "Version": "1.0.0", - "LinkType": "Dynamic", - "Summary": "A Gem to handle HTTP/HTTPs requests.", - "Tags": ["http", "https", "rest"], - "IconPath": "preview.png" + "display_name": "HTTP Requestor", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The HTTP Requestor Gem provides functionality to make asynchronous HTTP/HTTPS requests and return data through a user-provided call back function.", + "canonical_tags": ["Gem"], + "user_tags": ["Network", "Utility"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/ImGui/Code/Include/ImGuiBus.h b/Gems/ImGui/Code/Include/ImGuiBus.h index cee9f3882d..ea7fe1631e 100644 --- a/Gems/ImGui/Code/Include/ImGuiBus.h +++ b/Gems/ImGui/Code/Include/ImGuiBus.h @@ -86,6 +86,8 @@ namespace ImGui virtual void SetImGuiRenderResolution(const ImVec2& res) = 0; virtual void OverrideRenderWindowSize(uint32_t width, uint32_t height) = 0; virtual void RestoreRenderWindowSizeToDefault() = 0; + virtual void SetDpiScalingFactor(float dpiScalingFactor) = 0; + virtual float GetDpiScalingFactor() const = 0; virtual void Render() = 0; }; diff --git a/Gems/ImGui/Code/Source/ImGuiManager.cpp b/Gems/ImGui/Code/Source/ImGuiManager.cpp index 7e936bb1f9..42c8d3929c 100644 --- a/Gems/ImGui/Code/Source/ImGuiManager.cpp +++ b/Gems/ImGui/Code/Source/ImGuiManager.cpp @@ -277,6 +277,20 @@ void ImGui::ImGuiManager::RestoreRenderWindowSizeToDefault() InitWindowSize(); } +void ImGui::ImGuiManager::SetDpiScalingFactor(float dpiScalingFactor) +{ + ImGuiIO& io = ImGui::GetIO(); + // Set the global font scale to size our UI to the scaling factor + // Note: Currently we use the default, 13px fixed-size IMGUI font, so this can get somewhat blurry + io.FontGlobalScale = dpiScalingFactor; +} + +float ImGui::ImGuiManager::GetDpiScalingFactor() const +{ + ImGuiIO& io = ImGui::GetIO(); + return io.FontGlobalScale; +} + void ImGuiManager::Render() { if (m_clientMenuBarState == DisplayState::Hidden && m_editorWindowState == DisplayState::Hidden) diff --git a/Gems/ImGui/Code/Source/ImGuiManager.h b/Gems/ImGui/Code/Source/ImGuiManager.h index acd8d7cea4..1509f27c57 100644 --- a/Gems/ImGui/Code/Source/ImGuiManager.h +++ b/Gems/ImGui/Code/Source/ImGuiManager.h @@ -57,6 +57,8 @@ namespace ImGui void SetImGuiRenderResolution(const ImVec2& res) override { m_renderResolution = res; } void OverrideRenderWindowSize(uint32_t width, uint32_t height) override; void RestoreRenderWindowSizeToDefault() override; + void SetDpiScalingFactor(float dpiScalingFactor) override; + float GetDpiScalingFactor() const override; void Render() override; // -- ImGuiManagerBus Interface ------------------------------------------------------------------- @@ -82,7 +84,7 @@ namespace ImGui DisplayState m_editorWindowState = DisplayState::Hidden; // ImGui Resolution Settings - ImGuiResolutionMode m_resolutionMode = ImGuiResolutionMode::MatchToMaxRenderResolution; + ImGuiResolutionMode m_resolutionMode = ImGuiResolutionMode::MatchRenderResolution; ImVec2 m_renderResolution = ImVec2(1920.0f, 1080.0f); ImVec2 m_lastRenderResolution; AzFramework::WindowSize m_windowSize = AzFramework::WindowSize(1920, 1080); diff --git a/Gems/ImGui/gem.json b/Gems/ImGui/gem.json index ed31217323..327e417bcf 100644 --- a/Gems/ImGui/gem.json +++ b/Gems/ImGui/gem.json @@ -1,30 +1,12 @@ { "gem_name": "ImGui", - "GemFormatVersion": 4, - "Uuid": "bab8807a1bc646b3909f3cc200ffeedf", - "Name": "ImGui", - "DisplayName": "ImGui", - "Version": "0.1.0", - "Summary": "A GEM that houses 3rdParty lib IMGUI. Great for quick programmer art GUI fit for debug type menus.", - "Tags": ["Debug"], - "IconPath": "preview.png", - "Modules": [ - { - "Type": "GameModule" - }, - { - "Name": "Editor", - "Type": "EditorModule", - "Extends": "GameModule" - } - ], - "Dependencies": [ - { - "Uuid": "ff06785f7145416b9d46fde39098cb0c", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "LmbrCentral" - } - ] + "display_name": "Immediate Mode GUI (IMGUI)", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Tool", + "summary": "The Immediate Mode GUI Gem provides the 3rdParty library IMGUI which can be used to create run time immediate mode overlays for debugging and profiling information in Open 3D Engine.", + "canonical_tags": ["Gem"], + "user_tags": ["Debug", "Rendering", "Framework"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/InAppPurchases/gem.json b/Gems/InAppPurchases/gem.json index 27f22b0ba4..96d0e7fa0a 100644 --- a/Gems/InAppPurchases/gem.json +++ b/Gems/InAppPurchases/gem.json @@ -1,12 +1,12 @@ { "gem_name": "InAppPurchases", - "GemFormatVersion": 3, - "Uuid": "92fe57eae7d3402a90761973678c079a", - "Name": "InAppPurchases", - "DisplayName": "In-App Purchases", - "Version": "0.1.0", - "LinkType": "Dynamic", - "Summary": "Provides the in-app purchasing API for iOS and Android", - "Tags": ["InAppPurchases", "iOS", "Android"], - "IconPath": "preview.png" + "display_name": "In-App Purchases", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The In-App Purchases Gem provides functionality for in app purchases for iOS and Android.", + "canonical_tags": ["Gem"], + "user_tags": ["SDK", "Network"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/LandscapeCanvas/gem.json b/Gems/LandscapeCanvas/gem.json index 3c1f74b689..338845ebb1 100644 --- a/Gems/LandscapeCanvas/gem.json +++ b/Gems/LandscapeCanvas/gem.json @@ -1,61 +1,12 @@ { "gem_name": "LandscapeCanvas", - "GemFormatVersion": 4, - "Uuid": "19c2b2d5018940108baf252934b8e6bf", - "Name": "LandscapeCanvas", - "DisplayName": "LandscapeCanvas", - "Version": "0.1.0", - "Summary": "A node-based Editor for authoring Dynamic Vegetation.", - "Tags": ["Vegetation"], - "IconPath": "landscapeCanvasIcon.svg", - "Modules": [ - { - "Name": "Editor", - "Type": "EditorModule" - } - ], - "Dependencies": [ - { - "Uuid": "ff06785f7145416b9d46fde39098cb0c", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "LmbrCentral" - }, - { - "Uuid": "f394e7cf54424bba89615381bba9511b", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "Vegetation" - }, - { - "Uuid": "875b6fcbdeea44deaae7984ad9bb6cdc", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "GraphCanvas" - }, - { - "Uuid" : "0844f64a3acf4f5abf3a535dc9b63bc9", - "VersionConstraints": [ - "~>0.1" - ], - "_comment" : "GraphModel" - }, - { - "Uuid": "8825563d9d964ec3be3bab681f3bd9f2", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "GradientSignal" - }, - { - "Uuid": "5de82d29d6094bfe97c1a4d35fcd5fbe", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "SurfaceData" - } - ] + "display_name": "Landscape Canvas", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Tool", + "summary": "The Landscape Canvas Gem provides the Landscape Canvas editor, a node-based graph tool for authoring workflows to populate landscape with dynamic vegetation.", + "canonical_tags": ["Gem"], + "user_tags": ["Environment", "Design", "Tools"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/LmbrCentral/gem.json b/Gems/LmbrCentral/gem.json index da88c9129a..6f0530c35d 100644 --- a/Gems/LmbrCentral/gem.json +++ b/Gems/LmbrCentral/gem.json @@ -1,14 +1,13 @@ { "gem_name": "LmbrCentral", - "GemFormatVersion": 3, - "Uuid": "ff06785f7145416b9d46fde39098cb0c", - "Name": "LmbrCentral", - "DisplayName": "LmbrCentral", - "Version": "0.1.0", - "LinkType": "Dynamic", - "Summary": "Required LmbrCentral Engine Gem.", - "Tags": ["Required"], - "IconPath": "preview.png", - "EditorModule": true, - "IsRequired": true + "display_name": "O3DE Core (LmbrCentral)", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The O3DE Core (LmbrCentral) Gem provides required code and assets for running Open 3D Engine Editor.", + "canonical_tags": ["Gem"], + "user_tags": ["Core", "Framework", "Assets"], + "icon_path": "preview.png", + "requirements": "" } + diff --git a/Gems/LocalUser/gem.json b/Gems/LocalUser/gem.json index fdda8e3959..47c1601240 100644 --- a/Gems/LocalUser/gem.json +++ b/Gems/LocalUser/gem.json @@ -1,16 +1,12 @@ { "gem_name": "LocalUser", - "GemFormatVersion": 4, - "Uuid": "93ccb44a96b142f7942a3fb6b9ca36e1", - "Name": "LocalUser", - "DisplayName": "LocalUser", - "Version": "0.1.0", - "Summary": "Provides functionality for mapping local user ids to local player slots and managing local user profiles.", - "Tags": ["User", "Local User", "Local User Profile", "Primary User", "Local Multiplayer", "Local Co-op", "Split Screen"], - "IconPath": "preview.png", - "Modules": [ - { - "Type": "GameModule" - } - ] + "display_name": "Local User", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Local User Gem provides functionality for mapping local user ids to local player slots and managing local user profiles.", + "canonical_tags": ["Gem"], + "user_tags": ["Input", "Gameplay", "Scripting"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/LyShine/gem.json b/Gems/LyShine/gem.json index bcdd7f2eb3..c61ca0cce5 100644 --- a/Gems/LyShine/gem.json +++ b/Gems/LyShine/gem.json @@ -1,39 +1,12 @@ { "gem_name": "LyShine", - "Dependencies": [ - { - "Uuid": "ff06785f7145416b9d46fde39098cb0c", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "LmbrCentral" - }, - { - "Uuid": "5a149b6b3c964064bd4970f0e92f72e2", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "Texture Atlas" - } - ], - "Modules": [ - { - "Type": "GameModule" - }, - { - "Name": "Editor", - "Type": "EditorModule", - "Extends": "GameModule" - } - ], - "GemFormatVersion": 4, - "Uuid": "0fefab3f13364722b2eab3b96ce2bf20", - "Name": "LyShine", - "DisplayName": "LyShine", - "Version": "0.1.0", - "LinkType": "Dynamic", - "Summary": "LyShine is the in-game UI system for Lumberyard", - "Tags": ["UI","Required"], - "IconPath": "preview.png", - "IsRequired": true + "display_name": "LyShine", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The LyShine Gem provides the runtime UI system and creation tools for Open 3D Engine projects.", + "canonical_tags": ["Gem"], + "user_tags": ["UI", "Tools", "Framework"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/LyShineExamples/gem.json b/Gems/LyShineExamples/gem.json index 7868148044..e8c7110466 100644 --- a/Gems/LyShineExamples/gem.json +++ b/Gems/LyShineExamples/gem.json @@ -1,26 +1,12 @@ { "gem_name": "LyShineExamples", - "Dependencies": [ - { - "Uuid": "ff06785f7145416b9d46fde39098cb0c", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "LmbrCentral" - }, - { - "Uuid": "6bb61c9e547043f0afc5019d6d460b78", - "VersionConstraints": [ "~>0.1.0" ], - "_comment": "UiBasics" - } - ], - "GemFormatVersion": 3, - "Uuid": "c7935ecf5e8047fe8ca947b34b11cadb", - "Name": "LyShineExamples", - "DisplayName": "LyShineExamples", - "Version": "0.1.0", - "LinkType": "Dynamic", - "Summary": "Provides example code for using LyShine.", - "Tags": ["UI", "LyShine", "Example"], - "IconPath": "preview.png" + "display_name": "LyShine Examples", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Asset", + "summary": "The LyShine Examples Gem provides example code and assets for LyShine, the runtime UI system and editor for Open 3D Engine projects.", + "canonical_tags": ["Gem"], + "user_tags": ["UI", "Sample", "Assets"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/Maestro/gem.json b/Gems/Maestro/gem.json index fc9cf2e02a..4f638b63f1 100644 --- a/Gems/Maestro/gem.json +++ b/Gems/Maestro/gem.json @@ -1,14 +1,13 @@ { "gem_name": "Maestro", - "GemFormatVersion": 3, - "Uuid": "3b9a978ed6f742a1acb99f74379a342c", - "Name": "Maestro", - "DisplayName": "Maestro", - "Version": "0.1.0", - "LinkType": "Dynamic", - "Summary": "Lumberyard Cinematics Module", - "Tags": ["Cinematics","Required"], - "IconPath": "preview.png", - "EditorModule": true, - "IsRequired": true + "display_name": "Maestro Cinematics", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Maestro Cinematics Gem provides Track View, Open 3D Engine's animated sequence and cinematics editor.", + "canonical_tags": ["Gem"], + "user_tags": ["Animation", "Tools", "Scripting"], + "icon_path": "preview.png", + "requirements": "" } + diff --git a/Gems/MessagePopup/gem.json b/Gems/MessagePopup/gem.json index 137ee811f1..c75d28f50d 100644 --- a/Gems/MessagePopup/gem.json +++ b/Gems/MessagePopup/gem.json @@ -1,25 +1,12 @@ { "gem_name": "MessagePopup", - "GemFormatVersion": 4, - "Uuid": "89225422672547deaca9e7a22b883973", - "Name": "MessagePopup", - "DisplayName": "MessagePopup", - "Version": "0.1.0", - "Summary": "Show a message popup ", - "Tags": ["Untagged"], - "IconPath": "preview.png", - "Dependencies": [ - { - "Uuid": "6bb61c9e547043f0afc5019d6d460b78", - "VersionConstraints": [ - "~>0.1.0" - ], - "_comment": "UiBasics" - } - ], - "Modules": [ - { - "Type": "GameModule" - } - ] + "display_name": "Message Popup", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Message Popup Gem provides an example implementation of popup messages using LyShine in Open 3D Engine.", + "canonical_tags": ["Gem"], + "user_tags": ["Gameplay", "Sample"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/Metastream/gem.json b/Gems/Metastream/gem.json index 16a4a090bb..911c6be665 100644 --- a/Gems/Metastream/gem.json +++ b/Gems/Metastream/gem.json @@ -1,12 +1,12 @@ { "gem_name": "Metastream", - "GemFormatVersion": 3, - "Uuid": "c02d7efe05134983b5699d9ee7594c3a", - "Name": "Metastream", - "DisplayName": "Metastream", - "Version": "1.0.0", - "LinkType": "Dynamic", - "Summary": "When the Metastream Gem is installed, it will set up a project to run an HTTP server that can service requests for the purpose of allowing broadcasters to customize game streams with overlays of statistics and event data from a game session creating a more engaging experience for the viewer.", - "Tags": ["Twitch", "Metastream", "Streaming", "Broadcasting", "Overlay"], - "IconPath": "preview.png" + "display_name": "Metastream", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Metastream Gem provides functionality for an HTTP server that allows broadcasters to customize game streams with overlays of statistics and event data from a game session.", + "canonical_tags": ["Gem"], + "user_tags": ["Gameplay", "Network", "Framework"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/Microphone/gem.json b/Gems/Microphone/gem.json index f90d8c1a18..31b3d46963 100644 --- a/Gems/Microphone/gem.json +++ b/Gems/Microphone/gem.json @@ -1,19 +1,12 @@ { "gem_name": "Microphone", - "GemFormatVersion": 3, - "Uuid": "e70dd59f02f14ea49e6b38434e86ebf1", - "Name": "Microphone", - "DisplayName": "Microphone", - "Version": "0.1.0", - "LinkType": "Dynamic", - "Summary": "Provides access to connected Microphone Devices and ability to read their input.", - "Tags": ["Audio", "Microphone"], - "IconPath": "preview.png", - "Dependencies": [ - { - "Uuid": "6f63f2b6d07f4b89b4b7c86ebee7feb8", - "VersionConstraints": [">=0.1.0"], - "_comment": "AudioSystem" - } - ] + "display_name": "Microphone", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Microphone Gem provides support for audio input through microphones.", + "canonical_tags": ["Gem"], + "user_tags": ["Audio", "Input"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/Multiplayer/gem.json b/Gems/Multiplayer/gem.json index a21ac5d7d3..8abbddea5f 100644 --- a/Gems/Multiplayer/gem.json +++ b/Gems/Multiplayer/gem.json @@ -1,11 +1,12 @@ { "gem_name": "Multiplayer", - "GemFormatVersion": 3, - "Uuid": "9524EBD3E64D4D13A9764A18DB9A564F", - "Name": "Multiplayer", - "Version": "1.0.0", - "LinkType": "Dynamic", - "Tags": ["Multiplayer","Networking"], - "Summary": "The Multiplayer Gem provides high level advanced multiplayer gameplay functionality such as entity replication, local prediction, and server side backward reconciliation", - "IconPath": "preview.png" + "display_name": "Multiplayer", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Multiplayer Gem provides a public API for multiplayer functionality such as connecting and hosting.", + "canonical_tags": ["Gem"], + "user_tags": ["Multiplayer", "Network", "Framework"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/MultiplayerCompression/gem.json b/Gems/MultiplayerCompression/gem.json index 77a86b04a2..aeea2282cc 100644 --- a/Gems/MultiplayerCompression/gem.json +++ b/Gems/MultiplayerCompression/gem.json @@ -1,10 +1,12 @@ { "gem_name": "MultiplayerCompression", "display_name": "Multiplayer Compression", - "summary": "The Multiplayer Compression gem provides an open source Compressor for use with AzNetworking's transport layer.", - "canonical_tags": ["Multiplayer", "Networking", "Utility"], - "user_tags": ["MultiplayerCompression"], - "icon_path": "preview.png", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", "type": "Code", - "provider": "Open 3D Foundation" + "summary": "The Multiplayer Compression Gem provides an open source Compressor for use with AzNetworking's transport layer.", + "canonical_tags": ["Gem"], + "user_tags": ["Multiplayer", "Network", "Utility"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/NvCloth/gem.json b/Gems/NvCloth/gem.json index f71d71e592..95ea8168d6 100644 --- a/Gems/NvCloth/gem.json +++ b/Gems/NvCloth/gem.json @@ -1,8 +1,12 @@ { "gem_name": "NvCloth", - "display_name": "NVIDIA Cloth [PREVIEW]", - "summary": "Provides the functionality needed to add cloth simulation.", + "display_name": "NVIDIA Cloth (NvCloth)", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The NVIDIA Cloth Gem provides functionality to create fast, realistic cloth simulation with the NVIDIA Cloth library.", "canonical_tags": ["Gem"], - "user_tags": ["Physics"], - "icon_path": "preview.png" + "user_tags": ["Physics", "Simulation", "SDK"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/PBSreferenceMaterials/gem.json b/Gems/PBSreferenceMaterials/gem.json index 65fe12d5f8..b015d89888 100644 --- a/Gems/PBSreferenceMaterials/gem.json +++ b/Gems/PBSreferenceMaterials/gem.json @@ -1,12 +1,12 @@ { "gem_name": "PBSreferenceMaterials", - "GemFormatVersion": 3, - "Uuid": "07375b61b1a2424bb03088bbdf28b2c8", - "Name": "PBSreferenceMaterials", - "DisplayName": "PBSreferenceMaterials", - "Version": "0.1.0", - "LinkType": "NoCode", - "Summary": "A set of Physically Based Shading reference materials and texture assets", - "Tags": ["Asset"], - "IconPath": "preview.png" + "display_name": "PBS Reference Materials", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Asset", + "summary": "The PBS Reference Materials Gem provides physically based reference materials for Open 3D Engine.", + "canonical_tags": ["Gem"], + "user_tags": ["Rendering", "Sample", "Assets"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/PhysX/gem.json b/Gems/PhysX/gem.json index 126a4a218a..0b6b635c71 100644 --- a/Gems/PhysX/gem.json +++ b/Gems/PhysX/gem.json @@ -1,22 +1,12 @@ { "gem_name": "PhysX", - "Dependencies": [ - { - "Uuid": "ff06785f7145416b9d46fde39098cb0c", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "LmbrCentral" - } - ], - "GemFormatVersion": 3, - "Uuid": "4e08125824434932a0fe3717259caa47", - "Name": "PhysX", - "DisplayName": "PhysX", - "Version": "0.1.0", - "LinkType": "Dynamic", - "Summary": "The PhysX Gem enables the NVIDIA PhysX SDK to provide physics simulation for Lumberyard. The PhysX system is not compatible with the legacy physics system. You cannot use components interchangeably between each system.", - "Tags": ["Physics"], - "IconPath": "preview.png", - "EditorModule": true + "display_name": "PhysX", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The PhysX Gem provides physics simulation with NVIDIA PhysX including static and dynamic rigid body simulation, force regions, ragdolls, and dynamic PhysX joints.", + "canonical_tags": ["Gem"], + "user_tags": ["Physics", "Simulation", "SDK"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/PhysXDebug/gem.json b/Gems/PhysXDebug/gem.json index 32e7dfead3..7dbfc1a096 100644 --- a/Gems/PhysXDebug/gem.json +++ b/Gems/PhysXDebug/gem.json @@ -1,29 +1,12 @@ { "gem_name": "PhysXDebug", - "Dependencies": [ - { - "Uuid": "4e08125824434932a0fe3717259caa47", - "VersionConstraints": [ - ">=0.1" - ], - "_comment": "PhysX Gem" - }, - { - "Uuid": "bab8807a1bc646b3909f3cc200ffeedf", - "VersionConstraints": [ - ">=0.1.0" - ], - "_comment": "ImGui Gem" - } - ], - "GemFormatVersion": 3, - "Uuid": "516145e2d9904b13813f1b54605e26a6", - "Name": "PhysXDebug", - "DisplayName": "PhysX Debug [PREVIEW]", - "Version": "0.1.0", - "LinkType": "Dynamic", - "Summary": "Debug features for the PhysX gem.", - "Tags": ["Physics", "Debug"], - "IconPath": "preview.png", - "EditorModule": true + "display_name": "PhysX Debug", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Tool", + "summary": "The PhysX Debug Gem provides debugging functionality and visualizations for NVIDIA PhysX in Open 3D Engine.", + "canonical_tags": ["Gem"], + "user_tags": ["Physics", "Simulation", "Debug"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/PhysXSamples/gem.json b/Gems/PhysXSamples/gem.json index 1c917f1f50..b5239344f6 100644 --- a/Gems/PhysXSamples/gem.json +++ b/Gems/PhysXSamples/gem.json @@ -1,42 +1,12 @@ { "gem_name": "PhysXSamples", - "Dependencies": [ - { - "Uuid": "ed07631f95fb4be1bd10cd37298ec697", - "VersionConstraints": [ - ">=0.1" - ], - "_comment": "Uses mesh assets from primatives gem" - }, - { - "Uuid": "2c227161447b4d77a5b07c093e214fe3", - "VersionConstraints": [ - ">=0.1" - ], - "_comment": "Uses textures from DevTextures gem" - }, - { - "Uuid": "4e08125824434932a0fe3717259caa47", - "VersionConstraints": [ - ">=0.1" - ], - "_comment": "Requires PhysX" - }, - { - "Uuid": "66239f50bf754354b514c850c8b841fb", - "VersionConstraints": [ - ">=0.1" - ], - "_comment": "Uses debug draw Script Canvas nodes" - } - ], - "GemFormatVersion": 3, - "Uuid": "c4a4aadba44241ae9f0141e145def7f7", - "Name": "PhysXSamples", - "DisplayName": "PhysXSamples", - "Version": "0.1.0", - "LinkType": "NoCode", - "Summary": "Collection of samples that demostrate PhysX features.", - "Tags": ["Asset"], - "IconPath": "preview.png" + "display_name": "PhysX Samples", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Asset", + "summary": "The PhysX Samples Gem provides sample assets and scripts that demonstrate PhysX Gem features in Open 3D Engine.", + "canonical_tags": ["Gem"], + "user_tags": ["Physics", "Simulation", "Sample"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/Prefab/PrefabBuilder/gem.json b/Gems/Prefab/PrefabBuilder/gem.json index 595c0c7d7f..1a815738ca 100644 --- a/Gems/Prefab/PrefabBuilder/gem.json +++ b/Gems/Prefab/PrefabBuilder/gem.json @@ -1,17 +1,12 @@ { "gem_name": "PrefabBuilder", - "GemFormatVersion": 4, - "Uuid": "88500802311C4793B03484BE2091B607", - "Name": "PrefabBuilder", - "DisplayName": "PrefabBuilder", - "Version": "0.1.0", - "Summary": "Asset Processor builder module for Prefabs", - "Tags": ["Prefabs"], - "IconPath": "preview.png", - "Modules": [ - { - "Name": "Editor", - "Type": "EditorModule" - } - ] + "display_name": "Prefab Builder", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Prefab Builder Gem provides an Asset Processor module for prefabs, which are complex assets built by combining smaller entities.", + "canonical_tags": ["Gem"], + "user_tags": ["Assets", "Utility", "Core"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/Presence/gem.json b/Gems/Presence/gem.json index ecf9a2663c..5df5fbdd6a 100644 --- a/Gems/Presence/gem.json +++ b/Gems/Presence/gem.json @@ -1,16 +1,12 @@ { "gem_name": "Presence", - "GemFormatVersion": 4, - "Uuid": "903ce283760647049efaef70d9368eeb", - "Name": "Presence", - "DisplayName": "Presence", - "Version": "0.1.0", - "Summary": "Platform agnostic interface for Presence services", - "Tags": [ "Presence", "Rich Presence" ], - "IconPath": "preview.png", - "Modules": [ - { - "Type": "GameModule" - } - ] + "display_name": "Presence", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Presence Gem provides a target platform agnostic interface for Presence services.", + "canonical_tags": ["Gem"], + "user_tags": ["Network", "Gameplay", "Framework"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/PrimitiveAssets/gem.json b/Gems/PrimitiveAssets/gem.json index de7698c664..1c1fd54c16 100644 --- a/Gems/PrimitiveAssets/gem.json +++ b/Gems/PrimitiveAssets/gem.json @@ -1,12 +1,12 @@ { "gem_name": "PrimitiveAssets", - "GemFormatVersion": 3, - "Uuid": "ed07631f95fb4be1bd10cd37298ec697", - "Name": "PrimitiveAssets", - "DisplayName": "Primitive Assets", - "Version": "1.0.0", - "LinkType": "NoCode", - "Summary": "Provides simple primitive shape assets useful for quickly building a basic scene.", - "Tags": ["Getting Started", "Asset"], - "IconPath": "preview.png" + "display_name": "Primitive Assets", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Asset", + "summary": "The Primitive Assets Gem provides primitive shape mesh assets with physics enabled.", + "canonical_tags": ["Gem"], + "user_tags": ["Assets", "Sample", "Debug"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/PythonAssetBuilder/gem.json b/Gems/PythonAssetBuilder/gem.json index 39eccc4d2f..dcf3b59e23 100644 --- a/Gems/PythonAssetBuilder/gem.json +++ b/Gems/PythonAssetBuilder/gem.json @@ -1,17 +1,12 @@ { - "gem_name": "PythonAssetBuilder", - "GemFormatVersion": 4, - "Uuid": "0a5fda05323649009444bb7c3ee2b9c4", - "Name": "PythonAssetBuilder", - "DisplayName": "PythonAssetBuilder", - "Version": "0.1.0", - "Summary": "Runs asset builders written in Python scripts.", - "Tags": ["asset"], - "IconPath": "preview.png", - "Modules": [ - { - "Name": "Editor", - "Type": "EditorModule" - } - ] + "gem_name": "PythonAssetBuilder", + "display_name": "Python Asset Builder", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Python Asset Builder Gem provides functionality to implement custom asset builders in Python for Asset Processor.", + "canonical_tags": ["Gem"], + "user_tags": ["Scripting", "Assets", "Utility"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/QtForPython/gem.json b/Gems/QtForPython/gem.json index 0c13e1d98d..dea5fc2e16 100644 --- a/Gems/QtForPython/gem.json +++ b/Gems/QtForPython/gem.json @@ -1,26 +1,12 @@ { "gem_name": "QtForPython", - "GemFormatVersion": 4, - "Uuid": "cd50c7a1e31f4c9495dcffdacc3bde92", - "Name": "QtForPython", - "DisplayName": "QtForPython", - "Version": "0.1.0", - "Summary": "Adds the ability to use the PySide2 Python libraries to manage Qt widgets.", - "Tags": ["Editor"], - "IconPath": "preview.png", - "Modules": [ - { - "Name": "Editor", - "Type": "EditorModule" - } - ], - "Dependencies": [ - { - "Uuid": "b658359393884c4381c2fe2952b1472a", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "EditorPythonBindings" - } - ] -} + "display_name": "Qt for Python", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Tool", + "summary": "The Qt for Python Gem provides the PySide2 Python libraries to manage Qt widgets.", + "canonical_tags": ["Gem"], + "user_tags": ["Scripting", "UI", "Framework"], + "icon_path": "preview.png", + "requirements": "" + } diff --git a/Gems/RADTelemetry/gem.json b/Gems/RADTelemetry/gem.json index 511f4d7e5a..43515976da 100644 --- a/Gems/RADTelemetry/gem.json +++ b/Gems/RADTelemetry/gem.json @@ -1,12 +1,12 @@ { "gem_name": "RADTelemetry", - "GemFormatVersion": 3, - "Uuid": "bdaf32823406492686e35200afc555b3", - "Name": "RADTelemetry", - "DisplayName": "RAD Telemetry", - "Version": "0.1.0", - "LinkType": "Dynamic", - "Summary": "The RAD Telemetry Gem allows licensors of RAD Telemetry 3 to quickly integrate RAD Telemetry 3 with Lumberyard. For instructions on enabling RAD Telemetry Gem, visit https://docs.aws.amazon.com/lumberyard/latest/userguide/gems-system-gem-rad-telemetry.html", - "Tags": ["Profile", "Profiler", "Profiling"], - "IconPath": "preview.png" + "display_name": "RAD Telemetry", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Tool", + "summary": "The RAD Telemetry Gem provides support for RAD Telemetry, a performance profiling and visualization middleware, in Open 3D Engine.", + "canonical_tags": ["Gem"], + "user_tags": ["Debug", "SDK"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/SaveData/gem.json b/Gems/SaveData/gem.json index bb8e122a18..57de27624f 100644 --- a/Gems/SaveData/gem.json +++ b/Gems/SaveData/gem.json @@ -1,16 +1,12 @@ { "gem_name": "SaveData", - "GemFormatVersion": 4, - "Uuid": "d96ab03f53d14c9e83f9b4528c8576d7", - "Name": "SaveData", - "DisplayName": "SaveData", - "Version": "0.1.0", - "Summary": "Provides a simple, platform agnostic API for saving and loading persistent user data.", - "Tags": ["Save", "Load", "Save Data", "Save Game", "Persistent Data"], - "IconPath": "preview.png", - "Modules": [ - { - "Type": "GameModule" - } - ] -} + "display_name": "Save Data", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Save Data Gem provides a platform independent API to save and load persistent user data in Open 3D Engine projects.", + "canonical_tags": ["Gem"], + "user_tags": ["Utility", "Gameplay"], + "icon_path": "preview.png", + "requirements": "" + } diff --git a/Gems/SceneLoggingExample/gem.json b/Gems/SceneLoggingExample/gem.json index 822acde858..faa2860d13 100644 --- a/Gems/SceneLoggingExample/gem.json +++ b/Gems/SceneLoggingExample/gem.json @@ -1,12 +1,12 @@ { "gem_name": "SceneLoggingExample", - "GemFormatVersion": 3, - "Uuid": "35d8f6e49ae04c9382c61a42d4355c2f", - "Name": "SceneLoggingExample", - "DisplayName": "Scene Logging Example", - "Version": "0.1.0", - "LinkType": "Dynamic", - "Summary": "This example Gem demonstrates the basics of extending the SceneAPI by adding additional logging to the pipeline. Please read ReadMe.txt for further details.", - "Tags": ["Scene", "FBX"], - "IconPath": "preview.png" -} + "display_name": "Scene Logging Example", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Asset", + "summary": "The Scene Logging Example Gem demonstrates the basics of extending the Open 3D Engine Scene API by adding additional logging to the pipeline.", + "canonical_tags": ["Gem"], + "user_tags": ["Debug", "Sample"], + "icon_path": "preview.png", + "requirements": "" + } diff --git a/Gems/SceneProcessing/gem.json b/Gems/SceneProcessing/gem.json index 0729ffa6ea..d9814f6a7d 100644 --- a/Gems/SceneProcessing/gem.json +++ b/Gems/SceneProcessing/gem.json @@ -1,20 +1,12 @@ { "gem_name": "SceneProcessing", - "GemFormatVersion": 3, - "Uuid": "7c2578f634df4345aca98d671e39b8ab", - "Name": "SceneProcessing", - "DisplayName": "Scene Processing (PREVIEW)", - "Version": "0.1.0", - "LinkType": "Dynamic", - "Summary": "Use this gem to fine tune the defaults for processing of scene files like Fbx.", - "Tags": ["Scene", "FBX", "Assets"], - "IconPath": "preview.png", - "EditorModule": true, - "IsRequired": false, - "Modules": [ - { - "Name": "Editor", - "Type": "EditorModule" - } - ] -} + "display_name": "Scene Processing", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Tool", + "summary": "The Scene Processing Gem provides Scene Settings, a tool you can use to specify the default settings for processing asset files for actors, meshes, motions, and PhysX.", + "canonical_tags": ["Gem"], + "user_tags": ["Assets", "Tools", "Core"], + "icon_path": "preview.png", + "requirements": "" + } diff --git a/Gems/ScriptCanvas/gem.json b/Gems/ScriptCanvas/gem.json index df3be75ab9..680ce6ef1f 100644 --- a/Gems/ScriptCanvas/gem.json +++ b/Gems/ScriptCanvas/gem.json @@ -1,30 +1,12 @@ { - "gem_name": "ScriptCanvas", - "GemFormatVersion": 3, - "Uuid": "869a0d0ec11a45c299917d45c81555e6", - "Name": "ScriptCanvas", - "DisplayName": "Script Canvas", - "Version": "0.1.0", - "LinkType": "DynamicStatic", - "EditorModule": true, - "Summary": "The Script Canvas Gem contains Lumberyard's visual scripting environment that enables content creators with little to no engineering experience to build game logic.", - "Tags": ["Scripting", "Game"], - "IconPath": "preview.png", - "Dependencies" : [ - { - "Uuid": "875b6fcbdeea44deaae7984ad9bb6cdc", - "VersionConstraints": [ ">=0.1.0" ], - "_comment": "GraphCanvas" - }, - { - "Uuid": "32d8ba21703e4bbbb08487366e48dd69", - "VersionConstraints": [ ">=0.1.0" ], - "_comment": "ScriptEvents" - }, - { - "Uuid": "4c6f9df57ca2468f93c8d860ee6a1167", - "VersionConstraints": [ ">=0.1.0" ], - "_comment": "ExpressionEvaluation" - } - ] + "gem_name": "ScriptCanvas", + "display_name": "Script Canvas", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Tool", + "summary": "The Script Canvas Gem provides Open 3D Engine's visual scripting environment, Script Canvas.", + "canonical_tags": ["Gem"], + "user_tags": ["Scripting", "Tools", "Utiltiy"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/ScriptCanvasDeveloper/gem.json b/Gems/ScriptCanvasDeveloper/gem.json index 05e7391dcc..7cc2e7d03a 100644 --- a/Gems/ScriptCanvasDeveloper/gem.json +++ b/Gems/ScriptCanvasDeveloper/gem.json @@ -1,30 +1,12 @@ { "gem_name": "ScriptCanvasDeveloperGem", - "GemFormatVersion": 3, - "Uuid": "f905c05883b94fd6bddc91052c3c5a86", - "Name": "ScriptCanvasDeveloperGem", - "DisplayName": "Script Canvas Developer Tools", - "Version": "0.1.0", - "LinkType": "DynamicStatic", - "EditorModule": true, - "Summary": "The Script Canvas Developer Gem contains a suite of utility features that aids in the development and debugging of Script Canvas systems.", - "Tags": ["Scripting", "Editor"], - "IconPath": "preview.png", - "Dependencies" : [ - { - "Uuid" : "bab8807a1bc646b3909f3cc200ffeedf", - "VersionConstraints" : [">=0.1.0"], - "_comment" : "ImGui" - }, - { - "Uuid" : "869a0d0ec11a45c299917d45c81555e6", - "VersionConstraints" : [">=0.1.0"], - "_comment" : "ScriptCanvas" - }, - { - "Uuid" : "875b6fcbdeea44deaae7984ad9bb6cdc", - "VersionConstraints" : [">=0.1.0"], - "_comment" : "GraphCanvas" - } - ] -} + "display_name": "Script Canvas Developer", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Tool", + "summary": "The Script Canvas Developer Gem provides a suite of utility features for the development and debugging of Script Canvas systems.", + "canonical_tags": ["Gem"], + "user_tags": ["Scripting", "Utility", "Debug"], + "icon_path": "preview.png", + "requirements": "" + } diff --git a/Gems/ScriptCanvasPhysics/gem.json b/Gems/ScriptCanvasPhysics/gem.json index 9435c1dd69..04cfb86980 100644 --- a/Gems/ScriptCanvasPhysics/gem.json +++ b/Gems/ScriptCanvasPhysics/gem.json @@ -1,32 +1,12 @@ { "gem_name": "ScriptCanvasPhysics", - "GemFormatVersion": 4, - "Uuid": "1c27519a4dda4ffaaeebf91514e5b1e8", - "Name": "ScriptCanvasPhysics", - "DisplayName": "Script Canvas - Physics", - "Version": "0.1.0", - "Summary": "Exposes legacy physics features to scripting through the Behavior Context to Lua and Script Canvas.", - "Tags": ["Scripting", "Physics"], - "IconPath": "preview.png", - "Modules": [ - { - "Type": "GameModule" - } - ], - "Dependencies": [ - { - "Uuid": "ff06785f7145416b9d46fde39098cb0c", - "VersionConstraints": [ - ">=0.1.0" - ], - "_comment": "LmbrCentral" - }, - { - "Uuid": "869a0d0ec11a45c299917d45c81555e6", - "VersionConstraints": [ - ">=0.1.0" - ], - "_comment": "ScriptCanvas" - } - ] -} + "display_name": "Script Canvas Physics", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Script Canvas Physics Gem provides Script Canvas nodes for physics scene queries such as raycasts.", + "canonical_tags": ["Gem"], + "user_tags": ["Scripting", "Physics", "Simulation"], + "icon_path": "preview.png", + "requirements": "" + } diff --git a/Gems/ScriptCanvasTesting/gem.json b/Gems/ScriptCanvasTesting/gem.json index 4010b87283..d82e841236 100644 --- a/Gems/ScriptCanvasTesting/gem.json +++ b/Gems/ScriptCanvasTesting/gem.json @@ -1,29 +1,12 @@ { - "gem_name": "ScriptCanvasTesting", - "GemFormatVersion": 4, - "Uuid": "387b1b2d39ce45fbbfbb6faa5f902cac", - "Name": "ScriptCanvasTesting", - "DisplayName": "Script Canvas Testing", - "Version": "0.1.0", - "Summary": "Provides a framework for testing for and with ScriptCanvas", - "Tags": ["Scripting", "Testing"], - "IconPath": "preview.png", - "Modules": [ - { - "Type": "EditorModule", - "Name": "Editor" - } - ], - "Dependencies" : [ - { - "Uuid": "875b6fcbdeea44deaae7984ad9bb6cdc", - "VersionConstraints": [ ">=0.1.0" ], - "_comment": "GraphCanvas" - }, - { - "Uuid": "869a0d0ec11a45c299917d45c81555e6", - "VersionConstraints": [ ">=0.1.0" ], - "_comment": "ScriptCanvas" - } - ] + "gem_name": "ScriptCanvasTesting", + "display_name": "Script Canvas Testing", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Tool", + "summary": "The Script Canvas Testing Gem provides a framework for testing for and with Script Canvas.", + "canonical_tags": ["Gem"], + "user_tags": ["Scripting", "Debug", "Framework"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/ScriptEvents/gem.json b/Gems/ScriptEvents/gem.json index 789d66de20..fba99c6af9 100644 --- a/Gems/ScriptEvents/gem.json +++ b/Gems/ScriptEvents/gem.json @@ -1,21 +1,12 @@ { "gem_name": "ScriptEvents", - "GemFormatVersion": 4, - "Uuid": "32d8ba21703e4bbbb08487366e48dd69", - "Name": "ScriptEvents", - "DisplayName": "Script Events", - "Version": "0.1.0", - "Summary": "Provides a framework for creating event assets usable from any scripting solution.", - "Tags": [ "Script", "Events", "Lua", "Script", "Canvas", "EBus", "Behavior Context" ], - "IconPath": "preview.png", - "Modules": [ - { - "Type": "GameModule" - }, - { - "Name": "Editor", - "Type": "EditorModule", - "Extends": "GameModule" - } - ] + "display_name": "Script Events", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Script Events Gem provides a framework for creating event assets usable from any scripting solution in Open 3D Engine.", + "canonical_tags": ["Gem"], + "user_tags": ["Scripting", "Framework", "Gameplay"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/ScriptedEntityTweener/gem.json b/Gems/ScriptedEntityTweener/gem.json index 9cc816e744..c2e1975f76 100644 --- a/Gems/ScriptedEntityTweener/gem.json +++ b/Gems/ScriptedEntityTweener/gem.json @@ -1,12 +1,12 @@ { "gem_name": "ScriptedEntityTweener", - "GemFormatVersion": 3, - "Uuid": "0d1f5f05559c4a99aaefd30633a0158e", - "Name": "ScriptedEntityTweener", - "DisplayName": "Scripted Entity Tweener", - "Version": "0.1.0", - "LinkType": "Dynamic", - "Summary": "Entity Animator can be used to transform entity properties in Lumberyard", - "Tags": ["UI"], - "IconPath": "preview.png" -} + "display_name": "Scripted Entity Tweener", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Tool", + "summary": "The Scripted Entity Tweener Gem provides a script driven animation system for Open 3D Engine projects.", + "canonical_tags": ["Gem"], + "user_tags": ["Scripting", "UI", "Animation"], + "icon_path": "preview.png", + "requirements": "" + } diff --git a/Gems/SliceFavorites/gem.json b/Gems/SliceFavorites/gem.json index 759cc5dc3d..3ae37e2145 100644 --- a/Gems/SliceFavorites/gem.json +++ b/Gems/SliceFavorites/gem.json @@ -1,17 +1,11 @@ { "gem_name": "SliceFavorites", - "GemFormatVersion": 4, - "Uuid": "1bfc7270d4a1490daac8aa8b072c4489", - "Name": "SliceFavorites", - "DisplayName": "SliceFavorites", - "Version": "0.1.0", - "Summary": "Add the ability to favorite a slice to allow easy access and instantiation", - "Tags": ["Editor", "Slices"], - "IconPath": "preview.png", - "Modules": [ - { - "Type": "EditorModule", - "Name": "Editor" - } - ] + "display_name": "SliceFavorites", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "Add the ability to favorite a slice to allow easy access and instantiation", + "user_tags": ["Editor", "Slices"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/StartingPointCamera/gem.json b/Gems/StartingPointCamera/gem.json index e970ae417d..2c28f346a9 100644 --- a/Gems/StartingPointCamera/gem.json +++ b/Gems/StartingPointCamera/gem.json @@ -1,35 +1,12 @@ { "gem_name": "StartingPointCamera", - "Dependencies": [ - { - "Uuid": "54f2763fe191432fa681ce4a354eedf5", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "CameraFramework" - }, - { - "Uuid": "f910686b6725452fbfc4671f95f733c6", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "Camera" - }, - { - "Uuid": "ff06785f7145416b9d46fde39098cb0c", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "LmbrCentral" - } - ], - "GemFormatVersion": 3, - "Uuid": "834070b9537d44df83559e2045c3859f", - "Name": "StartingPointCamera", - "DisplayName": "Starting Point Camera [PREVIEW]", - "Version": "0.1.0", - "LinkType": "Dynamic", - "Summary": "The Starting Point Camera Gem includes the behaviors used with the Camera Framework Gem to define a camera rig.", - "Tags": ["Camera", "Starting Point"], - "IconPath": "preview.png" + "display_name": "Starting Point Camera", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Starting Point Camera Gem provides the behaviors used with the Camera Framework Gem to define a camera rig.", + "canonical_tags": ["Gem"], + "user_tags": ["Rendering", "Gameplay", "Scripting"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/StartingPointInput/gem.json b/Gems/StartingPointInput/gem.json index 5faddabea7..2d5b6aee15 100644 --- a/Gems/StartingPointInput/gem.json +++ b/Gems/StartingPointInput/gem.json @@ -1,21 +1,12 @@ { "gem_name": "StartingPointInput", - "Dependencies": [ - { - "Uuid" : "869a0d0ec11a45c299917d45c81555e6", - "VersionConstraints" : [">=0.1.0"], - "_comment" : "ScriptCanvas" - } - ], - - "GemFormatVersion": 3, - "Uuid": "09f4bedeee614358bc36788e77f97e51", - "Name": "StartingPointInput", - "Version": "0.1.0", - "LinkType": "Dynamic", - "EditorModule": true, - "DisplayName": "Starting Point Input", - "Tags": ["Input","Starting Point"], - "Summary": "The Starting Point Input Gem builds on top of the AzFramework/Input system to map raw input into higher level gameplay events specified by the user.", - "IconPath": "preview.png" + "display_name": "Starting Point Input", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Starting Point Input Gem provides functionality to map low-level input events to high-level actions.", + "canonical_tags": ["Gem"], + "user_tags": ["Input", "Gameplay", "Scripting"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/StartingPointMovement/gem.json b/Gems/StartingPointMovement/gem.json index d34637b86c..cb4e8d0e6a 100644 --- a/Gems/StartingPointMovement/gem.json +++ b/Gems/StartingPointMovement/gem.json @@ -1,21 +1,12 @@ { "gem_name": "StartingPointMovement", - "Dependencies": [ - { - "Uuid": "ff06785f7145416b9d46fde39098cb0c", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "LmbrCentral" - } - ], - "GemFormatVersion": 3, - "Uuid": "73d8779dc28a4123b7c9ed76217464af", - "Name": "StartingPointMovement", - "Version": "0.1.0", - "LinkType": "Dynamic", - "DisplayName": "Starting Point Movement [PREVIEW]", - "Summary": "The Starting Point Movement Gem includes a series of Lua scripts that listens for input events that then triggers a transform operation such as movement or rotation.", - "Tags": ["Movement", "Starting Point"], - "IconPath": "preview.png" + "display_name": "Starting Point Movement", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Starting Point Movement Gem provides a series of Lua scripts that listen and respond to input events and trigger transform operations such as translation and rotation.", + "canonical_tags": ["Gem"], + "user_tags": ["Input", "Gameplay", "Scripting"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/SurfaceData/gem.json b/Gems/SurfaceData/gem.json index fd39052219..1fb521ef58 100644 --- a/Gems/SurfaceData/gem.json +++ b/Gems/SurfaceData/gem.json @@ -1,30 +1,12 @@ { "gem_name": "SurfaceData", - "GemFormatVersion": 4, - "Uuid": "5de82d29d6094bfe97c1a4d35fcd5fbe", - "Name": "SurfaceData", - "DisplayName": "Surface Data [PREVIEW]", - "Version": "0.1.0", - "Summary": "A Lumberyard Gem that allows you to attach user-defined tags to surfaces and volumes, and fetch data like positions, normals, and tags for those surfaces.", - "Tags": ["Surface", "Geometry", "Tags"], - "IconPath": "preview.png", - "Modules": [ - { - "Type": "GameModule" - }, - { - "Name": "Editor", - "Type": "EditorModule", - "Extends": "GameModule" - } - ], - "Dependencies": [ - { - "Uuid": "ff06785f7145416b9d46fde39098cb0c", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "LmbrCentral" - } - ] + "display_name": "Surface Data", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Surface Data Gem provides functionality to emit signals or tags from surfaces such as meshes and terrain.", + "canonical_tags": ["Gem"], + "user_tags": ["Environment", "Utiltiy", "Design"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/TestAssetBuilder/gem.json b/Gems/TestAssetBuilder/gem.json index 057a746be3..4c75343ebb 100644 --- a/Gems/TestAssetBuilder/gem.json +++ b/Gems/TestAssetBuilder/gem.json @@ -1,17 +1,12 @@ { "gem_name": "TestAssetBuilder", - "GemFormatVersion": 4, - "Uuid": "f5c92f1560714010ba30467d93feecef", - "Name": "TestAssetBuilder", - "DisplayName": "Test Asset Builder", - "Version": "0.1.0", - "Summary": "This builder is used for feature testing the asset processor.", - "Tags": ["Assets", "Pipeline", "Feature Test", "Asset Builder", "Asset Processor"], - "IconPath": "preview.png", - "Modules": [ - { - "Name": "Editor", - "Type": "EditorModule" - } - ] + "display_name": "Test Asset Builder", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Test Asset Builder Gem is used to feature test Asset Processor.", + "canonical_tags": ["Gem"], + "user_tags": ["Assets", "Debug", "Utility"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/TextureAtlas/gem.json b/Gems/TextureAtlas/gem.json index 5b5e0e74df..1991ad387e 100644 --- a/Gems/TextureAtlas/gem.json +++ b/Gems/TextureAtlas/gem.json @@ -1,17 +1,12 @@ { "gem_name": "TextureAtlas", - "GemFormatVersion": 4, - "Uuid": "5a149b6b3c964064bd4970f0e92f72e2", - "Name": "TextureAtlas", - "DisplayName": "Texture Atlas", - "Version": "0.1.0", - "Summary": "Includes the formatting for Texture Atlases", - "Tags": ["Required", "Asset Processor Builder", "Texture Atlas"], - "IconPath": "preview.png", - "IsRequired": true, - "Modules": [ - { - "Type": "GameModule" - } - ] + "display_name": "Texture Atlas", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Texture Atlas Gem provides the formatting for texture atlases from 2D textures for LyShine.", + "canonical_tags": ["Gem"], + "user_tags": ["Rendering", "Assets", "Utility"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/TickBusOrderViewer/gem.json b/Gems/TickBusOrderViewer/gem.json index b9f70e1045..787fd24abb 100644 --- a/Gems/TickBusOrderViewer/gem.json +++ b/Gems/TickBusOrderViewer/gem.json @@ -1,16 +1,12 @@ { "gem_name": "TickBusOrderViewer", - "GemFormatVersion": 4, - "Uuid": "937fc4d2b2a94291bdeea06261c501b3", - "Name": "TickBusOrderViewer", - "DisplayName": "Tick Bus Order Console Variable", - "Version": "1.0.0", - "Summary": "Provides the console variable, print_tickbus_handlers, which displays the order of all tick events to the console. If you specify an entityId, it will only display the tick events for that entity.", - "Tags": ["Console Variable", "CVAR"], - "IconPath": "preview.png", - "Modules": [ - { - "Type": "GameModule" - } - ] + "display_name": "Tick Bus Order Viewer", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Tool", + "summary": "The Tick Bus Order Viewer Gem provides a console variable that displays the order of runtime tick events.", + "canonical_tags": ["Gem"], + "user_tags": ["Gameplay", "Simulation", "Utility"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/Twitch/gem.json b/Gems/Twitch/gem.json index 3755226862..b5e2f3a3b2 100644 --- a/Gems/Twitch/gem.json +++ b/Gems/Twitch/gem.json @@ -1,19 +1,12 @@ { "gem_name": "Twitch", - "GemFormatVersion": 3, - "Uuid": "b63e64141fab40b791211ba257632e84", - "Name": "Twitch", - "DisplayName": "Twitch", - "Version": "1.0.0", - "LinkType": "Dynamic", - "Summary": "Provides access to the Twitch API v5 SDK including social functions, channels, and other APIs.", - "Tags": ["Twitch","SDK","Social"], - "IconPath": "preview.png", - "Dependencies": [ - { - "Uuid": "28479e255bde466e91fc34eec808d9c7", - "VersionConstraints": [ "~>1.0" ], - "_comment": "HttpRequestor" - } - ] + "display_name": "Twitch", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Twitch Gem provides access to the Twitch API v5 SDK including social functions, channels, and other APIs.", + "canonical_tags": ["Gem"], + "user_tags": ["Network", "SDK", "Multiplayer"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/UiBasics/gem.json b/Gems/UiBasics/gem.json index de814796cb..9cd1548f57 100644 --- a/Gems/UiBasics/gem.json +++ b/Gems/UiBasics/gem.json @@ -1,12 +1,12 @@ { "gem_name": "UiBasics", - "GemFormatVersion": 3, - "LinkType": "NoCode", - "Name": "UiBasics", - "DisplayName": "UI Basics", - "Summary": "Provides basic UI prefabs: image, text, button, and text input, as well as the textures that those prefabs require.", - "Uuid": "6bb61c9e547043f0afc5019d6d460b78", - "Version": "0.1.0", - "IconPath": "preview.png", - "Tags": ["UI", "Prefab", "Button", "Image"] + "display_name": "UI Basics", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Asset", + "summary": "The UI Basics Gem provides a collection of basic UI prefabs such as image, text, and button, that can be used with LyShine, the Open 3D Engine runtime User Interface system and editor.", + "canonical_tags": ["Gem"], + "user_tags": ["UI", "Assets", "Utility"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/Vegetation/Code/Source/Debugger/DebugComponent.cpp b/Gems/Vegetation/Code/Source/Debugger/DebugComponent.cpp index c24c380d6f..5fa2d6fd88 100644 --- a/Gems/Vegetation/Code/Source/Debugger/DebugComponent.cpp +++ b/Gems/Vegetation/Code/Source/Debugger/DebugComponent.cpp @@ -10,7 +10,10 @@ #include "AreaSystemComponent.h" #include "InstanceSystemComponent.h" +#include +#include #include +#include #include #include #include @@ -22,11 +25,6 @@ #include #include -#include -#include -#include -#include - #include namespace Vegetation @@ -112,18 +110,16 @@ void DebugComponent::Activate() DebugRequestBus::Handler::BusConnect(); DebugNotificationBus::Handler::BusConnect(); DebugNotificationBus::AllowFunctionQueuing(true); - AzFramework::DebugDisplayEventBus::Handler::BusConnect(); + AzFramework::EntityDebugDisplayEventBus::Handler::BusConnect(GetEntityId()); SystemConfigurationRequestBus::Handler::BusConnect(); - AddConsoleVariables(); VEG_PROFILE_METHOD(DebugSystemDataBus::BroadcastResult(m_debugData, &DebugSystemDataBus::Events::GetDebugData)); } void DebugComponent::Deactivate() { - RemoveConsoleVariables(); SystemConfigurationRequestBus::Handler::BusDisconnect(); - AzFramework::DebugDisplayEventBus::Handler::BusDisconnect(); + AzFramework::EntityDebugDisplayEventBus::Handler::BusDisconnect(); DebugRequestBus::Handler::BusDisconnect(); DebugNotificationBus::Handler::BusDisconnect(); @@ -153,7 +149,7 @@ bool DebugComponent::WriteOutConfig(AZ::ComponentConfig* outBaseConfig) const return false; } -void DebugComponent::DrawGlobalDebugInfo() +void DebugComponent::DisplayEntityViewport(const AzFramework::ViewportInfo& viewportInfo, AzFramework::DebugDisplayRequests& debugDisplay) { // time to collect the report? if (AZStd::chrono::microseconds(AZStd::chrono::system_clock::now() - m_lastCollectionTime).count() > m_configuration.m_collectionFrequencyUs) @@ -173,23 +169,25 @@ void DebugComponent::DrawGlobalDebugInfo() m_exportCurrentReport = false; } + if (m_configuration.m_showVisualization) + { + DrawSectorTimingData(viewportInfo, debugDisplay); + } + if (m_configuration.m_showDebugStats) { - DrawDebugStats(); + DrawDebugStats(debugDisplay); } if (m_configuration.m_showInstanceVisualization) { - DrawInstanceDebug(); + DrawInstanceDebug(debugDisplay); } } -void DebugComponent::DrawInstanceDebug() +void DebugComponent::DrawInstanceDebug(AzFramework::DebugDisplayRequests& debugDisplay) { #if defined(VEG_PROFILE_ENABLED) - // ToDo: Re-implement with Atom. LYN-3681 - /*renderAuxGeom->SetRenderFlags(e_Mode3D | e_FillModeSolid | e_CullModeBack | e_DepthWriteOff | e_DepthTestOn); - AZStd::unordered_map areaDebugDisplayDataMap; for (const auto& instance : m_activeInstances) @@ -213,16 +211,87 @@ void DebugComponent::DrawInstanceDebug() { continue; } - - Vec3 pos(AZVec3ToLYVec3(instanceData.m_position)); - Vec3 radius(areaDebugDisplayData.m_instanceSize * 0.5f); - AABB bounds(pos - radius, pos + radius); - renderAuxGeom->DrawAABB(bounds, true, ColorB(areaDebugDisplayData.m_instanceColor.ToU32()), eBBD_Faceted); - }*/ + AZ::Vector3 radius(areaDebugDisplayData.m_instanceSize * 0.5f); + debugDisplay.SetColor(areaDebugDisplayData.m_instanceColor); + debugDisplay.DrawSolidBox(instanceData.m_position - radius, instanceData.m_position + radius); + } #endif } +void DebugComponent::DrawSectorTimingData(const AzFramework::ViewportInfo& viewportInfo, AzFramework::DebugDisplayRequests& debugDisplay) +{ + static const AZ::Color s_green = AZ::Color(0.3f, 0.9f, 0.3f, .05f); + static const AZ::Color s_yellow = AZ::Color(1.0f, 1.0f, 0.0f, .05f); + static const AZ::Color s_red = AZ::Color(1.0f, 0.0f, 0.0f, .05f); + static const float boxHeightAboveTerrain = 3.0f; + + + AreaSystemConfig areaConfig; + SystemConfigurationRequestBus::Broadcast(&SystemConfigurationRequestBus::Events::GetSystemConfig, &areaConfig); + const auto sectorSizeInMeters = areaConfig.m_sectorSizeInMeters; + const AZ::u32 maxTextDisplayDistance = m_configuration.m_maxLabelDisplayDistance; + const int maxDisplayCount = m_configuration.m_maxDatapointDisplayCount; + + AZ::Vector3 cameraPos(0.0f); + if (auto viewportContextRequests = AZ::RPI::ViewportContextRequests::Get(); viewportContextRequests) + { + AZ::RPI::ViewportContextPtr viewportContext = viewportContextRequests->GetViewportContextById(viewportInfo.m_viewportId); + cameraPos = viewportContext->GetCameraTransform().GetTranslation(); + } + AZ::Vector2 cameraPos2d(cameraPos.GetX(), cameraPos.GetY()); + + for (int i = 0; i < maxDisplayCount && i < m_currentSortedTimingList.size(); ++i) + { + const auto& sectorTiming = m_currentSortedTimingList[i]; + + AZ::Vector3 topCorner{ float(sectorTiming.m_id.first), float(sectorTiming.m_id.second), 0.0f }; + topCorner *= float(sectorSizeInMeters); + + AZ::Vector3 bottomCorner = topCorner + + AZ::Vector3(float(sectorSizeInMeters), float(sectorSizeInMeters), sectorTiming.m_worldPosition.GetZ() + boxHeightAboveTerrain); + + auto aabb = AZ::Aabb::CreateFromMinMax(topCorner, bottomCorner); + const AZ::Color* color = &s_yellow; + + if (sectorTiming.m_averageTimeUs >= m_configuration.m_maxThresholdUs) + { + color = &s_red; + } + else if (sectorTiming.m_averageTimeUs < m_configuration.m_minThresholdUs) + { + color = &s_green; + } + + AZ::Color outlineColor(color->GetR(), color->GetG(), color->GetB(), 1.0f); + + // Box around the entire sector + debugDisplay.SetColor(*color); + debugDisplay.DrawSolidBox(aabb.GetMin(), aabb.GetMax()); + debugDisplay.SetColor(outlineColor); + debugDisplay.DrawWireBox(aabb.GetMin(), aabb.GetMax()); + + // Smaller box inside the sector + const AZ::Vector3 innerBoxRadius(0.5f); + debugDisplay.SetColor(outlineColor); + debugDisplay.DrawSolidBox(sectorTiming.m_worldPosition - innerBoxRadius, sectorTiming.m_worldPosition + innerBoxRadius); + + AZ::Vector2 sectorPos2d(sectorTiming.m_worldPosition.GetX(), sectorTiming.m_worldPosition.GetY()); + float distanceToCamera = cameraPos2d.GetDistance(sectorPos2d); + + if (distanceToCamera <= maxTextDisplayDistance) + { + AZStd::string displayString = AZStd::string::format("Sector %d, %d\nTime: %dus\nUpdate Count: %d", sectorTiming.m_id.first, + sectorTiming.m_id.second, static_cast(sectorTiming.m_averageTimeUs), sectorTiming.m_updateCount); + + constexpr bool centerText = true; + constexpr float fontSize = 1.5f; + debugDisplay.SetColor(AZ::Color(1.0f)); + debugDisplay.DrawTextLabel(sectorTiming.m_worldPosition, fontSize, displayString.c_str(), centerText); + } + } +} + void DebugComponent::CopyReportToSortedList() { m_currentSortedTimingList.clear(); @@ -885,23 +954,9 @@ void DebugComponent::PrepareNextReport() }); } -void DebugComponent::RemoveConsoleVariables() +void DebugComponent::DrawDebugStats(AzFramework::DebugDisplayRequests& debugDisplay) { - ISystem* crySystem = GetISystem(); - if (crySystem && crySystem->GetIConsole()) - { - IConsole* console = crySystem->GetIConsole(); - console->RemoveCommand("veg_debugToggleVisualization"); - console->RemoveCommand("veg_debugDumpReport"); - console->RemoveCommand("veg_debugRefreshAllAreas"); - console->RemoveCommand("veg_debugClearAllAreas"); - } -} - -void DebugComponent::DrawDebugStats() -{ - // ToDo: Re-implement with Atom. LYN-3681 - /*if (!m_debugData) + if (!m_debugData) { return; } @@ -915,52 +970,48 @@ void DebugComponent::DrawDebugStats() AZ::u32 destroyTaskCount = 0; InstanceSystemStatsRequestBus::BroadcastResult(destroyTaskCount, &InstanceSystemStatsRequestBus::Events::GetDestroyTaskCount); - renderAuxGeom->Draw2dLabel(4, 16, 1.5f, ColorF(1, 1, 1), false, - AZStd::string::format("VegetationSystemStats:\nActive Instances Count: %d\nInstance Register Queue: %d\nInstance Unregister Queue: %d\nThread Queue Count: %d\nThread Processing Count: %d", - instanceCount, - createTaskCount, - destroyTaskCount, - m_debugData->m_areaTaskQueueCount.load(AZStd::memory_order_relaxed), - m_debugData->m_areaTaskActiveCount.load(AZStd::memory_order_relaxed) - ).c_str());*/ + debugDisplay.SetColor(AZ::Color(1.0f)); + debugDisplay.Draw2dTextLabel( + 4.0f, 16.0f, 1.5f, + AZStd::string::format( + "VegetationSystemStats:\nActive Instances Count: %d\nInstance Register Queue: %d\nInstance Unregister Queue: %d\nThread " + "Queue Count: %d\nThread Processing Count: %d", + instanceCount, createTaskCount, destroyTaskCount, m_debugData->m_areaTaskQueueCount.load(AZStd::memory_order_relaxed), + m_debugData->m_areaTaskActiveCount.load(AZStd::memory_order_relaxed)) + .c_str(), + false); } -void DebugComponent::AddConsoleVariables() +namespace { - ISystem* crySystem = GetISystem(); - if (crySystem && crySystem->GetIConsole()) + static void veg_debugToggleVisualization([[maybe_unused]] const AZ::ConsoleCommandContainer& arguments) { - IConsole* console = crySystem->GetIConsole(); - - static auto fnCmdToggleDebugger = []([[maybe_unused]] IConsoleCmdArgs* args) - { - DebugNotificationBus::Broadcast(&DebugNotificationBus::Events::ToggleVisualization); - }; - console->AddCommand("veg_debugToggleVisualization", fnCmdToggleDebugger, VF_NULL, "Toggles visualization of sector timings"); + DebugNotificationBus::Broadcast(&DebugNotificationBus::Events::ToggleVisualization); + } + AZ_CONSOLEFREEFUNC(veg_debugToggleVisualization, AZ::ConsoleFunctorFlags::DontReplicate, "Toggles visualization of sector timings"); - static auto fnCmdDumpReport = []([[maybe_unused]] IConsoleCmdArgs* args) - { - DebugNotificationBus::Broadcast(&DebugNotificationBus::Events::ExportCurrentReport); - }; - console->AddCommand("veg_debugDumpReport", fnCmdDumpReport, VF_NULL, "Writes out a vegetation sector report"); + static void veg_debugDumpReport([[maybe_unused]] const AZ::ConsoleCommandContainer& arguments) + { + DebugNotificationBus::Broadcast(&DebugNotificationBus::Events::ExportCurrentReport); + } + AZ_CONSOLEFREEFUNC(veg_debugDumpReport, AZ::ConsoleFunctorFlags::DontReplicate, "Writes out a vegetation sector report"); - static auto fnRefreshAllAreas = []([[maybe_unused]] IConsoleCmdArgs* args) - { - AreaSystemRequestBus::Broadcast(&AreaSystemRequestBus::Events::RefreshAllAreas); - }; - console->AddCommand("veg_debugRefreshAllAreas", fnRefreshAllAreas, VF_NULL, "Refresh all vegetation areas in the current view"); + static void veg_debugRefreshAllAreas([[maybe_unused]] const AZ::ConsoleCommandContainer& arguments) + { + AreaSystemRequestBus::Broadcast(&AreaSystemRequestBus::Events::RefreshAllAreas); + } + AZ_CONSOLEFREEFUNC( + veg_debugRefreshAllAreas, AZ::ConsoleFunctorFlags::DontReplicate, "Refresh all vegetation areas in the current view"); - static auto fnClearAllAreas = []([[maybe_unused]] IConsoleCmdArgs* args) - { - AreaSystemRequestBus::Broadcast(&AreaSystemRequestBus::Events::ClearAllAreas); - AreaSystemRequestBus::Broadcast(&AreaSystemRequestBus::Events::RefreshAllAreas); - }; - console->AddCommand("veg_debugClearAllAreas", fnClearAllAreas, VF_NULL, "Clear and refresh all vegetation areas in the current view"); + static void veg_debugClearAllAreas([[maybe_unused]] const AZ::ConsoleCommandContainer& arguments) + { + AreaSystemRequestBus::Broadcast(&AreaSystemRequestBus::Events::ClearAllAreas); + AreaSystemRequestBus::Broadcast(&AreaSystemRequestBus::Events::RefreshAllAreas); } -} + AZ_CONSOLEFREEFUNC( + veg_debugClearAllAreas, AZ::ConsoleFunctorFlags::DontReplicate, "Clear and refresh all vegetation areas in the current view"); + -namespace -{ const char* GetSortTypeString(DebugRequests::SortType sortType) { switch (sortType) diff --git a/Gems/Vegetation/Code/Source/Debugger/DebugComponent.h b/Gems/Vegetation/Code/Source/Debugger/DebugComponent.h index 6362d98371..224ad5ded5 100644 --- a/Gems/Vegetation/Code/Source/Debugger/DebugComponent.h +++ b/Gems/Vegetation/Code/Source/Debugger/DebugComponent.h @@ -54,7 +54,7 @@ namespace Vegetation class DebugComponent : public AZ::Component - , private AzFramework::DebugDisplayEventBus::Handler + , private AzFramework::EntityDebugDisplayEventBus::Handler , private DebugRequestBus::Handler , private DebugNotificationBus::Handler , private SystemConfigurationRequestBus::Handler @@ -79,7 +79,8 @@ namespace Vegetation ////////////////////////////////////////////////////////////////////////// // EntityDebugDisplayEventBus - void DrawGlobalDebugInfo() override; + void DisplayEntityViewport( + const AzFramework::ViewportInfo& viewportInfo, AzFramework::DebugDisplayRequests& debugDisplay) override; ////////////////////////////////////////////////////////////////////////// // DebugNotifications @@ -112,10 +113,9 @@ namespace Vegetation protected: void PrepareNextReport(); void CopyReportToSortedList(); - void AddConsoleVariables(); - void RemoveConsoleVariables(); - void DrawDebugStats(); - void DrawInstanceDebug(); + void DrawSectorTimingData(const AzFramework::ViewportInfo& viewportInfo, AzFramework::DebugDisplayRequests& debugDisplay); + void DrawDebugStats(AzFramework::DebugDisplayRequests& debugDisplay); + void DrawInstanceDebug(AzFramework::DebugDisplayRequests& debugDisplay); private: AZStd::atomic_bool m_exportCurrentReport{ false }; diff --git a/Gems/Vegetation/gem.json b/Gems/Vegetation/gem.json index 5bc744a94d..1796123014 100644 --- a/Gems/Vegetation/gem.json +++ b/Gems/Vegetation/gem.json @@ -1,44 +1,12 @@ { "gem_name": "Vegetation", - "Dependencies": [ - { - "Uuid": "ff06785f7145416b9d46fde39098cb0c", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "LmbrCentral" - }, - { - "Uuid": "8825563d9d964ec3be3bab681f3bd9f2", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "GradientSignal" - }, - { - "Uuid": "5de82d29d6094bfe97c1a4d35fcd5fbe", - "VersionConstraints": [ - "~>0.1" - ], - "_comment": "SurfaceData" - } - ], - "GemFormatVersion": 4, - "Uuid": "f394e7cf54424bba89615381bba9511b", - "Name": "Vegetation", - "DisplayName": "Vegetation [PREVIEW]", - "Version": "0.1.0", - "Summary": "A Lumberyard Gem for authoring Dynamic Procedural Vegetation (A real-time planting engine).
NOTE: The Landscape Canvas gem is an optional node-based Editor that provides the recommended workflows for authoring/editing Dynamic Vegetation content.", - "Tags": ["Vegetation"], - "IconPath": "preview.png", - "Modules": [ - { - "Type": "GameModule" - }, - { - "Name": "Editor", - "Type": "EditorModule", - "Extends": "GameModule" - } - ] + "display_name": "Vegetation", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Vegetation Gem provides tools to place natural-looking vegetation in Open 3D Engine.", + "canonical_tags": ["Gem"], + "user_tags": ["Environment", "Tools", "Design"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/VideoPlaybackFramework/gem.json b/Gems/VideoPlaybackFramework/gem.json index 3050863571..05598a8e5e 100644 --- a/Gems/VideoPlaybackFramework/gem.json +++ b/Gems/VideoPlaybackFramework/gem.json @@ -1,16 +1,12 @@ { "gem_name": "VideoPlaybackFramework", - "GemFormatVersion": 4, - "Uuid": "560d69cbaafd40bea8a09bccfe7f77e6", - "Name": "VideoPlaybackFramework", - "DisplayName": "Video Playback Framework", - "Version": "0.1.0", - "Summary": "The Video Playback Framework Gem provides the interface to play back video during gameplay. This gem is automatically enabled when selecting any of the Video Playback Gems.", - "Tags": ["Video"], - "IconPath": "preview.png", - "Modules": [ - { - "Type": "GameModule" - } - ] + "display_name": "Video Playback Framework", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Video Playback Framework Gem provides the interface to play back video.", + "canonical_tags": ["Gem"], + "user_tags": ["Rendering", "Framework"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/VirtualGamepad/gem.json b/Gems/VirtualGamepad/gem.json index 39e0e4e2f8..610f203f7c 100644 --- a/Gems/VirtualGamepad/gem.json +++ b/Gems/VirtualGamepad/gem.json @@ -1,16 +1,12 @@ { - "gem_name": "VirtualGampad", - "GemFormatVersion": 4, - "Uuid": "8aa9a66015804d6d9c809ce306e7d913", - "Name": "VirtualGamepad", - "DisplayName": "VirtualGamepad", - "Version": "0.1.0", - "Summary": "Example of a virtual gamepad that can be used by mobile devices with touch screens in place of a physical gamepad.", - "Tags": ["Input", "Mobile"], - "IconPath": "preview.png", - "Modules": [ - { - "Type": "GameModule" - } - ] + "gem_name": "VirtualGamepad", + "display_name": "Virtual Gamepad", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Code", + "summary": "The Virtual Gamepad Gem provides controls that emulate a gamepad on touch screen devices.", + "canonical_tags": ["Gem"], + "user_tags": ["Input", "Gameplay"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/Gems/WhiteBox/gem.json b/Gems/WhiteBox/gem.json index de05a0d52b..a46434dd65 100644 --- a/Gems/WhiteBox/gem.json +++ b/Gems/WhiteBox/gem.json @@ -1,21 +1,12 @@ { "gem_name": "WhiteBox", - "GemFormatVersion": 4, - "Uuid": "c5833dbda2e045d3a5f16b7414280c27", - "Name": "WhiteBox", - "DisplayName": "White Box", - "Version": "0.1.0", - "Summary": "A tool for quickly prototyping levels in the editor.", - "Tags": ["Editor"], - "IconPath": "preview.png", - "Modules": [ - { - "Type": "GameModule" - }, - { - "Name": "Editor", - "Type": "EditorModule", - "Extends": "GameModule" - } - ] + "display_name": "White Box", + "license": "Apache-2.0 Or MIT", + "origin": "Open 3D Engine - o3de.org", + "type": "Tool", + "summary": "The White Box Gem provides White Box rapid design components for Open 3D Engine.", + "canonical_tags": ["Gem"], + "user_tags": ["Design", "Tools", "Utility"], + "icon_path": "preview.png", + "requirements": "" } diff --git a/README.md b/README.md index 9cc816efe9..6b88097739 100644 --- a/README.md +++ b/README.md @@ -1,77 +1,33 @@ -## Updates to this readme -July 06, 2021 -- Switch licenses to APACHE-2.0 OR MIT +# Open 3D Engine -May 14, 2021 -- Removed instructions for the 3rdParty zip file and downloader URL. This is no longer a requirement. -- Updated instructions for dependencies -- Links to full documentation +Open 3D Engine (O3DE) is an open-source, real-time, multi-platform 3D engine that enables developers and content creators to build AAA games, cinema-quality 3D worlds, and high-fidelity simulations without any fees or commercial obligations. -April 7-13, 2021 -- Updates to the 3rdParty zip file - -March 25, 2021 -- Initial commit for instructions +## Contribute +For information about contributing to Open 3D Engine, visit https://o3de.org/docs/contributing/ ## Download and Install -This repository uses Git LFS for storing large binary files. You will need to create a Github personal access token to authenticate with the LFS service. - -To install Git LFS, download the binary here: https://git-lfs.github.com/. +This repository uses Git LFS for storing large binary files. -After installation, you will need to install the necessary git hooks with this command +Verify you have Git LFS installed by running the following command to print the version number. ``` -git lfs install +git lfs --version ``` -### Create a Git Personal Access Token - -You will need your personal access token credentials to authenticate when you clone the repository and when downloading objects from Git LFS - -[Create a personal access token with the 'repo' scope.](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token) - -During the clone operation, you will be prompted to enter a password. Your token will be used as the password. You will also be prompted a second time for Git LFS. - -### (Recommended) Verify you have a credential manager installed to store your credentials +If Git LFS is not installed, download and run the installer from: https://git-lfs.github.com/. -Recent versions of Git install a credential manager to store your credentials so you don't have to put in the credentials for every request. - -It is highly recommended you check that you have a [credential manager installed and configured](https://github.com/microsoft/Git-Credential-Manager-Core) - -For Linux and Mac, use the following commands to store credentials - -Linux: +### Install Git LFS hooks ``` -git config --global credential.helper cache -``` -Mac: -``` -git config --global credential.helper osxkeychain +git lfs install ``` + ### Clone the repository ```shell -> git clone https://github.com/o3de/o3de.git -Cloning into 'o3de'... - -# initial prompt for credentials to download the repository code -# enter your Github username and personal access token - -remote: Counting objects: 29619, done. -Receiving objects: 100% (29619/29619), 40.50 MiB | 881.00 KiB/s, done. -Resolving deltas: 100% (8829/8829), done. -Updating files: 100% (27037/27037), done. - -# second prompt for credentials when downloading LFS files -# enter your Github username and personal access token - -Filtering content: 100% (3853/3853), 621.43 MiB | 881.00 KiB/s, done. - +git clone https://github.com/o3de/o3de.git ``` -If you have the Git credential manager core or other credential helpers installed, you should not be prompted for your credentials anymore. - ## Building the Engine ### Build Requirements and redistributables #### Windows @@ -85,33 +41,21 @@ If you have the Git credential manager core or other credential helpers installe #### Optional -* WWise - 2019.2.8.7432 minimum: [https://www.audiokinetic.com/download/](https://www.audiokinetic.com/download/) - * Note: This requires registration and installation of a client to download - * You will also need to set a environment variable: `set LY_WWISE_INSTALL_PATH=` - * For example: `set LY_WWISE_INSTALL_PATH="C:\Program Files (x86)\Audiokinetic\Wwise 2019.2.8.7432"` +* Wwise - 2021.1.1.7601 minimum: [https://www.audiokinetic.com/download/](https://www.audiokinetic.com/download/) + * Note: This requires registration and installation of a client application to download + * Make sure to select the SDK(C++) component during installation of Wwise + * You will also need to set an environment variable: `set LY_WWISE_INSTALL_PATH=` + * For example: `set LY_WWISE_INSTALL_PATH="C:\Program Files (x86)\Audiokinetic\Wwise 2021.1.1.7601"` ### Quick Start Build Steps 1. Create a writable folder to cache 3rd Party dependencies. You can also use this to store other redistributable SDKs. - > For the 0.5 branch - Create an empty text file named `3rdParty.txt` in this folder, to allow a legacy CMake validator to pass - 1. Install the following redistributables to the following: - Visual Studio and VC++ redistributable can be installed to any location - CMake can be installed to any location, as long as it's available in the system path - - WWise can be installed anywhere, but you will need to set an environment variable for CMake to detect it: `set LY_WWISE_INSTALL_PATH=` + - (Optional) Wwise can be installed anywhere, but you will need to set an environment variable for CMake to detect it: `set LY_WWISE_INSTALL_PATH=` -1. Navigate into the repo folder, then download the python runtime with this command - - > For the 0.5 branch - Set this environment variable prior to the `get_python` command below: - > ``` - > set LY_PACKAGE_SERVER_URLS=https://d2c171ws20a1rv.cloudfront.net - > ``` - - ``` - python\get_python.bat - ``` - 1. Configure the source into a solution using this command line, replacing and <3rdParty cache path> to a path you've created: ``` cmake -B -S -G "Visual Studio 16" -DLY_3RDPARTY_PATH=<3rdParty cache path> -DLY_UNITY_BUILD=ON -DLY_PROJECTS=AutomatedTesting @@ -139,7 +83,7 @@ If you have the Git credential manager core or other credential helpers installe ``` scripts\o3de.bat register --this-engine ``` -1. Setup new projects using the `o3de create-project` command. In the 0.5 branch, the project directory must be a subdirectory in the repo folder. +1. Setup new projects using the `o3de create-project` command. ``` \scripts\o3de.bat create-project --project-path ``` @@ -151,10 +95,6 @@ If you have the Git credential manager core or other credential helpers installe ``` cmake -B -S -G "Visual Studio 16" -DLY_3RDPARTY_PATH=<3rdParty cache path> - // For the 0.5 branch, you must build a new Editor for each project: - cmake --build --target .GameLauncher Editor --config profile -- /m - - // For all other branches, just build the project: cmake --build --target .GameLauncher --config profile -- /m ``` diff --git a/Templates/AssetGem/Template/gem.json b/Templates/AssetGem/Template/gem.json index 5b8fb3fde0..2a688857f2 100644 --- a/Templates/AssetGem/Template/gem.json +++ b/Templates/AssetGem/Template/gem.json @@ -1,14 +1,17 @@ { "gem_name": "${Name}", - "origin": "The primary repo for ${Name} goes here: i.e. http://www.mydomain.com", - "license": "What license ${Name} uses goes here: i.e. https://opensource.org/licenses/MIT", "display_name": "${Name}", + "license": "What license ${Name} uses goes here: i.e. https://opensource.org/licenses/MIT", + "origin": "The primary repo for ${Name} goes here: i.e. http://www.mydomain.com", + "type": "Asset", "summary": "A short description of ${Name}.", "canonical_tags": [ "Gem" ], "user_tags": [ + "Assets", "${Name}" ], - "icon_path": "preview.png" + "icon_path": "preview.png", + "requirements": "" } diff --git a/Templates/DefaultGem/Template/gem.json b/Templates/DefaultGem/Template/gem.json index 5b8fb3fde0..353ad6bf8d 100644 --- a/Templates/DefaultGem/Template/gem.json +++ b/Templates/DefaultGem/Template/gem.json @@ -1,8 +1,9 @@ { "gem_name": "${Name}", - "origin": "The primary repo for ${Name} goes here: i.e. http://www.mydomain.com", - "license": "What license ${Name} uses goes here: i.e. https://opensource.org/licenses/MIT", "display_name": "${Name}", + "license": "What license ${Name} uses goes here: i.e. https://opensource.org/licenses/MIT", + "origin": "The primary repo for ${Name} goes here: i.e. http://www.mydomain.com", + "type": "Code", "summary": "A short description of ${Name}.", "canonical_tags": [ "Gem" @@ -10,5 +11,6 @@ "user_tags": [ "${Name}" ], - "icon_path": "preview.png" + "icon_path": "preview.png", + "requirements": "" } diff --git a/Templates/DefaultProject/Template/Code/gem.json b/Templates/DefaultProject/Template/Code/gem.json index 5b8fb3fde0..353ad6bf8d 100644 --- a/Templates/DefaultProject/Template/Code/gem.json +++ b/Templates/DefaultProject/Template/Code/gem.json @@ -1,8 +1,9 @@ { "gem_name": "${Name}", - "origin": "The primary repo for ${Name} goes here: i.e. http://www.mydomain.com", - "license": "What license ${Name} uses goes here: i.e. https://opensource.org/licenses/MIT", "display_name": "${Name}", + "license": "What license ${Name} uses goes here: i.e. https://opensource.org/licenses/MIT", + "origin": "The primary repo for ${Name} goes here: i.e. http://www.mydomain.com", + "type": "Code", "summary": "A short description of ${Name}.", "canonical_tags": [ "Gem" @@ -10,5 +11,6 @@ "user_tags": [ "${Name}" ], - "icon_path": "preview.png" + "icon_path": "preview.png", + "requirements": "" } diff --git a/Templates/DefaultProject/Template/Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/Contents.json b/Templates/DefaultProject/Template/Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/Contents.json index bfa8bcf478..2b63c0ee15 100644 --- a/Templates/DefaultProject/Template/Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/Contents.json +++ b/Templates/DefaultProject/Template/Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/Contents.json @@ -33,7 +33,7 @@ { "size" : "128x128", "idiom" : "mac", - "filename" : "icon_128 _2x.png", + "filename" : "icon_128_2x.png", "scale" : "2x" }, { @@ -45,7 +45,7 @@ { "size" : "256x256", "idiom" : "mac", - "filename" : "icon_256 _2x.png", + "filename" : "icon_256_2x.png", "scale" : "2x" }, { diff --git a/Templates/MinimalProject/Template/Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_128 _2x.png b/Templates/DefaultProject/Template/Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_128_2x.png similarity index 100% rename from Templates/MinimalProject/Template/Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_128 _2x.png rename to Templates/DefaultProject/Template/Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_128_2x.png diff --git a/Templates/MinimalProject/Template/Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_256 _2x.png b/Templates/DefaultProject/Template/Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_256_2x.png similarity index 100% rename from Templates/MinimalProject/Template/Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_256 _2x.png rename to Templates/DefaultProject/Template/Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_256_2x.png diff --git a/Templates/DefaultProject/template.json b/Templates/DefaultProject/template.json index 5eaf66e3af..37409a11b4 100644 --- a/Templates/DefaultProject/template.json +++ b/Templates/DefaultProject/template.json @@ -271,8 +271,8 @@ "isOptional": false }, { - "file": "Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_128 _2x.png", - "origin": "Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_128 _2x.png", + "file": "Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_128_2x.png", + "origin": "Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_128_2x.png", "isTemplated": false, "isOptional": false }, @@ -295,8 +295,8 @@ "isOptional": false }, { - "file": "Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_256 _2x.png", - "origin": "Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_256 _2x.png", + "file": "Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_256_2x.png", + "origin": "Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_256_2x.png", "isTemplated": false, "isOptional": false }, diff --git a/Templates/MinimalProject/Template/Code/gem.json b/Templates/MinimalProject/Template/Code/gem.json index 5b8fb3fde0..353ad6bf8d 100644 --- a/Templates/MinimalProject/Template/Code/gem.json +++ b/Templates/MinimalProject/Template/Code/gem.json @@ -1,8 +1,9 @@ { "gem_name": "${Name}", - "origin": "The primary repo for ${Name} goes here: i.e. http://www.mydomain.com", - "license": "What license ${Name} uses goes here: i.e. https://opensource.org/licenses/MIT", "display_name": "${Name}", + "license": "What license ${Name} uses goes here: i.e. https://opensource.org/licenses/MIT", + "origin": "The primary repo for ${Name} goes here: i.e. http://www.mydomain.com", + "type": "Code", "summary": "A short description of ${Name}.", "canonical_tags": [ "Gem" @@ -10,5 +11,6 @@ "user_tags": [ "${Name}" ], - "icon_path": "preview.png" + "icon_path": "preview.png", + "requirements": "" } diff --git a/Templates/MinimalProject/Template/Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/Contents.json b/Templates/MinimalProject/Template/Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/Contents.json index bfa8bcf478..2b63c0ee15 100644 --- a/Templates/MinimalProject/Template/Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/Contents.json +++ b/Templates/MinimalProject/Template/Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/Contents.json @@ -33,7 +33,7 @@ { "size" : "128x128", "idiom" : "mac", - "filename" : "icon_128 _2x.png", + "filename" : "icon_128_2x.png", "scale" : "2x" }, { @@ -45,7 +45,7 @@ { "size" : "256x256", "idiom" : "mac", - "filename" : "icon_256 _2x.png", + "filename" : "icon_256_2x.png", "scale" : "2x" }, { diff --git a/Templates/MinimalProject/Template/Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_128_2x.png b/Templates/MinimalProject/Template/Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_128_2x.png new file mode 100644 index 0000000000..d30f2d3686 --- /dev/null +++ b/Templates/MinimalProject/Template/Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_128_2x.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:094620c172320b062f9a1f8cc758ef4bbee11bc0a6049f46ad6b42f9bf613c92 +size 9679 diff --git a/Templates/MinimalProject/Template/Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_256_2x.png b/Templates/MinimalProject/Template/Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_256_2x.png new file mode 100644 index 0000000000..f9ff1c15e3 --- /dev/null +++ b/Templates/MinimalProject/Template/Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_256_2x.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:934502e242ff7a2e34e21eed1424b5e0953e701761d158520b3297944132328e +size 18716 diff --git a/Templates/MinimalProject/template.json b/Templates/MinimalProject/template.json index a244904578..9d9ef730c1 100644 --- a/Templates/MinimalProject/template.json +++ b/Templates/MinimalProject/template.json @@ -269,8 +269,8 @@ "isOptional": false }, { - "file": "Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_128 _2x.png", - "origin": "Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_128 _2x.png", + "file": "Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_128_2x.png", + "origin": "Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_128_2x.png", "isTemplated": false, "isOptional": false }, @@ -293,8 +293,8 @@ "isOptional": false }, { - "file": "Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_256 _2x.png", - "origin": "Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_256 _2x.png", + "file": "Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_256_2x.png", + "origin": "Resources/Platform/Mac/Images.xcassets/TestDPAppIcon.appiconset/icon_256_2x.png", "isTemplated": false, "isOptional": false }, diff --git a/Tools/LyTestTools/ly_test_tools/log/log_monitor.py b/Tools/LyTestTools/ly_test_tools/log/log_monitor.py index a2556fa41d..54d71b62c0 100755 --- a/Tools/LyTestTools/ly_test_tools/log/log_monitor.py +++ b/Tools/LyTestTools/ly_test_tools/log/log_monitor.py @@ -133,12 +133,12 @@ class LogMonitor(object): except AssertionError: # Raised by waiter when timeout is reached. logger.warning(f"Timeout of '{timeout}' seconds was reached, log lines may not have been found") # exception will be raised below by _validate_results with failure analysis - - logger.info("Python log output:\n" + self.py_log) - logger.info( - "Finished log monitoring for '{}' seconds, validating results.\n" - "expected_lines_not_found: {}\n unexpected_lines_found: {}".format( - timeout, self.expected_lines_not_found, self.unexpected_lines_found)) + finally: + logger.info("Python log output:\n" + self.py_log) + logger.info( + "Finished log monitoring for '{}' seconds, validating results.\n" + "expected_lines_not_found: {}\n unexpected_lines_found: {}".format( + timeout, self.expected_lines_not_found, self.unexpected_lines_found)) return self._validate_results(self.expected_lines_not_found, self.unexpected_lines_found, expected_lines, unexpected_lines) @@ -265,12 +265,21 @@ class LogMonitor(object): self.unexpected_lines_found = unexpected_lines_found self.expected_lines_not_found = expected_lines_not_found + exception_info = None + # To avoid race conditions, we will check *before reading* # If in the mean time the file is closed, we will make sure we read everything by issuing an extra call # by returning the previous alive state process_runing = self.launcher.is_alive() for line in log: line = line[:-1] # remove /n - process_line(line) + try: + process_line(line) + except LogMonitorException as e: + if exception_info is None: + exception_info = e.args + + if exception_info is not None: + raise LogMonitorException(*exception_info) return not process_runing # Will loop until the process ends