Commit Graph

686 Commits

Author SHA1 Message Date
srikappa-amzn 3c40aad148 Merge pull request #792 from aws-lumberyard-dev/Prefab/CreatePrefab
Bug fixes for creating prefabs with nested entities
2021-05-18 13:33:34 -07:00
SergeyAMZN 6626a7cf8e Merge pull request #682 from aws-lumberyard-dev/MultiplayerPipeline
Added support for parent-child networked entities
2021-05-18 21:23:32 +01:00
Tommy Walton d0810892f1 ATOM-15358 : Culling concurrency checker fails in AtomSampleViewer (merge from 1.0->main)
Inserting, updating, and removing entries from a VisibilityScene was made thread safe in a previous change, and now both the MeshFeatureProcessor and DiffuseProbeGridFeatureProcessor update entries at the same time from multiple threads. This leads to an assert in the Culling concurrency_checker, even though this is now valid behavior.

However, we still don't want to be adding, removing, or updating cullables between BeginCulling and EndCulling, which could cause a mismatch between the result of OctreeScene::GetEntryCount and the actual number of cullables in the scene.

-Added soft_lock_shared/soft_unlock_shared to the concurrency checker to allow multiple threads to acquire a lock when that is the desired behavior, while still asserting that nothing tries to acquire a shared lock when the concurrency checker is already locked.
-Update Culling.cpp to use the new soft_lock_shared when adding, updating, or removing cullables
-Added unit tests for the concurrency_checker
-Updated ArrayView unit test to use AZ_TEST_START_TRACE_SUPPRESSION instead of manually checking the assertion count, so that test now passes in release builds which do not assert.
2021-05-18 10:53:41 -07:00
bosnichd 7a557c05ac Remove or update some remaining non-inclusive terms. (#793) 2021-05-18 11:43:57 -06:00
srikappa 1a1d608c7a Merge branch 'main' into Prefab/CreatePrefab 2021-05-18 10:22:33 -07:00
Aaron Ruiz Mora dd398891c9 Improve iOS string handling in DynamicModuleHandle_iOS 2021-05-18 16:43:51 +01:00
Tom Hulton-Harrop 43258be51c Merge pull request #786 from aws-lumberyard-dev/hultonha_LYN-2215_camera-viewport-3
Add new orbit functionality for camera
2021-05-18 15:37:38 +01:00
Aaron Ruiz Mora 87ec96fbf4 Fix compilation errors in windows release 2021-05-18 15:26:45 +01:00
pereslav 85374ea7fc Merged from main 2021-05-18 13:10:44 +01:00
amzn-sean 672dad7fea combined the 2 physics shape collider config pair types into 1(#778) 2021-05-18 12:39:07 +01:00
Benjamin Jillich 6d7c2f1a0c Reusable selection proxy model (#780) 2021-05-18 11:16:00 +02:00
srikappa 761a77a436 Avoid creating a new list for non-container top level entities 2021-05-17 18:51:23 -07:00
srikappa eb873f246a Merge branch 'main' into Prefab/CreatePrefab 2021-05-17 17:13:02 -07:00
srikappa 45074c651a Fix bugs with creating prefabs with nested entities 2021-05-17 17:10:50 -07:00
pereslav b758a1920f removed useless todo comment 2021-05-17 23:44:40 +01:00
pereslav 970c87b487 Refactored spawning network entities to use SpawnableEntityManager instead of duplicating the code in NetworkEntityManager 2021-05-17 23:34:58 +01:00
Alex Peterson 2d54275cc6 Initial project creation logic
* Add GetProjects, GetProjectTemplates, GetGems
* Redirect python output to AZ_TracePrintf
* Allow creating projects in empty folders
* Enable project creation
2021-05-17 15:07:20 -07:00
bosnichd e2f5677bbc Remove a number of unused CryCommon interfaces and docs related folders. (#788) 2021-05-17 14:32:44 -06:00
Steve Pham c5e8a20462 Re-enable and fix failing AZ_NETWORKING_TESTS on Linux
- Enable the previously failing network unit tests for TcpTransportTests for Linux: TestSingleClient and TestMultipleClients
- Switch Linux to use SELECT implementation of the TCP Socket Manager instead of the EPOLL version (root cause of the failure)
2021-05-17 13:02:28 -07:00
Mike Balfour d084027b6e Bugfixes to enable slice-to-prefab conversion to run with less warnings/errors/crashes (#768)
While trying to process all slices and levels in Automated Testing, a few bugs came up that needed to be addressed:
- [LYN-3832] TransformComponent had a field removed without updating the version number and converter, which caused a lot of excessive warnings
- SliceComponent would crash in debug builds on instantiation failures due to a null dereference that was guarded against in most but not all places
- SliceConverter now detects when nested slices exist and gracefully warns about it.
- InstanceUpdateExecutor / TemplateInstanceMapper will now immediately remove instances that are unregistered, so that any in the queue don't get processed on a subsequent tick.  This was causing crashes when the instance was destroyed before the processing occurred.  It also has a side benefit of preventing the same instance from executing multiple times.
- Minor logic bugfix to the pack close warning, the boolean check was flipped.

Also added an early-out on SetTemplateId, since this was causing some unnecessary instance queue entries.
2021-05-17 14:58:18 -05:00
Aaron Ruiz Mora dd80668da0 Fix iOS and android compilation errors from nightly build 2021-05-17 19:41:32 +01:00
hultonha bb05993355 add new orbit functionality for camrea 2021-05-17 18:25:13 +01:00
Tom Hulton-Harrop f4106fe73f Add 'Goto entity' support for the new Editor camera (#743)
* add find entity in viewport functionality to new camera

* fix AZ_CVAR usage

* updates following review feedback

- updated comment styles from /// to //!
- retrieve fov of camera (add test for fov access)

* update namespace naming, fix AZ_CVAR usage

* update missed namespace and use AZ::Transform::CreateLookAt

* add missing include

* move EditorViewportSettings to EditorLib

* update DLL import/export API and rename namespace usage
2021-05-17 18:21:38 +01:00
rgba16f 749ffcfff2 Merge pull request #708 from aws-lumberyard-dev/Atom/breja/FixDefaultDebugDrawId
Fix AzFramework::g_defaultSceneEntityDebugDisplayId not working for the AtomDebugDisplayViewportInstance
2021-05-17 10:26:40 -05:00
Benjamin Jillich 6ebea13783 [LYN-2520] Gem Catalog - Gem Inspector / Info Panel (#718)
* [LYN-2520] Gem Catalog - Gem Inspector / Info Panel

* Extended the gem info with a directory and documentation link, binary size in bytes and added some helper functions.
* Added the gem inspector widget that hooks into the selection model.
* Info panel is vertically scrollable and based on the UX designs.
* Added a gem sub widget which holds several gem tags, a title and a description and is reused for the depending and conflicting gems.
* Extended the gem model with several new roles and data elements.
* Added more gem info test data before we got access to the real data.
2021-05-17 15:38:30 +02:00
greerdv 18a6134e2d Merge branch 'main' into non-uniform-scale-manipulators 2021-05-17 13:21:43 +01:00
greerdv 7edef63884 address PR feedback 2021-05-17 13:20:52 +01:00
sphrose 8ed8c26864 Merge pull request #100 from aws-lumberyard-dev/LY-105687
LY-105687 LY 2.0 - Main editor - mouse over tab should show a hand
2021-05-17 07:58:28 +01:00
karlberg 80bf6d54bc Merge remote-tracking branch 'origin' into MultiplayerComponents 2021-05-15 15:10:45 -07:00
karlberg c6ea0c0a46 Various local prediction and input processing related fixes 2021-05-15 15:10:17 -07:00
lumberyard-employee-dm 0b35d27833 Added support to the AZ Console to be notified when the Settings Registry modifies a particular path (#691)
* Updated the SettingsRegistry CommandLineArgumentSettings delimiter function to no longer work on a character basis, but on a line basis.
This provides more control by the user to determine how to the argument into the JSON pointer and JSON value parts

Added function o the Settings Registry to specify the JSON Apply Patch settings to use when performing a JSON Patch/Merge Patch operation

Fixed the SettingsRegistryImpl::CommandLineArgument function to properly set unsigned 64-bit values into the SettingsRegistry by checking the ERRNO of strtoll and strtoull

* Updated the reporting of the JSON Patching operations to supply a JSON pointer of the patched element to the Issue Reporting callback when the patch operation is successful. This allows using the Issue Reporting callback as a notification system when field is updated during a patch operation

* Added support to the AZ Console to be able to run Console Commands based
on notifications from the Settings Registry when a field underneath the
"/Amazon/AzCore/Runtime/ConsoleCommands" object is modified.

This takes advantage of the Settings Registry RegisterNotifier API to
determine when a field is modified as well as the JSON Merger
JsonApplyPatchSettings Issue Reporting Callback to determine when a
field is modified or updated.

As a Side Note also fixed an issue with the AZ Console incorrectly
converting unsigned 64-bit types using strtoll

* Making the Console constructor which accepts an AZ::SettingsRegistryInterface explicit

* Updating string format calls which use *.s for formatting string_views, to use the AZ_STRING_ARG macro

* Addressed typos in comments around the SettingsRegistry AZ Console functions

* Fixed the SettingsRegistryTest that look for an empty value

* clang 6.0.0 constexpr build fix. For some reason clang cannot make a constexpr AZStd::string_view out of a constexpr AZStd::fixed_string despite there being a valid constexpr operator AZStd::string_view

* Mac build fix

* SettingsRegistryTest.MergeSettingsFolder_ConflictingSpecializations_ReportsErrorAndReturnsFalse test fix on Mac

* Updated the LoadSettingsFile test to validate running a console with 0 arguments

Replace the static_cast in the ConsoleTypeHelpers.inl code to convert a str to long long with an aznumeric_cast

* Added printf logging to the ConsoleCommandKeyNotificationHandler to determine if the console commands are being performed on the Jenkins Linux node

* Fixed Dangling string_view reference in the ConsoleCommandKeyNotificationHandler that was causing command execution from a file to fail.

Renamed the second TestFreeFunc function in the ConsoleTests.cpp to validate thath the first TestFreeFunc function is being tested

* Updated the Component Application AZ Console to use the SettingsRegistry as the backend when loading config and Settings Rgistry json files
2021-05-15 16:16:49 -05:00
srikappa-amzn 0cfc7f10a9 Merge pull request #728 from aws-lumberyard-dev/Prefab/CyclicalDependencyCheck
Detect cyclical dependencies in the nested prefabs of the prefab being instantiated
2021-05-14 16:33:13 -07:00
Nicholas Van Sickle 46c0c35c26 Merge pull request #734 from aws-lumberyard-dev/nvsickle/DebugInfoDisplay
Restore debug rendering to the viewport
2021-05-14 15:20:05 -07:00
Alex Peterson 9b9ae22d23 Update Prism Python bindings interface
Add GetProjects, GetProjectTemplates, GetGems, GetProject and GetGem.
CreateProject and UpdateProject and the engine functions are not implemented yet
2021-05-14 14:53:32 -07:00
bosnichd 9ecbbe471b Remove lots of unused things from CrySystem (#765)
Remove lots of unused things from CrySystem
2021-05-14 15:38:59 -06:00
karlberg 3a87229e88 Merging latest origin 2021-05-14 14:25:45 -07:00
karlberg 5acdc40595 Many fixes for external gem multiplayer components and component network inputs, fixes an uninitialized variable resulting in continual desyncs, restructures our public includes to match the directory structure of source, allows autogen artefacts to be included by external gems, allowing for external multiplayer components to interact with multiplayer gem components with no extra code 2021-05-14 14:24:33 -07:00
greerdv d878932966 merge from main 2021-05-14 21:04:06 +01:00
nvsickle 1426052a5f Address a bit more review feedback
-Use aznumeric_cast for enum <-> int casts
-Short circuit logic a bit more nicely
2021-05-14 13:01:46 -07:00
nvsickle f7a9b28000 Make AtomFont's API use copy semantics for string_view 2021-05-14 12:37:35 -07:00
nvsickle 58759bddf7 Tidy up Script/ScriptTimePoint 2021-05-14 12:36:40 -07:00
srikappa 1a456cc9b9 Marked an our parameter correctly and changed a ref to const ref 2021-05-14 11:48:31 -07:00
greerdv f2d415ecb8 add functionality for central scale manipulator 2021-05-14 19:38:25 +01:00
lumberyard-employee-dm 8b8a582f02 External Project Build Path Support using SDK Binaries (#690)
* Updated the DynamicModuleHandle code to search within the
SettingsRegistry for the FilePathKey_ProjectBuildPath setting in order
to determine the binary directory for the Project.

This is used to locate shared libraries and executables built by the
project when running and Engine SDK binary from within the Engine SDK

* Added a generation step within the Projects.cmake file to generate a
.setreg file containing the CMake build directory root.
The file is output to the <project-root>/user/Registry/build_path.setreg
file.
This occurs only on non-host platforms when configuring for
non-Monolithic builds, since the Build Directory is used to located the
project binary directory in order to located the project's generated
${CMAKE_BINARY_DIR}/bin/$<CONFIG>/Registry directory containing the
cmake_dependencies.<project-name>.<application-name>.setreg file
containing the list of gem modules to load for a given application

Updated the SettingsRegistryMergeUtils AddRuntimeFilePaths function to
be read in the new "/Amazon/Project/Settings/Build/project_build_path"
and use that to form an absolute path to the project build directory by
appending it to the FilePathKey_ProjectPath key.
That key is set in the 'FilePathKey_ProjectBuildPath' constant
Next updated the SettingsRegistryMergeUtils
MergeSettingsToRegistry_TargetBuildDependencyRegistry function to look
within the project build directory to locate the
cmake_dependencies.*.setreg file to load

Tweaked the Settings Registry merge order of the ComponentApplication,
GameApplication and Settings Registry builder to merge the command line
after merging the global user registry and after merging the project
user registry.
Moved the call to MergeSettingsToRegistry_TargetBuildDependencyRegistry
to occur after the above calls to make sure the properly overriden
projects' user registry was merged in order for the correct project
build path to be stored in the SettingsRegistry

* Added a ProjectConfigurationBinPath key which contains the path to the <build-dir>/bin/$<CONFIG> directory for a project which is used to load gem dlls and the Registry/cmake_dependencies.*.setreg files when using an pre-built Editor/AssetProcessor on an external project

* Fixed variable reference to fileNamePath variable

* Removing the default Project Build Path from the Settings Registry
Runtime Filepaths.

Any paths would have to be set explicitly via .setreg/.setregpatch file
or the --project-build-path parameter

Updated the setting of the project build path and project binary
directory to perform existance checks on the paths before setting the
keys of /Amazon/AzCore/Runtime/FilePaths/ProjectBuildPath and
/Amazon/AzCore/Runtime/FilePaths/ProjectConfigurationBinPath

Added a backup project binary path of
<project-build-path>/bin/$<PLATFORM>/$<CONFIG> which is used if the path
of <project-build-path>/bin/$<CONFIG> has not been found

Fixed compile error in DynamicModuleHandle_Apple.cpp

* UnixLike Platform Build fix for the DynamicModuleHandle code
2021-05-14 13:01:11 -05:00
nvsickle cc986f563a Merge remote-tracking branch 'upstream/main' into nvsickle/DebugInfoDisplay 2021-05-14 10:27:33 -07:00
srikappa-amzn f6767cec2f Merge pull request #751 from aws-lumberyard-dev/Prefab/DeletePrefab
Fixed bug with delete prefab where the prefabs were not being deleted from the correct instances
2021-05-14 09:52:58 -07:00
Mike Balfour 77278a0329 First version of the slice-to-prefab converter
It converts .slice and .ly files to .prefab files, but doesn't handle nested or complicated slices correctly yet.
2021-05-14 11:18:15 -05:00
lumberyard-employee-dm 5cc0cc9ee7 Fixed the loading of uicanvas assets due to the NetBindable class being (#755)
removed from the SerializeContext.
The TransformComponent and ScriptComponent which used to Serialize a
NetBindable instance didn't have their version numbers bumped in order
to skip the old data when loading a binary ObjectStream
2021-05-14 11:03:31 -05:00
bosnichd a9d986c10f Red code legacy MemoryManager, StreamEngine, ResourceManager, ImageHandler, AsyncPakManager, and more (#758)
Remove from CryCommon and CrySystem:
- MemoryManager and all related classes/files
- StreamEngine, ResourceManager, ImageHandler, and AsyncPakManager
- Various other related interfaces/files/classes etc. that are all now unused
2021-05-14 08:53:56 -06:00
greerdv c8568a7cf2 add feedback from PR 2021-05-14 13:51:02 +01:00