merging latest origin

This commit is contained in:
karlberg
2021-05-03 21:27:27 -07:00
4864 changed files with 37281 additions and 612775 deletions
@@ -49,8 +49,8 @@ namespace AzToolsFramework
->Attribute(AZ::Edit::Attributes::AddableByUser, true)
->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game"))
->Attribute(AZ::Edit::Attributes::Category, "Entity Search Test Components")
->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Tag.png")
->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Tag.png")
->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Tag.png")
->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Tag.png")
->Attribute(AZ::Edit::Attributes::AutoExpand, true)
->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://www.amazongames.com/")
->DataElement(AZ::Edit::UIHandlers::Default, &EntitySearch_TestComponent1::m_boolValue, "Bool", "")
@@ -108,8 +108,8 @@ namespace AzToolsFramework
->Attribute(AZ::Edit::Attributes::AddableByUser, true)
->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game"))
->Attribute(AZ::Edit::Attributes::Category, "Entity Search Test Components")
->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Tag.png")
->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Tag.png")
->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Tag.png")
->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Tag.png")
->Attribute(AZ::Edit::Attributes::AutoExpand, true)
->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://www.amazongames.com/")
->DataElement(AZ::Edit::UIHandlers::Default, &EntitySearch_TestComponent2::m_floatValue, "Float", "")
@@ -125,8 +125,8 @@ namespace UnitTest
->Attribute(AZ::Edit::Attributes::AddableByUser, true)
->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("Game"))
->Attribute(AZ::Edit::Attributes::Category, "Inspector Test Components")
->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Tag.png")
->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Tag.png")
->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Tag.png")
->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Tag.png")
->Attribute(AZ::Edit::Attributes::AutoExpand, true)
->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://www.amazongames.com/")
->DataElement(AZ::Edit::UIHandlers::Default, &Inspector_TestComponent2::m_data, "Data", "The component's Data");
@@ -194,8 +194,8 @@ namespace UnitTest
->Attribute(AZ::Edit::Attributes::AddableByUser, true)
->Attribute(AZ::Edit::Attributes::AppearsInAddComponentMenu, AZ_CRC("System"))
->Attribute(AZ::Edit::Attributes::Category, "Inspector Test Components")
->Attribute(AZ::Edit::Attributes::Icon, "Editor/Icons/Components/Tag.png")
->Attribute(AZ::Edit::Attributes::ViewportIcon, "Editor/Icons/Components/Viewport/Tag.png")
->Attribute(AZ::Edit::Attributes::Icon, "Icons/Components/Tag.png")
->Attribute(AZ::Edit::Attributes::ViewportIcon, "Icons/Components/Viewport/Tag.png")
->Attribute(AZ::Edit::Attributes::AutoExpand, true)
->Attribute(AZ::Edit::Attributes::HelpPageURL, "https://www.amazongames.com/")
->DataElement(AZ::Edit::UIHandlers::Default, &Inspector_TestComponent3::m_data, "Data", "The component's Data");
@@ -78,7 +78,7 @@ namespace Benchmark
}
BENCHMARK_REGISTER_F(BM_PrefabUpdateInstances, UpdateInstances_SingeEntityInstances)
->RangeMultiplier(10)
->Range(100, 10000)
->Range(100, 1000)
->Unit(benchmark::kMillisecond)
->Complexity();
@@ -85,8 +85,6 @@ namespace UnitTest
{
constexpr const char* contextName1 = "Context1";
constexpr const char* contextName2 = "Context2";
constexpr int thumbnailSize1 = 128;
constexpr int thumbnailSize2 = 256;
auto checkHasContext = [](const char* contextName)
{
@@ -98,12 +96,12 @@ namespace UnitTest
EXPECT_FALSE(checkHasContext(contextName1));
EXPECT_FALSE(checkHasContext(contextName2));
AzToolsFramework::Thumbnailer::ThumbnailerRequestBus::Broadcast(&AzToolsFramework::Thumbnailer::ThumbnailerRequests::RegisterContext, contextName1, thumbnailSize1);
AzToolsFramework::Thumbnailer::ThumbnailerRequestBus::Broadcast(&AzToolsFramework::Thumbnailer::ThumbnailerRequests::RegisterContext, contextName1);
EXPECT_TRUE(checkHasContext(contextName1));
EXPECT_FALSE(checkHasContext(contextName2));
AzToolsFramework::Thumbnailer::ThumbnailerRequestBus::Broadcast(&AzToolsFramework::Thumbnailer::ThumbnailerRequests::RegisterContext, contextName2, thumbnailSize2);
AzToolsFramework::Thumbnailer::ThumbnailerRequestBus::Broadcast(&AzToolsFramework::Thumbnailer::ThumbnailerRequests::RegisterContext, contextName2);
EXPECT_TRUE(checkHasContext(contextName1));
EXPECT_TRUE(checkHasContext(contextName2));
@@ -123,8 +121,6 @@ namespace UnitTest
{
constexpr const char* contextName1 = "Context1";
constexpr const char* contextName2 = "Context2";
constexpr int thumbnailSize1 = 128;
constexpr int thumbnailSize2 = 256;
auto checkHasContext = [](const char* contextName)
{
@@ -133,8 +129,8 @@ namespace UnitTest
return hasContext;
};
AzToolsFramework::Thumbnailer::ThumbnailerRequestBus::Broadcast(&AzToolsFramework::Thumbnailer::ThumbnailerRequests::RegisterContext, contextName1, thumbnailSize1);
AzToolsFramework::Thumbnailer::ThumbnailerRequestBus::Broadcast(&AzToolsFramework::Thumbnailer::ThumbnailerRequests::RegisterContext, contextName2, thumbnailSize2);
AzToolsFramework::Thumbnailer::ThumbnailerRequestBus::Broadcast(&AzToolsFramework::Thumbnailer::ThumbnailerRequests::RegisterContext, contextName1);
AzToolsFramework::Thumbnailer::ThumbnailerRequestBus::Broadcast(&AzToolsFramework::Thumbnailer::ThumbnailerRequests::RegisterContext, contextName2);
EXPECT_TRUE(checkHasContext(contextName1));
EXPECT_TRUE(checkHasContext(contextName2));
@@ -149,12 +145,11 @@ namespace UnitTest
TEST_F(ThumbnailerTests, ThumbnailerComponent_RegisterContextTwice_Assert)
{
constexpr const char* contextName1 = "Context1";
constexpr int thumbnailSize1 = 128;
AzToolsFramework::Thumbnailer::ThumbnailerRequestBus::Broadcast(&AzToolsFramework::Thumbnailer::ThumbnailerRequests::RegisterContext, contextName1, thumbnailSize1);
AzToolsFramework::Thumbnailer::ThumbnailerRequestBus::Broadcast(&AzToolsFramework::Thumbnailer::ThumbnailerRequests::RegisterContext, contextName1);
AZ_TEST_START_TRACE_SUPPRESSION;
AzToolsFramework::Thumbnailer::ThumbnailerRequestBus::Broadcast(&AzToolsFramework::Thumbnailer::ThumbnailerRequests::RegisterContext, contextName1, thumbnailSize1);
AzToolsFramework::Thumbnailer::ThumbnailerRequestBus::Broadcast(&AzToolsFramework::Thumbnailer::ThumbnailerRequests::RegisterContext, contextName1);
AZ_TEST_STOP_TRACE_SUPPRESSION(1);
}
@@ -20,35 +20,35 @@
namespace UnitTest
{
using Cluster = AzToolsFramework::ViewportUi::Internal::Cluster;
using ButtonGroup = AzToolsFramework::ViewportUi::Internal::ButtonGroup;
using ButtonId = AzToolsFramework::ViewportUi::ButtonId;
TEST(ClusterTest, AddButtonAddsButtonToClusterAndReturnsId)
{
auto cluster = AZStd::make_unique<Cluster>();
auto buttonId = cluster->AddButton("");
auto buttonGroup = AZStd::make_unique<ButtonGroup>();
auto buttonId = buttonGroup->AddButton("");
auto button = cluster->GetButton(buttonId);
auto button = buttonGroup->GetButton(buttonId);
EXPECT_TRUE(button != nullptr);
}
TEST(ClusterTest, SetHighlightedButtonChangesButtonStateToSelected)
{
auto cluster = AZStd::make_unique<Cluster>();
auto buttonId = cluster->AddButton("");
auto buttonGroup = AZStd::make_unique<ButtonGroup>();
auto buttonId = buttonGroup->AddButton("");
// check button is not highlighted by default
auto button = cluster->GetButton(buttonId);
auto button = buttonGroup->GetButton(buttonId);
EXPECT_FALSE(button->m_state == AzToolsFramework::ViewportUi::Internal::Button::State::Selected);
cluster->SetHighlightedButton(buttonId);
buttonGroup->SetHighlightedButton(buttonId);
EXPECT_TRUE(button->m_state == AzToolsFramework::ViewportUi::Internal::Button::State::Selected);
}
TEST(ClusterTest, ConnectEventHandlerConnectsHandlerToButtonTriggeredEvent)
{
auto cluster = AZStd::make_unique<Cluster>();
auto buttonId = cluster->AddButton("");
auto buttonGroup = AZStd::make_unique<ButtonGroup>();
auto buttonId = buttonGroup->AddButton("");
// create a handler which will be triggered by the cluster
bool handlerTriggered = false;
@@ -62,8 +62,8 @@ namespace UnitTest
}
});
cluster->ConnectEventHandler(handler);
cluster->PressButton(buttonId);
buttonGroup->ConnectEventHandler(handler);
buttonGroup->PressButton(buttonId);
EXPECT_TRUE(handlerTriggered);
}
@@ -13,7 +13,7 @@
#include <AzCore/std/smart_ptr/make_shared.h>
#include <AzFramework/Viewport/ViewportScreen.h>
#include <AzTest/AzTest.h>
#include <AzToolsFramework/ViewportUi/Cluster.h>
#include <AzToolsFramework/ViewportUi/ButtonGroup.h>
#include <AzToolsFramework/ViewportUi/ViewportUiCluster.h>
#include <QAction>
#include <QApplication>
@@ -23,14 +23,14 @@
namespace UnitTest
{
using ViewportUiCluster = AzToolsFramework::ViewportUi::Internal::ViewportUiCluster;
using Cluster = AzToolsFramework::ViewportUi::Internal::Cluster;
using ButtonGroup = AzToolsFramework::ViewportUi::Internal::ButtonGroup;
using Button = AzToolsFramework::ViewportUi::Internal::Button;
using ButtonId = AzToolsFramework::ViewportUi::ButtonId;
TEST(ViewportUiCluster, RegisterButtonIncreasesClusterHeight)
{
auto clusterInfo = AZStd::make_shared<Cluster>();
ViewportUiCluster viewportUiCluster(clusterInfo);
auto buttonGroup = AZStd::make_shared<ButtonGroup>();
ViewportUiCluster viewportUiCluster(buttonGroup);
viewportUiCluster.resize(viewportUiCluster.minimumSizeHint());
// need to initialize cluster with a single button or size will be invalid
@@ -48,8 +48,8 @@ namespace UnitTest
TEST(ViewportUiCluster, RemoveClusterButtonDecreasesClusterHeight)
{
auto clusterInfo = AZStd::make_shared<Cluster>();
ViewportUiCluster viewportUiCluster(clusterInfo);
auto buttonGroup = AZStd::make_shared<ButtonGroup>();
ViewportUiCluster viewportUiCluster(buttonGroup);
viewportUiCluster.resize(viewportUiCluster.minimumSizeHint());
// need to initialize cluster with a single button or size will be invalid
@@ -70,8 +70,8 @@ namespace UnitTest
TEST(ViewportUiCluster, UpdateChangesActiveButton)
{
auto clusterInfo = AZStd::make_shared<Cluster>();
ViewportUiCluster viewportUiCluster(clusterInfo);
auto buttonGroup = AZStd::make_shared<ButtonGroup>();
ViewportUiCluster viewportUiCluster(buttonGroup);
// register a button to the cluster
auto button = AZStd::make_unique<Button>("", ButtonId(1));
@@ -93,8 +93,8 @@ namespace UnitTest
TEST(ViewportUiCluster, TriggeringActionTriggersClusterEventForButton)
{
auto clusterInfo = AZStd::make_shared<Cluster>();
ViewportUiCluster viewportUiCluster(clusterInfo);
auto buttonGroup = AZStd::make_shared<ButtonGroup>();
ViewportUiCluster viewportUiCluster(buttonGroup);
// create a handler which will be triggered by the button
bool handlerTriggered = false;
@@ -107,7 +107,7 @@ namespace UnitTest
handlerTriggered = true;
}
});
clusterInfo->ConnectEventHandler(handler);
buttonGroup->ConnectEventHandler(handler);
// register the button
auto button = AZStd::make_unique<Button>("", testButtonId);
@@ -23,10 +23,10 @@ namespace UnitTest
{
using ViewportUiDisplay = AzToolsFramework::ViewportUi::Internal::ViewportUiDisplay;
using ViewportUiElementId = AzToolsFramework::ViewportUi::ViewportUiElementId;
using Cluster = AzToolsFramework::ViewportUi::Internal::Cluster;
using ButtonGroup = AzToolsFramework::ViewportUi::Internal::ButtonGroup;
// sets up a parent widget and render overlay to attach the Viewport UI to
// as well as a cluster with one button
// as well as a button group with one button
class ViewportUiDisplayTestFixture : public ::testing::Test
{
public:
@@ -34,22 +34,22 @@ namespace UnitTest
void SetUp()
{
m_cluster = AZStd::make_shared<Cluster>();
m_cluster->AddButton("");
m_buttonGroup = AZStd::make_shared<ButtonGroup>();
m_buttonGroup->AddButton("");
m_parentWidget = new QWidget();
m_mockRenderOverlay = new QWidget();
}
void TearDown()
{
m_cluster.reset();
m_buttonGroup.reset();
delete m_parentWidget;
delete m_mockRenderOverlay;
}
QWidget* m_parentWidget = nullptr;
QWidget* m_mockRenderOverlay = nullptr;
AZStd::shared_ptr<Cluster> m_cluster = nullptr;
AZStd::shared_ptr<ButtonGroup> m_buttonGroup = nullptr;
};
TEST_F(ViewportUiDisplayTestFixture, ViewportUiInitializationReturnsProperlyParentedWidgets)
@@ -72,13 +72,13 @@ namespace UnitTest
TEST_F(ViewportUiDisplayTestFixture, RemoveViewportUiElementRemovesElementFromViewportUi)
{
ViewportUiDisplay viewportUi(m_parentWidget, m_mockRenderOverlay);
viewportUi.AddCluster(m_cluster);
auto widget = viewportUi.GetViewportUiElement(m_cluster->GetViewportUiElementId());
viewportUi.AddCluster(m_buttonGroup);
auto widget = viewportUi.GetViewportUiElement(m_buttonGroup->GetViewportUiElementId());
EXPECT_TRUE(widget.get() != nullptr);
viewportUi.RemoveViewportUiElement(m_cluster->GetViewportUiElementId());
widget = viewportUi.GetViewportUiElement(m_cluster->GetViewportUiElementId());
viewportUi.RemoveViewportUiElement(m_buttonGroup->GetViewportUiElementId());
widget = viewportUi.GetViewportUiElement(m_buttonGroup->GetViewportUiElementId());
EXPECT_TRUE(widget.get() == nullptr);
}
@@ -89,11 +89,11 @@ namespace UnitTest
ViewportUiDisplay viewportUi(m_parentWidget, m_mockRenderOverlay);
viewportUi.InitializeUiOverlay();
viewportUi.AddCluster(m_cluster);
viewportUi.AddCluster(m_buttonGroup);
viewportUi.Update();
viewportUi.ShowViewportUiElement(m_cluster->GetViewportUiElementId());
viewportUi.ShowViewportUiElement(m_buttonGroup->GetViewportUiElementId());
EXPECT_TRUE(viewportUi.IsViewportUiElementVisible(m_cluster->GetViewportUiElementId()));
EXPECT_TRUE(viewportUi.IsViewportUiElementVisible(m_buttonGroup->GetViewportUiElementId()));
}
TEST_F(ViewportUiDisplayTestFixture, HideViewportUiElementSetsWidgetVisibilityToFalse)
@@ -102,20 +102,20 @@ namespace UnitTest
ViewportUiDisplay viewportUi(m_parentWidget, m_mockRenderOverlay);
viewportUi.InitializeUiOverlay();
viewportUi.AddCluster(m_cluster);
viewportUi.HideViewportUiElement(m_cluster->GetViewportUiElementId());
viewportUi.AddCluster(m_buttonGroup);
viewportUi.HideViewportUiElement(m_buttonGroup->GetViewportUiElementId());
EXPECT_FALSE(viewportUi.IsViewportUiElementVisible(m_cluster->GetViewportUiElementId()));
EXPECT_FALSE(viewportUi.IsViewportUiElementVisible(m_buttonGroup->GetViewportUiElementId()));
}
TEST_F(ViewportUiDisplayTestFixture, UpdateUiOverlayGeometryChangesGeometryToMatchViewportUiElements)
{
ViewportUiDisplay viewportUi(m_parentWidget, m_mockRenderOverlay);
viewportUi.InitializeUiOverlay();
viewportUi.AddCluster(m_cluster);
viewportUi.AddCluster(m_buttonGroup);
viewportUi.Update();
auto widget = viewportUi.GetViewportUiElement(m_cluster->GetViewportUiElementId());
auto widget = viewportUi.GetViewportUiElement(m_buttonGroup->GetViewportUiElementId());
EXPECT_EQ(viewportUi.GetUiMainWindow()->mask(), widget->geometry());
}
@@ -127,14 +127,14 @@ namespace UnitTest
ViewportUiDisplay viewportUi(m_parentWidget, m_mockRenderOverlay);
viewportUi.InitializeUiOverlay();
auto cluster = AZStd::make_shared<Cluster>();
cluster->AddButton("");
viewportUi.AddCluster(cluster);
auto buttonGroup = AZStd::make_shared<ButtonGroup>();
buttonGroup->AddButton("");
viewportUi.AddCluster(buttonGroup);
viewportUi.Update();
EXPECT_TRUE(viewportUi.GetUiMainWindow()->isVisible());
viewportUi.RemoveViewportUiElement(cluster->GetViewportUiElementId());
viewportUi.RemoveViewportUiElement(buttonGroup->GetViewportUiElementId());
viewportUi.Update();
EXPECT_FALSE(viewportUi.GetUiMainWindow()->isVisible());
}
@@ -22,19 +22,19 @@ namespace UnitTest
{
using ViewportUiDisplay = AzToolsFramework::ViewportUi::Internal::ViewportUiDisplay;
using ViewportUiElementId = AzToolsFramework::ViewportUi::ViewportUiElementId;
using Cluster = AzToolsFramework::ViewportUi::Internal::Cluster;
using ButtonGroup = AzToolsFramework::ViewportUi::Internal::ButtonGroup;
using ButtonId = AzToolsFramework::ViewportUi::ButtonId;
// child class of ViewportUiManager which exposes the protected cluster and viewport display
// child class of ViewportUiManager which exposes the protected button group and viewport display
class ViewportUiManagerTestable : public AzToolsFramework::ViewportUi::ViewportUiManager
{
public:
ViewportUiManagerTestable() = default;
~ViewportUiManagerTestable() = default;
const AZStd::unordered_map<AzToolsFramework::ViewportUi::ClusterId, AZStd::shared_ptr<Cluster>>& GetClusterMap()
const AZStd::unordered_map<AzToolsFramework::ViewportUi::ClusterId, AZStd::shared_ptr<ButtonGroup>>& GetClusterMap()
{
return m_clusters;
return m_clusterButtonGroups;
}
ViewportUiDisplay* GetViewportUiDisplay()