* Add benchmarks for SpawnAllEntities call in SpawnableEntitiesManager
Signed-off-by: srikappa-amzn <srikappa@amazon.com>
* Minor changes to SpawnAllEntities benchmarks setup
Signed-off-by: srikappa-amzn <srikappa@amazon.com>
* Used aznumeric_cast and improved a function name
Signed-off-by: srikappa-amzn <srikappa@amazon.com>
* Fixed an invalid converstion from uint64_t to unsigned int
Signed-off-by: srikappa-amzn <srikappa@amazon.com>
* This set of changes is work toward allowing release builds to work with asset bundler generated bundles and legacy, non-prefab levels. This requires some other in-flight changes before this work is complete.
Updated engine seed list + fixed automated test
ComponentApplicationLifecycle has the ability to automatically register events if asked to register a handler and the event doesn't exist. This is only intended for cases where you need to register a handler early in startup before the settings registry file is loaded.
Added two new lifecycle events: One after the system entity has been activated, and one after the system interface has been created.
If you load an archive before the system entity has been activated, archive.cpp caches information about those archives until that time, so it can finish registration. This is because the serialization system and BundlingSystemComponent both need to be available to do this registration, but the bundles have to be loaded before those are initialized so that the settings registry file can be loaded.
Fixed an error were mounted pak files were searching for levels.pak and not level.pak, and not finding them. I'm pretty sure this logic doesn't do anything functional either way, but I've been testing legacy levels with this change and they work now.
Moved wildcard pak loading to where engine.pak is loaded. This is because the settings registry file that defines the IO stack to spin up must be available early in application startup, and this file must be within a mounted pak file. If you're using asset bundler generated bundles, they need to be loaded at this time so that file can be loaded.
Atom's BootstrapSystemComponent.cpp no longer initializes on AssetCatalogLoaded, and instead initializes on the ApplicationLifecycle event SystemInterfaceCreated. This is because the base assetcatalog.xml file is really just a development time concept, this file should not be used in packaged release builds, because those builds will make use of delta catalogs in each bundle loaded. The asset catalog contains the list of all assets that were in the cache at development time, and this contains content that developers don't want to ship, and they may want to specifically hide from their customers, so data miners don't find secrets about upcoming game content.
Recovering from a branch that had incorrect DCO
Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
* Fixed an incorrect ebus disconnect and removed an include that's no longer needed
Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
* Fixed a copy and paste typo from trying to recover the previous pull request
Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
* Updated product IDs for the settings registry builder to no longer collide with the JSON builder. Now they are based on a hash of the configuration.
Updated the engine default seed list to include the new asset ID info for the renamed bootstrap file
Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
* Updated the path to the application lifecycle events, because runtime settings aren't included in the merged bootstrap file.
Addressed some feedback on printing out a string view on an error
Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
* Removed a test that uses old assets that aren't relevant. We may not need this test anymore, but if we do we've backlogged a task to create a new test to cover this behavior without using old assets.
Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
* Renamed SystemInterfaceCreated event to LegacySystemInterfaceCreated
Removed SystemEntityActivated event. Now that I have the rest of the fixes in this pull request, this new event wasn't needed, the already existing SystemComponentsActivated event does what I need.
Changed list to vector
Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
Merged overlapping profiler EBuses/Interfaces into AzCore
Fixed ambiguous LogLevel type in some unity file scenarios
Added cvar/console access for profiler capture
Added utilities for reflecting AZ::Interfaces through the BehaviorContext
Included profiler system sample python script
Signed-off-by: AMZN-ScottR 24445312+AMZN-ScottR@users.noreply.github.com
- system allocator not configured in environment for AZQtComponents
- WA_DeleteOnClose will destroy the toast dialog causing a crashing when ToastNotificationsView tries to access the pointer
issue: https://github.com/o3de/o3de/issues/5129
Signed-off-by: Michael Pollind <mpollind@gmail.com>
* remove HandleFocusChange from FocusIn/Out events in QtEventToAzInputManager
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* ensure we clear input channels when application state changes
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* wip changes for focus switching tests
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* updates to test to verify focus change not affecting input
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* add test to ensure input is not cleared when focus changes
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* ensure key press goes to correct widget
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* add test to verify input is cleared when application state changes
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* clear input for all types of application state change
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* update input key for focus test
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* use the Settings Registry to tell the InputSystemComponent to disable various devices
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* update how we simulate the application state change event
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* revert Settings Registry changes
Signed-off-by: hultonha <hultonha@amazon.co.uk>
This adds support for the `ap_tether_lifetime` cvar in Linux. It extends
the solution implemented in #2799 to add the same support on Linux.
Signed-off-by: Chris Burel <burelc@amazon.com>
* Fix asset type retrieval in AssetCatalogModel::GetAssetType
Previous logic would visit the next entry in m_extensionToAssetType map, if the previous entry had multiple types
was only exiting the inner loop.
The main change is that now the first found matching asset type is returned.
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Apply reviewer's suggestions + reduce allocations.
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Fixes a crash caused when attempting to ‘quit’ the launcher from the debug console. The change simply ensures that the underlying font data the OnRenderTick() function relies on has not yet been released from memory.
Signed-off-by: ffarahmand-DPS <ffarahmand@digitalpilgrims.com>
* Fixes a crash caused when attempting to ‘quit’ the launcher from the debug console. An object created on the heap was never deleted, causing a chain reaction.
Signed-off-by: ffarahmand-DPS <ffarahmand@digitalpilgrims.com>
* Some quick clean-up for safety.
Signed-off-by: ffarahmand-DPS <ffarahmand@digitalpilgrims.com>
* Changes !defined(DEDICATED_SERVER) to a runtime check since macro is no longer defined.
Signed-off-by: ffarahmand-DPS <ffarahmand@digitalpilgrims.com>
This also fixes several issues discovered through the unit tests and renames a few functions to be clearer.
Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
* Modify the AssetBundler to correctly identify the Gems that are enabled in the current active project
Signed-off-by: Tommy Walton <waltont@amazon.com>
* Removed unnecessary if() statement and updated the comment.
Signed-off-by: Tommy Walton <waltont@amazon.com>
* Disabling gem loading in the asset bundler tests, just like the asset bundler itself.
Signed-off-by: Tommy Walton <waltont@amazon.com>
• Changed thumbnail property control to track asset key even if image is overridden so that it will be restored if the image is cleared.
• Changed property asset control to disable the thumbnail image by default whenever the attribute is applied. It will only enable the thumbnail image if the pixmap is valid.
• Changed the material component controller to always use an empty material assignment map on deactivation so that no persistent materials are reapplied.
• Changed the material component controller to immediately send a notification that materials have updated if no materials were queued for load but the configuration contained pre created or persistent material instances. This mainly affects the material editor because it manages its own material instances.
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
* Copied the generated cmake_dependencies.*.setreg file to the Cache
directory
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Removed the platform name from the bootstrap.game.*.setreg
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
Entity aliases can now be updated as a reaction to the spawnable being loaded or at any other time afterwards through the Spawnable Entities Interface. Currently these changes are applied to the spawnable that owns the entity aliases, but once the Spawnable Entities Interface makes use of AzFramework::Scene a copy of the entity aliases should be stored in the scene and be updated instead of the spawnable.
This change also adds support for a load barrier, which acts the same as a regular barrier but also accounts for the spawnable being loaded and won't trigger the callback until has completed.
The return values in from the processing functions in the Spawnable Entities Manager now have a clearer return value to indicate whether a request has completed or is being re-queued.
Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
Entity aliases can be used to have a request to spawn an entity:
- spawn the original entity as normal
- be disabled
- redirected to another entity in another spawnable
- also spawn an entity from another spawnable
- add the components from an entity in another spawnable
An entity alias can indicate whether or not to load the spawnable dependency. If the spawnable dependency is loaded it will be loaded asynchronously because starting blocking loads in an asset handler can lead to deadlocks once there are no more jobs available to deserialize assets.
Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
The following has been changed:
- AssetDataStream can now return the stored streaming deadline and priority.
- RootSpawnable now has an event that's called just before root spawnable spawns entities. This is an immediate event unlike the other events that are queued.
Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
* Add Generic DOM visitor interface
Just the visitor interface from the [Generic DOM RFC](https://github.com/o3de/sig-content/blob/main/rfcs/rfc-10-generic-dom.md) with a few hardening changes so that we can align on it early:
- Clarified Lifetimes with an enum, extended it to cover the by-ref opaque values as well
- Added an explicit error type so that serializers can provide logging friendly rejections
- Did a first pass on documentation
- Added Visitor capabilities introspection and support for raw strings
* bugfix: improve viewport overlay
- disable animation for window
- fix problem where vieport is offset from main window
Signed-off-by: Michael Pollind <mpollind@gmail.com>
* update geometry of m_uiOverlay
Signed-off-by: Michael Pollind <mpollind@gmail.com>
* Pass relative path IsFileExcluded so that only paths relative to the root scan folder are matched against the exclude filters.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Revert previous change. Remove the exclude filter for the Install directory.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Pass in relative path to the exclude filter as before. Fix the AssetScanner tests.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Prepend a ./ to the relative path in order to match the exclude patterns
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Remove hack to prepend ./. Update the exclude patterns so that the hack is no longer required.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Add missing ? and remove whitespace
Signed-off-by: amzn-sj <srikkant@amazon.com>
* 1. IsFileExcluded() now converts the input path to a path that's relative to its corresponding scan folder.
2. Update regex patterns in gems and AutomatedTesting as well.
3. Remove unnecessary escaping for '/'.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Use ConvertToRelativePath() function to compute path relative to a scan folder.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* More fixes to regex patterns
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Remove test case which tests a hypothetical scenario that cannot occur. Fix another test case by adding scan folder.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Remove assert that's not needed since it's a valid scenario
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Add unit tests for ResolveSourceFileDependencyPath
Fix crash when file is not in scan folder
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Switch to using vector of AZ strings for better error output
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Switch to using UnorderedElementsAre
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Add some comments and fix typo
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Moved the loading of the AssetCatalog from LmbrCentralSystemComponent to AzFramework Application
Modified the AssetCatalog::InitializeCatalog function to no longer rely on the TickBus to send out the `AssetCatalogEventBus::OnCatalogLoaded` event.
It now queues a function on the AssetCatalogRequestBus to send the OnCatalogLoaded event as soon as the dispatching for the AssetCatalogRequestBus has completed on the current thread.
This is done by updating the AssetCatalogRequestBus to use EBus ThreadDispatchPolicy to add a callback to invoke any queued function has soon a thread has finished dispatching and has released its DispatchMutex
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the AssetCatalogRequestBus to add a custom DispatchLockGuard
The AssetCatalogRequestBus uses the custom lock guard to dispatch queued
events after it has unlocked it's context mutex for the current thread.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Removed GetContext call from the
AssetCatalogRequests::PostThreadDispatchInvoker
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the definition of FileTagQueryManager::GetDefaultFileTagFilePath
function to return a path
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the AZ_CONSOLEFREEFUNC macro to actually use the _NAME
The _NAME parameter was not being used before, resulting in the Console
stringified name of the function being used.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Removed CrySystem dependencies from the BundlingSystemComponent
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Moved the loading of the AssetCatalog from LmbrCentralSystemComponent to AzFramework Application
Modified the AssetCatalog::InitializeCatalog function to no longer rely on the TickBus to send out the `AssetCatalogEventBus::OnCatalogLoaded` event.
It now queues a function on the AssetCatalogRequestBus to send the OnCatalogLoaded event as soon as the dispatching for the AssetCatalogRequestBus has completed on the current thread.
This is done by updating the AssetCatalogRequestBus to use EBus ThreadDispatchPolicy to add a callback to invoke any queued function has soon a thread has finished dispatching and has released its DispatchMutex
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the AssetCatalogRequestBus to add a custom DispatchLockGuard
The AssetCatalogRequestBus uses the custom lock guard to dispatch queued
events after it has unlocked it's context mutex for the current thread.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Removed GetContext call from the
AssetCatalogRequests::PostThreadDispatchInvoker
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the definition of FileTagQueryManager::GetDefaultFileTagFilePath
function to return a path
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the AZ_CONSOLEFREEFUNC macro to actually use the _NAME
The _NAME parameter was not being used before, resulting in the Console
stringified name of the function being used.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Removed CrySystem dependencies from the BundlingSystemComponent
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Addded missing template parameter to AssetCatalogRequests
The fixes the compile error.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Adding AssetBus::MultiHandler::BusDisconnect call
The BlastSystemComponent was connecting to the Bus, but not
disconnecting from it, causing an assert to fire to it being a
multi-thread bus
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Added support for DataDrive lifecycle events to the ComponentApplication
The events are using the SettingsRegistry NotifyEvent to track when
certain keys are modified to signal handlers.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Corrected invalid JSON creation in ModuleManager::DeactivateEntities
Resolved clang warning about used type alias
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Fix for dangling reference in lambda registered to the SettingsRegistry
Notifier event
This was causing the EditorPythonBinding tests to crash due to the
following circumstances.
First Python has created an instance of a SettingsRegistryProxy
Second the SettingsRegistry sends an event during the time when the
SettingsRegistryProxy exists.
This issue was exposed due to the ComponentApplication Lifecycle events
using the SettingsRegistry to dispatch during various times of the
application workflow.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
Commit 8e03d6f306 missed updating the
platform-specific mac QApplication implementation file to include the
class declaration from the new header.
Signed-off-by: Chris Burel <burelc@amazon.com>
* Added Hydra API to extract all the classes, globals and EBuses exposed
to lua:
azlmbr.script.LuaSymbolsReporterBus:
GetListOfClasses
GetListOfGlobalProperties
GetListOfGlobalFunctions
GetListOfEBuses
Also exposed to Hydra the classes that can be used to dump
the symbols
azlmbr.script.LuaPropertySymbol
azlmbr.script.LuaMethodSymbol
azlmbr.script.LuaClassSymbol
azlmbr.script.LuaEBusSender
azlmbr.script.LuaEBusSymbol
The python file Assets/Editor/Scripts/lua_symbols.py
can be used with "pyRunFile <script_name> [output.txt]"
to create Game/output.txt will all the symbols
OR
passing up to three additional arguments "c" or "g" or "e" to dump only
classes, globals or ebuses or a combination of those. Example:
To create an output file with only classes and Ebuses:
"pyRunFile <script_name> [output.txt] c e"
Signed-off-by: garrieta <garrieta@amazon.com>
After this change, the AssetProcessor process will be torn down by
default after its parent process shuts down (if it was spawned by a
parent process).
Signed-off-by: Jeremy Ong <jcong@amazon.com>
* Add new image for splashscreen. Layout changes incoming.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Adapt layouts to new splashscreen style with transparent background.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Ensure cropping logic works correctly when screen scaling is used.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Remove old image. Replace new image with new version with more readable credits.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Change Prefab Focus breadcrumb widget to display template filename instead of instance container entity name. Also display dirty state for the template (*) and refresh it in real time.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Streamline path creation code; fix stem retrieval to ensure extension is cut correctly; delay refresh one frame when path is clicked to correctly refresh it.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Remove test code.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Simplify code to use Native directly.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Minor variable renaming and comment adjustments to make them clearer.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Addressed feedback from PR 4874.
* Removed second copy of HeightfieldProviderBus.h from cmake file
* Changed CookedMeshShapeConfiguration and HeightfieldShapeConfiguration to have less messy implementations, instead opting for the slightly less messy const_cast inside of Utils.cpp and DebugDraw.cpp.
* Changed InitHeightfieldShapeConfiguraiton to CreateHeightfieldShapeConfiguration with a better API signature.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Fixed indentation
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Terrain API fixups
Moved SurfaceData definitions in AzFramework out of terrain into separate files.
Added some missing API calls: Get*FromVector2, GetSurfacePoint*
Changed OrderedSurfaceTagWeightSet to SurfaceTagWeightList
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* PR feedback - remove IsClose check.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Fixed PhysX test compile failures by redcoding a bunch of "dummy terrain" implementation that's unused.
It was originally added for the PhysX Terrain component, but that component is long gone and has been superceded by the more generic PhysX Heightfield Collider.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Fixed up failing terrain unit tests.
Added API changes, and changed the assumption on where the surface weight sort is taking place. The component is no longer expected to provide the sorted list, it only needs to be sorted at the end coming out of the terrain system, so the unit tests have been modified to reflect that.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* New Heightfield Components
Signed-off-by: John Jones-Steele <jjjoness@amazon.com>
* Misc PR fixes
* Fixed linux build failure from bad #include
* Renamed "Terrain Physics Collider" to "Terrain Physics Heightfield Collider" per physics team feedback
* Fixed 1/5 -> 1/4 typo in a comment
* Added missing member copies in HeightfieldShapeConfiguration
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Addressed PR feedback
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Changes from review
Signed-off-by: John Jones-Steele <jjjoness@amazon.com>
* Remove tabs accidently added
Signed-off-by: John Jones-Steele <jjjoness@amazon.com>
* Fixed overly complicated scaling math.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Added comments to make it more obvious what's happening on CreateEnd / DestroyBegin.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Moved Heightfield CreatePxGeometryFromConfig into its own function
Signed-off-by: John Jones-Steele <jjjoness@amazon.com>
Co-authored-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Added menu to Gem Catalog that with option to navigate to Gem Repo screen
Signed-off-by: nggieber <nggieber@amazon.com>
* Changed Goto to GoTo and added a tr
Signed-off-by: nggieber <nggieber@amazon.com>
* Gem repo button works from new project creation workflow as well and users are warned if they have pending changes in the gem catalog before changing screens.
Signed-off-by: nggieber <nggieber@amazon.com>
Merge pull request #4338 from aws-lumberyard-dev/Atom/rbarrand/MaterialVersionUpdate
## Overview
Added support for automatically updating .material files when the property layout of the .materialtype changes. At this stage, we only support a "rename" operation for renaming or moving material properties. We can add more operations in the future if needed (this will require some improvement to how we represent the data internally, but we can deal with that as the need arises).
It's important to note that we currently have a hybrid dependency model for the material system, where materials can depend on materialtypes as job dependencies (property names are processed at asset build time), or material property names can be stored in the cooked assets (property names are processed and resolved at runtime when loading material assets). This means there are two places where we need to apply material property rename auto-updates: in the tools and in the runtime. So you will find that we have ApplyVersionUpdates() functions in both MaterialSourceData and MaterialAsset. (I hope we can move away from this hybrid approach at some point so this can all be simplified, but that depends on new Asset Processor features we don't have yet).
## Main changes
- Added version and versionUpdates structures for .materialtype files, MaterialTypeSourceData, MaterialTypeAssetCreator, etc.
- The .materialtype version number is now at the top level instead of inside the propertyLayout section, because in the future there are other ways the material type could change besides the property layout which might require version auto-updates. (The AP will fail if the version is found in the old location, and tell the user where it should be moved).
- Added ApplyVersionUpdates() and ApplyPropertyRenames() utility functions to facilitate the auto-updates.
- Updated MaterialTypeSourceData::FindProperty(name) to support renames because it must find the property data while loading .material files in order to resolve property data types.
- These new functions will report warnings when they detect that source files are out of date, and recommend the user update them. The easiest way to do this is open it in the Material Editor and save. (which can be scripted in python if necessary)
- Renamed the .material file format "propertyLayoutVersion" to "materialTypeVersion" which is more accurate. This shouldn't hurt existing data as this field wasn't actually used for anything before.
## Unit test improvements
- The new code is well unit tested.
- MaterialSourceDataTests
- Updated to include both a .materialtype file and a MaterialTypeAsset for the test material type. Both are used by the MaterialTypeSourceData class.
- The default test material type now includes some version update steps; these are only used for version update tests and won't impact the other test functions.
- Updated the path for storing temp files to disk, to just be in a "temp" folder in the exe path. (Originally they were saved to the gem folder near MaterialSourceDataTests.cpp, but at some point someone changed it to be under the exe folder, so there's no reason to use the full gem path anymore).
## Other changes
- Fixed AzCore Utils WriteFile() to create the file if it doesn't exist already.
- Updated all .materialtype files to have the version number in the new position.
- Fixed AssetSystemStub to normalize asset paths for more reliable lookup in unit tests.
* Introduce Outliner button to simplify Prefab editing
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Fix Focus Mode and disabled entities colors
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Fix - propagate the event if the OnOutlinerItemClick function returns false.
This does not change current behavior but makes more sense in the context of future handlers.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Adjust disabled colors to match UX recommendations.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Display the edit button even if the prefab is disabled. Remove prefabWip check (it will be removed for focus mode by the time this goes in). Default to disabled capsule color for borders to save on checks.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Disable edit button on disabled prefabs as it caused conflicts in nested prefabs. May explore that possibility later.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Change disabled text color to be darker, as asked by UX.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
- Add a new automated test PrefabBasicWorkflow_CreateReparentAndDetachPrefab for verifying prefab detachment basic workflow.
- Add a new automated test PrefabBasicWorkflow_CreateAndDuplicatePrefab for verifying prefab detachment basic workflow.
- Fix a bug related to sets of entity ids in Reparent helper function .
* Initial support for importing Json files within other Json files
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Add some test cases for testing/iterating on the Json import work. Fix MacOS AzTestRunner module loading bug.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* The import resolver can take the allocator as a parameter to Load/StoreImports() instead of storing a copy.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Fix assert
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Some rework of the JsonImport feature. Base test cases pass. More complex test cases need to be added.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* 1. Add test case for testing nested imports.
2. Initialize rapidjson value to fix assert.
3. Fix bug found in merge patch creation.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* 1. Update the Resolver class member functions to return proper result codes.
2. Add the wrapper functions for resolving/restoring imports to the JsonSerialization class.
3. Add new test case.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Add test cases for import + patches. Fix bug found when patching import. Rename test cases.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* 1. Add ApplyPatch() function to BaseJsonImporter.
2. Move patch logic out of ResolveImport() and into ApplyPatch()
3. Get rid of the custom RestoreImport implementation in the tests since it was the same as the base version.
4. Add test case for patching nested imports.
5. Update merge patch outcome reporting logic to work for nested object patches.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* 1. Add a CreatePatch() function to BaseJsonImporter to match the ApplyPatch() function.
2. Reorganize some responsibilities between RestoreImports(), RestoreImport() and CreatePatch() to make ResolveImports() and RestoreImports() more symmetrical.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Combine result code in code path where we add empty object to path
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Add test case for inserting a new import into an existing object.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Use == instead of Compare() for comparing file paths.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Address some PR feedback.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Address additional PR feedback
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Add missing includes to fix non-unity build
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Fix build error. Address additional feedback.
Signed-off-by: amzn-sj <srikkant@amazon.com>
`LaunchProcess()` on Linux works by calling `fork` then `execvpe`. `fork`
is used to copy a running process, generating a new child process. The new
child starts running from the location where the parent was running, from
whatever thread from the parent called `fork`. The child process only gets
one thread, however. If a different thread in the parent process had locked
a mutex, that mutex is also locked in the child process. Since that
separate thread is not present in the child, the mutex remains locked in
the child, with no way to unlock it. So it is important that as little work
as possible happens between the call to `fork` and to `execvpe`.
Previously, this code was trying to report an error that may have occurred
from calling `execvpe`. It was doing that by calling `AZ_TracePrintf`. That
function does lots of things, including trying to make an EBus call, which
looks up a variable in the `AZ::Environment` instance, which has a global
mutex. If there was some other thread that had that mutex locked when the
`fork` call was made, the subprocess would deadlock, and the parent process
would also deadlock waiting for the child to finish.
This solves that issue by removing the call to `AZ_TracePrintf` from the
subprocess code path. Instead, the parent process sets up a pipe for the
child process to write to in case the call to `execvpe` fails (the
self-pipe trick). The parent then reads from that pipe. If it reads no
data, `execvpe` worked and there's no error. If it does read data, the data
to be read is the errno from the failed `execvpe` call made by the child.
The parent can then use `strerror()` to report the error.
Fixes#4702.
Signed-off-by: Chris Burel <burelc@amazon.com>
- Added MaterialSourceData::ApplyVersionUpdates() for updating the properties. This should be called by tools after loading the MaterialSourceData. (But can be omitted if a tool wants to read the data exactly as it appears in the .material file).
- Updated MaterialTypeSourceData::FindProperty to support applying version update renames, including a ApplyPropertyRenames utility function, which are necessary for MaterialSourceData to be able to find the necessary property definitons while loading.
- Added a new context struct to JsonMaterialPropertyValueSerializer for passing down the material type version number, to help with applying property renames.
- Renamed the .material file format "propertyLayoutVersion" to "materialTypeVersion" which is more accurate. This shouldn't hurt existing data as this field wasn't actually used for anything before.
- Updated Material Editor to again store the material type version number in .material files.
MaterialSourceDataTests updates...
- Updated to include both a .materialtype file and a MaterialTypeAsset for the test material type. Both are used by the MaterialTypeSourceData class.
- The default test material type now includes some version update steps; these are only used for version update tests and won't impact the other test functions.
- Updated the path for storing temp files to disk, to just be in a "temp" folder in the exe path. (Originally they were saved to the gem folder near MaterialSourceDataTests.cpp, but at some point someone changed it to be under the exe folder, so there's no reason to use the full gem path anymore).
MaterialTypeSourceDataTests updates...
- Moved some code that was accidentally added to LoadAllFieldsUsingOldFormat but should have been in LoadAndStoreJson_AllFields.
- Added test cases for unsupported version update operations
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
- Prevent P4 thread to run if we cannot detect the P4 command to begin with
- Add a trait to disable calling the parent ComponentApplication::Destroy(), instead calling _exit() to skip the module unloading on exit
Signed-off-by: Steve Pham <spham@amazon.com>
* Initialize the PrefabFocusHandler on context reset, to also cover the case of a new level being created on the welcome screen.
Relax checks/restrictions on refreshes to cover cases where an instance is reused by the Prefab EOS.
Refresh the breadcrumbs when a container is renamed and when a change is propagated to the instances to ensure the correct names are displayed.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Rename m_isInitialized to m_initialized in PrefabFocusHandler
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Use find_if to detect when a container entity in the focus path has been renamed.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Renaming and commenting variables in PrefabFocusHandler.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Undo minor naming change
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Replace lazy initialization and have the UI side initialize the Editor calls in PrefabFocusHandler.
This should prevent issues with focus mode trying to access these interfaces in non-editor applications.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Add an error message to AP when bad project path
Produce a log error or a dialog box error when the project path for AP
does not have a project.json and is invalid.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Fix a failing unit test - AssetProcessorMessages
Adding a check for 'project.json' caused BeforeRun() in a test fixture
to fail. Teardown of the fixture was also broken if the test failed to
fully startup the application manager, so added null checks there.
Added an assert to the fixture's Setup to check the status of BeforeRun().
Added additional settings registry setup to the fixture to make sure the
project path and branch token are configured before BeforeRun() is
called.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
Move the existing Qt Toast Notification QWidgets, EBuses and logic from the GraphCanvas gem into AzQtComponents and AzToolsFramework so they can be re-used.
Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
* {lyn7065} adding ProcPrefab Prefab::Tempate flag method
Signed-off-by: jackalbe <23512001+jackalbe@users.noreply.github.com>
* updated based on comments
Signed-off-by: jackalbe <23512001+jackalbe@users.noreply.github.com>
* moved validation logic to IsValid()
Signed-off-by: jackalbe <23512001+jackalbe@users.noreply.github.com>
* added more guards around the source string
Signed-off-by: jackalbe <23512001+jackalbe@users.noreply.github.com>
* Added option to reopen if the current level is the same. This contributes to stability for batched tests
Signed-off-by: AMZN-AlexOteiza <aljanru@amazon.co.uk>
* Addressed PR comments
* Addressed PR and cleaned Base level that had an entity by accident
Signed-off-by: AMZN-AlexOteiza <aljanru@amazon.co.uk>
* Cleaned up params
Signed-off-by: AMZN-AlexOteiza <aljanru@amazon.co.uk>
* Addressed PR comments
* Convert resolved wildcard paths to relative path before saving in database.
Warn if file could not be converted to a relative path.
Fix FindWildcardMatches path handling that could result in pathMatch missing the first character
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Handle abs path wildcard dependencies
Remove dependencies outside of scan folder
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Switch to AZ::IO::PathView for abs path check
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Made code a little more clear
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
The test was relying on immediate updates from the prefab system which are now scheduled for a later tick - this reworks the tests to wait for deferred updates before validating state
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Added anchor key parameter to the SettingsRegistry MergeSettings
This allows the MergeSettings function to write JSON data anchored
underneath the supplied anchor path.
Upgraded the SignalNotifiers calls in SetObject, MergeSettings and
MergeSettingsFileInternal to query the type of the merge value at the anchor path
and supply that as the type to the notification event.
Also the the above functions now supply the anchor key root as the
path that was modified instead of assuming root ""
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Fixed whitespace inconsistencies in SettingsRegistryImpl
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Added a queue for storing SignalNotifier calls when a thread is
currently signaling.
The queued calls are invoked by that thread after it has signaled it's
current queue of events
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* {lyn7251} Add material component example in Python
adds a AZ::Render::EditorMaterialComponent as an example of how to
override the default material from the scene building pipeline
Signed-off-by: jackalbe <23512001+jackalbe@users.noreply.github.com>
* Only set the cube to a gray material
Skip loading the asset, instead just set the outPrefabAssetPath for the Prefab system to load
Signed-off-by: jackalbe <23512001+jackalbe@users.noreply.github.com>
* stablizing the sub-id of procedural prefab groups
Signed-off-by: jackalbe <23512001+jackalbe@users.noreply.github.com>
The AZ_ENABLE_TRACING check was preventing the Archive System from using the sys_PakPriority value set from the CVar system
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
The EntityOutlinerListModel was violating the QAbstractItemModel contract in a few cases, as reported by `QAbstractItemModelTester`. The important ones causing issues were:
- Entry order was not guaranteed, leading to model indices pointing at invalid data
- Parent/child relationships could be temporarily invalid due to a change I made in EditorEntityModel::RemoveEntity to try to avoid an unnecessary reparent operation - as it turned out, the parent/child data was being cached even for recreated entities and not clearing child data could cause issues
- `EntityOutlinerListModel::ProcessEntityUpdates` was emitting data changed between two indices that didn't necessarily share a parent, which is [undefined behavior](https://doc.qt.io/qt-5/qabstractitemmodel.html#dataChanged)
The other reported issues (that weren't really causing issues with `QTreeView`) were:
- The root index had flags other than `Qt::ItemIsDropEnabled`
- `rowCount` showed all columns as having children
- `parent` showed indices as being parented to a non-0 column
This change introduces fixes for the above issues, namely:
- Reverts my change to `EditorEntityModel::RemoveEntity` to ensure we don't have invalid parent/child references sitting in the cache
- Ensures `EditorEntityModelEntry` child ordering is guaranteed sorted by EntityId, to prevent the `EntityOutlinerListModel` from having indices pointed at invalid data*.
- Fixes various model sanity issues, such as `rowCount` being 0 for indices with a non-0 column
Two unit tests were added to reproduce the invalid behavior and validate the fix: TestCreateFlatHierarchyUndoAndRedoWorks and TestCreateNestedHierarchyUndoAndRedoWorks
This change focuses on correctness over performance. My subjective in-Editor outliner experience is about the same, but it may be worthwhile to expand the test coverage with a benchmarking suite to look into areas for optimization.
*As a rough illustration of the previous child ordering behavior, consider the following entity hierarchy:
```
Root (EID 9999)
|_ Child1 (EID 2)
|_ Child2 (EID 3)
|_ Child3 (EID 4)
```
With an representations like the following pseudocode:
```
// EditorEntityModel representation
EditorEntityModelEntry root;
root.children[0] = 2;
root.children[1] = 3;
root.children[2] = 4;
// EditorOutlinerListModel representation
// row, column, user data (64 bit uint)
child1 = QModelIndex(0, 0, 2)
child2 = QModelIndex(1, 0, 3)
child3 = QModelIndex(2, 0, 4)
```
When removing a child, the `EditorEntityModel` used to do roughly the following:
```
// Swap and pop the last child
int indexToRemove = 0;
swap(root.children[indexToRemove], root.children[root.children.size() - 1]);
root.children.resize(root.children.size() - 1);
model.notifyRemoved(root, indexToRemove); // model removes the row indicated
// Leading to this EditorEntityModel state
root.children[0] = 4;
root.children[1] = 3;
// And this EntityOutlinerListModel state, note that the row indices are swapped from the indices in the backing storage
child2 = QModelIndex(0, 0, 3)
child3 = QModelIndex(1, 0, 4)
```
A QModelIndex having a row that doesn't match its underlying data is undefined behavior, and was the source of an intermittent crash in our `QSortFilterProxyModel` as subsequent updates to the wrong row led to an invalid proxy state.
Signed-off-by: nvsickle <nvsickle@amazon.com>
* fixes some warnings for newer versions of VS2022
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* more warning fixes
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* remove integ test filters from AzTest
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* remove integ test handling from AzTestRunner
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* changes integ tests of gridmate to regular tests and disables failing ones
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* removes the Integ from the EMotionFX tests, but leaves them disabled since they are failing
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* removes the Integ from the HttpRequestor tests and disables it since is not passing
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* changing integ tests for DISABLED, these ones are using files that are not there
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* fixes linux build
gridmate tests that were Integ are now disabled
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* fixes linux warnings
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Delay propagation for all template updates in detach prefab workflow
Signed-off-by: srikappa-amzn <srikappa@amazon.com>
* Some minor changes to the PrefabUndo constructor
Signed-off-by: srikappa-amzn <srikappa@amazon.com>
* Parent top level entities to container entity when creating prefab
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Add to_json method to PythonProxyObject to allow serializing any AZ serialializable type
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Update scene_mesh_to_prefab.py to parent entities in a chain
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Remove redundant eval
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Improve error handling in ToJson
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Add maybe_unused for commonRoot since it's not used
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* restore component mode border
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* add viewport border for focus mode, remove dead code in ObjectManager
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* ensure the focus mode border is restored when leaving component mode
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* update FocusModeNotification call order after merge from development
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* Fixed a crash caused by large autocomplete results in the debug console. A fixed vector was growing beyond its allocated size.
Signed-off-by: ffarahmand-DPS <ffarahmand@digitalpilgrims.com>
* Fixes printing duplicate autocomplete results, caused by looping over multiple CVARs registered with the same name. Also adds an erase to prevent undefined behavior.
Signed-off-by: ffarahmand-DPS <ffarahmand@digitalpilgrims.com>
* Adds a test case for autocomplete duplication in the event of multiple cvars existing under the same name. Two matching cvars are created and checked against the number of matches produced by autocomplete.
Signed-off-by: ffarahmand-DPS <ffarahmand@digitalpilgrims.com>
* Added two safety checks and made a pointer const as per reviewer feedback.
Signed-off-by: ffarahmand-DPS <ffarahmand@digitalpilgrims.com>
Using triangle mesh with a kinematic rigid body is allowed, but the options "Compute COM", "Compute Mass" and "Compute Inertia" are not supported by PhysX and an error in logged that default values for COM, Mass and Inertia will be used. Now this situation is captured and an explanatory warning is used instead.
- Improved RigidBody::UpdateMassProperties function to apply the same logic in the treatment of shapes for all three parameters: COM, Mass and Inertia.
- Improved UpdateMassProperties function by using references for the override parameters instead of pointers.
- Improved function that computes the Center of Mass UpdateCenterOfMass (renamed from UpdateComputedCenterOfMass), to include the same shapes that the compute mass and inertia functions in physx updateMassAndInertia, which is to include all shapes if includeAllShapesInMassCalculation is true, else include only the shapes with eSIMULATION_SHAPE flag.
- Removed unused private function RigidBody::ComputeInertia.
- Added unit test to check when the warnings are fired correctly when COM, Mass or Inertia are asked to be computed on a rigid body with triangle mesh shapes.
- Improved MassComputeFixture tests by not only using Box shape, but also sphere and capture, plus improved the PossibleMassComputeFlags parameters to include all possible variations of the MassComputeFlags flags.
Fixes#3322Fixes#3979
Signed-off-by: moraaar <moraaar@amazon.com>
* Disable ability to delete container entity of focused prefab. Default entity creation to parent to container entity of focused prefab.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Disable detach and duplicate operations for the container of the focused prefab. Update the context menu accordingly.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Fix spacing
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Address minor issues from PR (error message, optimization in RetrieveAndSortPrefabEntitiesAndInstances).
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
This prevents other input devices from interfering with the expected calls
that the Keyboard tests should make.
Signed-off-by: Chris Burel <burelc@amazon.com>
* Add "Registry" folders as scan folders
For projects, Gems, and Engine, add the "Registry" folder as scan
folders.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Change params for adding scan folder
Also add trailing newlines to setreg files.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Adjust the priority order for project templates
Scan folder orders were way too high, they should be very low to become
highest priority order.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Removes change of default assets folder to Assets
Need to revert this change so it can be done separately.
Renamed the scan folder to 'Project/Assets' to prep for Assets folder
change later on.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Update platform configuration test to pass
Adjusted expectation of scan folder count from 1 to 2 per Gem for
'Assets' and 'Registry' now.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Change FocusModeNotificationBus's OnEditorFocusChanged arguments to also pass the previous focus root entity id.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Add focus mode and container entity states to the visibility cache for the viewport. Use that data to correctly select entities when a rect is dragged on the viewport.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Minor code adjustments
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Minor fixes and optimizations
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
The new tiff package works for all platforms, including android and IOS, which had issues before.
Android - was missing tiff.h
ios - wrong minimum ios revision
* Don't allow right clicking on a non selectable entity in the Outliner
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Also check that the index is valid to still allow the right click context menu to appear on empty areas of the widget.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Change if check to a more readable bool.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Various updates to get pak builds working
-Fix basing config file merges off engine root.
-Merge command-line in relelase to make sure they override defaults.
-Fix nullptrs.
-Exclude more paths from being sent to bootstrap setreg.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Reverting a change that caused some test failures.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Change tabs to spaces
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Added a stateless allocator which uses AZ_OS_MALLOC/AZ_OS_FREE to
allocate memory for objects in static memory.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the Maestro and LyShine Anim Nodes to use the
stateless_allocator for its static containers.
This prevents crashes in static de-init due to the SystemAllocator being
destroyed at that poitn
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the EBus AllocatorType to use the EBusEnvironmentAllocator
Because the EBus Context resides in static memory, the SystemAllocator
lifetime is shorter than the EBus Context.
This results in shutdown crashes in monolithic builds due to all of the
gem modules being linked in as static libraries and the EBus context now
destructing at the point of the executable static de-init, instead of
the module de-init, where the SystemAllocator would still be around.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Fixed an assortment of shutdown issues due to deleting objects after
AZ allocators are no longer available
Fixed the NameDictionary IsReady() function to not assert when the
dictionary when invoked after the environment variable it was stored in
was destroyed.
Updated the NameData destructor to check that the NameDictionary
IsReady() before attempting to remove itself from the dictionary
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Fixed NameDictionary destory workflow, to reset the EnvironmentVariable
instance
Updated the EnvironmentVariable instance to store the NameDictionary as a
value.
Added a rvalue reference `Set` function overload to the
EnvironmentVariable class to support move only types.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Clang 6.0.0 build fixes
The C++17 std::launder feature isn't available in that compiler version
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
- change return for IntersectSegmentTriangleCCW to bool
- change return for IntersectSegmentTriangle to bool
Signed-off-by: Michael Pollind <mpollind@gmail.com>
* Light refactoring of selection logic. Only draw helpers for selectable entities according to Editor Focus Mode and Container Entity systems.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* When Escape is pressed, clear the Prefab Focus.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Alter Ctrl+A and Ctrl+Shift+I to take editor focus mode and container entity behaviors into account.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Remove redundant comments and reduce footprint of tests.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Introduce loop protection, as GetParentId is known to loop in some situations possibly causing timeouts.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Remove many unused variables and unused setting files
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Remove a few more dead config vars
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* fix android test_ConfigureSettings_DefaultValues_SetsValues
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
• PropertyAssetCtrl was previously extended with ThumbnailPropertyCtrl to optionally display a thumbnail and floating zoomed in preview of the selected asset.
• This change allows overriding the image that comes from the thumbnail system with a custom image provided as an attribute. The custom image can be specified as either a file path or a buffer containing a serialized QPixmap.
• This will be used by the material system in the editor to provide a dynamically rendered image of the material with property overrides applied so that the image will update as the user customizes their material.
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
* Change SetContainerOpenState to SetContainerOpen.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Introduce Clear function to avoid retaining all lingering open states when switching contexts/loading a new level.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Minor FocusMode fixture refactors to support ContainerEntity tests
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Introduce tests for the ContainerEntity API
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Add include to fix issue with EntityContextId not being defined.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Minor comment fixes. Moved environment clear functions to TearDown function of test fixture.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Use default editor context id in ContainerEntitySystemComponent
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Revert previous change as the EditorEntityContextId would not be initialized correctly on ContainerEntitySystemComponent Activate.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
- always show controls on top of main ui
- Tool window does not show visually in toolbar
issue: https://github.com/o3de/o3de/issues/4380
Signed-off-by: Michael Pollind <mpollind@gmail.com>
- change return of IntersectRayDisk to bool
- change return of IntersectRayBox to bool
- move [out] after @param
Signed-off-by: Michael Pollind <mpollind@gmail.com>
This change is a preparation for moving the CPU profiler/visualization system from Atom into its own Gem by removing the dependency on local time tracking object AZ::RHI::CpuTimingStatistics
Full changes include:
- Removed all usage of AZ::RHI::CpuTimingStatistics
-- Replaced with pushing to AZ::Statistics::StatisticalProfilerProxy global instance
- Promoted VariableTimer from AZ::RHI to AZ::Debug
- Removed now unused CpuTimingStatistics.h
Signed-off-by: AMZN-ScottR 24445312+AMZN-ScottR@users.noreply.github.com
* remove some unused code in RenderViewportWidget and make viewing devicePixelRatioF easier
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* updates to how cursor positions are calculate to handle the viewport widget moving
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* remove optional for previous position
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* add test to capture error with moving the widget
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* minor comment updates before publishing PR
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* {lyn7283} adding unit test for the assetHint Json Serialzier callback logic
AssetTracker_Callback_Works will regress the functionality
Signed-off-by: jackalbe <23512001+jackalbe@users.noreply.github.com>
* clean up of the jsonRegistrationContext
Signed-off-by: jackalbe <23512001+jackalbe@users.noreply.github.com>
* Add AZStd::lerp math function, based on c++20
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Add unit test for AZStd::lerp, based on libc++ ones
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* written a reduced set of lerp tests, but now the license is correct
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Update Code/Framework/AzCore/AzCore/std/math.h
Co-authored-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Update Code/Framework/AzCore/Tests/AZStd/Math.cpp
Co-authored-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* fix the github suggestion merge
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Copy some AZ::Lerp tests to std::lerp test suite + clang-format
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Cleanup lerp test cases
Remove comments that suggested very heavy tests that required things like `for every t1..`
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Fix unit test compilation issues
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* fix whitespace issue
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Use `TypeParam` in TYPED_TEST
Co-authored-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Remove unneeded new-lines
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* remove unused infinity
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
Co-authored-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Moved the SettingsRegistryTests.cpp and
SettingsRegistryMergeUtilsTests.cpp to the Settings folder
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Implemented a deferred level load queue, that allows the
SpawnableLevelSystem to re-run the last LoadLevel command that occured
before it was constructed.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Added SettingsRegistryVisitorUtils to reduce Array and Object visitor
boilerplate.
The VisitArray and VisitObject functions allows iteration over each
element of array and object respectively via a callback.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Removed the queuing logic for levels that attempt to load before the SpawnableLevelSystem is available
Only the last level name that could not load is stored off and deferred until the SpawnableLevelsystem is created.
Made the FieldVisitor AggregateTypes constructor protected and added a comment specifying the expected values.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Bring in the SettingsRegistry::Visitor::Visit functions into scope to fix MSVC compilation errors.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Changed the list of supported SettingsRegistry types to visit to an enum to constrain the values to Array and/or Object.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
console commands.
The new key is "/O3DE/Autoexec/ConsoleCommands" and the only difference
with the "/Amazon/AzCore/Runtime/ConosleCommands" key is that it isn't
excluded by the SettingsRegistryBuilder.
Due to not being excluded by the SettingsRegistryBuilder this key can be
used to forward console commands to the aggregate
`bootstrap.game.<config>.<platform>.setreg` files.
For GameLauncher specific console commands it is recommend to be put them in
.setreg file that uses the "game" specialization, such as
"autoexec.game.setreg".
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Added a ThreadDispatch Policy to the EBus code
The ThreadDispatch Policy can be configured by authors of an EBusTraits to
invoke a callback function after an EBus has finished it's dispatching
mechanism on a specific thread.
It takes into account recursive calls as well and will only invoke the
PostDispatch callback after all callstack entries for the current thread
are cleared.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Clang build fix
The Traits type is dependent on the template parameter, therefore the compiler needs to be told that the ThreadDispatchPolicy is a type and not a value.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Fixed DispatchLockGuard cxall in the TerrainWorldRendererComponent.cpp
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Added EBusTrait for configuring the DispatchLockGuard
Removed the ThreadPolicy trait, now that the DispatchLockGuard for the
EBus Context can be configured.
Used the DispatchLockGuard template along with the
IsInDispatchThisThread function to determine when an EBus has finished
dispatching on thread and released it's Context Mutex.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Tweaked comment format for the IsInDispatch function
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Removed explicit GetContext call from ThreadDispatchTestBus.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Clang EBus Test fix for DispatchLockGuard trait
Due to the clang compiler evalating constants within templates at the time of declaration, the LocklessDispatch value supplied to the template was always false resulting in the LocklessDispatch feature always locking.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Add helper function to apply a selected file filter from a file dialog to the result filename if needed
* Add platform traits to restrict the use of the helper function on platforms that need to apply it
* Fix building of file filters of multiple extensions for a file type
Signed-off-by: Steve Pham <spham@amazon.com>
* capture assets using SerializedAssetTracker in LoadInstanceFromPrefabDom()
assign assets using asset hints where the asset ID is not valid
switch up SerializedAssetTracker to store pointers instead of copies of Asset<>
Signed-off-by: jackalbe <23512001+jackalbe@users.noreply.github.com>
* PoC for the AssetFixUp strategy
Signed-off-by: jackalbe <23512001+jackalbe@users.noreply.github.com>
* clean up of PoC
Signed-off-by: jackalbe <23512001+jackalbe@users.noreply.github.com>
* rename public facing Pivot cameras to Orbit - previous rename was a mistake
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* some more comment and naming updates to improve camera documentation
Signed-off-by: hultonha <hultonha@amazon.co.uk>
Many keys will generate key press events but return an empty string from
`xkb_state_key_get_utf8`, like modifier keys, arrow keys, function keys,
etc. This checks if the string retrieved from such a key press is empty
before emitting an associated text event for it, to avoid notifying a
potentially large number of listeners about an empty string.
Signed-off-by: Chris Burel <burelc@amazon.com>
* add focus camera and custom camera input
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* very minor tidy before publishing PR
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* small updates after PR feedback
Signed-off-by: hultonha <hultonha@amazon.co.uk>
This also updates the name of the zlib library to uppercase ZLIB which conforms to normal CMake standards .
Signed-off-by: lawsonamzn <70027408+lawsonamzn@users.noreply.github.com>
Add cvars to control the number of worker threads created by the TaskGraph and Job systems. The cvars are scales on the hw concurrency of the cpu.
Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>
* Update the FileIOAlias naming to make the cache, project root and engine
root paths more clear
The alias of `@root@`, `@assets@`, and `@projectplatformcache@` has been
collapsed to `@projectproductassets@`
The alias of `@devroot@` and `@engroot@` has been collapsed to
`@engroot@`
The alias of `@devassets@` and `@projectroot@` has been collapsed to
`@projectroot@`
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated use of devassets and devroot properties in python
Those properties now use projectroot and engroot
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updating the alias @engroot@ alias path comment in each platform specific LocalFileIO_*.cpp file
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Removed hardcoded size of 9 for the product asset alias.
The ResolvePath function now just appends the @projectproductassets@
alias with the input path
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Remove duplicate @projectproductassets@ check in ProcessFileTreeRequest
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Fix for typos in Hydra python test
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated LocalFileIO::Copy call on Windows to use the Unicode aware CopyFileW API
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the AWSMetreicsGemAllocatorFixture to properly suppress asset
cache write errors for Test file creation.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Removed unneeded call to set the @projectproductasstes@ alias at the bottom of the AssetSeedManagerTest SetUp
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Added a deprecated alias map to the FileIO System
When a deprecated alias is accessed, the FileIO System logs an AZ_Error and indicates the alias that should be used
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated python test scripts to use the projectroot binding
Retrieving the AutomatedTesting project path based on "<devroot>/AutomatedTesting" has been removed.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated references to devroot and devgame within the codebase
The GetAbsoluteDevGameFolderPath functions has been replaced with direct call to AZ::Utils::GetProjectPath
The GetAbsoluteDevRootFolderPath functions has been replaced with direct calls to AZ::Utils::GetEnginePath
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated <engroot>/AutomatedTesting references to projectroot
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Replaced references that assumes the project path is <engroot>/AutomatedTesting with <projectroot> in the AutomatedTesting python test
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Correct casing in emfxworkspace file
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Removed newly added AppendPathParts function
Removed the Path constructors which accepts a PathIterable instance
The PathIterable isn't safe to return to a user of the Path class as it might be referencing temporary paths supplied via PathView arguments
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Fixed unused parameter warning
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Undid change to the LexicallyProximate function to set the path result to the base path.
It needs to return the *this path if the pathResult is empty
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Moved the LocalFileIO ConvertToAbsolutePath implementations to AZ::Utils
Fixed the ConvertToAbsolutePath implementation for Unix platforms to use a buffer that is size PATH_MAX(4096 on all our supported Unix platforms).
Because the buffer before was AZ::IO::MaxPathLength which as a size of 1024, this was resulting in the Unix `realpath` function smashing the stack when it converts a path to an absolute path that is longer than 1024 characters
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the EditorCore.Tests to attach the AZ Environment to the EditorCore shared library that is statically loaded on launch.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Fixed for DeprecatedAlaisesKeyVisitor Visit function causing the non string_view overloads being hidden causing a hidden base class function warning
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Changed the AWSMetricsGemMock to use a temporary for writing test assets
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the LocalFileIO::ResolvePath function to use HasRootPath to determine if a path starts with a root path such as "D:", "D:/" or "/"
IsAbsolute was not the corect check as the path of "D:" is a relative
path.
To be absolute according to the Windows the path must have a root
directory. i.e "D:/" or "D:\"
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Removed absolute path comment from LocalFile_UnixLike.cpp and LocalFile_Android.cpp FindFiles implementations
Updated the ConvertToAlias to supply an AZ::IO::FixedMaxPath
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Replaced usage of the @projectproductassets@ alias with @engroot@ when referring to the LmbrCentral source folder in the CopyDependencyBuilderTest and the SeedBuilderTests
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the ScriptCanvas Upgrade Tool to output backed up files to the
Project User Path instead of the engine root
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Fixed whitespacing issues in Application.cpp
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Remove unnecessary creation of a FixedMaxPath in the UpgradeTool.cpp
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Modified testSeedFolder variable in the SeedBuilderTests to use the
@engroot@ alias instead of @projectproductassets@/.. alias when
referring to the LmbrCentral Gem source path
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated references to the Project Asset Cache in the PythonTests.
Those tests no longer use the logic `azlmbr.paths.projectroot / "Cache" / "pc"` to retrieve a path to the cache root but instead the `azlmbr.paths.projectproductassets` constant
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Fixed the FileIO Deprecated Alias test on Windows
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Removing @projectsourceassets@ alias, as it is only used once.
Updated the PhysX EditorSystemComponent.cpp to query the ProjectPath
form the SettingsRegistry.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Replaced @projectproductassets@ alias with @products@
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Rollback changes to the PhysX EditorSystemComponent.cpp
The changes to use the ProjectPath from the SettingsRegistry has been implemented in PR #4497
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Setup work for the ContainerEntity SystemComponent and Interface.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Introduce Container Entity Notification Bus
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Introduce a proxy model to control open/closed state of entity containers. Register prefab containers as entity containers. Profit.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Add open state to OnContainerEntityStatusChanged notification + improvements to comments.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Fix to notification trigger to include new arguments.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Fix issue where the Level container would not be expanded correctly. The Level container is now no longer a container entity (since we don't need to be able to close it).
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Revert the addition of an extra proxy layer (which was causing issues) and just move the container logic to the existing filter.
Fix bug in the dataChanged signal.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Fix column count in dataChanged signal to correctly update all column and fix visual glitches.
Limit container registration to the prefab WIP flag so that the changes can be submitted with an opt-in mechanism.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Add doubleclick behavior on Outliner items - enters focus mode when double clicking on prefab containers.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* override sourceModel() to store pointer to avoid dynamic casting at every filterAcceptsRow call.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Minor comment fixes and nits
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Move container selection logic to a helper function in the ContainerEntityInterface to simplify reusing it in the near future.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Support lazy initialization for tests (since we do not load a level, the lazy initialization in OnEntityStreamLoadSuccess does not trigger)
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Swapped the order in which the engine.pak is searched
First the Project Cache Root folder is searched before falling back to
the Executable Directory
Removed the need for the engine.json and project.json in a project
release layout when a "Cache" directory exist at the root.
The project root uses the the first "Cache" directory it finds by scanning upwards as if fails to find a
project.json,
The engine root use the project root, if it fails to reconcile the
engine path using project.json "engine" key and the o3de_manifest.json
"engines_path" object.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Removed Generation of the engine.json and project.json in Release
Install builds.
The project and engine path can be determined based on the Cache
directory location.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Added missing space for enginePakOpened
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Adding missing endif() and bracket argument terminator.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Fix "index out of range" error
When the parent is the tree root element, beginInsertRows must be
called with an invalid (but legal) index. A QModelIndex with a row
index of zero when the parent has no children is an illegal index
and will result in "undefined behavior", like the "index out of
range" one.
Therefore, if our parent is the tree root element, we use QModelIndex()
instead.
Fixes#2343
Signed-off-by: Dennis Brakhane <brakhane@gmail.com>
* Use QModelIndex() instead of createIndex(-1, -1)
Both do the same, but the former is Qt best practise.
Signed-off-by: Dennis Brakhane <brakhane@gmail.com>
* add some sanity checks in debug mode
Using illegal ModelIndices can result in hard to debug problems later
on, so add a few checks to help spotting them sooner.
Signed-off-by: Dennis Brakhane <brakhane@gmail.com>
* Added IsDirectory function to SystemFile
This takes the implementation in LocalFileIO and uses it for SystemFile
and then just has LocalFileIO call the SystemFile implementation
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Fixed logic to detect the WinApi FILE_ATTRIBUTE_DIRECTORY attribute
Updated the FileIO.cpp test to use AZ::IO::Path and removed direct uses
of AZStd::string
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Adding googletest printers for string and Path classes
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the SystemFile_WinAPI functions to use AZStd::to_wstring
This makes the the SystemFile function convert from UTF-8 to UTF-16
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
This provides a fast way for engineers who want to configure -> generate -> open project in IDE -> build & run to do so without waiting for a potentially lengthy Project Manager build.
Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
* Updated the AsetProcessorManagerTest LockFileTest to check the SourceFileNotificationMessage
If the SourceFileNotificationMessage indicates that the source file was
removed, it triggers the callback to spin off a thread to remove the
product file.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Changed SourceFileNotificationMessage cast to use azrtti_cast
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* - Fix unused release warnings
- Fixed compile errors from missing includes
- Commented out missing AZ_ATOM_PROFILE_FUNCTION macro
Signed-off-by: Steve Pham <spham@amazon.com>
* Deleted AZ_ATOM_PROFILE_FUNCTION
Signed-off-by: Steve Pham <spham@amazon.com>
* Adding more unused errors from windows release build, and updates based on PR suggestions
Signed-off-by: Steve Pham <spham@amazon.com>
Fixed the memory leaking with ID3D12CommandAllocator in DX12 AsyncUploadQueue. Add reset for the ID3D12CommandAllocator when the commandlist was executed.
Fixed another small memory leak in NativeWindow.
Signed-off-by: Qing Tao <qingtao@amazon.com>
* adding Windows/release to PR-validation builds
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* changing trace back to expand to nothing for release
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* typo
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* more fixes
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* fixing some more unused variable cases
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* renaming file in ScriptCanvas that causes a msbuild warning
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* reverting a previous change
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
AssetBus of queued functions until empty.
This replicates the old behavior of the EBusQueuePolicy::Execute
function that would continue to execute functions if new ones were added
during the execution of the current queue.
Split the TestFixture class from the AssetHandler and EBus handler for the DynamicSliceInstanceSpawnerTests and
PrefabInstanceSpawnerTest.
This avoids the AssetMananager destructor from deleting the test fixture
if the call to UnregisterHandler is ever removed. This also allows the
memory allocators to get online earlier.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* When copying the runtime dependency setreg files to the cache, the name of the registry directory should be all lower case
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Lower case the registry folder name when looking in the asset cache.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* fixes some install paths issues in monolithic release
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* PR comments
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Fix issues with seedlist for AutomatedTesting
Fixes error reporting so it will show the file hint in the tool.
Removes any missing assets from the .seed file.
Remove an unnecessary dependency from AutomatedTesting dependencies
file.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Make ArchiveComponent use AZ::IO::IArchive
Initial changes that will get the sychronous calls in ArchiveComponent
to use IArchive interface rather than external zip/7z tools.
Some of the asynchronous api are still in place, anything that wasn't
being used has been removed for now. This may change later if we move
towards all the api being asynchronous. Until then, we can't remove the
reliance upon the external archive tools completely.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Updates AZStd::thread constructors
Adds a variadic constructor which forwards args to the functor.
Because of our thread_desc extension, there was confusion on the
arugments, so the args were reordered to take the thread_desc first,
before the functor and args.
Also the thread_desc is taken as reference rather than by pointer.
Update callsites to account for this change.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Async operation of ArchiveComponent api
This sets up the ArchiveComponent to operate asynchronously. It uses
promise/future to transfer results to caller.
This is still broken, there's a few things that need to get fixed up,
but this is a good checkpoint for the work as it solidifies the api,
cleans up a bunch of unused code, and compiles.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Removes the platform-specific ArchiveComponen
These are no longer needed, as they control the direct interaction with
host OS tools like 7za.exe or /bin/zip.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Removes the platform-specific files from cmake
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Removes the 7za.exe (and legal notice)
This tool is no longer needed in the repo.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Fixes usage of IArchive::GetFullPath()
This changed to return a PathView, updated to reflect that.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Fix promises and threads
Make sure promises are only set exactly once. This meant reworking some
of the initial error checking.
Detach threads when created. Adds [[nodiscard]] to the functions that
return a future. Since threads are detached, the future is the main way
to get communication from the thread.
Clean up interface, add comments.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* More edits to thread creation
Changes to thread construction to account for parameter change.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Fix some remaining issues with ArchiveComponent
Put created threads inside a container, then join them at Deactivate.
Fix asset bundler case when injecting a file with no working directory.
Fix thread constructor that applies args to a function.
Fix lambdas to take string args by value rather than reference.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Fixes some remaining bugs in ArchiveComponent
Open archive as read-only during extract & list operations.
Fixes paths issues.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Fix initialize of opaque thread handle in thread_UnixLike.h
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Removed unused variable in AssetBundleComponent.cpp to fix compiler warning
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Fix some issues with archives
File paths in the CDR and the local headers need to match, but there
were issues with path separators and case that made it possible to get
invalid headers errors in some archives.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Adds some new ArchiveComponent unit tests
Adds new tests for extraction of archive and adding files from a file
list to an archive.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Fix file data offset issues when opening archives
When opening an INestedArchive it would run through the CDR headers to
create file entries in the zip cache. The offsets to the compressed
data were being calculated incorrectly because they were using the CDR
headers rather than jumping to the local file headers and getting
offsets from those sizes.
Removed and refactored some archive validation flow and zip cache
factory init methods to either init default or init w/ additional
validation checks.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Addresses PR feedback
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Address more points of feedback in PR
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Address additional PR feedback
Fixes up some error checks and uses of strings vs paths.
Enable archive component tests on Linux so we can see if they will
pass.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Address PR feedback
Change the INestedArchive interface to list files as AZ::IO::Path.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Disabling the ArchiveComponent tests on Linux
They failed so we will revisit them to attempt a fix.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Rename a member variable to be more accurate
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Address feedback on PR
Bump version of Archive Components for serialize context.
Improve error messages during archive open and validation.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Revert recent changes
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
Co-authored-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Intial attempt to convert the Atom/RHI/FrameScheduler to use the new TaskGraph api
Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>
* Avoid enqueuing work on the active task thread if the submitted task
graph is waitable
When submitting a task graph, supplying a wait event implies that
dependent jobs must occur on threads that do not wait on the event (in
the absence of work stealing). This change prevents this by adding a
notion of a task thread enable/disable state, and prohibiting dependent
jobs from being enqueued on waiting threads.
Signed-off-by: Jeremy Ong <jcong@amazon.com>
* Convert RPI/Scene to use TaskGraph pass 1, Culling jobs remain on the old system
Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>
* RemoveTask Graph changes from the FrameScheduler::ExecuteGroups, use old job system instead
Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>
* Per review, removing commented out code
Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>
* Cleanup debug code, & build fix
Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>
* Add a cvar & interface to query whether to use jobs or task graph
Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>
* Make TaskGraph assert if you try to wait inside a job
Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>
* Fix TaskTest SpawnSubgraph to account for the new TaskGraphEvent assert on wait in a running task
Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>
* 3 minor cleanups. 1) Events always store a ptr to their executor 2) Fix clang compile error 3) remove an early out.
Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>
* Fix double group end that was causing assert/crash plus misc minor diff's with development
Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>
* Fix deallocation failure on deactivation of the TaskGraphSystemComponent. Also make the system component account for multiple creation in Unit Tests.
Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>
* Update with PR feedback
1) Rename UseTaskGraph to IsTaskGraphActive & update related code
2) prefer TaskExecutor::SetInstance
3) add comments and remove commented out code
Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>
* Fix incorrect RTTI name for TaskGraphActiveInterface
Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>
* Move TaskGraphSystemComponent CRC calculation to a shared variable
Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>
Co-authored-by: Jeremy Ong <jcong@amazon.com>
* Use XcbUniquePtr to manage xcb resources
Signed-off-by: Chris Burel <burelc@amazon.com>
* Add a unit test for XcbInputDeviceKeyboard
Signed-off-by: Chris Burel <burelc@amazon.com>
* Refactor existing tests and fixtures, split them up in more granular tests, and add more comments.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Refactor test fixture for FocusMode to make it more reusable
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Fixture rename, draft of selection test
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Split SetFocus and ClearFocus tests for Editor Focus Mode
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Move BoundsTestComponent to its own file so that it can be reused in Focus Mode Selection tests
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Making progress on selection test. Test compiles now, but selection doesn't seem to be working.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Removed commented out code from previous iteration.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Move BoundsTestComponent under the UnitTest namespace
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Viewport selection tests + minor fixes.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Minor fixes
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Updated references to Engine.pak to be lowercase engine.pak
This makes the engine.pak file consistent with naming scheme of other pak files such as assets.pak.
It will also help avoid issues with mounting the file on Linux.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Engine.pak now loads correctly in release builds. The check for the file existing was failing in release builds because it was only checking inside packs. OpenPack first checks if the file exists, anyways, so it was safe to remove.
Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
Co-authored-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
* Fix a bug in recursion of prefab links when checking for dirty prefabs
Signed-off-by: srikappa-amzn <srikappa@amazon.com>
* Added a missing EntityId header
Signed-off-by: srikappa-amzn <srikappa@amazon.com>
* Provisional impl and testing of central state tracker.
Signed-off-by: John <jonawals@amazon.com>
* Add missing namespace comment.
Signed-off-by: John <jonawals@amazon.com>
* ViewportEditorModeState -> ViewportEditorModes
Signed-off-by: John <jonawals@amazon.com>
* ViewportEditorModesTracker -> ViewportEditorModeTracker
Signed-off-by: John <jonawals@amazon.com>
* GetEditorModeState ->GetViewportEditorModes
Signed-off-by: John <jonawals@amazon.com>
* GetNumTrackedViewports -> GetTrackedViewportCount
Signed-off-by: John <jonawals@amazon.com>
* IsViewportStateBeingTracked -> IsViewportModeTracked
Signed-off-by: John <jonawals@amazon.com>
* Fix API comments.
Signed-off-by: John <jonawals@amazon.com>
* Delete hangover file.
Signed-off-by: John <jonawals@amazon.com>
* Delete more hangover files.
Signed-off-by: John <jonawals@amazon.com>
* Minor member name refactor.
Signed-off-by: John <jonawals@amazon.com>
* Refactor nonclemanture.
Signed-off-by: John <jonawals@amazon.com>
* Rename Enter/ExitMode to Register/UnregisterMode.
Signed-off-by: John <jonawals@amazon.com>
* Error and warning msgs now return AZ::Outcomes.
Signed-off-by: John <jonawals@amazon.com>
* Change all nomenclature to Activate/Deactivate for consistency.
Signed-off-by: John <jonawals@amazon.com>
* Change tense of notification bus methods.
Signed-off-by: John <jonawals@amazon.com>
* Fix malformed string format.
Signed-off-by: John <jonawals@amazon.com>
* Fix malformed string format (again).
Signed-off-by: John <jonawals@amazon.com>
* Fix Linux warning.
Signed-off-by: John <jonawals@amazon.com>
* Call sites for editor mode activate/deactivate.
Signed-off-by: John <jonawals@amazon.com>
* Move Component editor mode logic to ComponentModeCollection.
Signed-off-by: John <jonawals@amazon.com>
* Delete non-source data.
Signed-off-by: John <jonawals@amazon.com>
* Remove line breaks and forward declare class.
Signed-off-by: John <jonawals@amazon.com>
* Remove constructors without ViewportEditorModeTrackerInterface ptr.
Signed-off-by: John <jonawals@amazon.com>
* Add integration tests for viewport editor modes.
Signed-off-by: John <jonawals@amazon.com>
* Address PR comments.
Signed-off-by: John <jonawals@amazon.com>
* Removed ununeeded includes from EBus EBus.h and Policies.h
Updated the locations which needed those includes
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Adding missing include for <memory> to AWsClientAuthBus.h
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Remove the while true loop in the EBusQueuePolicy Execute() function
The while true loop in Execute was for allowing additional functions to be queued in the middle of execution of current list of functions.
That functionality was dangerous, because if a queued function added itself during execution unconditionally, then it would result in an infinite loop
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the AssetManager::DispatchEvents function to pump the AssetBus event queue until empty
Queued Events on the AssetBus is able to queue additional events on that Bus during execution of those events.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Changed the AssetManager::DispatchEvents function to only execute the
AssetBus queued events once
Changed the AssetJobsFloodTest.AssetWithNoLoadReference_LoadDependencies_BehaviorObeyed test to dispatch events until the OnAssetContainerReady callback is signaled.
This happens after every asset load to make sure that the
expiring AssetContainer instances are removed from `AssetManager::m_ownedAssetContainer` container before retrying to load the same asset.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Added a MaxTimeoutSeconds constant for the maximum amount of the time to run a single DispatchEvents loop
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Adding a temporary Orphan function to the InstanceDatabase, which will remove an instance from the database so it will not be found using Find or FindOrCreate. The instance will still persist until its use-count drops to 0, at which point it will be deleted. This is to enable the model asset to remove existing buffer/modellod/model instances and replace them with new instances that have the up to date data. Added unit tests for testing.
Signed-off-by: amzn-tommy <waltont@amazon.com>
* Fix an incorrect ceil and update ParallelInstance test cases for readability
Signed-off-by: amzn-tommy <waltont@amazon.com>
* overhaul to how camera orbit/pivot behavior works
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* update naming from orbit to pivot
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* fix camera unit tests
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* add additional tests for new camera pivot behavior
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* fix comment and add additional info for tests
Signed-off-by: hultonha <hultonha@amazon.co.uk>
Added a blank placeholder image to account for changes to indention when indicator icons are active
Added parameter to inspector constructor for specifying leaf property indention size
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
Disables a problematic child reparenting code path in EditorEntityModel that led to the series of remove -> add -> remove notifications for reparented entities that led to unnecessary updates and a sporadic QSortFilterProxyModel crash
Signed-off-by: nvsickle <nvsickle@amazon.com>
* No longer can instantiate prefabs in an empty level
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* PR feedback from Ram
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* removing tab
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* PR feedback
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Implement Project Manager 'build' button for Mac and Linux(#4248)
Signed-off-by: Steve Pham <spham@amazon.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Remove the PrefabEditManager. Introduce the FocusMode system on the Editor side, and a PrefabFocusHandler on the Prefab side to handle focus.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Changed FocusOnOwningPrefab to return Outcome. Added comments and error checking.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Remove assert for edge case that can actually happen in normal circumstances, simply return false in those cases.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Remove nested FocusModeFramework namespace
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Minor fixes to variable names and comments.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* ClearFocusRoot implementation
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Remove pragma once from cpp file
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Fix header formatting to pass validation
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Do not assert if m_focusModeInterface can't be initialized
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Initialization changes to pass unit tests. Some interfaces are now retrieved on demand and there's clearer failure paths that don't involve asserts to better handle test/headless initializations.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* LYN-6793 [iOS] [asset_profile] 4 assets fail to process for iOS (#4268)
* LYN-6793 [iOS] [asset_profile] 4 assets fail to process for iOS
The issue was because the compression of ETC formats took too long.
Replaced all ETC and PVRTC formats with ASTC formats.
Update all pixel operation for formats with single R channel to align the change with R8.
Signed-off-by: Qing Tao <qingtao@amazon.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Use resize_no_construct when creating a buffer asset, since the initial data is going to be memcopy'd anyways. (#4249)
Signed-off-by: amzn-tommy <waltont@amazon.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Fix a minor spelling mistake (#4247)
Signed-off-by: amzn-tommy <waltont@amazon.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* 1. Update iOS deployment target to 14 (#4266)
2. Set MacOS default deployment target to 11.
Signed-off-by: amzn-sj <srikkant@amazon.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Debug build clang fixes
Signed-off-by: AMZN-Olex <5432499+AMZN-Olex@users.noreply.github.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Fix failed 'server' platform assets on Linux related to Shaders (#4275)
* Add missing 'server' platform identifier for the ShaderBuilder
* Use the current host platform as the fallback platform identifier (and not 'pc')
Signed-off-by: Steve Pham <spham@amazon.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* [development] Atom CPU profiler include cleanup (#4272)
- Removed all unnecessary includes to Atom CpuProfiler.h
- Added includes to AzCore Profiler.h where necessary
Signed-off-by: AMZN-ScottR 24445312+AMZN-ScottR@users.noreply.github.com
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Add guard against edge case.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Expose Transform::CreateLookAt to behavior context to use with hydra tests
Signed-off-by: amzn-tommy <waltont@amazon.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Cached BLAS objects at the sub-mesh level
Signed-off-by: dmcdiar <dmcdiar@amazon.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* EMotion FX: Asset Processor generates an Actor for every FBX (#4284)
Fixing the actor behavior to ignore actor asset generation for files that only contain nodes/bones. We're only checking for blend shapes and skins now. In case neither is present in an FBX, we don't export the actor asset.
This makes a plain skeleton a special case where users manually need to add the actor group for the fbx. The most common use case for these are animation files anyway, where we don't want to export actor assets.
Also increased the version number of the actor group so that they are all getting reprocessed and the unneeded actor assets get removed.
Signed-off-by: Benjamin Jillich <jillich@amazon.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* EMotion FX: Crash in the actor builder when fbx meta data contains node groups (#4283)
Fixing a crash related to the small array conversion that made multiple assets crash the actor builder.
Signed-off-by: Benjamin Jillich <jillich@amazon.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Project Manager Gem Dependencies (#4132)
* Fix engine API change and add gem dependencies
Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
* Add GemCatalog dependency test
Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
* Clarify display name and fix missing const
Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
* Moving a couple helper functions into private scope
Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
* Update gem count when unselecting a gem #4074
This addresses the following issue https://github.com/o3de/o3de/issues/4074
Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
* Active/Inactive filter and dependency tooltips
Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
* Accessors for previously added and dependencies
Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
* Cart displays gem dependency changes
Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
* Shorten titles to fit in summary popup
Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
* Remove QString::number
Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
* Remove extra space
Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
* Consolidate source model accesor helpers
Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
* Addressing minor feedback
Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
* Remove unused local variable
Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Fix AutoGen of RPCs with no params
Signed-off-by: puvvadar <puvvadar@amazon.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Adds Inspector to Gem Repo Screen (#4242)
* Adds the gem repo screen with the UI built but with mocked data and not connected to the o3de scripts
Signed-off-by: nggieber <nggieber@amazon.com>
* Changed name of added to enabled, disabled define, removed unused functions
Signed-off-by: nggieber <nggieber@amazon.com>
* Added Repo Screen Inspector UI
Signed-off-by: nggieber <nggieber@amazon.com>
* Addressed minor PR feedback
Signed-off-by: nggieber <nggieber@amazon.com>
* Add some more minor PR changes
Signed-off-by: nggieber <nggieber@amazon.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Updated NetworkSpawnableHolderComponent to use TransformBus instead of FindComponent. Added dependency on TransformService
Signed-off-by: pereslav <pereslav@amazon.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Fixed Entity::GetTransform to work for the components of an activating entity. Made the cached transform lazy evaluated.
Signed-off-by: pereslav <pereslav@amazon.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Changed NetworkSpawnableHolderComponent to use Entity::GetTransform instead of an ebus call
Signed-off-by: pereslav <pereslav@amazon.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Moved local variable to a smaller scope
Signed-off-by: pereslav <pereslav@amazon.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Signed-off-by: LesaelR <LesaelR@amazon.com> (#4278)
* Signed-off-by: LesaelR <LesaelR@amazon.com>
* Removing the un-needed sandbox marks.
Signed-off-by: LesaelR <LesaelR@amazon.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Small fix for color node tooltip to ask for values 0-1 instead of 0-255
Signed-off-by: Gene Walters <genewalt@amazon.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Exposing NetworkCharacterComponent::TryMoveWithVelocity to script. Updating Multiplayer AutoComponent baseclass behavior context to Reflect itself instead of its derived (human made) component. This is so the derived class can also create behaviorcontext classes of its own if needed. Misc copyright header edit.
Signed-off-by: Gene Walters <genewalt@amazon.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Make sure Multiplayer AutoComponents dont generate property OnChange script events if GenerateEventBindings is disabled
Signed-off-by: Gene Walters <genewalt@amazon.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Adding parameter names to NetworkCharacterComponent script events so people know what the parameters are used for in scriptcanvas
Signed-off-by: Gene Walters <genewalt@amazon.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Small fix to use AZ_CRC_CE
Signed-off-by: Gene Walters <genewalt@amazon.com>
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Disabling some tests when prefab mode is enabled
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Revert "Disabling some tests when prefab mode is enabled"
This reverts commit 3fe9358d42ec9d7fa5ffaee458e4c6ca3ecbed6e.
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Revert "PR feedback"
This reverts commit a5b86d1954974b950b7719d1bc7dd56bc2a2a21b.
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Revert "removing tab"
This reverts commit ff6ef4bfb514d82a1b668baa95901ad363e648d0.
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Revert "PR feedback from Ram"
This reverts commit cba7f9c2a114d3bb51c9b64f38a7e1fef7bb8fe8.
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
* Renaming level->rootInstance
Signed-off-by: Mikhail Naumov <mnaumov@amazon.com>
Co-authored-by: Steve Pham <82231385+spham-amzn@users.noreply.github.com>
Co-authored-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
Co-authored-by: Qing Tao <55564570+VickyAtAZ@users.noreply.github.com>
Co-authored-by: Tommy Walton <82672795+amzn-tommy@users.noreply.github.com>
Co-authored-by: SJ <srikkant@amazon.com>
Co-authored-by: AMZN-Olex <5432499+AMZN-Olex@users.noreply.github.com>
Co-authored-by: Scott Romero <24445312+AMZN-ScottR@users.noreply.github.com>
Co-authored-by: amzn-tommy <waltont@amazon.com>
Co-authored-by: dmcdiar <dmcdiar@amazon.com>
Co-authored-by: Benjamin Jillich <43751992+amzn-jillich@users.noreply.github.com>
Co-authored-by: Alex Peterson <26804013+AMZN-alexpete@users.noreply.github.com>
Co-authored-by: puvvadar <puvvadar@amazon.com>
Co-authored-by: AMZN-nggieber <52797929+AMZN-nggieber@users.noreply.github.com>
Co-authored-by: pereslav <pereslav@amazon.com>
Co-authored-by: LesaelR <89800757+LesaelR@users.noreply.github.com>
Co-authored-by: Gene Walters <genewalt@amazon.com>
* first pass fixes for how entity space is handled in the viewport interaction model
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* small updates to simplify space handling
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* fix for influence group with one entity selected
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* some tidy-up and fix for scale manipulator snapping
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* couple of small fixes for scale manipulator
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* small comment update
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* fixes for integration test failures
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* add test for rotation manipulator
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* add test coverage for rotation manipulators
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* add tests for translation manipulators and some other tidy-up changes
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* add tests for translating a group of entities
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* add some tests for scale manipulators
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* some updates and formatting changes (clang-format) to ViewportScreen
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* simplify usage of lround code
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* update missed name updates
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* update usage of WorldToScreenNdc
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* updates following review feedback
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* some more small tidy-up changes
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* move static variables to be marked inline
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* small formatting fixes
Signed-off-by: hultonha <hultonha@amazon.co.uk>
This allows for all the global static `InputChannelId`s to be `constexpr`
as well, which prevents some global constructors, including some CRC32
calculations on application startup.
Signed-off-by: Chris Burel <burelc@amazon.com>
The Linux platform has multiple windowing systems. Support for xcb is
currently in progress, support for Wayland is planned in the future. The
way the current xcb support is included is by making some file with a
`_xcb` suffix, and placing `#if PAL_TRAIT_LINUX_WINDOW_MANAGER_XCB` around
most of that file's contents.
With this change, all of the code in AzFramework that uses xcb directly is
inside the `Platform/Common/Xcb` subdirectory. It greatly reduces the
amount of code in compile-time `#ifdef` checks for the chosen windowing
system. It also provides a logical place to include O3DE-specific xcb
C++ wrappers and interfaces, without polluting non-xcb related code.
Signed-off-by: Chris Burel <burelc@amazon.com>
The new FileReader class allows using either a FileIOBase or SystemFile
classes for reading files.
If a non-nullptr FileIOBase is supplied, the FileIOBase is used,
otherwise SystemFile is used.
Updated the SettingsRegistryMergeUtils
`MergeSettingsToRegistry_ConfigFile` function to use the FileReader.
This allows .cfg such as the autoexec.cfg to be read using FileIO,
therefore allowing it to be read from the engine.pak file.
Because the AZ::Console::ExecuteConfigFile uses the
`MergeSettingsToRegistry_ConfigFile` function for merging *.cfg files to
the SettingsRegistry, this allows the AZ::Console to run console
commands from files within pak files thanks to the ArchiveFileIO being
the default FileIOBase instance
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Adds the gem repo screen with the UI built but with mocked data and not connected to the o3de scripts
Signed-off-by: nggieber <nggieber@amazon.com>
* Changed name of added to enabled, disabled define, removed unused functions
Signed-off-by: nggieber <nggieber@amazon.com>
* Added Repo Screen Inspector UI
Signed-off-by: nggieber <nggieber@amazon.com>
* Addressed minor PR feedback
Signed-off-by: nggieber <nggieber@amazon.com>
* Add some more minor PR changes
Signed-off-by: nggieber <nggieber@amazon.com>
* proof of concept change for fixing camera yaw rotation being ignored
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* updates to fully support camera roll
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* small fixes for PR
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* undo changes in EditorCameraComponent
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* add test to verify interaction between editor viewport view entity change and modular camera controller
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* add additional tests for updated camera behaviors
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* revert change to Camera Gem Output Name
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* move location of new files
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* fix tab/spaces issue
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* remove static from potentially unused functions
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* set camera lib name in CMakeLists.txt file
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* cosmetic CMakeLists.txt change
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* Fixed calculation of each archive file data offset.
The location of a file entry in a Zip file is calculated after the local file
header + the length of the filename + the length of the extra field
length per the ZIP file spec.
https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Removed bIndependentBlocks variable
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
- Added new interface type AZ::Debug::Profiler to externally register profiler systems
- Modified the Atom CPU profiler to register as an AzCore profiler
-- This allows full engine markers to be visualized in the associated ImGui tool
- Converted all AZ_ATOM_PROFILE_* macros to use AZ_PROFILE_* macros instead
Signed-off-by: AMZN-ScottR 24445312+AMZN-ScottR@users.noreply.github.com
* Provisional impl and testing of central state tracker.
Signed-off-by: John <jonawals@amazon.com>
* Add missing namespace comment.
Signed-off-by: John <jonawals@amazon.com>
* ViewportEditorModeState -> ViewportEditorModes
Signed-off-by: John <jonawals@amazon.com>
* ViewportEditorModesTracker -> ViewportEditorModeTracker
Signed-off-by: John <jonawals@amazon.com>
* GetEditorModeState ->GetViewportEditorModes
Signed-off-by: John <jonawals@amazon.com>
* GetNumTrackedViewports -> GetTrackedViewportCount
Signed-off-by: John <jonawals@amazon.com>
* IsViewportStateBeingTracked -> IsViewportModeTracked
Signed-off-by: John <jonawals@amazon.com>
* Fix API comments.
Signed-off-by: John <jonawals@amazon.com>
* Delete hangover file.
Signed-off-by: John <jonawals@amazon.com>
* Delete more hangover files.
Signed-off-by: John <jonawals@amazon.com>
* Minor member name refactor.
Signed-off-by: John <jonawals@amazon.com>
* Refactor nonclemanture.
Signed-off-by: John <jonawals@amazon.com>
* Rename Enter/ExitMode to Register/UnregisterMode.
Signed-off-by: John <jonawals@amazon.com>
* Error and warning msgs now return AZ::Outcomes.
Signed-off-by: John <jonawals@amazon.com>
* Change all nomenclature to Activate/Deactivate for consistency.
Signed-off-by: John <jonawals@amazon.com>
* Change tense of notification bus methods.
Signed-off-by: John <jonawals@amazon.com>
* Fix malformed string format.
Signed-off-by: John <jonawals@amazon.com>
* Fix malformed string format (again).
Signed-off-by: John <jonawals@amazon.com>
* Fix Linux warning.
Signed-off-by: John <jonawals@amazon.com>
* [Mac] Initial support for building with hardened runtime enabled and code signing the binaries and bundles generated by the CMake install process.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* 1. Move call to ly_post_install_step
2. Entitlements should only be added for executables
3. Change use of CMake exec_program to newer execute_process
4. Remove broken symlinks from embedded Python frameworks
5. Run post install code signing only if hardened runtime is enabled
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Remove unnecessary flag
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Remove unnecessary additional call to condesign python inside a bundle
Signed-off-by: amzn-sj <srikkant@amazon.com>
* 1. Move commonly used install functions for codesigning, copying files, and fixing frameworks to a utility script
2. Remove unnecessary wait in the Editor/AP launchers I added earlier.
3. Codesign 3rd party libraries for distribution.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* 1. Codesigning on 3rd party libs should only happen when hardened runtime is enabled.
2. Change the order of the if blocks in Editor's main_dummy.cpp. This was causing strange notarization issues because it wass too similar to AP's main executable.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Add new line to end of file
Signed-off-by: amzn-sj <srikkant@amazon.com>
* 1. Move architecture specification to PAL_mac cmake file. 2. Codesign failure should be fatal.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Address some PR feedback
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Remove unnecessary comment. Change if to use IN_LIST.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* HOME may not always be defined. Adding alternate POSIX way of determining HOME.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Checking in partial work to get O3DE SDK built as an app bundle. Has a bunch of debug code that needs to be cleaned up.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Remove this and add it back later with fixed casing.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Adding file back with fixed case
Signed-off-by: amzn-sj <srikkant@amazon.com>
* 1. Add entitlements sparingly(only when necessary)
2. Convert entitlements to plist files which we can directly pass to codesign
3. Install python site-packages in the o3de_sdk launcher and then launch the project manger.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* 1. Move hardened runtime check to codesigning functions only. This way, non-hardened runtime install is identical to the former except for codesign. Makes it easy for QA to test internally.
2. Move cmake min version for install to the pre-install steps.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* 1. Remove the dummy launchers for AssetProcessor and Editor
2. Add loader_path to the rpaths of binaries outside an app bundle so that the dynamic loader can load their dependencies if any.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Remove file named main_dummy.cpp
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Add O3DE SDK launcher
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Add missing runtime dependencies to gems
Signed-off-by: amzn-sj <srikkant@amazon.com>
* 1. Update the path to binaries when codesigning to the correct one.
2. Remove some debug messages.
3. Move installed binary path setreg generation to the target install function. This way, we get the correct path to the bundle accounting for different configs and subdirectories.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Add explanatory comments.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* 1. ly_install_add_install_path_setreg cannot be called during install target because the runtime dependencies are already processed by then.
2. The SDK launcher now uses the ProjectManager's bundle setreg to find the path to the installed binaries
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Update path to install relative binaries after merge from dev
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Only one config of the SDK launcher needs to be installed. Preinstall steps should not be run per config, but only once.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* 1. Install python dependencies using the get_python.sh script.
2. Replace any reference to hard-coded package name/version numbers with variables.
3. Add one more missing runtime dependency.
4. Misc. PR feedback.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* 1. Remove the need for setreg files in all tool bundle. Project binary path can be used instead.
2. Move O3DE_SDK_Launcher to Code/Tools/BundleLauncher
3. Add ly_install_run_script() function for install(SCRIPT) functionality.
4. Address some other PR feedback.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Add source permission when installing O3DE_SDK executable.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Rename setreg file to add specialization tag.
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Remove LY_BUILD_PERMUTATION that's not needed
Signed-off-by: amzn-sj <srikkant@amazon.com>
* 1. Add BinariesInstallPath.setreg to all our bundles like before. This is now only added during the install process though.
2. Fix path in Install_common.cmake
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Fix comment
Signed-off-by: amzn-sj <srikkant@amazon.com>
* Adds the gem repo screen with the UI built but with mocked data and not connected to the o3de scripts
Signed-off-by: nggieber <nggieber@amazon.com>
* Changed name of added to enabled, disabled define, removed unused functions
Signed-off-by: nggieber <nggieber@amazon.com>
* Added eof nl to qss
Signed-off-by: nggieber <nggieber@amazon.com>
* Restores the branch to the old status from old branch
Signed-off-by: aaguilea <aaguilea@amazon.com>
* Changes that didnt make it from merge manually fixed
Signed-off-by: aaguilea <aaguilea@amazon.com>
* forgot one
Signed-off-by: aaguilea <aaguilea@amazon.com>
* Added Ebus in order to remove rigidbody's dependencies
Signed-off-by: aaguilea <aaguilea@amazon.com>
* answering some of the comments in the PR
Signed-off-by: aaguilea <aaguilea@amazon.com>
* Small typo changed
Signed-off-by: aaguilea <aaguilea@amazon.com>
* Added array index operators to Spawnable(Const)EntityContainerView.
This commit also includes some tweaks to the begin/end functions and unit tests.
Ticket: https://github.com/o3de/o3de/issues/4110
Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
* Fixed string formatter for assert in Spawnable(Const)EntityContainerView.
Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
* Added empty() to Spawnable(Const)EntityContainerView and made move functions use [[nodiscard]]
Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
* Create a new InputContextComponent.
- An InputContextComponent is used to configure (at edit time) the data necessary to create an AzFrameowrk::InputContext (at run time). The lifecycle of any InputContextComponent is controlled by the AZ::Entity it is attached to (adhering to the same rules as any other AZ::Component), and the InputContext which it owns is created/destroyed when the component is activated/deactivated.
- The underlying AzFramework::InputContext and AzFramework::InputMapping* classes already exist, along with comprehensive unit tests (see Code/Framework/AzFramework/Tests/InputTests.cpp). All changes in this PR are simply to allow input contexts / input mappings to be defined/edited from the editor using data.
- The new InputContextComponent is similar in many respects to the InputConfigurationComponent found in the StartingPointInput Gem, the main difference being that the user-defined input mapping objects the new component creates are identical (from the perspective of any input consumer) to 'raw' engine-defined input channels (the existing AzFramework::InputMapping class inherits from the existing AzFramework::InputChannel class). This means that any system which consumes input (in either C++ or lua) can seamlessly interchange between obtaining input using either the 'raw' engine-defined input channels (eg. InputDeviceGamepad::Button::A, InputDeviceKeyboard::Key::AlphanumericA, etc.) or any user-defined input mapping, which can now be defined from the editor using data. Ultimately I would like to deprecate the StartingPointInput::InputConfigurationComponent in favour of this new InputContextComponent, which isn't realistic at present because the former is used pervasively throughout many different projects, and it integrates with ScriptCanvas in a way that I have yet to replicate, but this is a step towards the goal of a unified, engine-wide input context/input mapping solution that can be used interchangeably by any system, project, or Gem.
Signed-off-by: bosnichd <bosnichd@amazon.com>
* Edited some reflected property descriptions for clarity.
Signed-off-by: bosnichd <bosnichd@amazon.com>
* Fix clang builds:
- Add a missing virtual destructor.
- Fix the scope of two reflected property attribute functions.
Signed-off-by: bosnichd <bosnichd@amazon.com>
* Fix for InputContextComponent being reflected twice in some cirsumstances.
Signed-off-by: bosnichd <bosnichd@amazon.com>
* Updates in response to PR feedback.
Signed-off-by: bosnichd <bosnichd@amazon.com>
* More updates based on review feedback.
Signed-off-by: bosnichd <bosnichd@amazon.com>
* Added string and string_view class constructor overloads which is deleted that prevents initializing them from a nullptr or an integer type
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Fixed locations where string and string_view were initialized with
nullptr
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Fix IArchive::IsInstalledToHDD signature
Updated calls to ConvertAbsolutePathToAliasedPath to use an
list initialization instead of nullptr
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the GameApplication to mount the engine.pak
This allows loading the autoexec.cfg and bootstrap.game.<config>.<platform>.setreg from the engine.pak files
The engine.pak is searched for in the following order: <ExecutableDirectory>/engine.pak, followed by <ProjectCacheRoot>/engine.pak
Removed a lot of unused APIs from the AZ::IO::Archive feature suite
Updated many of the AZ::IO::Archive classes to use AZ::IO::Path internally.
The logic to search for files within an Archive has been updated to use AZ::IO::Path and to remove case-insensitve string comparisons
Somehow removed the CryFile dependency on anything Cry
Updated the Settings Registry to support reading from the FileIOBase and therefore Archive files in the GameLauncher via the `SetUseFileIO` function
Removed AzFramework Dependency on md5 3rdParty library
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Linux build fix
Added an include of <stdio.h> before the <rapidxml/rapidxml.h> include as it usesnprintf.
Added `static` to the constexpr constants in ExtractFileDescription in SettingsRegistryImpl.cpp to fix clang compile issue
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the case used to mount the Engine PAK file in the GameApplication to be Engine.pak to match the other locations where it is mounted
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the proper FFont call to FileIOBase::Size to supply the correct
integer type of AZ::u64 instead of size_t
This fixes building on platforms where size_t is type defined to be
unsigned long
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Fixed segmentation fault in Archive::Unregister when outputing the filename of the Archive file being closed
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Fix calls to OpenPack in the Legacy LevelSystem
The LevelSystem was calling the incorrect overload of OpenPack that
accepts BindRoot for the mounted level.pak instead of the overload that
that passes a memory block object.
This was causing the level pak files to be mounted using an invalid
directory, causing file accesses inside the level pak to fail.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the error messages in the ZipDir CacheFactory class to use AZ_Warning directly
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the ArchiveFileIO m_trackedFiles container to store mapped type as an AZ::IO::Path
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* expose sticky select option to the SettingsRegistry
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* update missed callsites after API change to Manipulator Test Framework
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* updates following review feedback
Signed-off-by: hultonha <hultonha@amazon.co.uk>
Merge pull request #4102 from aws-lumberyard-dev/Atom/santorac/WarnOnMaterialPsoChanges
These changes make material system report warnings when gameplay scripts attempt to change PSO-impacting material properties at runtime. So far the material system has always allowed any properties to be changed at runtime, including those that affect Pipeline State Objects (PSOs), as this is supported on several platforms. But some platforms require that Pipeline State Objects be pre-compiled and shipped with the game. At some point we will need to add new restrictions that limit what material properties can be changed at runtime. In the meantime, these warnings should alert users to avoid this, as the functionality likely won't be supported in the future.
- Made the Material and LuaMaterialFunctor classes configurable to report errors or warnings when material properties modify Pipeline State Objects. This is controlled by a new "MaterialPropertyPsoHandling" enum.
- Made the EditorMaterialComponent override PSO handling as Enabled, to prevent warnings when the user is editing material instance property overrides. This requried a new MaterialComponentNotificationBus bus message "OnMaterialInstanceCreated".
- Added a new ScopedValue utility class that simply sets a value when it goes out of scope.
- Removed unnecessary GetMaterialPropertyDependencies member from material functor context classes, as this is already available as part of the functor itself.
- Made Material::SetPropertyValue return early when the property value hadn't actually changed. Besides being more efficientn, this prevents unnecessary spamming of the new warning.
- Made a couple imporvements to material_find_overrides_demo.lua:
- Made the target material slot name configurable through an exposed component property.
- Fixed a timing issue where the assignmentId was invalid if FindMaterialAssignmentId is called too early.
* Fix code that deregisters the Atom Scene subsystem from the AzFramework Scene
The AzFramework Scene subsystem API is a generic container based on the
type of argument that is passed to it. It maintains a vector of typeids,
and only one object of any type is stored at a time. The Bootstrap system
component registers the Atom scene as a `ScenePtr` (aka
`AZStd::shared_ptr<RPI:Scene>`) with the AzFramework Scene's generic
subsystem. However, the component was previously deregistering the type by
value, `RPI::Scene`. Since no subsystem for the type `RPI::Scene` was set,
unsetting this type did nothing. The result was that the `RPI::Scene`
object would still be around by the time that all the Atom
`InstanceDatabse`s were being destroyed, resulting in a large number of
errors reported about leaked instances during global shutdown.
This fixes the above issue by passing the `m_defaultScene` as a parameter
to `AzFramework::Scene::UnsetSubsystem`, the same value that is passed to
`SetSubsystem`. This is better, because instead of providing explicit
template arguments (which were specifying the incorrect type), this now
allows the compiler to deduce the correct type, and the syntax is symmetric
with the call to `SetSubsystem`.
Signed-off-by: Chris Burel <burelc@amazon.com>
* Correctly release the AWS API from the `HttpRequestManager` module
This code was incorrectly assuming that
`AWSNativeSDKInit::InitializationManager::Shutdown()` would be called
automatically by the `InitializationManager` itself. However, all that
`InitAwsApi()` does is create an `AZ::EnvironmentVariable`, which is a
ref-counted type, and stores it in a global static. That global static is
defined in a static library (namely `AWSNativeSDKInit`), which is linked
in to the `HttpRequestManager` dynamic lib. Because it is a global static,
it has to be explicitly cleared with the call to `Shutdown()`. Otherwise
the destructor of the EnvironmentVariable doesn't happen until global
destruction, by which time the allocator that is supplied to the AWS SDK
has already been destroyed, and the shutdown of the AWS SDK attempts to use
the already-destroyed allocator.
Signed-off-by: Chris Burel <burelc@amazon.com>
* Avoid blocking the remote console server thread if there are no connections
The Remote console server runs in a separate thread. Previously, it would
directly call `AzSock::Accept()` and block the server thread until some
client connected to it. However, if no client connected, the thread would
continue to be blocked, even if the game launcher tried to exit.
This adds a check to see if there's a client on the socket before calling
`Accept()`, to avoid the deadlock on launcher exit.
Signed-off-by: Chris Burel <burelc@amazon.com>
* Fix a log message to print one message per line
Signed-off-by: Chris Burel <burelc@amazon.com>
* Allow pumping the event loop to close the launcher window
Events from the OS are handled in the game's main loop. The general loop
looks like this:
* Read events from the OS
* Tick the game application
One of the events that can come from the OS is that the window hosting the
game is closed. When this event happens, many resources provided by the
renderer are freed, and the game application's `shouldExit` bit is set.
However, when the game's `Tick()` is called, there is lots of code that
assumes the renderer is still there. To avoid crashing in the `Tick()`
call, check if the game should exit after pumping the system events.
Signed-off-by: Chris Burel <burelc@amazon.com>
* Unload the level when exiting the launcher
This ensures that any resources held onto by the level are freed before the
launcher exits.
Signed-off-by: Chris Burel <burelc@amazon.com>
* Add an explicit bus `Disconnect()` call to `AZCoreLogSink`
This is necessary because this bus has virtual functions and can be called
from multiple threads.
Signed-off-by: Chris Burel <burelc@amazon.com>
* Allow normal cleanup to take place when exiting the game launcher
Previously, global cleanup was side-stepped by calling `TerminateProcess`
or `exit`, when quitting the game launcher. This is in contrast to the call
to `_exit` on Linux and Mac when exiting the Editor. That leading `_` makes
a big difference: the former runs object destruction, the latter does not.
Instead of making the launcher exit with `_exit` on Linux, instead, remove
that call and actually run all the atexit code.
This does not modify the Editor's behavior however. It still uses `_exit`
and `TerminateProcess`.
Signed-off-by: Chris Burel <burelc@amazon.com>
* Remove the "TEST_SUPPORTED" traits.
Terrain unit tests should be usable on all platforms, so they shouldn't need a platform-specific trait to enable/disable.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Fix a few misc terrain bugs.
* Change Activate/Deactivate to happen immediately instead of deferring. There were too many order-of-operation bugs caused by trying to defer this.
* Added implementation for calculating normals.
* Fixed bug where GetHeightSynchronous wasn't stopping at the highest-priority layer.
* Added locks for SurfaceData bus to help ensure we lock our mutexes in the correct order and avoid deadlocks.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Add trivial TerrainSystem tests.
Tests construction, Activate(), Deactivate(), and destruction.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Unified Terrain system calls on single bus.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Added mock for TerrainDataNotificationBus listener.
Also added unit tests to verify the listener, and added in missing notification events.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Removed extra Sampler class.
Fixed up APIs to correctly pass Sampler and terrainExistsPtr around.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Switched MockTerrainSystem to be proper gmock.
This makes it for flexible to use and easier to reuse from other test environments.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Fix settings bug caused by bad order of operations that occurred when the methods moved to a different bus.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Eliminate extra EBus by simplifying area initialization.
Previously, there was a back-and-forth ebus signal used for the terrain system to find any terrain spawners that were created prior to the terrain system activation. Now it uses the more simple technique of just grabbing all the spawners that are currently hooked up to the spawner ebus.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Switch to NiceMock so that "uninteresting" mock calls get ignored.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Addressed PR feedback.
Filled in terrainExistsPtr at the end, and added it to GetNormal as well.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Fixed shader height calculation.
It was off by half a pixel, and it was interpolating, both of which were wrong.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Fixed issue where two Paths could compare equal to each other, but hash
differently
This issue is caused by the Path comparison logic using the path
separator of the left path in a comparison of two paths(left and right)
to determine whether the PathComparison is case-sensitive or not.
The logic has been updated to only perform a non-case-sensitive path
comparison if both paths are using the WindowsPathSeperator of `\`
Also fixed issue with the Hashing algorihtm of the Path class to always
hash the root directory as if it is `/`.
This allows a path of "C:\foo" and "C:/foo" to hash to the equivalent
value.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* MS Build Tools 14.29 workaround around suppressing warnings using the external header feature
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Added a max_size function to all AZStd container style allocator
functions
The max_size functions returns the maximum value that a single contiguous
allocation value returns
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the BestFitExternalMapSchema and MallocSchema
GetMaxContiguousAllocationSize function
Those functions now return a Max allocation size of
AZ_CORE_MAX_ALLOCATOR size to indicate the maximum size for a single
allocation
Changed the IAllocatorAllocator::GetMaxContiguousAllocationSize function
from a pure virtual function to regular virtual function
Removed the left over String.cpp test to validate that the issue with
the allocator::max_size() function was occuring
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Fixes to icon generation. Generating a pixmap out of a size won't take the screen scaling factor into account, resulting in blurry results.
Note that this is not a catchall solution, every case needs to be addressed manually.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* HighDpi fixes for startup splashscreen and About dialog
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Add helper function to generate appropriate pixmaps for a screen based on its dpi settings.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Implement sync interval and refresh rate API for RenderViewportWidget
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Measure actual frame timings in the viewport info overlay.
Takes the median of the sum of (frame end - frame begin) to provide more a more representative view of when frames begin and end.
Note: Until VSync is internally supported by the event loop, this will produce nearly identical frame timings as the frame will spend as much time as needed synchronously waiting on a vblank.
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Make frame timing per-pipeline, wire up refresh rate info to ViewportContext
Signed-off-by: nvsickle <nvsickle@amazon.com>
* POC: Frame limit pipeline rendering
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Switch Editor tick to every 0ms to allow better tick accumulation behavior
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Move RPISystemComponent to the tick bus, remove tick accumulation logic
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Add `AddToRenderTickAtInterval` to RenderPipeline API
This allows a pipeline to update at a set cadence, instead of rendering every frame or being directly told when to tick.
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Make ViewportContext enforce a target framerate
-Adds GetFpsLimit/SetFpsLimit for actively limiting FPS
-Calculates a render tick interval based on vsync and the vps limit and updates the current pipeline
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Add r_fps_limit and ed_inactive_viewport_fps_limit cvars
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Quick null check from a crash I bumped into
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Fix off-by-one on FPS calculation (shouldn't include the not-yet-rendered frame)
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Clarify frame time begin initialization
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Fix TrackView export.
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Address some reviewer feedback, revert RPISystem API change, fix CPU profiler.
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Add g_simulation_tick_rate
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Address review feedback, make frame limit updates event driven
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Remove timestamp update from ComponentApplication::Tick
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Fix window size when dropped on a screen with a different scale setting compared to the one it was dragged from.
Note that this fixes a bug that could only be reproduced with the PerScreenDpiAware setting activated - current editor uses SystemDpiAware.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* Fix loss of precision warning.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
* remove redundant API calls from EditorViewportWidget and use new WorldToScreen call
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* remove additional pre/post widget render calls that are no longer required
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* Avoid redefining `PRI` macros on Linux
The fixed width 64-bit integer types are defined differently per platform.
Some platforms define it as "long", others define it as "long long". For
consistency, `AZ::u64` or `AZ::s64` is always defined to "long long".
However, this causes problems for formatting those types, because on
platforms where `uint64_t` is a `long`, `PRIu64` gives the wrong format
string for `AZ::u64`. Previously this was fixed by redefining the `PRI`
macros so that they work for `AZ::u64`, but that breaks the ability to
format `uint64_t`.
We could add an AZ-specific version of the `PRI` macros for 64-bit integer
types, but we don't really need to, since they are `long long` on every
platform we support.
* Use `%ll` for `AZ::u64`
* Use `PRIu64` for `uint64_t`
Signed-off-by: Chris Burel <burelc@amazon.com>
* Avoid redefining `PRI` macros in CryCommon
Signed-off-by: Chris Burel <burelc@amazon.com>
The terrain feature processor was crashing due to an invalid shader name. The shader name has been fixed, but the feature processor has also been hardened so that it no longer crashes if a shader fails to load.
Also, while testing, this inadvertently exposed a second crash in EntitySerializer that occurs when components don't serialize in correctly.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Fixed PathView `MakeRelativeTo` and `Append` functions path segment
comparisons when using the Windows path separator of '\'
The PathSegment comparisons were case-sensitive in both those functions
and now use `Internal::ComparePathSegments` function to perform the
appropriate case comparison based on the path separator value of the
Path class
Reverted the LocalFileIO::CheckInvalidWrite function back to not
lowercasing the assets alias and input path before invoking
`PathView::IsRelativeTo`
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Simplified the LocalFileIO::ConvertToAliasBuffer logic
Fix for the ArchiveTest
`IResourceList_Add_AbsolutePath_RemovesAndReplacesWithAlias` and
`TestArchiveViaFileIO` test
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Added a PathIterable structure stores a non-heap container of normalized path segments of an input path.
Moved the PathParser logic to a PathParser.inl file
Removed dependency of the PathView::IsRelativeTo logic on FixedMaxPath
There is no longer a 1024 character limit when determining if a path is relative to a base
Added a GetNormalPathParts and AppendNormalPathParts to function and removed LexicallyNormalInplace to share the logic for creating a normalized path between IsRelativeTo and LexicallyNormal
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Clang PathIterable.inl build fix
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Fixed Normalize and Relative Path functions initialize the result paths
With the correct path separator for the paths being transformed
Ported over the Custom Path Root Separator logic to the PathParser.inl
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated he Shader Preprocessor include path gather.
It now uses AZ::IO::Path for the path operations and checks if the path
exist before adding it to the list of include paths.
Finally the set logic has been removed for a simpler find_if check to
see if the include path already since in the project include paths
This fixes the Asset Processing issues with shader includes due to the
Path.inl changes
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Fixed tail recursion call to AppendNormalPathParts to supply a PathView with the same path separator as the parent call
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Adding reference qualifier overloads to the Path class Native function
Removed the conversion operators from the Path class for converting to a
string_type&/const string_type&
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
Many of these are just extra noise in the profile, but the one in Archive.cpp could also cause PIX to crash.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Move a few specializations from AzStdOnDemandReflection.inl to cpp file
This reduces compilation time and produced profile/debug file sizes.
The specializations for string and string_view are only implemented for 'char' type, since
others are not used anywhere.
Extracted `Reflect` method from `ClientAuthAWSCredentials` to a cpp file.
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Windows build fixes.
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Added missing license.
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Fix missing spaces in template argument lists
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Clang format on ClientAuthAWSCredentials.cpp
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Merge upstream development and fix linux build.
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Miscellaneous fixes and PAL changes required for restricted platforms.
Signed-off-by: bosnichd <bosnichd@amazon.com>
* Rename O3DE::ProjectManager::ProjectUtils::ReplaceFile -> ReplaceProjectFile to prevent conflict with Windows ReplaceFile #define
Signed-off-by: bosnichd <bosnichd@amazon.com>
* Various terrain improvements:
- Height now stored in a R16_unorm to decrease the amount of memory / memory bandwidth needed for the height field
- Many simplifications to the feature processor
- Added a shader to render to the depth pre pass
- Pulled common functionality needed by depth and forward to a common include shader
- Forward shader now outputs to all the expected render targets
- Adjusted the way normals and lighting are being calculated
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Adding missing shader files. Updated terrain shader to alter the color slightly with height.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Removed pixel shader code from terrain depth pass
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Renamed the depth pass shaders to no longer indicate they include a pixel shader.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Removing unneeded code from TerrainCommon.azsli
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* WIP changes for viewport single select and better integration tests
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* update test to verify single click selection in the viewport
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* temporarily remove changes for single select
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* temporarily remove ChangeSelectedEntity call
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* initial tests to validate current viewport selection model
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* some tidy-up before publishing PR
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* add reference to const type in loop
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* temporarily disable box select test
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* CHanges to Push/Pop Matrix
Signed-off-by: John Jones-Steele <jjjoness@amazon.com>
* Fixed bad commit
Signed-off-by: John Jones-Steele <jjjoness@amazon.com>
* REmoved the AxisAlignedBoxShapeComponentBux and AxisAlignedBoxShapeConfig
Signed-off-by: John Jones-Steele <jjjoness@amazon.com>
* Fixed derivation of AxisAlignedBoxShape
Signed-off-by: John Jones-Steele <jjjoness@amazon.com>
* Added ShowChildrenOnly to Component
Signed-off-by: John Jones-Steele <jjjoness@amazon.com>
* Fixed cmake file
Signed-off-by: John Jones-Steele <jjjoness@amazon.com>
* Changes from review
Signed-off-by: John Jones-Steele <jjjoness@amazon.com>
* Added tests for AxisAlignedBoxShape
Signed-off-by: John Jones-Steele <jjjoness@amazon.com>
* Addressed PR comments and added one further test.
Signed-off-by: John Jones-Steele <jjjoness@amazon.com>
* Removed dead code.
Signed-off-by: John Jones-Steele <jjjoness@amazon.com>
* Changes from review
Signed-off-by: John Jones-Steele <jjjoness@amazon.com>
* Spelling fix and changed link to docs
Signed-off-by: John Jones-Steele <jjjoness@amazon.com>
* Fixed profile bug in Linux
Signed-off-by: John Jones-Steele <jjjoness@amazon.com>
* Fixed problem with Unity Profile Build in Tests
Signed-off-by: John Jones-Steele <jjjoness@amazon.com>
* Fix for camera look-at and position being the same when calculating orbit point
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* add unit test to verify camera orbit behavior
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* preparatory work to allow for more viewport integration tests
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* minor grammatical fix
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* fix for missed bus call update
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* Legacy cleanup - part 3
Not much is left that can be easily removed,
so I think this will be last cleanup before the legacy functionality is replaced.
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* fix windows build, remove a few more things, re-add one file
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Remove legacy RenderBus + more cleanups
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Remove MaterialOwnerBus.h
Clean-up in Cry_Matrix34/33
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
- Protected python execution of OnEventGenericHook by trying to lock the GIL and show a descriptive error when it was not possible to lock.
- Improved mechanism to lock python mutex and GIL in PhytonSystemComponent. Acquiring/releasing GIL once per thread.
- Added unit test to verify errors are fired when trying to execute OnEventGenericHook from another thread (as it should not able to acquire the GIL).
- Improved python threading tests to actually using python buses.
Signed-off-by: moraaar moraaar@amazon.com
* add a new implementation for cone/ray intersect to simplify and fix existing issue
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* move new ray/cone intersection function to AzToolsFramework - repond to PR comments
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* updates following PR feedback
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* add additional comment to give more context to the intersection function
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* update google test expect usage
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* Modernization + small fix.
Modernize ( `bool`/`override`/other) code in AzCore, AzFramework, AzQtComponents, AzToolsFramework, etc.
Replaced a `bind` or two, use `using` in a few places as well.
Fix nullptr comparison of AZStd::function.
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Apply review-based changes
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
- Fixed error in iOS profile non-unity build error: unused variable 'INVALID_OFFSET'. The global variable is static const only visible to the cpp, removed since it's not used.
- Fixed error in windows release 'timeoutSeconds': unreferenced formal parameter
Signed-off-by: moraaar <moraaar@amazon.com>
- Fixed cloth asset, which stopped working due to Updated skeleton logic: #2957 which changes how fbx graph nodes are collected (affecting its names, which is used by cloth modifier).
- Fixed cloth test suite active call to base's run_test function. It stopped working when its signature was changed here: 182d410#diff-3f5d93b0a76c838893693f19f2eacfe3e67040d445d6463c5c425ef5075cb409
- Renamed nvcloth TestSuite_Active.py to TestSuite_Main.py to be consistent with the other test folders.
- Fixed ModelAsset creator clone function. It was missing to copy the material slots, ultimately causing Material Component to show 0 material slots.
- Fixed crash where the revert overrides menu was not created when checking changes for selected component and selected entities.
Signed-off-by: moraaar moraaar@amazon.com
* - Add support for a custom path root separator using a trait.
- Ensure to set both FilePathKey_ProjectUserPath and FilePathKey_ProjectLogPath to a writeable storage location on non-host platforms.
Signed-off-by: bosnichd <bosnichd@amazon.com>
* Remove az_trait_validator.py, as our PAL guidance no longer dictates that all traits must be defined for all platforms.
Signed-off-by: bosnichd <bosnichd@amazon.com>
* Updated based on review feedback.
Signed-off-by: bosnichd <bosnichd@amazon.com>
* Implemented the RFC to allow projects to need to specify the Gems
Projects no longer need to specify CMake Targets to associate a Gem
variant with.
In order to associate a CMake Target with a gem variant a new
`ly_set_gem_variant_to_load` function has been added that maps CMake
Targets -> Gem Variants.
This allows CMake Targets to self describe which gem variants they
desire to build and load
This implementation is backwards compatible:
The `ly_enable_gems` function still accepts the TARGETS and VARIANTS
arguments which it will forward to the new `ly_set_gem_variant_to_load`
function to allow the input Targets to be associated with input Gem
Variants
This changes fixes the issue with gems that are required by an
Application regardless of the Project in use, not replicating it's
"requiredness" to the SDK layout
Fixes#3430
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Added an LY_PROJECT_NAME property to the Launcher targets
The `ly_enable_gems_delayed` now command queries the LY_PROJECT_NAME property
associated with each target to determine if the gems being enabled are
match the project the target is associated with.
In this case the target only adds dependencies if the gems is being enabled
without a specific project or if the gems is being enabled for the
matching project.
If the LY_PROJECT_NAME property is not set for target, it indicates the
gems for each project can be added as dependencies to the target.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* The INSTALL step now forwards the LY_PROJECT_NAME property for a target
The Install_common.cmake has been updated to support configuring
TARGET_PROPERTIES into the generated CMakeLists.txt for install targets.
Furthermore the indentation of the generated CMakeLists.txt has been
normalized to help with readability
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updating the Atom_Bootstrap CMakeLists.txt to enable the Atom_Bootstrap Gem
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Added a deprecation message to ly_enable_gems when supplying TARGETS and
VARIANTS
Added a define_property call for the LY_PROJECT_NAME target property
Removed the .Builders alias for the PrefabBuilder and renamed the
GEM_MODULE target o PrefabBuilder.Builders.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Removed superflous space from AutomatedTesting Gem CMakeLists.txt
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Fix rpath for lrelease binary
This fixes the rpath for lrelease which is used to compile the qt translation file.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Fix a LocalFileIO path casing issue
LocalFileIO was lowercasing the entire path after substituting aliases.
This caused files to not be found and many failures in AP.
Fixed to only lowercase the trailing relative path after the substitution.
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* Removed a message line
Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
* {LYN2076} Add Material data types Behavior for the scene graph
Adding behavior to expose GraphData MaterialData to Python scripts so that scripters can read in the material properties from a scene graph
Signed-off-by: jackalbe <23512001+jackalbe@users.noreply.github.com>
* new warning fixed in code
Signed-off-by: Jackson <23512001+jackalbe@users.noreply.github.com>
-Fix a missing QPainter::restore call
-Remove 0px font sizes from our qss, which was just getting ignored by Qt and triggering a warning
Signed-off-by: nvsickle <nvsickle@amazon.com>
Changes how runtime dependencies are hooked as dependencies to create depenedencies to the inputs
This makes it that if an input to the runtime dependencies changes, it gets re-copied (e.g. a 3rdParty changes or a file added through ly_add_target_files)
Closes Issue #3391
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Changed path Amazon to O3DE. Fixed issues that setreg is not loaded in game launchers.
Signed-off-by: jiaweig <jiaweig@amazon.com>
* Add brackets.
Signed-off-by: jiaweig <jiaweig@amazon.com>