Merge branch 'stabilization/2106' of https://github.com/aws-lumberyard/o3de into Spawnable/GameModeLoadErrorFix
This commit is contained in:
@@ -15,6 +15,8 @@ include_guard()
|
||||
|
||||
# Read the engine name from the project_json file
|
||||
file(READ ${CMAKE_CURRENT_LIST_DIR}/project.json project_json)
|
||||
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${CMAKE_CURRENT_LIST_DIR}/project.json)
|
||||
|
||||
string(JSON LY_ENGINE_NAME_TO_USE ERROR_VARIABLE json_error GET ${project_json} engine)
|
||||
if(json_error)
|
||||
message(FATAL_ERROR "Unable to read key 'engine' from 'project.json', error: ${json_error}")
|
||||
@@ -30,6 +32,7 @@ endif()
|
||||
# Find a key that matches LY_ENGINE_NAME_TO_USE and use that as the engine path.
|
||||
if(EXISTS ${manifest_path})
|
||||
file(READ ${manifest_path} manifest_json)
|
||||
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${manifest_path})
|
||||
|
||||
string(JSON engines_path_count ERROR_VARIABLE json_error LENGTH ${manifest_json} engines_path)
|
||||
if(json_error)
|
||||
|
||||
+1
-1
@@ -102,7 +102,7 @@ def C4044695_PhysXCollider_AddMultipleSurfaceFbx():
|
||||
# 6) Check if multiple material slots show up under Materials section in the PhysX Collider component
|
||||
pte = collider_component.get_property_tree()
|
||||
def get_surface_count():
|
||||
count = pte.get_container_count("Collider Configuration|Physics Material|Mesh Surfaces")
|
||||
count = pte.get_container_count("Collider Configuration|Physics Materials|Slots")
|
||||
return count.GetValue()
|
||||
|
||||
Report.result(
|
||||
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b6e408095c15a388768b7f70b6049f33c894aab3e51f2d744bc1ae1d18668ee4
|
||||
size 9694
|
||||
oid sha256:824a51a375f19274d5698ff08af0fdc3dc18204505c73a943de748455d108b01
|
||||
size 6181
|
||||
|
||||
+1303
-1312
File diff suppressed because it is too large
Load Diff
@@ -816,7 +816,11 @@ namespace AZ::SettingsRegistryMergeUtils
|
||||
}
|
||||
}
|
||||
|
||||
void MergeSettingsToRegistry_CommandLine(SettingsRegistryInterface& registry, const AZ::CommandLine& commandLine, bool executeCommands)
|
||||
// This function intentionally copies `commandLine`. It looks like it only uses it as a const reference, but the
|
||||
// code in the loop makes calls that mutates the `commandLine` instance, invalidating the iterators. Making a copy
|
||||
// ensures that the iterators remain valid.
|
||||
// NOLINTNEXTLINE(performance-unnecessary-value-param)
|
||||
void MergeSettingsToRegistry_CommandLine(SettingsRegistryInterface& registry, AZ::CommandLine commandLine, bool executeCommands)
|
||||
{
|
||||
// Iterate over all the command line options in order to parse the --regset and --regremove
|
||||
// arguments in the order they were supplied
|
||||
@@ -831,7 +835,7 @@ namespace AZ::SettingsRegistryMergeUtils
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (commandArgument.m_option == "regremove")
|
||||
else if (commandArgument.m_option == "regremove")
|
||||
{
|
||||
if (!registry.Remove(commandArgument.m_value))
|
||||
{
|
||||
|
||||
@@ -15,11 +15,7 @@
|
||||
#include <AzCore/IO/Path/Path_fwd.h>
|
||||
#include <AzCore/Memory/OSAllocator.h>
|
||||
#include <AzCore/Settings/SettingsRegistry.h>
|
||||
|
||||
namespace AZ
|
||||
{
|
||||
class CommandLine;
|
||||
}
|
||||
#include <AzCore/Settings/CommandLine.h>
|
||||
|
||||
namespace AZ::IO
|
||||
{
|
||||
@@ -217,7 +213,7 @@ namespace AZ::SettingsRegistryMergeUtils
|
||||
//! example: --regdump /My/Array/With/Objects
|
||||
//! --regdumpall Dumps the entire settings registry to output.
|
||||
//! Note that this function is only called in development builds and is compiled out in release builds.
|
||||
void MergeSettingsToRegistry_CommandLine(SettingsRegistryInterface& registry, const AZ::CommandLine& commandLine, bool executeCommands);
|
||||
void MergeSettingsToRegistry_CommandLine(SettingsRegistryInterface& registry, AZ::CommandLine commandLine, bool executeCommands);
|
||||
|
||||
//! Stores the command line settings into the Setting Registry
|
||||
//! The arguments can be used later anywhere the command line is needed
|
||||
|
||||
@@ -48,7 +48,8 @@ namespace AzPhysics
|
||||
using OnPresimulateEvent = AZ::Event<float>;
|
||||
|
||||
//! Event triggers at the end of the SystemInterface::Simulate call.
|
||||
using OnPostsimulateEvent = AZ::Event<>;
|
||||
//! Parameter is the total time that the physics system will run for during the Simulate call.
|
||||
using OnPostsimulateEvent = AZ::Event<float>;
|
||||
|
||||
//! Event trigger when a Scene is added to the simulation.
|
||||
//! When triggered will send the handle to the new Scene.
|
||||
|
||||
@@ -402,7 +402,7 @@ namespace Physics
|
||||
->Attribute(AZ_CRC_CE("EditButton"), "")
|
||||
->Attribute(AZ_CRC_CE("EditDescription"), "Open in Asset Editor")
|
||||
->Attribute(AZ::Edit::Attributes::DefaultAsset, &MaterialSelection::GetMaterialLibraryId)
|
||||
->DataElement(AZ::Edit::UIHandlers::Default, &MaterialSelection::m_materialIdsAssignedToSlots, "", "")
|
||||
->DataElement(AZ::Edit::UIHandlers::Default, &MaterialSelection::m_materialIdsAssignedToSlots, "Slots", "")
|
||||
->ElementAttribute(Attributes::MaterialLibraryAssetId, &MaterialSelection::GetMaterialLibraryId)
|
||||
->Attribute(AZ::Edit::Attributes::IndexedChildNameLabelOverride, &MaterialSelection::GetMaterialSlotLabel)
|
||||
->Attribute(AZ::Edit::Attributes::AutoExpand, true)
|
||||
|
||||
@@ -43,7 +43,7 @@ namespace AzPhysics
|
||||
const AZ::BehaviorAzEventDescription postsimulateEventDescription =
|
||||
{
|
||||
"Postsimulate event",
|
||||
{} // Parameters
|
||||
{"Tick time"} // Parameters
|
||||
};
|
||||
|
||||
behaviorContext->Class<SystemInterface>("System Interface")
|
||||
|
||||
+21
-32
@@ -1,47 +1,36 @@
|
||||
/*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
#include <AzCore/EBus/EBus.h>
|
||||
* 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/EBus/EBus.h>
|
||||
|
||||
namespace AzToolsFramework
|
||||
{
|
||||
using EntityIdList = AZStd::vector<AZ::EntityId>;
|
||||
|
||||
/*!
|
||||
* Bus for notifications about entity transform changes from the editor viewport
|
||||
*/
|
||||
class EditorTransformChangeNotifications
|
||||
: public AZ::EBusTraits
|
||||
//! Notifications about entity transform changes from the editor.
|
||||
class EditorTransformChangeNotifications : public AZ::EBusTraits
|
||||
{
|
||||
public:
|
||||
virtual ~EditorTransformChangeNotifications() = default;
|
||||
//! A notification that these entities had their transforms changed due to a user interaction in the editor.
|
||||
//! @param entityIds Entities that had their transform changed.
|
||||
virtual void OnEntityTransformChanged([[maybe_unused]] const AzToolsFramework::EntityIdList& entityIds)
|
||||
{
|
||||
}
|
||||
|
||||
/*!
|
||||
* Notification that the specified entities are about to have their transforms changed due to user interaction in the editor viewport
|
||||
*
|
||||
* \param entityIds Entities about to be changed
|
||||
*/
|
||||
virtual void OnEntityTransformChanging(const AzToolsFramework::EntityIdList& /*entityIds*/) {};
|
||||
|
||||
/*!
|
||||
* Notification that the specified entities had their transforms changed due to user interaction in the editor viewport
|
||||
*
|
||||
* \param entityIds Entities changed
|
||||
*/
|
||||
virtual void OnEntityTransformChanged(const AzToolsFramework::EntityIdList& /*entityIds*/) {};
|
||||
protected:
|
||||
~EditorTransformChangeNotifications() = default;
|
||||
};
|
||||
|
||||
using EditorTransformChangeNotificationBus = AZ::EBus<EditorTransformChangeNotifications>;
|
||||
|
||||
} // namespace AzToolsFramework
|
||||
|
||||
|
||||
+23
-9
@@ -27,6 +27,7 @@
|
||||
#include <AzFramework/Components/TransformComponent.h>
|
||||
#include <AzFramework/Visibility/EntityBoundsUnionBus.h>
|
||||
#include <AzToolsFramework/API/EntityCompositionRequestBus.h>
|
||||
#include <AzToolsFramework/Entity/EditorEntityTransformBus.h>
|
||||
#include <AzToolsFramework/API/EntityPropertyEditorRequestsBus.h>
|
||||
#include <AzToolsFramework/API/ToolsApplicationAPI.h>
|
||||
#include <AzToolsFramework/Entity/EditorEntityContextBus.h>
|
||||
@@ -944,7 +945,7 @@ namespace AzToolsFramework
|
||||
return AZ::Success();
|
||||
}
|
||||
|
||||
AZ::u32 TransformComponent::ParentChanged()
|
||||
AZ::u32 TransformComponent::ParentChangedInspector()
|
||||
{
|
||||
AZ::u32 refreshLevel = AZ::Edit::PropertyRefreshLevels::None;
|
||||
|
||||
@@ -974,12 +975,23 @@ namespace AzToolsFramework
|
||||
return refreshLevel;
|
||||
}
|
||||
|
||||
AZ::u32 TransformComponent::TransformChanged()
|
||||
AZ::u32 TransformComponent::TransformChangedInspector()
|
||||
{
|
||||
if (TransformChanged())
|
||||
{
|
||||
AzToolsFramework::EditorTransformChangeNotificationBus::Broadcast(
|
||||
&AzToolsFramework::EditorTransformChangeNotificationBus::Events::OnEntityTransformChanged,
|
||||
EntityIdList{ GetEntityId() });
|
||||
}
|
||||
|
||||
return AZ::Edit::PropertyRefreshLevels::None;
|
||||
}
|
||||
|
||||
bool TransformComponent::TransformChanged()
|
||||
{
|
||||
if (!m_suppressTransformChangedEvent)
|
||||
{
|
||||
auto parent = GetParentTransformComponent();
|
||||
if (parent)
|
||||
if (auto parent = GetParentTransformComponent())
|
||||
{
|
||||
OnTransformChanged(parent->GetLocalTM(), parent->GetWorldTM());
|
||||
}
|
||||
@@ -987,13 +999,15 @@ namespace AzToolsFramework
|
||||
{
|
||||
OnTransformChanged(AZ::Transform::Identity(), AZ::Transform::Identity());
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return AZ::Edit::PropertyRefreshLevels::None;
|
||||
return false;
|
||||
}
|
||||
|
||||
// This is called when our transform changes static state.
|
||||
AZ::u32 TransformComponent::StaticChanged()
|
||||
AZ::u32 TransformComponent::StaticChangedInspector()
|
||||
{
|
||||
AzToolsFramework::ToolsApplicationEvents::Bus::Broadcast(
|
||||
&AzToolsFramework::ToolsApplicationEvents::Bus::Events::InvalidatePropertyDisplay,
|
||||
@@ -1175,10 +1189,10 @@ namespace AzToolsFramework
|
||||
Attribute(AZ::Edit::Attributes::AutoExpand, true)->
|
||||
DataElement(AZ::Edit::UIHandlers::Default, &TransformComponent::m_parentEntityId, "Parent entity", "")->
|
||||
Attribute(AZ::Edit::Attributes::ChangeValidate, &TransformComponent::ValidatePotentialParent)->
|
||||
Attribute(AZ::Edit::Attributes::ChangeNotify, &TransformComponent::ParentChanged)->
|
||||
Attribute(AZ::Edit::Attributes::ChangeNotify, &TransformComponent::ParentChangedInspector)->
|
||||
Attribute(AZ::Edit::Attributes::SliceFlags, AZ::Edit::SliceFlags::DontGatherReference | AZ::Edit::SliceFlags::NotPushableOnSliceRoot)->
|
||||
DataElement(AZ::Edit::UIHandlers::Default, &TransformComponent::m_editorTransform, "Values", "")->
|
||||
Attribute(AZ::Edit::Attributes::ChangeNotify, &TransformComponent::TransformChanged)->
|
||||
Attribute(AZ::Edit::Attributes::ChangeNotify, &TransformComponent::TransformChangedInspector)->
|
||||
Attribute(AZ::Edit::Attributes::AutoExpand, true)->
|
||||
DataElement(AZ::Edit::UIHandlers::Button, &TransformComponent::m_addNonUniformScaleButton, "", "")->
|
||||
Attribute(AZ::Edit::Attributes::ButtonText, "Add non-uniform scale")->
|
||||
@@ -1189,7 +1203,7 @@ namespace AzToolsFramework
|
||||
EnumAttribute(AZ::TransformConfig::ParentActivationTransformMode::MaintainOriginalRelativeTransform, "Original relative transform")->
|
||||
EnumAttribute(AZ::TransformConfig::ParentActivationTransformMode::MaintainCurrentWorldTransform, "Current world transform")->
|
||||
DataElement(AZ::Edit::UIHandlers::Default, &TransformComponent::m_isStatic ,"Static", "Static entities are highly optimized and cannot be moved during runtime.")->
|
||||
Attribute(AZ::Edit::Attributes::ChangeNotify, &TransformComponent::StaticChanged)->
|
||||
Attribute(AZ::Edit::Attributes::ChangeNotify, &TransformComponent::StaticChangedInspector)->
|
||||
DataElement(AZ::Edit::UIHandlers::Default, &TransformComponent::m_cachedWorldTransformParent, "Cached Parent Entity", "")->
|
||||
Attribute(AZ::Edit::Attributes::SliceFlags, AZ::Edit::SliceFlags::DontGatherReference | AZ::Edit::SliceFlags::NotPushable)->
|
||||
Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::Hide)->
|
||||
|
||||
+6
-3
@@ -182,9 +182,12 @@ namespace AzToolsFramework
|
||||
static void Reflect(AZ::ReflectContext* context);
|
||||
|
||||
AZ::Outcome<void, AZStd::string> ValidatePotentialParent(void* newValue, const AZ::Uuid& valueType);
|
||||
AZ::u32 ParentChanged();
|
||||
AZ::u32 TransformChanged();
|
||||
AZ::u32 StaticChanged();
|
||||
|
||||
AZ::u32 TransformChangedInspector();
|
||||
AZ::u32 ParentChangedInspector();
|
||||
AZ::u32 StaticChangedInspector();
|
||||
|
||||
bool TransformChanged();
|
||||
|
||||
AZ::Transform GetLocalTranslationTM() const;
|
||||
AZ::Transform GetLocalRotationTM() const;
|
||||
|
||||
+3
-1
@@ -165,11 +165,13 @@ namespace UnitTest
|
||||
void EditorEntityComponentChangeDetector::OnEntityTransformChanged(
|
||||
const AzToolsFramework::EntityIdList& entityIds)
|
||||
{
|
||||
m_entityIds = entityIds;
|
||||
|
||||
for (const AZ::EntityId& entityId : entityIds)
|
||||
{
|
||||
if (const auto* entity = GetEntityById(entityId))
|
||||
{
|
||||
if (AZ::Component * transformComponent = entity->FindComponent<Components::TransformComponent>())
|
||||
if (AZ::Component* transformComponent = entity->FindComponent<Components::TransformComponent>())
|
||||
{
|
||||
OnEntityComponentPropertyChanged(transformComponent->GetId());
|
||||
}
|
||||
|
||||
+1
@@ -239,6 +239,7 @@ namespace UnitTest
|
||||
bool PropertyDisplayInvalidated() const { return m_propertyDisplayInvalidated; }
|
||||
|
||||
AZStd::vector<AZ::ComponentId> m_componentIds;
|
||||
AzToolsFramework::EntityIdList m_entityIds;
|
||||
|
||||
private:
|
||||
// PropertyEditorEntityChangeNotificationBus ...
|
||||
|
||||
+32
-13
@@ -999,7 +999,6 @@ namespace AzToolsFramework
|
||||
static void RefreshUiAfterChange(const EntityIdList& entitiyIds)
|
||||
{
|
||||
EditorTransformChangeNotificationBus::Broadcast(&EditorTransformChangeNotifications::OnEntityTransformChanged, entitiyIds);
|
||||
|
||||
ToolsApplicationNotificationBus::Broadcast(&ToolsApplicationNotificationBus::Events::InvalidatePropertyDisplay, Refresh_Values);
|
||||
}
|
||||
|
||||
@@ -1065,7 +1064,7 @@ namespace AzToolsFramework
|
||||
auto entityBoxSelectData = AZStd::make_shared<EntityBoxSelectData>();
|
||||
|
||||
m_boxSelect.InstallLeftMouseDown(
|
||||
[this, entityBoxSelectData](const ViewportInteraction::MouseInteractionEvent& /*mouseInteraction*/)
|
||||
[this, entityBoxSelectData]([[maybe_unused]] const ViewportInteraction::MouseInteractionEvent& mouseInteraction)
|
||||
{
|
||||
// begin selection undo/redo command
|
||||
entityBoxSelectData->m_boxSelectSelectionCommand =
|
||||
@@ -1263,8 +1262,12 @@ namespace AzToolsFramework
|
||||
});
|
||||
|
||||
translationManipulators->InstallLinearManipulatorMouseUpCallback(
|
||||
[this]([[maybe_unused]] const LinearManipulator::Action& action) mutable
|
||||
[this, manipulatorEntityIds]([[maybe_unused]] const LinearManipulator::Action& action) mutable
|
||||
{
|
||||
AzToolsFramework::EditorTransformChangeNotificationBus::Broadcast(
|
||||
&AzToolsFramework::EditorTransformChangeNotificationBus::Events::OnEntityTransformChanged,
|
||||
manipulatorEntityIds->m_entityIds);
|
||||
|
||||
EndRecordManipulatorCommand();
|
||||
});
|
||||
|
||||
@@ -1293,8 +1296,12 @@ namespace AzToolsFramework
|
||||
});
|
||||
|
||||
translationManipulators->InstallPlanarManipulatorMouseUpCallback(
|
||||
[this, manipulatorEntityIds](const PlanarManipulator::Action& /*action*/)
|
||||
[this, manipulatorEntityIds]([[maybe_unused]] const PlanarManipulator::Action& action)
|
||||
{
|
||||
AzToolsFramework::EditorTransformChangeNotificationBus::Broadcast(
|
||||
&AzToolsFramework::EditorTransformChangeNotificationBus::Events::OnEntityTransformChanged,
|
||||
manipulatorEntityIds->m_entityIds);
|
||||
|
||||
EndRecordManipulatorCommand();
|
||||
});
|
||||
|
||||
@@ -1322,8 +1329,12 @@ namespace AzToolsFramework
|
||||
});
|
||||
|
||||
translationManipulators->InstallSurfaceManipulatorMouseUpCallback(
|
||||
[this, manipulatorEntityIds](const SurfaceManipulator::Action& /*action*/)
|
||||
[this, manipulatorEntityIds]([[maybe_unused]] const SurfaceManipulator::Action& action)
|
||||
{
|
||||
AzToolsFramework::EditorTransformChangeNotificationBus::Broadcast(
|
||||
&AzToolsFramework::EditorTransformChangeNotificationBus::Events::OnEntityTransformChanged,
|
||||
manipulatorEntityIds->m_entityIds);
|
||||
|
||||
EndRecordManipulatorCommand();
|
||||
});
|
||||
|
||||
@@ -1360,7 +1371,7 @@ namespace AzToolsFramework
|
||||
AZStd::shared_ptr<SharedRotationState> sharedRotationState = AZStd::make_shared<SharedRotationState>();
|
||||
|
||||
rotationManipulators->InstallLeftMouseDownCallback(
|
||||
[this, sharedRotationState](const AngularManipulator::Action& /*action*/) mutable -> void
|
||||
[this, sharedRotationState]([[maybe_unused]] const AngularManipulator::Action& action) mutable -> void
|
||||
{
|
||||
sharedRotationState->m_savedOrientation = AZ::Quaternion::CreateIdentity();
|
||||
sharedRotationState->m_referenceFrameAtMouseDown = m_referenceFrame;
|
||||
@@ -1486,8 +1497,12 @@ namespace AzToolsFramework
|
||||
});
|
||||
|
||||
rotationManipulators->InstallLeftMouseUpCallback(
|
||||
[this](const AngularManipulator::Action& /*action*/)
|
||||
[this, sharedRotationState]([[maybe_unused]] const AngularManipulator::Action& action)
|
||||
{
|
||||
AzToolsFramework::EditorTransformChangeNotificationBus::Broadcast(
|
||||
&AzToolsFramework::EditorTransformChangeNotificationBus::Events::OnEntityTransformChanged,
|
||||
sharedRotationState->m_entityIds);
|
||||
|
||||
EndRecordManipulatorCommand();
|
||||
});
|
||||
|
||||
@@ -1533,6 +1548,10 @@ namespace AzToolsFramework
|
||||
|
||||
auto uniformLeftMouseUpCallback = [this, manipulatorEntityIds]([[maybe_unused]] const LinearManipulator::Action& action)
|
||||
{
|
||||
AzToolsFramework::EditorTransformChangeNotificationBus::Broadcast(
|
||||
&AzToolsFramework::EditorTransformChangeNotificationBus::Events::OnEntityTransformChanged,
|
||||
manipulatorEntityIds->m_entityIds);
|
||||
|
||||
m_entityIdManipulators.m_manipulators->SetLocalTransform(RecalculateAverageManipulatorTransform(
|
||||
m_entityIdManipulators.m_lookups, m_pivotOverrideFrame, m_pivotMode, m_referenceFrame));
|
||||
};
|
||||
@@ -2370,7 +2389,7 @@ namespace AzToolsFramework
|
||||
|
||||
AddAction(
|
||||
m_actions, { QKeySequence(Qt::Key_U) },
|
||||
/*ID_VIEWPORTUI_VISIBLE=*/50040, "Toggle ViewportUI", "Hide/Unhide Viewport UI",
|
||||
/*ID_VIEWPORTUI_VISIBLE=*/50040, "Toggle Viewport UI", "Hide/Show Viewport UI",
|
||||
[this]()
|
||||
{
|
||||
SetViewportUiClusterVisible(m_transformModeClusterId, !m_viewportUiVisible);
|
||||
@@ -3139,7 +3158,7 @@ namespace AzToolsFramework
|
||||
}
|
||||
|
||||
void EditorTransformComponentSelection::AfterEntitySelectionChanged(
|
||||
const EntityIdList& /*newlySelectedEntities*/, const EntityIdList& /*newlyDeselectedEntities*/)
|
||||
[[maybe_unused]] const EntityIdList& newlySelectedEntities, [[maybe_unused]] const EntityIdList& newlyDeselectedEntities)
|
||||
{
|
||||
AZ_PROFILE_FUNCTION(AZ::Debug::ProfileCategory::AzToolsFramework);
|
||||
|
||||
@@ -3534,17 +3553,17 @@ namespace AzToolsFramework
|
||||
RegenerateManipulators();
|
||||
}
|
||||
|
||||
void EditorTransformComponentSelection::OnEntityVisibilityChanged(const bool /*visibility*/)
|
||||
void EditorTransformComponentSelection::OnEntityVisibilityChanged([[maybe_unused]] const bool visibility)
|
||||
{
|
||||
m_selectedEntityIdsAndManipulatorsDirty = true;
|
||||
}
|
||||
|
||||
void EditorTransformComponentSelection::OnEntityLockChanged(const bool /*locked*/)
|
||||
void EditorTransformComponentSelection::OnEntityLockChanged([[maybe_unused]] const bool locked)
|
||||
{
|
||||
m_selectedEntityIdsAndManipulatorsDirty = true;
|
||||
}
|
||||
|
||||
void EditorTransformComponentSelection::EnteredComponentMode(const AZStd::vector<AZ::Uuid>& /*componentModeTypes*/)
|
||||
void EditorTransformComponentSelection::EnteredComponentMode([[maybe_unused]] const AZStd::vector<AZ::Uuid>& componentModeTypes)
|
||||
{
|
||||
SetViewportUiClusterVisible(m_transformModeClusterId, false);
|
||||
|
||||
@@ -3553,7 +3572,7 @@ namespace AzToolsFramework
|
||||
ToolsApplicationNotificationBus::Handler::BusDisconnect();
|
||||
}
|
||||
|
||||
void EditorTransformComponentSelection::LeftComponentMode(const AZStd::vector<AZ::Uuid>& /*componentModeTypes*/)
|
||||
void EditorTransformComponentSelection::LeftComponentMode([[maybe_unused]] const AZStd::vector<AZ::Uuid>& componentModeTypes)
|
||||
{
|
||||
SetViewportUiClusterVisible(m_transformModeClusterId, true);
|
||||
|
||||
|
||||
@@ -451,6 +451,43 @@ namespace UnitTest
|
||||
EXPECT_TRUE(finalEntityTransform.IsClose(finalTransformWorld, 0.01f));
|
||||
}
|
||||
|
||||
TEST_F(EditorTransformComponentSelectionManipulatorTestFixture, TranslatingEntityWithLinearManipulatorNotifiesOnEntityTransformChanged)
|
||||
{
|
||||
EditorEntityComponentChangeDetector editorEntityChangeDetector(m_entity1);
|
||||
|
||||
// the initial starting position of the entity (in front and to the left of the camera)
|
||||
const auto initialTransformWorld = AZ::Transform::CreateTranslation(AZ::Vector3(-10.0f, 10.0f, 0.0f));
|
||||
// where the entity should end up (in front and to the right of the camera)
|
||||
const auto finalTransformWorld = AZ::Transform::CreateTranslation(AZ::Vector3(10.0f, 10.0f, 0.0f));
|
||||
|
||||
// calculate the position in screen space of the initial position of the entity
|
||||
const auto initialPositionScreen = AzFramework::WorldToScreen(initialTransformWorld.GetTranslation(), m_cameraState);
|
||||
// calculate the position in screen space of the final position of the entity
|
||||
const auto finalPositionScreen = AzFramework::WorldToScreen(finalTransformWorld.GetTranslation(), m_cameraState);
|
||||
|
||||
// move the entity to its starting position
|
||||
AzToolsFramework::SetWorldTransform(m_entity1, initialTransformWorld);
|
||||
// select the entity (this will cause the manipulators to appear in EditorTransformComponentSelection)
|
||||
AzToolsFramework::SelectEntity(m_entity1);
|
||||
|
||||
// create an offset along the linear manipulator pointing along the x-axis (perpendicular to the camera view)
|
||||
const auto mouseOffsetOnManipulator = AzFramework::ScreenVector(10, 0);
|
||||
// store the mouse down position on the manipulator
|
||||
const auto mouseDownPosition = initialPositionScreen + mouseOffsetOnManipulator;
|
||||
// final position in screen space of the mouse
|
||||
const auto mouseMovePosition = finalPositionScreen + mouseOffsetOnManipulator;
|
||||
|
||||
m_actionDispatcher->CameraState(m_cameraState)
|
||||
->MousePosition(mouseDownPosition)
|
||||
->MouseLButtonDown()
|
||||
->MousePosition(mouseMovePosition)
|
||||
->MouseLButtonUp();
|
||||
|
||||
// verify a EditorTransformChangeNotificationBus::OnEntityTransformChanged occurred
|
||||
using ::testing::UnorderedElementsAreArray;
|
||||
EXPECT_THAT(editorEntityChangeDetector.m_entityIds, UnorderedElementsAreArray(m_entityIds));
|
||||
}
|
||||
|
||||
// simple widget to listen for a mouse wheel event and then forward it on to the ViewportSelectionRequestBus
|
||||
class WheelEventWidget
|
||||
: public QWidget
|
||||
|
||||
@@ -26,7 +26,7 @@ foreach(project_name project_path IN ZIP_LISTS LY_PROJECTS_TARGET_NAME LY_PROJEC
|
||||
message(FATAL_ERROR "The specified project path of ${project_real_path} does not contain a project.json file")
|
||||
else()
|
||||
# Add the project_name to global LY_PROJECTS_TARGET_NAME property
|
||||
file(READ "${project_real_path}/project.json" project_json)
|
||||
ly_file_read("${project_real_path}/project.json" project_json)
|
||||
string(JSON project_name ERROR_VARIABLE json_error GET ${project_json} "project_name")
|
||||
if(json_error)
|
||||
message(FATAL_ERROR "There is an error reading the \"project_name\" key from the '${project_real_path}/project.json' file: ${json_error}")
|
||||
|
||||
@@ -28,8 +28,6 @@
|
||||
#define EDITORPREFS_EVENTVALTOGGLE "operation"
|
||||
#define UNDOSLICESAVE_VALON "UndoSliceSaveValueOn"
|
||||
#define UNDOSLICESAVE_VALOFF "UndoSliceSaveValueOff"
|
||||
#define EDITORUI10_ENABLED "EditorUI10On"
|
||||
#define EDITORUI10_DISABLED "EditorUI10Off"
|
||||
|
||||
void CEditorPreferencesPage_General::Reflect(AZ::SerializeContext& serialize)
|
||||
{
|
||||
@@ -45,8 +43,7 @@ void CEditorPreferencesPage_General::Reflect(AZ::SerializeContext& serialize)
|
||||
->Field("StylusMode", &GeneralSettings::m_stylusMode)
|
||||
->Field("ShowNews", &GeneralSettings::m_bShowNews)
|
||||
->Field("EnableSceneInspector", &GeneralSettings::m_enableSceneInspector)
|
||||
->Field("RestoreViewportCamera", &GeneralSettings::m_restoreViewportCamera)
|
||||
->Field("PrefabSystem", &GeneralSettings::m_enablePrefabSystem);
|
||||
->Field("RestoreViewportCamera", &GeneralSettings::m_restoreViewportCamera);
|
||||
|
||||
serialize.Class<Messaging>()
|
||||
->Version(2)
|
||||
@@ -94,8 +91,7 @@ void CEditorPreferencesPage_General::Reflect(AZ::SerializeContext& serialize)
|
||||
->EnumAttribute(AzQtComponents::ToolBar::ToolBarIconSize::IconLarge, "Large")
|
||||
->DataElement(AZ::Edit::UIHandlers::CheckBox, &GeneralSettings::m_stylusMode, "Stylus Mode", "Stylus Mode for tablets and other pointing devices")
|
||||
->DataElement(AZ::Edit::UIHandlers::CheckBox, &GeneralSettings::m_restoreViewportCamera, EditorPreferencesGeneralRestoreViewportCameraSettingName, "Keep the original editor viewport transform when exiting game mode.")
|
||||
->DataElement(AZ::Edit::UIHandlers::CheckBox, &GeneralSettings::m_enableSceneInspector, "Enable Scene Inspector (EXPERIMENTAL)", "Enable the option to inspect the internal data loaded from scene files like .fbx. This is an experimental feature. Restart the Scene Settings if the option is not visible under the Help menu.")
|
||||
->DataElement(AZ::Edit::UIHandlers::CheckBox, &GeneralSettings::m_enablePrefabSystem, "Enable Prefab System (EXPERIMENTAL)", "Enable this option to preview Open 3D Engine's new prefab system. Enabling this setting removes slice support for level entities; you will need to restart the Editor for the change to take effect.");
|
||||
->DataElement(AZ::Edit::UIHandlers::CheckBox, &GeneralSettings::m_enableSceneInspector, "Enable Scene Inspector (EXPERIMENTAL)", "Enable the option to inspect the internal data loaded from scene files like .fbx. This is an experimental feature. Restart the Scene Settings if the option is not visible under the Help menu.");
|
||||
|
||||
editContext->Class<Messaging>("Messaging", "")
|
||||
->DataElement(AZ::Edit::UIHandlers::CheckBox, &Messaging::m_showDashboard, "Show Welcome to Open 3D Engine at startup", "Show Welcome to Open 3D Engine at startup")
|
||||
@@ -159,8 +155,6 @@ void CEditorPreferencesPage_General::OnApply()
|
||||
gSettings.restoreViewportCamera = m_generalSettings.m_restoreViewportCamera;
|
||||
gSettings.enableSceneInspector = m_generalSettings.m_enableSceneInspector;
|
||||
|
||||
gSettings.prefabSystem = m_generalSettings.m_enablePrefabSystem;
|
||||
|
||||
if (static_cast<int>(m_generalSettings.m_toolbarIconSize) != gSettings.gui.nToolbarIconSize)
|
||||
{
|
||||
gSettings.gui.nToolbarIconSize = static_cast<int>(m_generalSettings.m_toolbarIconSize);
|
||||
@@ -178,16 +172,6 @@ void CEditorPreferencesPage_General::OnApply()
|
||||
|
||||
//slices
|
||||
gSettings.sliceSettings.dynamicByDefault = m_sliceSettings.m_slicesDynamicByDefault;
|
||||
|
||||
// if the user enabled/disabled the prefab context - notify them that a restart
|
||||
// is required in order to see the effect of the change
|
||||
if (gSettings.prefabSystem != m_generalSettings.m_enablePrefabSystemInitialValue)
|
||||
{
|
||||
QMessageBox::warning(
|
||||
AzToolsFramework::GetActiveWindow(), QObject::tr("Restart required"),
|
||||
QObject::tr("Restart the Editor in order for the Prefab/Slice system changes to take effect.")
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
void CEditorPreferencesPage_General::InitializeSettings()
|
||||
@@ -202,8 +186,6 @@ void CEditorPreferencesPage_General::InitializeSettings()
|
||||
m_generalSettings.m_stylusMode = gSettings.stylusMode;
|
||||
m_generalSettings.m_restoreViewportCamera = gSettings.restoreViewportCamera;
|
||||
m_generalSettings.m_enableSceneInspector = gSettings.enableSceneInspector;
|
||||
m_generalSettings.m_enablePrefabSystem = gSettings.prefabSystem;
|
||||
m_generalSettings.m_enablePrefabSystemInitialValue = gSettings.prefabSystem;
|
||||
|
||||
m_generalSettings.m_toolbarIconSize = static_cast<AzQtComponents::ToolBar::ToolBarIconSize>(gSettings.gui.nToolbarIconSize);
|
||||
|
||||
|
||||
@@ -58,10 +58,6 @@ private:
|
||||
bool m_restoreViewportCamera;
|
||||
bool m_bShowNews;
|
||||
bool m_enableSceneInspector;
|
||||
bool m_enablePrefabSystem;
|
||||
|
||||
// Only used to tell if the user has changed this value since it requires a restart
|
||||
bool m_enablePrefabSystemInitialValue;
|
||||
};
|
||||
|
||||
struct Messaging
|
||||
|
||||
@@ -1,460 +0,0 @@
|
||||
/*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
// Original file Copyright Crytek GMBH or its affiliates, used under license.
|
||||
|
||||
#include "EditorDefs.h"
|
||||
|
||||
#include "ImageHDR.h"
|
||||
|
||||
// Editor
|
||||
#include "Util/Image.h"
|
||||
|
||||
// We need globals because of the callbacks (they don't allow us to pass state)
|
||||
static CryMutex globalFileMutex;
|
||||
static size_t globalFileBufferOffset = 0;
|
||||
static size_t globalFileBufferSize = 0;
|
||||
|
||||
static char* fgets(char* _Buf, [[maybe_unused]] int _MaxCount, CCryFile* _File)
|
||||
{
|
||||
while (globalFileBufferOffset < globalFileBufferSize)
|
||||
{
|
||||
char chr;
|
||||
|
||||
_File->ReadRaw(&chr, 1);
|
||||
globalFileBufferOffset++;
|
||||
|
||||
*_Buf++ = chr;
|
||||
if (chr == '\n')
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
*_Buf = '\0';
|
||||
return _Buf;
|
||||
}
|
||||
|
||||
static size_t fread(void* _DstBuf, size_t _ElementSize, size_t _Count, CCryFile* _File)
|
||||
{
|
||||
size_t cpy = min(_ElementSize * _Count, globalFileBufferSize - globalFileBufferOffset);
|
||||
|
||||
_File->ReadRaw(_DstBuf, cpy);
|
||||
globalFileBufferOffset += cpy;
|
||||
|
||||
return cpy;
|
||||
}
|
||||
|
||||
/* THIS CODE CARRIES NO GUARANTEE OF USABILITY OR FITNESS FOR ANY PURPOSE.
|
||||
* WHILE THE AUTHORS HAVE TRIED TO ENSURE THE PROGRAM WORKS CORRECTLY,
|
||||
* IT IS STRICTLY USE AT YOUR OWN RISK. */
|
||||
|
||||
/* utility for reading and writing Ward's rgbe image format.
|
||||
See rgbe.txt file for more details.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int valid; /* indicate which fields are valid */
|
||||
char programtype[16]; /* listed at beginning of file to identify it
|
||||
* after "#?". defaults to "RGBE" */
|
||||
float gamma; /* image has already been gamma corrected with
|
||||
* given gamma. defaults to 1.0 (no correction) */
|
||||
float exposure; /* a value of 1.0 in an image corresponds to
|
||||
* <exposure> watts/steradian/m^2.
|
||||
* defaults to 1.0 */
|
||||
char instructions[512];
|
||||
} rgbe_header_info;
|
||||
|
||||
/* flags indicating which fields in an rgbe_header_info are valid */
|
||||
#define RGBE_VALID_PROGRAMTYPE 0x01
|
||||
#define RGBE_VALID_GAMMA 0x02
|
||||
#define RGBE_VALID_EXPOSURE 0x04
|
||||
#define RGBE_VALID_INSTRUCTIONS 0x08
|
||||
|
||||
/* return codes for rgbe routines */
|
||||
#define RGBE_RETURN_SUCCESS 0
|
||||
#define RGBE_RETURN_FAILURE -1
|
||||
|
||||
/* read or write headers */
|
||||
/* you may set rgbe_header_info to null if you want to */
|
||||
int RGBE_ReadHeader(CCryFile* fp, uint32* width, uint32* height, rgbe_header_info* info);
|
||||
|
||||
/* read or write pixels */
|
||||
/* can read or write pixels in chunks of any size including single pixels*/
|
||||
int RGBE_ReadPixels(CCryFile* fp, float* data, int numpixels);
|
||||
|
||||
/* read or write run length encoded files */
|
||||
/* must be called to read or write whole scanlines */
|
||||
int RGBE_ReadPixels_RLE(CCryFile* fp, float* data, uint32 scanline_width,
|
||||
uint32 num_scanlines);
|
||||
|
||||
/* THIS CODE CARRIES NO GUARANTEE OF USABILITY OR FITNESS FOR ANY PURPOSE.
|
||||
* WHILE THE AUTHORS HAVE TRIED TO ENSURE THE PROGRAM WORKS CORRECTLY,
|
||||
* IT IS STRICTLY USE AT YOUR OWN RISK. */
|
||||
|
||||
#include <math.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
|
||||
/* This file contains code to read and write four byte rgbe file format
|
||||
developed by Greg Ward. It handles the conversions between rgbe and
|
||||
pixels consisting of floats. The data is assumed to be an array of floats.
|
||||
By default there are three floats per pixel in the order red, green, blue.
|
||||
(RGBE_DATA_??? values control this.) Only the mimimal header reading and
|
||||
writing is implemented. Each routine does error checking and will return
|
||||
a status value as defined below. This code is intended as a skeleton so
|
||||
feel free to modify it to suit your needs.
|
||||
|
||||
(Place notice here if you modified the code.)
|
||||
posted to http://www.graphics.cornell.edu/~bjw/
|
||||
written by Bruce Walter (bjw@graphics.cornell.edu) 5/26/95
|
||||
based on code written by Greg Ward
|
||||
*/
|
||||
|
||||
#ifndef INLINE
|
||||
#ifdef _CPLUSPLUS
|
||||
/* define if your compiler understands inline commands */
|
||||
#define INLINE inline
|
||||
#else
|
||||
#define INLINE
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* offsets to red, green, and blue components in a data (float) pixel */
|
||||
#define RGBE_DATA_RED 0
|
||||
#define RGBE_DATA_GREEN 1
|
||||
#define RGBE_DATA_BLUE 2
|
||||
#define RGBE_DATA_ALPHA 3
|
||||
/* number of floats per pixel */
|
||||
#define RGBE_DATA_SIZE 4
|
||||
|
||||
enum rgbe_error_codes
|
||||
{
|
||||
rgbe_read_error,
|
||||
rgbe_write_error,
|
||||
rgbe_format_error,
|
||||
rgbe_memory_error,
|
||||
};
|
||||
|
||||
/* default error routine. change this to change error handling */
|
||||
static int rgbe_error(int rgbe_error_code, const char* msg)
|
||||
{
|
||||
switch (rgbe_error_code)
|
||||
{
|
||||
case rgbe_read_error:
|
||||
CLogFile::FormatLine("RGBE read error");
|
||||
break;
|
||||
case rgbe_write_error:
|
||||
CLogFile::FormatLine("RGBE write error");
|
||||
break;
|
||||
case rgbe_format_error:
|
||||
CLogFile::FormatLine("RGBE bad file format: %s\n", msg);
|
||||
break;
|
||||
default:
|
||||
case rgbe_memory_error:
|
||||
CLogFile::FormatLine("RGBE error: %s\n", msg);
|
||||
}
|
||||
return RGBE_RETURN_FAILURE;
|
||||
}
|
||||
|
||||
/* standard conversion from rgbe to float pixels */
|
||||
/* note: Ward uses ldexp(col+0.5,exp-(128+8)). However we wanted pixels */
|
||||
/* in the range [0,1] to map back into the range [0,1]. */
|
||||
static INLINE void
|
||||
rgbe2type(char* red, char* green, char* blue, unsigned char rgbe[4])
|
||||
{
|
||||
float f;
|
||||
|
||||
if (rgbe[3]) /*nonzero pixel*/
|
||||
{
|
||||
f = ldexp(1.0f, rgbe[3] - (int)(128 + 8)) * 255.0f;
|
||||
*red = (unsigned char) max(0.0f, min(rgbe[0] * f, 255.0f));
|
||||
*green = (unsigned char) max(0.0f, min(rgbe[1] * f, 255.0f));
|
||||
*blue = (unsigned char) max(0.0f, min(rgbe[2] * f, 255.0f));
|
||||
}
|
||||
else
|
||||
{
|
||||
*red = *green = *blue = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* minimal header reading. modify if you want to parse more information */
|
||||
int RGBE_ReadHeader(CCryFile* fp, uint32* width, uint32* height, rgbe_header_info* info)
|
||||
{
|
||||
char buf[512];
|
||||
int found_format;
|
||||
float tempf;
|
||||
int i;
|
||||
|
||||
found_format = 0;
|
||||
if (info)
|
||||
{
|
||||
info->valid = 0;
|
||||
info->programtype[0] = 0;
|
||||
info->gamma = info->exposure = 1.0;
|
||||
}
|
||||
if (fgets(buf, sizeof(buf) / sizeof(buf[0]), fp) == NULL)
|
||||
{
|
||||
return rgbe_error(rgbe_read_error, NULL);
|
||||
}
|
||||
if ((buf[0] != '#') || (buf[1] != '?'))
|
||||
{
|
||||
/* if you want to require the magic token then uncomment the next line */
|
||||
/*return rgbe_error(rgbe_format_error,"bad initial token"); */
|
||||
}
|
||||
else if (info)
|
||||
{
|
||||
info->valid |= RGBE_VALID_PROGRAMTYPE;
|
||||
for (i = 0; i < sizeof(info->programtype) - 1; i++)
|
||||
{
|
||||
if ((buf[i + 2] == 0) || isspace(buf[i + 2]))
|
||||
{
|
||||
break;
|
||||
}
|
||||
info->programtype[i] = buf[i + 2];
|
||||
}
|
||||
info->programtype[i] = 0;
|
||||
if (fgets(buf, sizeof(buf) / sizeof(buf[0]), fp) == 0)
|
||||
{
|
||||
return rgbe_error(rgbe_read_error, NULL);
|
||||
}
|
||||
}
|
||||
for (;; )
|
||||
{
|
||||
if ((buf[0] == 0) || (buf[0] == '\n'))
|
||||
{
|
||||
return rgbe_error(rgbe_format_error, "no FORMAT specifier found");
|
||||
}
|
||||
else if (strcmp(buf, "FORMAT=32-bit_rle_rgbe\n") == 0)
|
||||
{
|
||||
break; /* format found so break out of loop */
|
||||
}
|
||||
else if (info && (azsscanf(buf, "GAMMA=%g", &tempf) == 1))
|
||||
{
|
||||
info->gamma = tempf;
|
||||
info->valid |= RGBE_VALID_GAMMA;
|
||||
}
|
||||
else if (info && (azsscanf(buf, "EXPOSURE=%g", &tempf) == 1))
|
||||
{
|
||||
info->exposure = tempf;
|
||||
info->valid |= RGBE_VALID_EXPOSURE;
|
||||
}
|
||||
else if (info && (!strncmp(buf, "INSTRUCTIONS=", 13)))
|
||||
{
|
||||
info->valid |= RGBE_VALID_INSTRUCTIONS;
|
||||
for (i = 0; i < sizeof(info->instructions) - 1; i++)
|
||||
{
|
||||
if ((buf[i + 13] == 0) || isspace(buf[i + 13]))
|
||||
{
|
||||
break;
|
||||
}
|
||||
info->instructions[i] = buf[i + 13];
|
||||
}
|
||||
}
|
||||
if (fgets(buf, sizeof(buf) / sizeof(buf[0]), fp) == 0)
|
||||
{
|
||||
return rgbe_error(rgbe_read_error, NULL);
|
||||
}
|
||||
}
|
||||
if (fgets(buf, sizeof(buf) / sizeof(buf[0]), fp) == 0)
|
||||
{
|
||||
return rgbe_error(rgbe_read_error, NULL);
|
||||
}
|
||||
if (strcmp(buf, "\n") != 0)
|
||||
{
|
||||
return rgbe_error(rgbe_format_error,
|
||||
"missing blank line after FORMAT specifier");
|
||||
}
|
||||
if (fgets(buf, sizeof(buf) / sizeof(buf[0]), fp) == 0)
|
||||
{
|
||||
return rgbe_error(rgbe_read_error, NULL);
|
||||
}
|
||||
if (azsscanf(buf, "-Y %d +X %d", height, width) < 2)
|
||||
{
|
||||
return rgbe_error(rgbe_format_error, "missing image size specifier");
|
||||
}
|
||||
return RGBE_RETURN_SUCCESS;
|
||||
}
|
||||
|
||||
/* simple read routine. will not correctly handle run length encoding */
|
||||
int RGBE_ReadPixels(CCryFile* fp, char* data, int numpixels)
|
||||
{
|
||||
unsigned char rgbe[4];
|
||||
|
||||
while (numpixels-- > 0)
|
||||
{
|
||||
if (fread(rgbe, sizeof(rgbe), 1, fp) < 1)
|
||||
{
|
||||
return rgbe_error(rgbe_read_error, NULL);
|
||||
}
|
||||
rgbe2type(&data[RGBE_DATA_RED], &data[RGBE_DATA_GREEN],
|
||||
&data[RGBE_DATA_BLUE], rgbe);
|
||||
data[RGBE_DATA_ALPHA] = 0.0f;
|
||||
data += RGBE_DATA_SIZE;
|
||||
}
|
||||
return RGBE_RETURN_SUCCESS;
|
||||
}
|
||||
|
||||
int RGBE_ReadPixels_RLE(CCryFile* fp, char* data, uint32 scanline_width,
|
||||
uint32 num_scanlines)
|
||||
{
|
||||
unsigned char rgbe[4], * scanline_buffer, * ptr, * ptr_end;
|
||||
int i, count;
|
||||
unsigned char buf[2];
|
||||
|
||||
if ((scanline_width < 8) || (scanline_width > 0x7fff))
|
||||
{
|
||||
/* run length encoding is not allowed so read flat*/
|
||||
return RGBE_ReadPixels(fp, data, scanline_width * num_scanlines);
|
||||
}
|
||||
scanline_buffer = NULL;
|
||||
/* read in each successive scanline */
|
||||
while (num_scanlines > 0)
|
||||
{
|
||||
if (fread(rgbe, sizeof(rgbe), 1, fp) < 1)
|
||||
{
|
||||
free(scanline_buffer);
|
||||
return rgbe_error(rgbe_read_error, NULL);
|
||||
}
|
||||
if ((rgbe[0] != 2) || (rgbe[1] != 2) || (rgbe[2] & 0x80))
|
||||
{
|
||||
/* this file is not run length encoded */
|
||||
rgbe2type(&data[0], &data[1], &data[2], rgbe);
|
||||
data += RGBE_DATA_SIZE;
|
||||
free(scanline_buffer);
|
||||
return RGBE_ReadPixels(fp, data, scanline_width * num_scanlines - 1);
|
||||
}
|
||||
if ((((int)rgbe[2]) << 8 | rgbe[3]) != scanline_width)
|
||||
{
|
||||
free(scanline_buffer);
|
||||
return rgbe_error(rgbe_format_error, "wrong scanline width");
|
||||
}
|
||||
if (scanline_buffer == NULL)
|
||||
{
|
||||
scanline_buffer = (unsigned char*)
|
||||
malloc(sizeof(unsigned char) * 4 * scanline_width);
|
||||
}
|
||||
if (scanline_buffer == NULL)
|
||||
{
|
||||
return rgbe_error(rgbe_memory_error, "unable to allocate buffer space");
|
||||
}
|
||||
|
||||
ptr = &scanline_buffer[0];
|
||||
/* read each of the four channels for the scanline into the buffer */
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
ptr_end = &scanline_buffer[(i + 1) * scanline_width];
|
||||
while (ptr < ptr_end)
|
||||
{
|
||||
if (fread(buf, sizeof(buf[0]) * 2, 1, fp) < 1)
|
||||
{
|
||||
free(scanline_buffer);
|
||||
return rgbe_error(rgbe_read_error, NULL);
|
||||
}
|
||||
if (buf[0] > 128)
|
||||
{
|
||||
/* a run of the same value */
|
||||
count = buf[0] - 128;
|
||||
if ((count == 0) || (count > ptr_end - ptr))
|
||||
{
|
||||
free(scanline_buffer);
|
||||
return rgbe_error(rgbe_format_error, "bad scanline data");
|
||||
}
|
||||
while (count-- > 0)
|
||||
{
|
||||
*ptr++ = buf[1];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* a non-run */
|
||||
count = buf[0];
|
||||
if ((count == 0) || (count > ptr_end - ptr))
|
||||
{
|
||||
free(scanline_buffer);
|
||||
return rgbe_error(rgbe_format_error, "bad scanline data");
|
||||
}
|
||||
*ptr++ = buf[1];
|
||||
if (--count > 0)
|
||||
{
|
||||
if (fread(ptr, sizeof(*ptr) * count, 1, fp) < 1)
|
||||
{
|
||||
free(scanline_buffer);
|
||||
return rgbe_error(rgbe_read_error, NULL);
|
||||
}
|
||||
ptr += count;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/* now convert data from buffer into floats */
|
||||
for (i = 0; i < scanline_width; i++)
|
||||
{
|
||||
rgbe[0] = scanline_buffer[i];
|
||||
rgbe[1] = scanline_buffer[i + scanline_width];
|
||||
rgbe[2] = scanline_buffer[i + 2 * scanline_width];
|
||||
rgbe[3] = scanline_buffer[i + 3 * scanline_width];
|
||||
rgbe2type(&data[RGBE_DATA_RED], &data[RGBE_DATA_GREEN],
|
||||
&data[RGBE_DATA_BLUE], rgbe);
|
||||
data[RGBE_DATA_ALPHA] = 0.0f;
|
||||
data += RGBE_DATA_SIZE;
|
||||
}
|
||||
num_scanlines--;
|
||||
}
|
||||
free(scanline_buffer);
|
||||
return RGBE_RETURN_SUCCESS;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
bool CImageHDR::Load(const QString& fileName, CImageEx& outImage)
|
||||
{
|
||||
CCryFile file;
|
||||
if (!file.Open(fileName.toUtf8().data(), "rb"))
|
||||
{
|
||||
CLogFile::FormatLine("File not found %s", fileName.toUtf8().data());
|
||||
return false;
|
||||
}
|
||||
|
||||
// We use some global variables in callbacks, so we must
|
||||
// prevent multithread access to the data
|
||||
CryAutoLock<CryMutex> tifAutoLock(globalFileMutex);
|
||||
|
||||
globalFileBufferSize = file.GetLength();
|
||||
globalFileBufferOffset = 0;
|
||||
|
||||
bool bRet = false;
|
||||
uint32 dwWidth, dwHeight;
|
||||
rgbe_header_info info;
|
||||
|
||||
if (RGBE_RETURN_SUCCESS == RGBE_ReadHeader(&file, &dwWidth, &dwHeight, &info))
|
||||
{
|
||||
if (outImage.Allocate(dwWidth, dwHeight))
|
||||
{
|
||||
char* pDst = (char*)outImage.GetData();
|
||||
|
||||
if (RGBE_RETURN_SUCCESS == RGBE_ReadPixels_RLE(&file, (char*)pDst, dwWidth, dwHeight))
|
||||
{
|
||||
bRet = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!bRet)
|
||||
{
|
||||
outImage.Detach();
|
||||
}
|
||||
|
||||
return bRet;
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
/*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
// Original file Copyright Crytek GMBH or its affiliates, used under license.
|
||||
|
||||
#pragma once
|
||||
|
||||
class CImageEx;
|
||||
|
||||
class CImageHDR
|
||||
{
|
||||
public:
|
||||
bool Load(const QString& fileName, CImageEx& outImage);
|
||||
};
|
||||
@@ -21,7 +21,6 @@
|
||||
// Editor
|
||||
#include "Util/ImageGif.h"
|
||||
#include "Util/ImageTIF.h"
|
||||
#include "Util/ImageHDR.h"
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
bool CImageUtil::Save(const QString& strFileName, CImageEx& inImage)
|
||||
@@ -275,10 +274,6 @@ bool CImageUtil::LoadImage(const QString& fileName, CImageEx& image, bool* pQual
|
||||
{
|
||||
return CImageUtil::Load(fileName, image);
|
||||
}
|
||||
else if (azstricmp(ext, ".hdr") == 0)
|
||||
{
|
||||
return CImageHDR().Load(fileName, image);
|
||||
}
|
||||
else
|
||||
{
|
||||
return CImageUtil::Load(fileName, image);
|
||||
|
||||
@@ -737,8 +737,6 @@ set(FILES
|
||||
Util/GeometryUtil.cpp
|
||||
Util/GuidUtil.cpp
|
||||
Util/GuidUtil.h
|
||||
Util/ImageHDR.cpp
|
||||
Util/ImageHDR.h
|
||||
Util/IObservable.h
|
||||
Util/IndexedFiles.cpp
|
||||
Util/IndexedFiles.h
|
||||
|
||||
@@ -263,15 +263,13 @@ namespace AWSCore
|
||||
SetApiEndpointAndRegion(config);
|
||||
|
||||
ServiceAPI::AWSAttributionRequestJob* requestJob = ServiceAPI::AWSAttributionRequestJob::Create(
|
||||
[this](ServiceAPI::AWSAttributionRequestJob* successJob)
|
||||
[this]([[maybe_unused]] ServiceAPI::AWSAttributionRequestJob* successJob)
|
||||
{
|
||||
AZ_UNUSED(successJob);
|
||||
|
||||
UpdateLastSend();
|
||||
AZ_Printf("AWSAttributionManager", "AWSAttribution metric submit success");
|
||||
|
||||
},
|
||||
[this](ServiceAPI::AWSAttributionRequestJob* failJob)
|
||||
[this]([[maybe_unused]] ServiceAPI::AWSAttributionRequestJob* failJob)
|
||||
{
|
||||
AZ_Error("AWSAttributionManager", false, "Metrics send error: %s", failJob->error.message.c_str());
|
||||
},
|
||||
|
||||
@@ -11,10 +11,10 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
import os
|
||||
|
||||
from aws_cdk import (
|
||||
aws_lambda as _lambda,
|
||||
aws_s3 as _s3,
|
||||
aws_lambda as lambda_,
|
||||
aws_s3 as s3,
|
||||
aws_s3_deployment as s3_deployment,
|
||||
aws_dynamodb as _dynamo,
|
||||
aws_dynamodb as dynamo,
|
||||
core
|
||||
)
|
||||
|
||||
@@ -39,7 +39,7 @@ class ExampleResources(core.Stack):
|
||||
self._feature_name = feature_name
|
||||
|
||||
self._policy = AuthPolicy(context=self).generate_admin_policy(stack=self)
|
||||
self._s3 = self.__create_s3_bucket()
|
||||
self._s3_bucket = self.__create_s3_bucket()
|
||||
self._lambda = self.__create_example_lambda()
|
||||
self._table = self.__create_dynamodb_table()
|
||||
|
||||
@@ -49,8 +49,8 @@ class ExampleResources(core.Stack):
|
||||
self.__grant_access(props=props_)
|
||||
|
||||
def __grant_access(self, props: CoreStackProperties):
|
||||
self._s3.grant_read(props.user_group)
|
||||
self._s3.grant_read(props.admin_group)
|
||||
self._s3_bucket.grant_read(props.user_group)
|
||||
self._s3_bucket.grant_read(props.admin_group)
|
||||
|
||||
self._lambda.grant_invoke(props.user_group)
|
||||
self._lambda.grant_invoke(props.admin_group)
|
||||
@@ -58,42 +58,50 @@ class ExampleResources(core.Stack):
|
||||
self._table.grant_read_data(props.user_group)
|
||||
self._table.grant_read_data(props.admin_group)
|
||||
|
||||
def __create_s3_bucket(self) -> _s3.Bucket:
|
||||
# create s3 bucket
|
||||
|
||||
# create s3 bucket
|
||||
s3 = _s3.Bucket(self, f'{self._project_name}-{self._feature_name}-Example-S3bucket')
|
||||
def __create_s3_bucket(self) -> s3.Bucket:
|
||||
# Create a sample S3 bucket following S3 best practices
|
||||
# # See https://docs.aws.amazon.com/AmazonS3/latest/dev/security-best-practices.html
|
||||
# 1. Block all public access to the bucket
|
||||
# 2. Use SSE-S3 encryption. Explore encryption at rest options via
|
||||
# https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html
|
||||
example_bucket = s3.Bucket(
|
||||
self,
|
||||
f'{self._project_name}-{self._feature_name}-Example-S3bucket',
|
||||
block_public_access=s3.BlockPublicAccess.BLOCK_ALL,
|
||||
encryption=s3.BucketEncryption.S3_MANAGED
|
||||
)
|
||||
|
||||
s3_deployment.BucketDeployment(
|
||||
self,
|
||||
f'{self._project_name}-{self._feature_name}-S3bucket-Deployment',
|
||||
destination_bucket=s3,
|
||||
destination_bucket=example_bucket,
|
||||
sources=[
|
||||
s3_deployment.Source.asset('example/s3_content')
|
||||
],
|
||||
retain_on_delete=False
|
||||
)
|
||||
return example_bucket
|
||||
|
||||
return s3
|
||||
|
||||
def __create_example_lambda(self) -> _lambda.Function:
|
||||
def __create_example_lambda(self) -> lambda_.Function:
|
||||
# create lambda function
|
||||
function = _lambda.Function(self,
|
||||
f'{self._project_name}-{self._feature_name}-Lambda-Function',
|
||||
runtime=_lambda.Runtime.PYTHON_3_8,
|
||||
handler="lambda-handler.main",
|
||||
code=_lambda.Code.asset(os.path.join(os.path.dirname(__file__), 'lambda')))
|
||||
function = lambda_.Function(
|
||||
self,
|
||||
f'{self._project_name}-{self._feature_name}-Lambda-Function',
|
||||
runtime=lambda_.Runtime.PYTHON_3_8,
|
||||
handler="lambda-handler.main",
|
||||
code=lambda_.Code.asset(os.path.join(os.path.dirname(__file__), 'lambda'))
|
||||
)
|
||||
return function
|
||||
|
||||
def __create_dynamodb_table(self) -> _dynamo.Table:
|
||||
def __create_dynamodb_table(self) -> dynamo.Table:
|
||||
# create dynamo table
|
||||
# NB: CDK does not support seeding data, see simple table_seeder.py
|
||||
demo_table = _dynamo.Table(
|
||||
demo_table = dynamo.Table(
|
||||
self,
|
||||
f'{self._project_name}-{self._feature_name}-Table',
|
||||
partition_key=_dynamo.Attribute(
|
||||
partition_key=dynamo.Attribute(
|
||||
name="id",
|
||||
type=_dynamo.AttributeType.STRING
|
||||
type=dynamo.AttributeType.STRING
|
||||
)
|
||||
)
|
||||
return demo_table
|
||||
@@ -106,7 +114,7 @@ class ExampleResources(core.Stack):
|
||||
id=f'ExampleBucketOutput',
|
||||
description='An example S3 bucket to use with AWSCore ScriptBehaviors',
|
||||
export_name=f"ExampleS3Bucket",
|
||||
value=self._s3.bucket_arn)
|
||||
value=self._s3_bucket.bucket_arn)
|
||||
|
||||
# Define exports
|
||||
# Export resource group
|
||||
|
||||
@@ -62,12 +62,7 @@ namespace AZ
|
||||
{
|
||||
RHI::Ptr<PhysicalDevice> physicalDevice = aznew PhysicalDevice;
|
||||
physicalDevice->Init(device);
|
||||
size_t gpuMemSize = physicalDevice->GetDescriptor().m_heapSizePerLevel[static_cast<size_t>(RHI::HeapMemoryLevel::Device)];
|
||||
AZ_Warning("Vulkan", gpuMemSize >= MinGPUMemSize, "Rejecting GPU %s as it's gpu mem size of %zu bytes is less than min required size of %zu bytes for Vulkan API", physicalDevice->GetDescriptor().m_description.c_str(), gpuMemSize, MinGPUMemSize);
|
||||
if (gpuMemSize >= MinGPUMemSize)
|
||||
{
|
||||
physicalDeviceList.emplace_back(physicalDevice);
|
||||
}
|
||||
physicalDeviceList.emplace_back(physicalDevice);
|
||||
}
|
||||
|
||||
return physicalDeviceList;
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5f4d124e84c8387f06b4b3a77bb3be1e7c3e0dcecb26a8934b89faa8203ed380
|
||||
size 84608
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9b936b72b5b45b52c188bf9f930d6066af65f0d79ff8abf5dc08927d97ac465e
|
||||
size 55264
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"description": "",
|
||||
"materialType": "Materials/Types/StandardPBR.materialtype",
|
||||
"parentMaterial": "",
|
||||
"propertyLayoutVersion": 3,
|
||||
"properties": {
|
||||
"baseColor": {
|
||||
"color": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
"emissive": {
|
||||
"color": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
"irradiance": {
|
||||
"color": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
"opacity": {
|
||||
"factor": 1.0
|
||||
}
|
||||
}
|
||||
}
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"description": "",
|
||||
"materialType": "Materials/Types/StandardPBR.materialtype",
|
||||
"parentMaterial": "",
|
||||
"propertyLayoutVersion": 3,
|
||||
"properties": {
|
||||
"baseColor": {
|
||||
"color": [
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
"emissive": {
|
||||
"color": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
"irradiance": {
|
||||
"color": [
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
"opacity": {
|
||||
"factor": 1.0
|
||||
}
|
||||
}
|
||||
}
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"description": "",
|
||||
"materialType": "Materials/Types/StandardPBR.materialtype",
|
||||
"parentMaterial": "",
|
||||
"propertyLayoutVersion": 3,
|
||||
"properties": {
|
||||
"baseColor": {
|
||||
"color": [
|
||||
0.800000011920929,
|
||||
0.800000011920929,
|
||||
0.800000011920929,
|
||||
1.0
|
||||
],
|
||||
"textureMap": "Textures/arch_1k_basecolor.png"
|
||||
},
|
||||
"general": {
|
||||
"applySpecularAA": true
|
||||
},
|
||||
"irradiance": {
|
||||
"color": [
|
||||
1.0,
|
||||
0.885053813457489,
|
||||
0.801281750202179,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
"metallic": {
|
||||
"textureMap": "Textures/arch_1k_metallic.png"
|
||||
},
|
||||
"normal": {
|
||||
"textureMap": "Textures/arch_1k_normal.jpg"
|
||||
},
|
||||
"occlusion": {
|
||||
"diffuseTextureMap": "Textures/arch_1k_ao.png"
|
||||
},
|
||||
"opacity": {
|
||||
"factor": 1.0
|
||||
},
|
||||
"parallax": {
|
||||
"factor": 0.050999999046325687,
|
||||
"pdo": true,
|
||||
"quality": "High",
|
||||
"useTexture": false
|
||||
},
|
||||
"roughness": {
|
||||
"textureMap": "Textures/arch_1k_roughness.png"
|
||||
}
|
||||
}
|
||||
}
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"description": "",
|
||||
"materialType": "Materials/Types/StandardPBR.materialtype",
|
||||
"parentMaterial": "",
|
||||
"propertyLayoutVersion": 3,
|
||||
"properties": {
|
||||
"baseColor": {
|
||||
"color": [
|
||||
0.800000011920929,
|
||||
0.800000011920929,
|
||||
0.800000011920929,
|
||||
1.0
|
||||
],
|
||||
"textureMap": "Textures/bricks_1k_basecolor.png"
|
||||
},
|
||||
"clearCoat": {
|
||||
"factor": 0.5,
|
||||
"normalMap": "Textures/bricks_1k_normal.jpg",
|
||||
"roughness": 0.5
|
||||
},
|
||||
"general": {
|
||||
"applySpecularAA": true
|
||||
},
|
||||
"irradiance": {
|
||||
"color": [
|
||||
1.0,
|
||||
0.9703211784362793,
|
||||
0.9703211784362793,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
"metallic": {
|
||||
"textureMap": "Textures/bricks_1k_metallic.png"
|
||||
},
|
||||
"normal": {
|
||||
"textureMap": "Textures/bricks_1k_normal.jpg"
|
||||
},
|
||||
"occlusion": {
|
||||
"diffuseTextureMap": "Textures/bricks_1k_ao.png"
|
||||
},
|
||||
"opacity": {
|
||||
"factor": 1.0
|
||||
},
|
||||
"parallax": {
|
||||
"algorithm": "ContactRefinement",
|
||||
"factor": 0.03500000014901161,
|
||||
"quality": "Medium",
|
||||
"useTexture": false
|
||||
},
|
||||
"roughness": {
|
||||
"textureMap": "Textures/bricks_1k_roughness.png"
|
||||
}
|
||||
}
|
||||
}
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"description": "",
|
||||
"materialType": "Materials/Types/StandardPBR.materialtype",
|
||||
"parentMaterial": "",
|
||||
"propertyLayoutVersion": 3,
|
||||
"properties": {
|
||||
"baseColor": {
|
||||
"color": [
|
||||
0.800000011920929,
|
||||
0.800000011920929,
|
||||
0.800000011920929,
|
||||
1.0
|
||||
],
|
||||
"textureMap": "Textures/floor_1k_basecolor.png"
|
||||
},
|
||||
"clearCoat": {
|
||||
"enable": true,
|
||||
"influenceMap": "Textures/floor_1k_ao.png",
|
||||
"normalMap": "Textures/floor_1k_normal.png",
|
||||
"roughness": 0.25
|
||||
},
|
||||
"general": {
|
||||
"applySpecularAA": true
|
||||
},
|
||||
"irradiance": {
|
||||
"color": [
|
||||
1.0,
|
||||
0.9404135346412659,
|
||||
0.8688944578170776,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
"normal": {
|
||||
"textureMap": "Textures/floor_1k_normal.png"
|
||||
},
|
||||
"occlusion": {
|
||||
"diffuseTextureMap": "Textures/floor_1k_ao.png"
|
||||
},
|
||||
"opacity": {
|
||||
"factor": 1.0
|
||||
},
|
||||
"parallax": {
|
||||
"factor": 0.012000000104308129,
|
||||
"pdo": true,
|
||||
"useTexture": false
|
||||
},
|
||||
"roughness": {
|
||||
"textureMap": "Textures/floor_1k_roughness.png"
|
||||
}
|
||||
}
|
||||
}
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"description": "",
|
||||
"materialType": "Materials/Types/StandardPBR.materialtype",
|
||||
"parentMaterial": "",
|
||||
"propertyLayoutVersion": 3,
|
||||
"properties": {
|
||||
"baseColor": {
|
||||
"color": [
|
||||
0.800000011920929,
|
||||
0.800000011920929,
|
||||
0.800000011920929,
|
||||
1.0
|
||||
],
|
||||
"textureBlendMode": "Lerp",
|
||||
"textureMap": "Textures/roof_1k_basecolor.png"
|
||||
},
|
||||
"general": {
|
||||
"applySpecularAA": true
|
||||
},
|
||||
"metallic": {
|
||||
"useTexture": false
|
||||
},
|
||||
"normal": {
|
||||
"factor": 0.5,
|
||||
"flipY": true,
|
||||
"textureMap": "Textures/roof_1k_normal.jpg"
|
||||
},
|
||||
"occlusion": {
|
||||
"diffuseTextureMap": "Textures/roof_1k_ao.png"
|
||||
},
|
||||
"opacity": {
|
||||
"factor": 1.0
|
||||
},
|
||||
"parallax": {
|
||||
"algorithm": "ContactRefinement",
|
||||
"factor": 0.019999999552965165,
|
||||
"quality": "Medium",
|
||||
"useTexture": false
|
||||
},
|
||||
"roughness": {
|
||||
"textureMap": "Textures/roof_1k_roughness.png"
|
||||
}
|
||||
}
|
||||
}
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"description": "",
|
||||
"materialType": "Materials/Types/StandardPBR.materialtype",
|
||||
"parentMaterial": "",
|
||||
"propertyLayoutVersion": 3,
|
||||
"properties": {
|
||||
"baseColor": {
|
||||
"color": [
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
"emissive": {
|
||||
"color": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
"irradiance": {
|
||||
"color": [
|
||||
0.0,
|
||||
0.0,
|
||||
1.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
"opacity": {
|
||||
"factor": 1.0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"description": "",
|
||||
"materialType": "Materials/Types/StandardPBR.materialtype",
|
||||
"parentMaterial": "",
|
||||
"propertyLayoutVersion": 3,
|
||||
"properties": {
|
||||
"baseColor": {
|
||||
"color": [
|
||||
0.800000011920929,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
"emissive": {
|
||||
"color": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
"irradiance": {
|
||||
"color": [
|
||||
1.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
"opacity": {
|
||||
"factor": 1.0
|
||||
}
|
||||
}
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"description": "",
|
||||
"materialType": "Materials/Types/StandardPBR.materialtype",
|
||||
"parentMaterial": "",
|
||||
"propertyLayoutVersion": 3,
|
||||
"properties": {
|
||||
"emissive": {
|
||||
"color": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.0,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
"opacity": {
|
||||
"factor": 1.0
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d9c14dc81887be7647d9afa9e5481634eded0b1d0285b59bb76bb2a91326ca8a
|
||||
size 3369
|
||||
@@ -407,6 +407,7 @@ namespace PhysX
|
||||
AzFramework::RagdollPhysicsRequestBus::Handler::BusDisconnect();
|
||||
AzFramework::RagdollPhysicsNotificationBus::Event(
|
||||
GetEntityId(), &AzFramework::RagdollPhysicsNotifications::OnRagdollDeactivated);
|
||||
AzPhysics::SimulatedBodyComponentRequestsBus::Handler::BusDisconnect();
|
||||
|
||||
if (auto* sceneInterface = AZ::Interface<AzPhysics::SceneInterface>::Get())
|
||||
{
|
||||
|
||||
@@ -198,7 +198,7 @@ namespace PhysX
|
||||
|
||||
simulateScenes(tickTime);
|
||||
}
|
||||
m_postSimulateEvent.Signal();
|
||||
m_postSimulateEvent.Signal(tickTime);
|
||||
}
|
||||
|
||||
AzPhysics::SceneHandle PhysXSystem::AddScene(const AzPhysics::SceneConfiguration& config)
|
||||
|
||||
@@ -219,8 +219,9 @@ namespace PhysX
|
||||
preSimEventCount++;
|
||||
});
|
||||
AzPhysics::SystemEvents::OnPostsimulateEvent::Handler postSimEvent(
|
||||
[&postSimEventCount]()
|
||||
[&expectedTickTime, &postSimEventCount](float deltaTime)
|
||||
{
|
||||
EXPECT_NEAR(expectedTickTime, deltaTime, 0.001f);
|
||||
postSimEventCount++;
|
||||
});
|
||||
physicsSystem->RegisterPreSimulateEvent(preSimEvent);
|
||||
|
||||
+10716
-10638
File diff suppressed because it is too large
Load Diff
@@ -28,7 +28,6 @@ ly_add_target(
|
||||
Gem::LmbrCentral
|
||||
Gem::SurfaceData
|
||||
PUBLIC
|
||||
Legacy::CryCommon
|
||||
Gem::AtomLyIntegration_CommonFeatures.Static
|
||||
RUNTIME_DEPENDENCIES
|
||||
Gem::GradientSignal
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include <VegetationProfiler.h>
|
||||
#include "AreaSystemComponent.h"
|
||||
|
||||
#include <Vegetation/Ebuses/AreaNotificationBus.h>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include <VegetationProfiler.h>
|
||||
#include "AreaBlenderComponent.h"
|
||||
#include <AzCore/Debug/Profiler.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include <Vegetation/AreaComponentBase.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "BlockerComponent.h"
|
||||
|
||||
#include <AzCore/Component/Entity.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "DescriptorListCombinerComponent.h"
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "DescriptorListComponent.h"
|
||||
#include <AzCore/Asset/AssetManagerBus.h>
|
||||
#include <AzCore/Component/Entity.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "DescriptorWeightSelectorComponent.h"
|
||||
#include <AzCore/Component/Entity.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include <VegetationProfiler.h>
|
||||
#include "DistanceBetweenFilterComponent.h"
|
||||
#include <AzCore/Component/Entity.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include <VegetationProfiler.h>
|
||||
#include "DistributionFilterComponent.h"
|
||||
#include <AzCore/Component/Entity.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
*
|
||||
*/
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "LevelSettingsComponent.h"
|
||||
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "MeshBlockerComponent.h"
|
||||
|
||||
#include <AzCore/Debug/Profiler.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "PositionModifierComponent.h"
|
||||
#include <AzCore/Component/Entity.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "ReferenceShapeComponent.h"
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "RotationModifierComponent.h"
|
||||
#include <AzCore/Component/Entity.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "ScaleModifierComponent.h"
|
||||
#include <AzCore/Component/Entity.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include <VegetationProfiler.h>
|
||||
#include "ShapeIntersectionFilterComponent.h"
|
||||
#include <AzCore/Component/Entity.h>
|
||||
#include <AzCore/Debug/Profiler.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "SlopeAlignmentModifierComponent.h"
|
||||
#include <AzCore/Component/Entity.h>
|
||||
#include <AzCore/Math/Matrix3x3.h>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include <VegetationProfiler.h>
|
||||
#include "SpawnerComponent.h"
|
||||
#include <AzCore/Component/Entity.h>
|
||||
#include <AzCore/Debug/Profiler.h>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include <VegetationProfiler.h>
|
||||
#include "SurfaceAltitudeFilterComponent.h"
|
||||
#include <AzCore/Component/Entity.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include <VegetationProfiler.h>
|
||||
#include "SurfaceMaskDepthFilterComponent.h"
|
||||
|
||||
#include <AzCore/Component/Entity.h>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include <VegetationProfiler.h>
|
||||
#include "SurfaceMaskFilterComponent.h"
|
||||
|
||||
#include <AzCore/Component/Entity.h>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include <VegetationProfiler.h>
|
||||
#include "SurfaceSlopeFilterComponent.h"
|
||||
#include <AzCore/Component/Entity.h>
|
||||
#include <AzCore/Math/MathUtils.h>
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
*
|
||||
*/
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "DebugSystemComponent.h"
|
||||
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include <Debugger/AreaDebugComponent.h>
|
||||
#include <AzCore/Component/Entity.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
|
||||
#include <AzCore/RTTI/RTTI.h>
|
||||
#include <AzCore/Asset/AssetCommon.h>
|
||||
#include <AzCore/Casting/lossy_cast.h>
|
||||
#include <AzCore/Component/Component.h>
|
||||
#include <AzCore/Math/Color.h>
|
||||
#include <AzCore/Math/Vector3.h>
|
||||
@@ -31,13 +32,13 @@ namespace Vegetation
|
||||
{
|
||||
AZ_INLINE AZ::Color GetDebugColor()
|
||||
{
|
||||
static uint32 debugColor = 0xff << 8;
|
||||
static uint32_t debugColor = 0xff << 8;
|
||||
AZ::Color value;
|
||||
value.FromU32(debugColor | (0xff << 24)); // add in alpha 255
|
||||
// use a golden ratio sequence to generate the next color
|
||||
// new color = fract(old color * 1.6)
|
||||
// Treat the 24 bits as normalized 0 - 1
|
||||
debugColor = (uint32)((((uint64)debugColor * 0x1999999ull) - 0xffffffull) & 0xffffffull);
|
||||
debugColor = azlossy_cast<uint32_t>(((aznumeric_cast<uint64_t>(debugColor) * 0x1999999ull) - 0xffffffull) & 0xffffffull);
|
||||
return value;
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include <VegetationProfiler.h>
|
||||
#include "DebugComponent.h"
|
||||
#include "AreaSystemComponent.h"
|
||||
#include "InstanceSystemComponent.h"
|
||||
|
||||
@@ -167,7 +167,7 @@ namespace Vegetation
|
||||
|
||||
using AreaData = AZStd::vector<AreaTracker>;
|
||||
AZStd::size_t MakeAreaSectorKey(AZ::EntityId areaId, SectorId sectorId);
|
||||
AZStd::unordered_map<uint64, AreaTracker> m_currentAreasTiming;
|
||||
AZStd::unordered_map<uint64_t, AreaTracker> m_currentAreasTiming;
|
||||
AreaData m_areaData;
|
||||
|
||||
AZStd::vector<SectorTiming> m_currentSortedTimingList;
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "EditorAreaDebugComponent.h"
|
||||
|
||||
#include <AzCore/Serialization/Utils.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "EditorDebugComponent.h"
|
||||
|
||||
#include <AzCore/Serialization/Utils.h>
|
||||
|
||||
@@ -10,8 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
|
||||
#include <Vegetation/Descriptor.h>
|
||||
#include <SurfaceData/SurfaceTag.h>
|
||||
#include <AzCore/Asset/AssetManager.h>
|
||||
|
||||
@@ -10,8 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
|
||||
#include <Vegetation/DescriptorListAsset.h>
|
||||
#include <AzCore/Serialization/SerializeContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include <Vegetation/DynamicSliceInstanceSpawner.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
#include <AzCore/Asset/AssetManager.h>
|
||||
|
||||
@@ -10,14 +10,11 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "EditorAreaBlenderComponent.h"
|
||||
#include <AzCore/Serialization/Utils.h>
|
||||
#include <AzToolsFramework/API/ToolsApplicationAPI.h>
|
||||
#include <AzToolsFramework/UI/PropertyEditor/PropertyEditorAPI.h>
|
||||
#include <LmbrCentral/Dependency/DependencyNotificationBus.h>
|
||||
#include <MathConversion.h>
|
||||
#include <IRenderAuxGeom.h>
|
||||
#include <GradientSignal/Ebuses/SectorDataRequestBus.h>
|
||||
#include <Vegetation/Ebuses/AreaSystemRequestBus.h>
|
||||
#include <LmbrCentral/Shape/BoxShapeComponentBus.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "EditorBlockerComponent.h"
|
||||
#include <AzCore/Serialization/Utils.h>
|
||||
#include <AzToolsFramework/API/ToolsApplicationAPI.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "EditorDescriptorListCombinerComponent.h"
|
||||
#include <LmbrCentral/Dependency/DependencyNotificationBus.h>
|
||||
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "EditorDescriptorListComponent.h"
|
||||
#include <AzCore/Serialization/SerializeContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "EditorDescriptorWeightSelectorComponent.h"
|
||||
#include <AzCore/Serialization/SerializeContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "EditorDistanceBetweenFilterComponent.h"
|
||||
#include <AzCore/Serialization/SerializeContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "EditorDistributionFilterComponent.h"
|
||||
#include <AzCore/Serialization/SerializeContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -10,8 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
|
||||
#include "EditorLevelSettingsComponent.h"
|
||||
#include <AzCore/Serialization/SerializeContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "EditorMeshBlockerComponent.h"
|
||||
#include <AzCore/Serialization/Utils.h>
|
||||
#include <AzToolsFramework/API/ToolsApplicationAPI.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "EditorPositionModifierComponent.h"
|
||||
#include <AzCore/Serialization/SerializeContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "EditorReferenceShapeComponent.h"
|
||||
#include <AzCore/Serialization/SerializeContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "EditorRotationModifierComponent.h"
|
||||
#include <AzCore/Serialization/SerializeContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "EditorScaleModifierComponent.h"
|
||||
#include <AzCore/Serialization/SerializeContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "EditorShapeIntersectionFilterComponent.h"
|
||||
#include <AzCore/Serialization/SerializeContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "EditorSlopeAlignmentModifierComponent.h"
|
||||
#include <AzCore/Serialization/SerializeContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "EditorSpawnerComponent.h"
|
||||
#include <AzCore/Serialization/Utils.h>
|
||||
#include <AzToolsFramework/API/ToolsApplicationAPI.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "EditorSurfaceAltitudeFilterComponent.h"
|
||||
#include <AzCore/Serialization/SerializeContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "EditorSurfaceMaskDepthFilterComponent.h"
|
||||
#include <AzCore/Serialization/SerializeContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "EditorSurfaceMaskFilterComponent.h"
|
||||
#include <AzCore/Serialization/SerializeContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "EditorSurfaceSlopeFilterComponent.h"
|
||||
#include <AzCore/Serialization/SerializeContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -9,14 +9,10 @@
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
*
|
||||
*/
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include "EditorVegetationSystemComponent.h"
|
||||
|
||||
#include <Vegetation/Editor/EditorAreaComponentBase.h>
|
||||
#include <Vegetation/Editor/EditorVegetationComponentBase.h>
|
||||
|
||||
#include <CrySystemBus.h>
|
||||
|
||||
#include <AzToolsFramework/UI/PropertyEditor/GenericComboBoxCtrl.h>
|
||||
|
||||
namespace Vegetation
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include <Vegetation/EmptyInstanceSpawner.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
*
|
||||
*/
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include <VegetationProfiler.h>
|
||||
#include "InstanceSystemComponent.h"
|
||||
|
||||
#include <AzCore/Debug/Profiler.h>
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Vegetation_precompiled.h"
|
||||
#include <Vegetation/PrefabInstanceSpawner.h>
|
||||
|
||||
#include <AzCore/Asset/AssetManager.h>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user