Merge branch 'main' into LYN-1901
This commit is contained in:
@@ -922,7 +922,7 @@ void CVars::Init()
|
||||
"Will not render CGFs past the given amount of drawcalls\n"
|
||||
"(<=0 off (default), >0 draw calls limit)");
|
||||
|
||||
REGISTER_CVAR(e_CheckOctreeObjectsBoxSize, 1, VF_NULL, "CryWarning for crazy sized COctreeNode m_objectsBoxes");
|
||||
REGISTER_CVAR(e_CheckOctreeObjectsBoxSize, 1, VF_NULL, "Warning for crazy sized COctreeNode m_objectsBoxes");
|
||||
REGISTER_CVAR(e_DebugGeomPrep, 0, VF_NULL, "enable logging of Geom preparation");
|
||||
DefineConstIntCVar(e_GeomCaches, 1, VF_NULL, "Activates drawing of geometry caches");
|
||||
REGISTER_CVAR(e_GeomCacheBufferSize, 128, VF_CHEAT, "Geometry cache stream buffer upper limit size in MB. Default: 128");
|
||||
|
||||
@@ -35,7 +35,7 @@ namespace AZ
|
||||
}
|
||||
|
||||
AZ::OSString msgBoxMessage;
|
||||
msgBoxMessage.append("CrySystem could not initialize correctly for the following reason(s):");
|
||||
msgBoxMessage.append("O3DE could not initialize correctly for the following reason(s):");
|
||||
|
||||
for (const AZ::OSString& errMsg : m_errorStringsCollected)
|
||||
{
|
||||
@@ -47,7 +47,7 @@ namespace AZ
|
||||
Trace::Output(nullptr, msgBoxMessage.c_str());
|
||||
Trace::Output(nullptr, "\n==================================================================\n");
|
||||
|
||||
EBUS_EVENT(AZ::NativeUI::NativeUIRequestBus, DisplayOkDialog, "CrySystem Initialization Failed", msgBoxMessage.c_str(), false);
|
||||
EBUS_EVENT(AZ::NativeUI::NativeUIRequestBus, DisplayOkDialog, "O3DE Initialization Failed", msgBoxMessage.c_str(), false);
|
||||
}
|
||||
} // namespace Debug
|
||||
} // namespace AZ
|
||||
|
||||
@@ -605,7 +605,7 @@ void CSystem::DebugStats([[maybe_unused]] bool checkpoint, [[maybe_unused]] bool
|
||||
{
|
||||
if (!dbgmodules[i].handle)
|
||||
{
|
||||
CryLogAlways("WARNING: <CrySystem> CSystem::DebugStats: NULL handle for %s", dbgmodules[i].name.c_str());
|
||||
CryLogAlways("WARNING: CSystem::DebugStats: NULL handle for %s", dbgmodules[i].name.c_str());
|
||||
nolib++;
|
||||
continue;
|
||||
}
|
||||
@@ -642,7 +642,7 @@ void CSystem::DebugStats([[maybe_unused]] bool checkpoint, [[maybe_unused]] bool
|
||||
}
|
||||
else
|
||||
{
|
||||
CryLogAlways("WARNING: <CrySystem> CSystem::DebugStats: could not retrieve function from DLL %s", dbgmodules[i].name.c_str());
|
||||
CryLogAlways("WARNING: CSystem::DebugStats: could not retrieve function from DLL %s", dbgmodules[i].name.c_str());
|
||||
nolib++;
|
||||
};
|
||||
#endif
|
||||
@@ -1066,7 +1066,7 @@ void CSystem::FatalError(const char* format, ...)
|
||||
|
||||
if (szSysErrorMessage)
|
||||
{
|
||||
CryLogAlways("<CrySystem> Last System Error: %s", szSysErrorMessage);
|
||||
CryLogAlways("Last System Error: %s", szSysErrorMessage);
|
||||
}
|
||||
|
||||
if (GetUserCallback())
|
||||
|
||||
@@ -1117,7 +1117,7 @@ namespace AZ
|
||||
return asset;
|
||||
}
|
||||
|
||||
void AssetManager::UpdateDebugStatus(AZ::Data::Asset<AZ::Data::AssetData> asset)
|
||||
void AssetManager::UpdateDebugStatus(const AZ::Data::Asset<AZ::Data::AssetData>& asset)
|
||||
{
|
||||
if(!m_debugAssetEvents)
|
||||
{
|
||||
|
||||
@@ -358,7 +358,7 @@ namespace AZ
|
||||
|
||||
Asset<AssetData> GetAssetInternal(const AssetId& assetId, const AssetType& assetType, AssetLoadBehavior assetReferenceLoadBehavior, const AssetLoadParameters& loadParams = AssetLoadParameters{}, AssetInfo assetInfo = AssetInfo(), bool signalLoaded = false);
|
||||
|
||||
void UpdateDebugStatus(AZ::Data::Asset<AZ::Data::AssetData> asset);
|
||||
void UpdateDebugStatus(const AZ::Data::Asset<AZ::Data::AssetData>& asset);
|
||||
|
||||
/**
|
||||
* Gets a root asset and dependencies as individual async loads if necessary.
|
||||
|
||||
@@ -42,9 +42,8 @@ namespace AZ
|
||||
}
|
||||
}
|
||||
|
||||
#define AZ_TRACE_METHOD_NAME_CATEGORY(name, category) AZ::Debug::EventTrace::ScopedSlice AZ_JOIN(ScopedSlice__, __LINE__)(name, category);
|
||||
|
||||
#ifdef AZ_PROFILE_TELEMETRY
|
||||
# define AZ_TRACE_METHOD_NAME_CATEGORY(name, category) AZ::Debug::EventTrace::ScopedSlice AZ_JOIN(ScopedSlice__, __LINE__)(name, category);
|
||||
# define AZ_TRACE_METHOD_NAME(name) \
|
||||
AZ_TRACE_METHOD_NAME_CATEGORY(name, "") \
|
||||
AZ_PROFILE_SCOPE(AZ::Debug::ProfileCategory::AzTrace, name)
|
||||
@@ -53,6 +52,7 @@ namespace AZ
|
||||
AZ_TRACE_METHOD_NAME_CATEGORY(AZ_FUNCTION_SIGNATURE, "") \
|
||||
AZ_PROFILE_FUNCTION(AZ::Debug::ProfileCategory::AzTrace)
|
||||
#else
|
||||
# define AZ_TRACE_METHOD_NAME_CATEGORY(name, category)
|
||||
# define AZ_TRACE_METHOD_NAME(name) AZ_TRACE_METHOD_NAME_CATEGORY(name, "")
|
||||
# define AZ_TRACE_METHOD() AZ_TRACE_METHOD_NAME(AZ_FUNCTION_SIGNATURE)
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
|
||||
* its licensors.
|
||||
*
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this
|
||||
* distribution (the "License"). All use of this software is governed by the License,
|
||||
* or, if provided, by the license below or the license accompanying this file. Do not
|
||||
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include <AzCore/UnitTest/UnitTest.h>
|
||||
#include <AzCore/Settings/SettingsRegistry.h>
|
||||
#include <gmock/gmock.h>
|
||||
|
||||
namespace AZ
|
||||
{
|
||||
class MockSettingsRegistry;
|
||||
using NiceSettingsRegistrySimpleMock = ::testing::NiceMock<MockSettingsRegistry>;
|
||||
|
||||
class MockSettingsRegistry
|
||||
: public AZ::SettingsRegistryInterface
|
||||
{
|
||||
public:
|
||||
MOCK_CONST_METHOD1(GetType, Type(AZStd::string_view));
|
||||
MOCK_CONST_METHOD2(Visit, bool(Visitor&, AZStd::string_view));
|
||||
MOCK_CONST_METHOD2(Visit, bool(const VisitorCallback&, AZStd::string_view));
|
||||
MOCK_METHOD1(RegisterNotifier, NotifyEventHandler(const NotifyCallback&));
|
||||
MOCK_METHOD1(RegisterNotifier, NotifyEventHandler(NotifyCallback&&));
|
||||
|
||||
MOCK_CONST_METHOD2(Get, bool(bool&, AZStd::string_view));
|
||||
MOCK_CONST_METHOD2(Get, bool(s64&, AZStd::string_view));
|
||||
MOCK_CONST_METHOD2(Get, bool(u64&, AZStd::string_view));
|
||||
MOCK_CONST_METHOD2(Get, bool(double&, AZStd::string_view));
|
||||
MOCK_CONST_METHOD2(Get, bool(AZStd::string&, AZStd::string_view));
|
||||
MOCK_CONST_METHOD2(Get, bool(FixedValueString&, AZStd::string_view));
|
||||
MOCK_CONST_METHOD3(GetObject, bool(void*, Uuid, AZStd::string_view));
|
||||
|
||||
MOCK_METHOD2(Set, bool(AZStd::string_view, bool));
|
||||
MOCK_METHOD2(Set, bool(AZStd::string_view, s64));
|
||||
MOCK_METHOD2(Set, bool(AZStd::string_view, u64));
|
||||
MOCK_METHOD2(Set, bool(AZStd::string_view, double));
|
||||
MOCK_METHOD2(Set, bool(AZStd::string_view, AZStd::string_view));
|
||||
MOCK_METHOD2(Set, bool(AZStd::string_view, const char*));
|
||||
MOCK_METHOD3(SetObject, bool(AZStd::string_view, const void*, Uuid));
|
||||
|
||||
MOCK_METHOD1(Remove, bool(AZStd::string_view));
|
||||
|
||||
MOCK_METHOD3(MergeCommandLineArgument, bool(AZStd::string_view, AZStd::string_view, const CommandLineArgumentSettings&));
|
||||
MOCK_METHOD2(MergeSettings, bool(AZStd::string_view, Format));
|
||||
MOCK_METHOD4(MergeSettingsFile, bool(AZStd::string_view, Format, AZStd::string_view, AZStd::vector<char>*));
|
||||
MOCK_METHOD5(
|
||||
MergeSettingsFolder,
|
||||
bool(AZStd::string_view, const Specializations&, AZStd::string_view, AZStd::string_view, AZStd::vector<char>*));
|
||||
};
|
||||
} // namespace AZ
|
||||
|
||||
@@ -15,4 +15,5 @@ set(FILES
|
||||
UnitTest/UnitTest.h
|
||||
UnitTest/TestTypes.h
|
||||
UnitTest/Mocks/MockFileIOBase.h
|
||||
UnitTest/Mocks/MockSettingsRegistry.h
|
||||
)
|
||||
|
||||
@@ -617,9 +617,9 @@ namespace AzFramework
|
||||
// won't free the mutex until the load is complete.
|
||||
// So instead, queue the notification until the next tick, so that it doesn't occur within the AssetCatalogRequestBus mutex, and also
|
||||
// so that the entire AssetCatalog initialization is complete.
|
||||
AZ::TickBus::QueueFunction([catalogRegistryFile]()
|
||||
AZ::TickBus::QueueFunction([catalogRegistryString = AZStd::string(catalogRegistryFile)]()
|
||||
{
|
||||
AssetCatalogEventBus::Broadcast(&AssetCatalogEventBus::Events::OnCatalogLoaded, catalogRegistryFile);
|
||||
AssetCatalogEventBus::Broadcast(&AssetCatalogEventBus::Events::OnCatalogLoaded, catalogRegistryString.c_str());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ namespace AzToolsFramework
|
||||
|
||||
if (!contextMenu.m_menu->isEmpty())
|
||||
{
|
||||
contextMenu.m_menu->popup(QCursor::pos());
|
||||
contextMenu.m_menu->exec(QCursor::pos());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -313,7 +313,7 @@ namespace O3DELauncher
|
||||
return "Failed to initialize the CrySystem Interface";
|
||||
|
||||
case ReturnCode::ErrCryEnvironment:
|
||||
return "Failed to initialize the CryEngine global environment";
|
||||
return "Failed to initialize the global environment";
|
||||
|
||||
case ReturnCode::ErrAssetProccessor:
|
||||
return "Failed to connect to AssetProcessor while the /Amazon/AzCore/Bootstrap/wait_for_connect value is 1\n."
|
||||
|
||||
+10
-10
@@ -39,15 +39,15 @@ namespace
|
||||
}
|
||||
|
||||
|
||||
@interface LumberyardApplicationDelegate_iOS : NSObject<UIApplicationDelegate>
|
||||
@interface O3DEApplicationDelegate_iOS : NSObject<UIApplicationDelegate>
|
||||
{
|
||||
}
|
||||
@end // LumberyardApplicationDelegate_iOS Interface
|
||||
@end // O3DEApplicationDelegate_iOS Interface
|
||||
|
||||
@implementation LumberyardApplicationDelegate_iOS
|
||||
@implementation O3DEApplicationDelegate_iOS
|
||||
|
||||
|
||||
- (int)runLumberyardApplication
|
||||
- (int)runO3DEApplication
|
||||
{
|
||||
#if AZ_TESTS_ENABLED
|
||||
|
||||
@@ -55,7 +55,7 @@ namespace
|
||||
return static_cast<int>(ReturnCode::ErrUnitTestNotSupported);
|
||||
|
||||
#else
|
||||
using namespace LumberyardLauncher;
|
||||
using namespace O3DELauncher;
|
||||
|
||||
PlatformMainInfo mainInfo;
|
||||
mainInfo.m_updateResourceLimits = IncreaseResourceLimits;
|
||||
@@ -79,19 +79,19 @@ namespace
|
||||
#endif // AZ_TESTS_ENABLED
|
||||
}
|
||||
|
||||
- (void)launchLumberyardApplication
|
||||
- (void)launchO3DEApplication
|
||||
{
|
||||
const int exitCode = [self runLumberyardApplication];
|
||||
const int exitCode = [self runO3DEApplication];
|
||||
exit(exitCode);
|
||||
}
|
||||
|
||||
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
|
||||
{
|
||||
// prevent the lumberyard runtime from running when launched in a xctest environment, otherwise the
|
||||
// prevent the o3de runtime from running when launched in a xctest environment, otherwise the
|
||||
// testing framework will kill the "app" due to the lengthy bootstrap process
|
||||
if ([[NSProcessInfo processInfo] environment][@"XCTestConfigurationFilePath"] == nil)
|
||||
{
|
||||
[self performSelector:@selector(launchLumberyardApplication) withObject:nil afterDelay:0.0];
|
||||
[self performSelector:@selector(launchO3DEApplication) withObject:nil afterDelay:0.0];
|
||||
}
|
||||
return YES;
|
||||
}
|
||||
@@ -132,4 +132,4 @@ namespace
|
||||
&AzFramework::IosLifecycleEvents::Bus::Events::OnDidReceiveMemoryWarning);
|
||||
}
|
||||
|
||||
@end // LumberyardApplicationDelegate_iOS Implementation
|
||||
@end // O3DEApplicationDelegate_iOS Implementation
|
||||
+4
-4
@@ -16,12 +16,12 @@
|
||||
#include <AzFramework/Input/Buses/Notifications/RawInputNotificationBus_Platform.h>
|
||||
|
||||
|
||||
@interface LumberyardApplication_iOS : UIApplication
|
||||
@interface O3DEApplication_iOS : UIApplication
|
||||
{
|
||||
}
|
||||
@end // LumberyardApplication_iOS Interface
|
||||
@end // O3DEApplication_iOS Interface
|
||||
|
||||
@implementation LumberyardApplication_iOS
|
||||
@implementation O3DEApplication_iOS
|
||||
|
||||
- (void)touchesBegan: (NSSet<UITouch*>*)touches withEvent: (UIEvent*)event
|
||||
{
|
||||
@@ -65,4 +65,4 @@
|
||||
[self touchesEnded: touches withEvent: event];
|
||||
}
|
||||
|
||||
@end // LumberyardApplication_iOS Implementation
|
||||
@end // O3DEApplication_iOS Implementation
|
||||
@@ -13,8 +13,8 @@ set(FILES
|
||||
Launcher_iOS.mm
|
||||
Launcher_Traits_iOS.h
|
||||
Launcher_Traits_Platform.h
|
||||
LumberyardApplication_iOS.mm
|
||||
LumberyardApplicationDelegate_iOS.mm
|
||||
O3DEApplication_iOS.mm
|
||||
O3DEApplicationDelegate_iOS.mm
|
||||
../Common/Apple/Launcher_Apple.mm
|
||||
../Common/Apple/Launcher_Apple.h
|
||||
../Common/UnixLike/Launcher_UnixLike.cpp
|
||||
|
||||
@@ -5702,7 +5702,7 @@ extern "C" int AZ_DLL_EXPORT CryEditMain(int argc, char* argv[])
|
||||
int exitCode = 0;
|
||||
|
||||
BOOL didCryEditStart = CCryEditApp::instance()->InitInstance();
|
||||
AZ_Error("Editor", didCryEditStart, "CryEditor did not initialize correctly, and will close."
|
||||
AZ_Error("Editor", didCryEditStart, "O3DE Editor did not initialize correctly, and will close."
|
||||
"\nThis could be because of incorrectly configured components, or missing required gems."
|
||||
"\nSee other errors for more details.");
|
||||
|
||||
|
||||
@@ -1931,7 +1931,7 @@ void CCryEditDoc::Fetch(const QString& holdName, const QString& relativeHoldPath
|
||||
if (!LoadXmlArchiveArray(arrXmlAr, holdFilename, holdPath))
|
||||
{
|
||||
QMessageBox::critical(QApplication::activeWindow(), "Error", "The temporary 'Hold' level failed to load successfully. Your level might be corrupted, you should restart the Editor.", QMessageBox::Ok);
|
||||
AZ_Error("CryEditDoc", false, "Fetch failed to load the Xml Archive");
|
||||
AZ_Error("EditDoc", false, "Fetch failed to load the Xml Archive");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -342,7 +342,6 @@ bool LegacyViewportCameraControllerInstance::HandleInputChannelEvent(const AzFra
|
||||
m_inRotateMode = true;
|
||||
}
|
||||
|
||||
shouldConsumeEvent = true;
|
||||
shouldCaptureCursor = true;
|
||||
}
|
||||
else if (state == InputChannel::State::Ended)
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
#include <AzFramework/API/AtomActiveInterface.h>
|
||||
#include <AzCore/Console/IConsole.h>
|
||||
|
||||
AZ_CVAR(bool, ed_useAtomNativeViewport, false, nullptr, AZ::ConsoleFunctorFlags::Null, "Use the new Atom-native Editor viewport (experimental, not yet stable");
|
||||
AZ_CVAR(bool, ed_useAtomNativeViewport, true, nullptr, AZ::ConsoleFunctorFlags::Null, "Use the new Atom-native Editor viewport (experimental, not yet stable");
|
||||
|
||||
bool CViewManager::IsMultiViewportEnabled()
|
||||
{
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
|
||||
#include <QApplication>
|
||||
|
||||
static const auto ManipulatorPriority = AzFramework::ViewportControllerPriority::Highest;
|
||||
static const auto InteractionPriority = AzFramework::ViewportControllerPriority::High;
|
||||
static const auto ManipulatorPriority = AzFramework::ViewportControllerPriority::High;
|
||||
static const auto InteractionPriority = AzFramework::ViewportControllerPriority::Low;
|
||||
|
||||
namespace SandboxEditor
|
||||
{
|
||||
|
||||
@@ -42,6 +42,7 @@
|
||||
#include <SceneAPI/SceneCore/DataTypes/Rules/IMeshAdvancedRule.h>
|
||||
#include <SceneAPI/SceneCore/DataTypes/Rules/ILodRule.h>
|
||||
#include <SceneAPI/SceneCore/DataTypes/Rules/ISkeletonProxyRule.h>
|
||||
#include <SceneAPI/SceneCore/DataTypes/Rules/IScriptProcessorRule.h>
|
||||
#include <SceneAPI/SceneCore/DataTypes/GraphData/IAnimationData.h>
|
||||
#include <SceneAPI/SceneCore/DataTypes/GraphData/IBlendShapeData.h>
|
||||
#include <SceneAPI/SceneCore/DataTypes/GraphData/IBoneData.h>
|
||||
@@ -168,6 +169,7 @@ namespace AZ
|
||||
context->Class<AZ::SceneAPI::DataTypes::IMeshAdvancedRule, AZ::SceneAPI::DataTypes::IRule>()->Version(1);
|
||||
context->Class<AZ::SceneAPI::DataTypes::ILodRule, AZ::SceneAPI::DataTypes::IRule>()->Version(1);
|
||||
context->Class<AZ::SceneAPI::DataTypes::ISkeletonProxyRule, AZ::SceneAPI::DataTypes::IRule>()->Version(1);
|
||||
context->Class<AZ::SceneAPI::DataTypes::IScriptProcessorRule, AZ::SceneAPI::DataTypes::IRule>()->Version(1);
|
||||
// Register graph data interfaces
|
||||
context->Class<AZ::SceneAPI::DataTypes::IAnimationData, AZ::SceneAPI::DataTypes::IGraphObject>()->Version(1);
|
||||
context->Class<AZ::SceneAPI::DataTypes::IBlendShapeData, AZ::SceneAPI::DataTypes::IGraphObject>()->Version(1);
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <SceneAPI/SceneData/SceneDataConfiguration.h>
|
||||
#include <AzCore/std/string/string.h>
|
||||
#include <SceneAPI/SceneCore/Components/BehaviorComponent.h>
|
||||
#include <SceneAPI/SceneCore/Events/AssetImportRequest.h>
|
||||
@@ -27,7 +28,7 @@ namespace AZ
|
||||
{
|
||||
namespace Behaviors
|
||||
{
|
||||
class ScriptProcessorRuleBehavior
|
||||
class SCENE_DATA_CLASS ScriptProcessorRuleBehavior
|
||||
: public SceneCore::BehaviorComponent
|
||||
, public Events::AssetImportRequestBus::Handler
|
||||
{
|
||||
@@ -36,12 +37,12 @@ namespace AZ
|
||||
|
||||
~ScriptProcessorRuleBehavior() override = default;
|
||||
|
||||
void Activate() override;
|
||||
void Deactivate() override;
|
||||
SCENE_DATA_API void Activate() override;
|
||||
SCENE_DATA_API void Deactivate() override;
|
||||
static void Reflect(ReflectContext* context);
|
||||
|
||||
// AssetImportRequestBus::Handler
|
||||
Events::ProcessingResult UpdateManifest(
|
||||
SCENE_DATA_API Events::ProcessingResult UpdateManifest(
|
||||
Containers::Scene& scene,
|
||||
ManifestAction action,
|
||||
RequestingApplication requester) override;
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
#include <SceneAPI/SceneData/Rules/LodRule.h>
|
||||
#include <SceneAPI/SceneData/Rules/MaterialRule.h>
|
||||
#include <SceneAPI/SceneData/Rules/StaticMeshAdvancedRule.h>
|
||||
#include <SceneAPI/SceneData/Rules/ScriptProcessorRule.h>
|
||||
#include <SceneAPI/SceneData/Rules/SkeletonProxyRule.h>
|
||||
#include <SceneAPI/SceneData/Rules/SkinMeshAdvancedRule.h>
|
||||
#include <SceneAPI/SceneData/Rules/SkinRule.h>
|
||||
@@ -55,7 +54,6 @@ namespace AZ
|
||||
{
|
||||
AZ_TraceContext("Object Type", target.RTTI_GetTypeName());
|
||||
modifiers.push_back(SceneData::CommentRule::TYPEINFO_Uuid());
|
||||
modifiers.push_back(SceneData::ScriptProcessorRule::TYPEINFO_Uuid());
|
||||
|
||||
if (target.RTTI_IsTypeOf(DataTypes::IMeshGroup::TYPEINFO_Uuid()))
|
||||
{
|
||||
|
||||
@@ -13,19 +13,23 @@
|
||||
#include <AzTest/AzTest.h>
|
||||
|
||||
#include <SceneAPI/SceneCore/Containers/SceneManifest.h>
|
||||
#include <SceneAPI/SceneCore/Containers/Scene.h>
|
||||
#include <SceneAPI/SceneCore/DataTypes/Rules/IScriptProcessorRule.h>
|
||||
#include <SceneAPI/SceneData/ReflectionRegistrar.h>
|
||||
#include <SceneAPI/SceneData/Rules/CoordinateSystemRule.h>
|
||||
#include <SceneAPI/SceneData/Behaviors/ScriptProcessorRuleBehavior.h>
|
||||
|
||||
#include <AzCore/Math/Quaternion.h>
|
||||
#include <AzCore/Name/NameDictionary.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
#include <AzCore/RTTI/ReflectionManager.h>
|
||||
#include <AzCore/Serialization/Json/RegistrationContext.h>
|
||||
#include <AzCore/Serialization/Json/JsonSystemComponent.h>
|
||||
#include <AzCore/Serialization/Json/RegistrationContext.h>
|
||||
#include <AzCore/std/smart_ptr/make_shared.h>
|
||||
#include <AzCore/std/smart_ptr/shared_ptr.h>
|
||||
#include <AzCore/UnitTest/Mocks/MockSettingsRegistry.h>
|
||||
#include <AzCore/UnitTest/TestTypes.h>
|
||||
#include <AzFramework/FileFunc/FileFunc.h>
|
||||
#include <AzCore/Math/Quaternion.h>
|
||||
|
||||
namespace AZ
|
||||
{
|
||||
@@ -94,6 +98,19 @@ namespace AZ
|
||||
|
||||
m_jsonSystemComponent = AZStd::make_unique<JsonSystemComponent>();
|
||||
m_jsonSystemComponent->Reflect(m_jsonRegistrationContext.get());
|
||||
|
||||
m_data.reset(new DataMembers);
|
||||
|
||||
using FixedValueString = AZ::SettingsRegistryInterface::FixedValueString;
|
||||
|
||||
ON_CALL(m_data->m_settings, Get(::testing::Matcher<FixedValueString&>(::testing::_), testing::_))
|
||||
.WillByDefault([](FixedValueString& value, AZStd::string_view) -> bool
|
||||
{
|
||||
value = "mock_path";
|
||||
return true;
|
||||
});
|
||||
|
||||
AZ::SettingsRegistry::Register(&m_data->m_settings);
|
||||
}
|
||||
|
||||
void TearDown() override
|
||||
@@ -106,9 +123,19 @@ namespace AZ
|
||||
m_jsonRegistrationContext.reset();
|
||||
m_jsonSystemComponent.reset();
|
||||
|
||||
AZ::SettingsRegistry::Unregister(&m_data->m_settings);
|
||||
m_data.reset();
|
||||
|
||||
AZ::NameDictionary::Destroy();
|
||||
UnitTest::AllocatorsFixture::TearDown();
|
||||
}
|
||||
|
||||
struct DataMembers
|
||||
{
|
||||
AZ::NiceSettingsRegistrySimpleMock m_settings;
|
||||
};
|
||||
|
||||
AZStd::unique_ptr<DataMembers> m_data;
|
||||
};
|
||||
|
||||
TEST_F(SceneManifest_JSON, LoadFromString_BlankManifest_HasDefaultParts)
|
||||
@@ -223,5 +250,30 @@ namespace AZ
|
||||
EXPECT_THAT(jsonText.c_str(), ::testing::HasSubstr(R"(3.0)"));
|
||||
EXPECT_THAT(jsonText.c_str(), ::testing::HasSubstr(R"("scale": 10.0)"));
|
||||
}
|
||||
|
||||
TEST_F(SceneManifest_JSON, ScriptProcessorRule_LoadWithEmptyScriptFilename_ReturnsEarly)
|
||||
{
|
||||
using namespace SceneAPI::Containers;
|
||||
using namespace SceneAPI::Events;
|
||||
|
||||
constexpr const char* jsonManifest = { R"JSON(
|
||||
{
|
||||
"values": [
|
||||
{
|
||||
"$type": "ScriptProcessorRule",
|
||||
"scriptFilename": ""
|
||||
}
|
||||
]
|
||||
})JSON" };
|
||||
|
||||
auto scene = AZ::SceneAPI::Containers::Scene("mock");
|
||||
auto result = scene.GetManifest().LoadFromString(jsonManifest, m_serializeContext.get(), m_jsonRegistrationContext.get());
|
||||
EXPECT_TRUE(result.IsSuccess());
|
||||
EXPECT_FALSE(scene.GetManifest().IsEmpty());
|
||||
|
||||
auto scriptProcessorRuleBehavior = AZ::SceneAPI::Behaviors::ScriptProcessorRuleBehavior();
|
||||
auto update = scriptProcessorRuleBehavior.UpdateManifest(scene, AssetImportRequest::Update, AssetImportRequest::Generic);
|
||||
EXPECT_EQ(update, ProcessingResult::Ignored);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user