* 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>
* 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>
• 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>