Commit Graph

2914 Commits

Author SHA1 Message Date
puvvadar 4e6bd3d25c Consolidate various to_string implementations for math classes
Signed-off-by: puvvadar <puvvadar@amazon.com>
2022-02-11 17:58:28 -08:00
Chris Galvan b334b1ad98 Merge pull request #7590 from aws-lumberyard-dev/cgalvan/AllowOnlySupportedFormatsForImageGradientStreamingAsset
Only allow streaming image assets with supported pixel formats to be selected for an image gradient
2022-02-11 16:01:28 -06:00
Chris Galvan c0d338a094 Fixed a typo in a comment
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
2022-02-11 14:22:08 -06:00
Chris Galvan 9cd84b6b2d Only allow streaming image assets with supported pixel formats to be selected for an image gradient
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
2022-02-11 13:28:21 -06:00
lumberyard-employee-dm d7ee248df5 Range adaptor support (#7388)
* Updated the SFINAE checks in concepts.h and range.h

To use conjunction and disjunction for short-circuiting behavior.

Replaced AZStd::optional implementation with std::optional alias

Added range adaptor support and the following views: ref_view,
owning_view

Added bitwise or(|) overload for chaining range adaptor closures together

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Adding indirectly invocable concepts.

These concepts are used to determine whether a callable can be invoked
with a dereferenced iterator instance.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Add implementation of range relational function objects

Add implementation of range min max functions which uses the range
relation function objects(ranges::less, ranges::equal_to, etc...)

This is needed to implement ranges::zip_view

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Adding interface for zip_view which compiles successfully

The implementation for the zip view functions still need to be filled.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Adding function definitions for zip_view classes.

Adding empty header of subrange.h for the ranges::subrange class

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Adding additional view implementations.

The following range and view classes have been added: empty_view,
single_view and subrange.

Moved the AZ_NO_UNIQUE_ADDRESS macro to PlatformDef.h to allow other
code to specify the [[no_unique_address]] attribute.

Added additional test for view structures.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Adding missing includes for non-unity builds

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Workaround for NDK21 clang 9.0.9 compile issue.

The AZStd::ranges::zip_view::iterator::iter_swap friend function is in the
AZStd::ranges namespace, while the customization point object of
`AZStd::ranges::customization_point_object::iter_swap` is in the regular
namespace of `AZStd::ranges` and the inline namespace of
`customization_point`.

This issue is fixed in NDK23, but as Jenkins uses NDK21 at the time, the
entire zip_view implementation has moved to inline namespace of
`zip_view_internal`

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Added iterator algorithm requiremetn concepts

Fixed the ambiguity in the ranges::iter_swap exchange overload to
exclude itself as a candidate if the iterator reference types are
swappable with each other.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Adding type alias for borrowed_subrange_t

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Fixed convertible to ref_view check in the ranges::all
customization_point

Updated SFINAE detection of whether AZStd::to_address is invocable

Moved the

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Fixed private variable access in ranges::subrange get specialization.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Removing ranges::view constraint from the ranges::views::single
customization_point.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Adding C++23 range overload for string_view.

It is detailed in the [C++draft strings](https://eel.is/c++draft/strings#lib:basic_string_view,constructor____) section

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Adding implementations of ranges, find, search, mismatch and equal
functions.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Adding implementation of ranges split_view along with test.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Adding const overloads to SceneAPI ProxyPointer container

The Proxy Pointer class operator* and operator-> was unable to be
invoked with a const instance before. Now it returns a const view of the
pointer it contains.
This allows it to be invoked in `AZStd::to_address` as part of an SINAE
context for the contiguous_iterator concept

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Refactored the to_address implementation to better work with SFINAE.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Adding general non-unity build fixes

This is unrelated to the RangeAdaptor changes.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Allow range algorithms to be used with rvalue ranges

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Workaround MSVC Internal Compiler erroy by removing enable_if
condition in the operator bool of the view_interface class.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Corrected the non_propagating_cache helper class to have public
functions

Fixed the order of creating the perfect forwarding call wrapper for an
outer closure around another closure.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Specialized the borrowed_range and view concepts

For the AZ PathView class, since it is a immutable view around a path.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Removed inline namespace around the zip_view class.

It was needed to workaround a clang 10 or below issue where a friend
function in a namespace and a variable within underneath an inline
namespace within the function namespace would cause an improper symbol
redefinition.

The workaround is to create a placeholder namespace containing the
inline namespace and then bring that placeholder namespace into the
parent scope.

https://bugs.llvm.org/show_bug.cgi?id=37556

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Adding implementation of the elemetns_view and join_view classes

It is up to date with the standard as of the current draft:
https://eel.is/c++draft/ranges.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Separated definitions of concepts out of concepts.h

This allows the ranges::iter_swap and ranges::swap customization point to be moved
outside of the concepts folder and into the ranges folder.

The concepts.h header previously had to define those objects to avoid
circular dependencies.

Added the work around for ranges::iter_swap and ranges::iter_move
customization_point causing an improper symbol redefinition in clang 10
or below: https://bugs.llvm.org/show_bug.cgi?id=37556

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Alias more std:: names into the AZStd namespace.

Removed our custom implementation of toaddress.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Adding more range view test.

The join_view and elements_view classes now have UnitTest.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Adding deduction guides for AZStd associative containers

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Moved zip_view::sentinel iterator accessor function to zip_view.inl

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Fixed variable shadowing issues with clang 12+

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
2022-02-11 12:50:12 -06:00
greerdv d39681a767 add deprecation notice to functions in BoxManipulatorRequests
Signed-off-by: greerdv <greerdv@amazon.com>
2022-02-11 12:29:00 +00:00
greerdv f2233f90cd update bus usage to new preferred convention
Signed-off-by: greerdv <greerdv@amazon.com>
2022-02-11 12:20:31 +00:00
greerdv 7a63d33f92 extract reused manipulator scaling logic
Signed-off-by: greerdv <greerdv@amazon.com>
2022-02-11 12:01:22 +00:00
Chris Burel d4eb310950 Mark unused variables as unused
Signed-off-by: Chris Burel <burelc@amazon.com>
2022-02-10 15:36:24 -08:00
Chris Burel f59ac65d2c Move platform-specific variable to be inside a platform-specific #ifdef
Signed-off-by: Chris Burel <burelc@amazon.com>
2022-02-10 15:36:20 -08:00
Chris Burel 5cc258d509 Remove unused variable
Signed-off-by: Chris Burel <burelc@amazon.com>
2022-02-10 15:36:19 -08:00
Chris Burel b79d5faa16 Remove unused captures
Signed-off-by: Chris Burel <burelc@amazon.com>
2022-02-10 15:36:17 -08:00
Chris Burel ddb66786dc Remove unused variable
Signed-off-by: Chris Burel <burelc@amazon.com>
2022-02-10 15:36:16 -08:00
Chris Burel 664403c5de Mark benchmark state variables in for loops as unused in benchmarks
Signed-off-by: Chris Burel <burelc@amazon.com>
2022-02-10 15:36:15 -08:00
Chris Burel 36487c1588 Fix alignment of CONTEXT variable
The previous code had the `alignas()` in the wrong place, it needs to be
left of the typename.

Furthermore, `CONTEXT` has a default alignment of 16, so using `alignas(8)`
underaligns.

Signed-off-by: Chris Burel <burelc@amazon.com>
2022-02-10 15:34:56 -08:00
Chris Burel 024cbdd2cd Remove unused azSmyType variable
There's a lot of work done to set the value of this variable, but nothing
read from it.

Signed-off-by: Chris Burel <burelc@amazon.com>
2022-02-10 15:34:55 -08:00
Chris Burel b44c362af0 Fix comparing an array in a conditional, which is always true
Instead, check the intent of the original code, if the `szImg` string is
not empty.

Signed-off-by: Chris Burel <burelc@amazon.com>
2022-02-10 15:34:54 -08:00
Chris Burel cff6fb97af Fix "expression result unused" warning
This macro was expecting that parenthesis used in the macro would be
removed during macro expansion, when they are not removed. The result was
a function call like this:

```cpp
AZ_Assert(g_SymGetSearchPath != 0, ("Can not load %s function!","SymGetSearchPath"));
```

The parenthesis cause the contents of the parenthsis to be evaluated first,
and the result is an expression using the comma operator. The comma
operator evaluates the left expression, discards the result, then
evaluates the right expression, and returns that. So the above dropping
the message, and just leaving:

```cpp
AZ_Assert(g_SymGetSearchPath != 0, "SymGetSearchPath");
```

Signed-off-by: Chris Burel <burelc@amazon.com>
2022-02-10 15:34:52 -08:00
Nicholas Van Sickle 27c6388c3c Add DomPrefixTree, a DOM path => value lookup structure
This is Document Property Editor work I've pulled out as I needed it in a few places, and the API may be generally useful. Real-world performance measurements will need to be done, if we have path lookup based bottlenecks we can consider adopting a contiguous memory approach with a sorted vector.

Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
2022-02-10 15:25:42 -08:00
AMZN-koppersr d00436e26a Improved the way the Settings Registry can handle stacks/arrays.
The ConfigurableStack makes configuring stacks and arrays through the Settings Registry easier than using direct serialization to a container like AZStd::vector. It does this by using JSON Objects rather than JSON arrays, although arrays are supported for backwards compatibility. Two key words were added:
    - $stack_before : Insert the new entry before the referenced entry. Referencing is done by name.
    - $stack_after  : Insert the new entry after the referenced entry. Referencing is done by name.
to allow inserting new entries at specific locations. An example of a .setreg file at updates existing settings would be:
// Original settings
{
    "Settings in a stack":
    {
        "AnOriginalEntry":
        {
            "MyValue": "hello",
            "ExampleValue": 84
        },
        "TheSecondEntry":
        {
            "MyValue": "world"
        }
    }
}

// Customized settings.
{
    "Settings in a stack":
    {
        // Add a new entry before "AnOriginalEntry" in the original document.
        "NewEntry":
        {
            "$stack_before": "AnOriginalEntry",
            "MyValue": 42
        },
        // Add a second entry after "AnOriginalEntry" in the original document.
        "SecondNewEntry":
        {
            "$stack_after": "AnOriginalEntry",
            "MyValue": "FortyTwo".
        },
        // Update a value in "AnOriginalEntry".
        "AnOriginalEntry":
        {
            "ExampleValue": 42
        },
        // Delete the "TheSecondEntry" from the settings.
        "TheSecondEntry" : null,
    }
}

The ConfigurableStack uses an AZStd::shared_ptr to store the values. This supports settings up a base class and specifying derived classes in the settings, but requires that the base and derived classes all have a memory allocator associated with them (i.e. by using the "AZ_CLASS_ALLOCATOR" macro) and that the relation of the classes is reflected. Loading a ConfigurableStack can be done using the GetObject call on the SettingsRegistryInterface.

Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
2022-02-10 11:02:04 -08:00
greerdv 2ad3cb770b merge from development
Signed-off-by: greerdv <greerdv@amazon.com>
2022-02-10 17:23:25 +00:00
greerdv 36285aa834 apply minor feedback from PR
Signed-off-by: greerdv <greerdv@amazon.com>
2022-02-10 17:22:41 +00:00
SergeyAMZN a715897699 Merge pull request #7439 from aws-lumberyard-dev/TerrainMaterialsFix
LYN-8403 Prevent the same Surface Tag from getting reused
2022-02-10 15:59:24 +00:00
amzn-sj 396ec8a247 [Terrain] Optimize bulk queries to the Terrain System to retrieve height, surface weights, and normals (#7357) 2022-02-10 05:53:21 -08:00
moraaar dac3bc4ba6 Added option to disable edit button in asset widgets when there are no asset selected. (#7521)
Added new attribute "DisableEditButtonWheNoAssetSelected" to PropertyAssetCtrl. By default it's false, keeping the original behavior of leaving the edit button enabled and if it's clicked while there is no asset assigned it'll try to create a new one.

PhysX mesh asset property uses now this new feature.

Signed-off-by: moraaar moraaar@amazon.com
2022-02-10 12:23:38 +00:00
Sergey Pereslavtsev 469fcc4fb2 Merge branch 'development' of https://github.com/o3de/o3de into TerrainMaterialsFix 2022-02-10 10:40:38 +00:00
Danilo Aimini 1c3a61983a Refactor EditorEntityUiHandlerBaseto be explicitly Outliner-focused. This lays the groundwork for multiple widget-based handlers in the future. (#7443)
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
2022-02-09 20:50:32 -08:00
Danilo Aimini 220eeef386 Merge branch 'development' of https://github.com/o3de/o3de into daimini/FocusMode/boxSelectAndManipulatorsHidingTests 2022-02-08 18:39:33 -08:00
Danilo Aimini 8c54513867 Add box selection tests for Editor Focus Mode
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
2022-02-08 16:59:25 -08:00
Nicholas Van Sickle bc3f957270 Merge pull request #7093 from aws-lumberyard-dev/nvsickle/DomPatch
Add AZ::Dom::Patch, a Generic DOM analog to JSON patch
2022-02-08 18:49:57 -05:00
chiyenteng 90503f2bef Remove error message from InMemorySpawnableAssetContainer (#7499)
* Remove error message from InMemorySpawnableAssetContainer

Signed-off-by: chiyenteng <82238204+chiyenteng@users.noreply.github.com>

* Fix nits

Signed-off-by: chiyenteng <82238204+chiyenteng@users.noreply.github.com>
2022-02-08 15:25:35 -08:00
Nicholas Van Sickle 42c2243eaa Fix benchmark non-unity build
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
2022-02-08 14:34:04 -08:00
Nicholas Van Sickle d1bb5a0543 Move DOM delta comparison to its own file, enhance inverting moves
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
2022-02-08 13:44:08 -08:00
Danilo Aimini 48313cd6de Remove const reference to prevent issues in nightly builds. (#7491)
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
2022-02-08 12:40:10 -08:00
Nicholas Lawson 3337bdd05d Update Lua to 5.4.4 (#7460)
* Update lua to 5.4.4 (fixes #7267)

Signed-off-by: lawsonamzn <70027408+lawsonamzn@users.noreply.github.com>
2022-02-08 08:00:34 -08:00
Sergey Pereslavtsev 231c25df89 Merge branch 'development' of https://github.com/o3de/o3de into TerrainMaterialsFix 2022-02-08 12:49:12 +00:00
srikappa-amzn 1db12ca463 Always store LinkIds during prefab instance serialization except when saving to disk (#7444)
* Always store prefab instance linkIds to DOM except for saving to disk

Signed-off-by: srikappa-amzn <82230713+srikappa-amzn@users.noreply.github.com>

* Added more checks to remove linkIds from templates

Signed-off-by: srikappa-amzn <82230713+srikappa-amzn@users.noreply.github.com>

* Remove additional check to remove LinkId during template update

Signed-off-by: srikappa-amzn <82230713+srikappa-amzn@users.noreply.github.com>
2022-02-07 17:59:13 -08:00
Nicholas Van Sickle 5b8176e99b Address some review feedback
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
2022-02-07 16:01:29 -08:00
Steve Pham 7ddfb5d6a0 Remove AZ_TRAIT_DISABLE_FAILED_PROCESS_LAUNCHER_TESTS and disabled tests from it (#7325)
Signed-off-by: Steve Pham <82231385+spham-amzn@users.noreply.github.com>
2022-02-07 15:58:29 -08:00
Danilo Aimini e7857120b0 Fix issue with clearing the parent entityId in the transform would result in prefab reparenting. (#7464)
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
2022-02-07 13:35:48 -08:00
Nicholas Van Sickle dec3def9eb Merge remote-tracking branch 'upstream/development' into nvsickle/DomPatch 2022-02-07 10:51:43 -08:00
greerdv ffdd3e85ac merge from development
Signed-off-by: greerdv <greerdv@amazon.com>
2022-02-07 18:48:03 +00:00
Steve Pham 4d4f10beb8 Clang/GCC compiler settings update [SECURITY] (#7358)
- Add the following compilation flags for clang
  -fpie
  -fstack-protector-all
  -fstack-check (non-release)

- Add the following compilation flags for gcc
  -fpie
  -fstack-protector-all

- Fix -Wunused-result errors from above compilation flag updates

- Add _FORTIFY_SOURCE=2 to GCC DEFINES

Signed-off-by: Steve Pham <82231385+spham-amzn@users.noreply.github.com>
2022-02-07 09:01:07 -08:00
Mike Balfour a6ddf4164f SurfaceTagWeights optimization (#7436)
* Add comparison operators to SurfaceTagWeight.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Changed AddSurfaceTagWeight to always combine weights.
This simplifies the API a bit and defines the behavior if someone ever tries to add a duplicate tag.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Added benchmarks for measuring the performance-critical APIs.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Changed SurfaceTagWeights to a fixed_vector.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
2022-02-07 10:57:39 -06:00
Sergey Pereslavtsev 8d30524028 Merge branch 'development' of https://github.com/o3de/o3de into TerrainMaterialsFix 2022-02-07 14:18:34 +00:00
greerdv d37315c2af tidy up bus usage
Signed-off-by: greerdv <greerdv@amazon.com>
2022-02-05 10:39:13 +00:00
greerdv 08eb115e26 fix various issues with collider manipulators and non-uniform scale
Signed-off-by: greerdv <greerdv@amazon.com>
2022-02-05 10:39:11 +00:00
Danilo Aimini dc6d8ab2ba Fix conversion issues blocking nightly builds.
Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
2022-02-04 17:21:48 -08:00
Steve Pham 69e0090a0b Remove -Wno-return-local-addr warning suppression for GCC
- Remove '-Wno-return-local-addr' warning suppression flag for GCC
- Fixed discovered error resulting from -Wreturn-local-addr

Signed-off-by: Steve Pham <82231385+spham-amzn@users.noreply.github.com>

* Remove extra ws

Signed-off-by: Steve Pham <82231385+spham-amzn@users.noreply.github.com>
2022-02-04 14:20:09 -08:00
Sergey Pereslavtsev 13268dea98 Merge branch 'development' of https://github.com/o3de/o3de into TerrainMaterialsFix 2022-02-04 20:23:36 +00:00