12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- /*
- * 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
- *
- */
- #if defined(HAVE_BENCHMARK)
- #pragma once
- #include <AzToolsFramework/Prefab/PrefabDomUtils.h>
- #include <AzToolsFramework/ToolsComponents/EditorInspectorComponent.h>
- #include <Prefab/Benchmark/PrefabBenchmarkFixture.h>
- namespace Benchmark
- {
- using namespace AzToolsFramework::Prefab;
- //! This class captures benchmarks for propagating changes to a single prefab instance with multiple entities that are side-by-side.
- class PropagationBenchmarkFixture : public Benchmark::BM_Prefab
- {
- protected:
- void UpdateTemplate();
- void UpdateComponent(benchmark::State& state);
- void AddComponent(benchmark::State& state);
- void RemoveComponent(benchmark::State& state);
- void AddEntity(benchmark::State& state);
- void RemoveEntity(benchmark::State& state);
- void AddNestedInstance(benchmark::State& state, TemplateId nestedPrefabTemplateId);
- void RemoveNestedInstance(benchmark::State& state, TemplateId nestedPrefabTemplateId);
- AZ::Entity* m_entityToModify = nullptr;
- AZStd::unique_ptr<Instance> m_instanceCreated;
- // The prefab instance to modify for the benchmark test. This can be m_instanceCreated or any nested prefab instance within it.
- Instance* m_instanceToModify = nullptr;
- AZStd::unique_ptr<Instance> m_instanceToUseForPropagation;
- };
- } // namespace Benchmark
- #endif
|