Commit Graph

3168 Commits (10c0522dcb97ebbd08c4130290eb104ccf793980)

Author SHA1 Message Date
nggieber 10c0522dcb Added F5 support for refreshing repos
Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
nggieber 968c8640d0 Merge branch 'development' into Prism/RefreshGemRepos 4 years ago
nggieber b4a85a2ed6 Repos can be refreshed through Project Manager individually or all at once
Signed-off-by: nggieber <nggieber@amazon.com>
4 years ago
SergeyAMZN 9ce6f43a22
Merge pull request #4488 from aws-lumberyard-dev/MigrationFixup
Further fixes for client migration and 3-way host entity migration
4 years ago
AMZN-nggieber 54b9ed2737
Added Menu to Gem Catalog with Action to Navigate to Gem Repo Screen (#4829)
* 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>
4 years ago
santorac a55d94217c
Enable material version updates
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.
4 years ago
santorac 19dee0e37c Merge branch 'development' into Atom/rbarrand/MaterialVersionUpdate 4 years ago
AMZN-Phil 50068bcae7
Merge pull request #4807 from aws-lumberyard-dev/GemUIDownload
First part of UI feedback for downloading gems
4 years ago
Nicholas Van Sickle f3af362ede
Merge pull request #4838 from aws-lumberyard-dev/LYN-7562
Make safe asset folder comparison for prefab creation to be case insensitive
4 years ago
kberg-amzn 57c65e5b43 merging latest development
Signed-off-by: kberg-amzn <karlberg@amazon.com>
4 years ago
Danilo Aimini 52112be1ac
LYN-7448 + LYN-7542 + LYN-7543 | Focus Mode - UX Improvements (#4837)
* 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>
4 years ago
AMZN-Phil 24d7a90e5f Fix a warning
Signed-off-by: AMZN-Phil <pconroy@amazon.com>
4 years ago
Steve Pham 244878483a
Update open file limit on linux for applications (#4878)
* Programmatically update the ulimit for open files if the current limit is not enough

Signed-off-by: Steve Pham <spham@amazon.com>
4 years ago
AMZN-Phil c4f5f01657 Merge remote-tracking branch 'upstream/development' into GemUIDownload 4 years ago
chiyenteng 7316802941
Add Detach and Duplicate Prefab basic workflow auto test (#4506)
- 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 .
4 years ago
srikappa-amzn 33490ed6df Avoided a string copy by using path view
Signed-off-by: srikappa-amzn <srikappa@amazon.com>
4 years ago
santorac bf2997f960 Merge remote-tracking branch 'upstream/development' into Atom/rbarrand/MaterialVersionUpdate 4 years ago
Chris Galvan 546102077f
Merge pull request #4875 from aws-lumberyard-dev/cgalvan/RemoveLegacyColorGradient
Removed legacy ColorGradientCtrl
4 years ago
kberg-amzn 79b41686c4 Merging latest dev
Signed-off-by: kberg-amzn <karlberg@amazon.com>
4 years ago
AMZN-Phil a032c59eab Removing unused function
Signed-off-by: AMZN-Phil <pconroy@amazon.com>
4 years ago
AMZN-Phil 2809c3b7ed Removing unused variables and defines and some renaming
Signed-off-by: AMZN-Phil <pconroy@amazon.com>
4 years ago
SJ c871224dae
Support for importing Json files (#4609)
* 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>
4 years ago
srikappa-amzn 4ed73a0b91 Use case insensitive folder path comparison for creating slices
Signed-off-by: srikappa-amzn <srikappa@amazon.com>
4 years ago
Chris Burel ab86c9961e
[Linux] Fix deadlock when running `LaunchProcess()` from a thread (#4833)
`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>
4 years ago
Michael Pollind a33ab67125
bugfix: handle moving files for inode-watch for AssetProcessor (#4656) (#4809)
Signed-off-by: Michael Pollind <mpollind@gmail.com>
4 years ago
Chris Galvan d78aa5bf90 Removed legacy ColorGradientCtrl.
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
4 years ago
Steve Pham 74d74050f2
Fix unused variable error in release linux builds (#4846)
Signed-off-by: Steve Pham <spham@amazon.com>
4 years ago
santorac a0b1dec929 Added support for material version updates in MaterialSourceData. This is necessary for tools like Material Editor and Asset Processor to work with the latest property names.
- 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>
4 years ago
AMZN-Phil 9aa9ed8c8e Changing some class names and other download UI feedback.
Signed-off-by: AMZN-Phil <pconroy@amazon.com>
4 years ago
Danilo Aimini c2ec18dc0e
Remove prefab WIP checks to make focus mode the default (and only) prefab editing workflow in the editor. (#4840)
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
4 years ago
Steve Pham 27a535eaf4
Linux Fixes for Launching the Material Editor (#4808)
- 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>
4 years ago
Chris Galvan ae4755bbc3
Merge pull request #4839 from aws-lumberyard-dev/cgalvan/FixSceneSettingsStallWithInvalidP4
Treat invalid p4 configuration as a warning for the scene settings save action so the processing popup will get the job results.
4 years ago
Vincent Liu 8e797982a5
[LYN-7530] Fix matchmaking request type typo and add more matchmaking notifications (#4774)
* [LYN-7530] Fix matchmaking request type typo and add more matchmaking notifications

Signed-off-by: onecent1101 <liug@amazon.com>
4 years ago
Chris Galvan c1948bf94e Treat invalid p4 configuration as a warning for the scene settings save action so the processing popup will get the job results.
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
4 years ago
Danilo Aimini 60c286dafa
LYN-7483 + LYN-7052 | Correctly initialize and refresh Prefab Focus Mode handler. (#4718)
* 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>
4 years ago
amzn-phist 714f5357b2
Add an error message to AP when the project path is invalid (#4801)
* 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>
4 years ago
srikappa-amzn 24b0dab30e Make safe asset folder comparison for prefab creation to be case insensitive
Signed-off-by: srikappa-amzn <srikappa@amazon.com>
4 years ago
Alex Peterson 7ddcdffed7
Move Qt Toast Notifications from GraphCanvas into Framework
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>
4 years ago
Allen Jackson 900aa4e5bc
{lyn7065} adding ProcPrefab Prefab::Tempate flag method (#4765)
* {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>
4 years ago
AMZN-Phil 023e8fcff2 Add missing files for review
Signed-off-by: AMZN-Phil <pconroy@amazon.com>
4 years ago
rgba16f [Amazon] c6afb1f0a3
Update all the hardcoded filenames inside the level.pak file to be lowercase now the editor no longer forces them to be lower case. (#4802)
Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>
4 years ago
AMZN-AlexOteiza 181d12625f
Reorganized Prefab tests and standarization (#4786)
* Reorganized Prefab tests and standarization

* Restore changed file by accident
4 years ago
AMZN-AlexOteiza 38f9dcb8ca
Added option to reopen if the current level is the same. This contributes to stability for batched tests (#4043)
* 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
4 years ago
jonawals a1ee7b5a31
Merge pull request #4725 from aws-lumberyard-dev/hultonha_LYN-7394_focus_cursor
Updates to support 'lock'/'forbidden' cursor when in Focus Mode
4 years ago
AMZN-Phil 02364b869e First part of UI feedback for downloading gems
Signed-off-by: AMZN-Phil <pconroy@amazon.com>
4 years ago
amzn-mike f31b47f775
Switch stacktrace output to use Output function instead of AZ_Printf to avoid it being suppressed accidentally (#4805)
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
4 years ago
puvvadar 66c4950de0
Merge pull request #4529 from aws-lumberyard-dev/mp_deltaserializer_perf
Reworking DeltaSerializer to no longer require string based hashes
4 years ago
amzn-mike c1335f69c6
Convert resolved wildcard paths to relative path before saving in database (#4574)
* 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>
4 years ago
jonawals 0031016548
Merge pull request #4785 from aws-lumberyard-dev/pytest_editor_testcase_name_fix
Fix for PyTest editor test case names.
4 years ago
jonawals befb97a80e
Merge pull request #4627 from aws-lumberyard-dev/igarri/Fix-Viewport-camera-locations
Make Go To Location affect the Default Viewport Camera
4 years ago