John Jones-Steele
e57b854fca
Cleaned up issues with multiple components ? button ( #6555 )
...
* Cleaned up issues with multiple components ? button
Signed-off-by: John Jones-Steele <82226755+jjjoness@users.noreply.github.com >
* Commit for merge
Signed-off-by: John Jones-Steele <82226755+jjjoness@users.noreply.github.com >
* Commit before merge
Signed-off-by: John Jones-Steele <82226755+jjjoness@users.noreply.github.com >
* WIP
Signed-off-by: John Jones-Steele <82226755+jjjoness@users.noreply.github.com >
* Before merge from development
Signed-off-by: John Jones-Steele <82226755+jjjoness@users.noreply.github.com >
* Updated all HelpURL
Signed-off-by: John Jones-Steele <82226755+jjjoness@users.noreply.github.com >
* Changes from PR
Signed-off-by: John Jones-Steele <82226755+jjjoness@users.noreply.github.com >
* Changes from PR
Signed-off-by: John Jones-Steele <82226755+jjjoness@users.noreply.github.com >
2022-02-17 09:04:01 +00:00
Chris Galvan
b2c7cf4452
Moved GetValueFromImageAsset from ImageAsset to ImageGradientComponent
...
Signed-off-by: Chris Galvan <chgalvan@amazon.com >
2022-02-16 09:53:06 -06:00
Chris Galvan
283fe216dc
Merge branch 'development' of https://github.com/o3de/o3de into cgalvan/RemovedGradientImageBuilder
2022-02-16 09:21:03 -06:00
Mike Balfour
0e328afcdd
Optimize surface providers ( #7631 )
...
* 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 >
* Add inPosition to AddSurfacePoint.
This will be used to detect which input the surface point is associated with.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Add inPositionIndex to the appropriate APIs.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Switched Gradient Surface benchmarks to use actual surface components.
The gradient unit tests and benchmarks were previously using a mock surface data system, which led to misleading benchmark results. Now, the actual SurfaceData system gets constructed, and the tests use a mock provider, but the benchmarks use actual shape providers for more realistic benchmarking.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Fixed unit tests to have better query ranges.
Half of each previous range was querying outside the surface provider's data.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* First attempt at removing SurfacePointLists.
This currently runs significantly slower than the previous code but passes the unit tests.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Another attempt at optimization.
This one runs faster than the previous, but still slow.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Fix the cmake dependency so that the gradient tests rebuild SurfaceData.dll when run.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Switch SurfaceAltitudeGradient over to the new bulk API.
Also, optimized the non-bulk API by having it reuse the SurfacePointList to avoid the repeated allocation / deallocation cost.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Switched to using an indirect index so that all allocations are consecutive in our reserved buffer.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Switched back to SurfaceTagWeight again.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Added runtime dependency to LmbrCentral for unit tests.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Switched code over to use the full EnumeratePoints in most cases.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Added knowledge of max surface point creation into the system.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Add generic GetSurfacePointsFromList API implementation for surface providers.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Fixed implementation to use the correct maximum number of input points based on the surface providers being queried.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Fix out-of-bounds references on empty lists.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Fix memory allocation that caused benchmark runs to crash.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Starting to clean up the API.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Move SurfacePointList into separate files for easier maintainability.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Fixed bug where too many points were filtered out due to using the position Z as a part of the AABB check.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Made FilterPoints an internal part of SurfacePointList so we can choose when and how to perform the filtering.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Final cleanup / comments.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Added includes for non-unity builds.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Optimized GetValues() implementations.
Also consolidated GetValue() and GetValues() down to a single implementation under the covers for easier maintenance.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Changed how unit tests initialize the mock lists to try and fix the linux errors.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Switch to explicit span declarations to help ensure this works with linux.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Fixed compile error.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Make the bulk terrain APIs take in const Vector instead of non-const.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Optimize the surface data providers for bulk queries.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
2022-02-16 09:17:01 -06:00
Mike Balfour
16d6cbca2a
Fixed intermittent unit test failures. ( #7651 )
...
The problem is that SurfacePoint doesn't have default values when constructed, and a few of the unit tests weren't setting m_position because the values weren't strictly needed for the test. However, the SurfacePointList checks them for validity and asserted when they couldn't be found, which was hit-and-miss due to it being uninitialized memory that was usually but not always 0xCCCCCCCC.
Improved the assert message and set the position values everywhere.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
2022-02-15 17:59:04 -06:00
Chris Galvan
24aca5dfaf
Removed now unused gradient image builder and image processing system component
...
Signed-off-by: Chris Galvan <chgalvan@amazon.com >
2022-02-15 17:07:28 -06:00
Mike Balfour
8b82041361
Optimize SurfaceData bulk queries ( #7593 )
...
* 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 >
* Add inPosition to AddSurfacePoint.
This will be used to detect which input the surface point is associated with.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Add inPositionIndex to the appropriate APIs.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Switched Gradient Surface benchmarks to use actual surface components.
The gradient unit tests and benchmarks were previously using a mock surface data system, which led to misleading benchmark results. Now, the actual SurfaceData system gets constructed, and the tests use a mock provider, but the benchmarks use actual shape providers for more realistic benchmarking.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Fixed unit tests to have better query ranges.
Half of each previous range was querying outside the surface provider's data.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* First attempt at removing SurfacePointLists.
This currently runs significantly slower than the previous code but passes the unit tests.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Another attempt at optimization.
This one runs faster than the previous, but still slow.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Fix the cmake dependency so that the gradient tests rebuild SurfaceData.dll when run.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Switch SurfaceAltitudeGradient over to the new bulk API.
Also, optimized the non-bulk API by having it reuse the SurfacePointList to avoid the repeated allocation / deallocation cost.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Switched to using an indirect index so that all allocations are consecutive in our reserved buffer.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Switched back to SurfaceTagWeight again.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Added runtime dependency to LmbrCentral for unit tests.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Switched code over to use the full EnumeratePoints in most cases.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Added knowledge of max surface point creation into the system.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Add generic GetSurfacePointsFromList API implementation for surface providers.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Fixed implementation to use the correct maximum number of input points based on the surface providers being queried.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Fix out-of-bounds references on empty lists.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Fix memory allocation that caused benchmark runs to crash.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Starting to clean up the API.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Move SurfacePointList into separate files for easier maintainability.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Fixed bug where too many points were filtered out due to using the position Z as a part of the AABB check.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Made FilterPoints an internal part of SurfacePointList so we can choose when and how to perform the filtering.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Final cleanup / comments.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Added includes for non-unity builds.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Changed how unit tests initialize the mock lists to try and fix the linux errors.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Fixed compile error.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
2022-02-14 16:27:53 -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
Chris Galvan
daee055a97
Merge pull request #7526 from aws-lumberyard-dev/cgalvan/ImproveImageGradientGetValuesPerformance
...
Improved image gradient GetValue(s) performance by using cached image data
2022-02-09 16:11:45 -06:00
Mike Balfour
f79fa57b4a
Fix race condition crash with the gradient preview. ( #7530 )
...
When duplicating an entity with a Gradient SurfaceData Component, it's possible to get a hang/crash due to a race condition between entity deactivation and the gradient preview job refresh. This change ensures that the preview job is canceled on deactivation.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
2022-02-09 16:09:08 -06:00
Chris Galvan
2e762ba0eb
Modified activate logic from PR feedback
...
Signed-off-by: Chris Galvan <chgalvan@amazon.com >
2022-02-09 14:35:34 -06:00
Chris Galvan
2f3c4d37df
Improved image gradient GetValue(s) performance by using cached image data
...
Signed-off-by: Chris Galvan <chgalvan@amazon.com >
2022-02-09 12:22:38 -06:00
Chris Galvan
640093fe63
Merge branch 'development' of https://github.com/o3de/o3de into cgalvan/ImageGradientStreamingImageSupport
2022-02-07 11:15:28 -06: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
Mike Balfour
d9ba0af645
SurfacePoint data structure encapsulations ( #7413 )
...
* First pass at encapsulating SurfacePointList.
The biggest challenge in optimizing SurfacePointList(s) usage is the overall memory management associated with it. There are M surface points with N surface mask entries created for every input point, which leads to a lot of container reallocation and memory shuffling when processing multiple input points. By encapsulating the list, it should become easier to preallocate the entries, as well as keep "helper data" around for managing the bookkeeping to associate the input points with the output points.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Small fixes and TODO reminders.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Encapsulate surface point creation and separate EnumeratePoints out from modifications.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Start removing SurfacePoint from the exposed API.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Changed SurfacePointList to split out the surface point storage to allow for span<> usage over time.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Removed entity id
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Removed SurfacePoint from SurfaceData, changed all remaining uses to AzFramework::SurfaceData::SurfacePoint.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Encapsulated SurfaceTagWeightMap and renamed to SurfaceTagWeights.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Fixed make file.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Better commenting and parameter naming.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Renamed methods to be more descriptive.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
2022-02-04 11:27:59 -06:00
Chris Galvan
2c54b48a9e
Modified image gradient config json serializer to be able to detect version difference earlier
...
Signed-off-by: Chris Galvan <chgalvan@amazon.com >
2022-02-03 16:20:55 -06:00
Chris Galvan
22f018c310
Moved the ImageProcessingDefines to the Include folder and added it to the header only target
...
Signed-off-by: Chris Galvan <chgalvan@amazon.com >
2022-02-03 15:05:01 -06:00
Chris Galvan
4e15cef2fc
Removed unused methods to fix compile error on linux
...
Signed-off-by: Chris Galvan <chgalvan@amazon.com >
2022-02-03 13:49:54 -06:00
Chris Galvan
6322dd5397
Updated the image gradient component to use a streaming image asset
...
Signed-off-by: Chris Galvan <chgalvan@amazon.com >
2022-02-03 12:29:18 -06:00
Esteban Papp
8c6cc2ea04
Removes EditorGradientComponentBase.cpp from Gems/GradientSignal
...
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com >
2022-01-20 16:06:47 -08:00
Steve Pham
59e43813f0
GCC Support for Linux
...
Updates and fixes to support GCC for Linux
Signed-off-by: Steve Pham <82231385+spham-amzn@users.noreply.github.com >
Co-authored-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com >
2022-01-20 13:00:02 -08:00
Mike Balfour
83878e6377
Change GetValues() to take in const positions. ( #6987 )
...
* Change GetValues() to take in const positions.
To support this, span needed some template deductions to correctly convert from non-const containers to const ones.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Removed the most problematic template deduction rules.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Remove duplicate validate_iterator methods.
iterator type is a pointer, not a value, so "const iterator" and "const const_iterator" produce the same function signature.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Fixed the span types.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
2022-01-19 12:57:52 -06:00
Mike Balfour
4b9e53e623
Another batch of GetValues() overrides. ( #6915 )
...
* Another batch of GetValues() overrides.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Added missing headers.
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 >
2022-01-18 15:05:17 -06:00
Mike Balfour
c403fa3db6
More GetValues() overrides ( #6896 )
...
* Benchmarks and tests for Image and Constant GetValues
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Verify GetValues for Perlin and Random Gradients
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Standardized the assert format for GetValues().
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* More GetValues unit tests and test cleanup
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Fixed typos
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* GetValues() unit tests for surface gradients.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Benchmarks for ShapeAreaFalloff Gradient
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Added benchmarks for all remaining gradients and cleaned up the helper methods.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Renamed class for better report formatting.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Added missing Mocks dependencies for the Editor tests.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* First batch of specific GetValues() overrides.
Each one is measurably faster than the generic version. Also, in ShapeAreaFalloffGradient, I optimized and simplified the logic a bit, so GetValue() is marginally faster too.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Change GetValues() to use span and add more overrides.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Convert GetValues() to use AZStd::span and added more overrides.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Add missing include.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* PR feedback - switch to fill
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Fixed the logic and added unit tests and comments.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
2022-01-14 13:30:45 -06:00
Mike Balfour
79431f5e5f
First batch of GetValues() overrides ( #6852 )
...
* Benchmarks and tests for Image and Constant GetValues
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Verify GetValues for Perlin and Random Gradients
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Standardized the assert format for GetValues().
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* More GetValues unit tests and test cleanup
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Fixed typos
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* GetValues() unit tests for surface gradients.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Benchmarks for ShapeAreaFalloff Gradient
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Added benchmarks for all remaining gradients and cleaned up the helper methods.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Renamed class for better report formatting.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Added missing Mocks dependencies for the Editor tests.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* First batch of specific GetValues() overrides.
Each one is measurably faster than the generic version. Also, in ShapeAreaFalloffGradient, I optimized and simplified the logic a bit, so GetValue() is marginally faster too.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
2022-01-13 14:50:54 -06:00
Mike Balfour
b0af08e61f
Moved GradientSignal component headers to Include directory.
...
All of the component headers in the gem have been moved to the Include directory to make them public to other gems. This allows "upstream" unit tests and benchmarks to easily create real non-mocked-out versions of these components to do more integration-level and system-level testing and benchmarking.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
2022-01-03 16:12:15 -06:00
Mike Balfour
48260486fb
Change gradients to use cached GradientTransform instance ( #6591 )
...
* Change flow so that TerrainSystem stops responding during deactivation.
Some systems might accidentally try to call back to the TerrainSystem inside a DestroyBegin notification, so make sure it stops listening before sending out the notification.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Change gradients to cache and use a GradientTransform instance.
In my local test case, calling EBus on every call took 337 ms, using a lambda to wrap the calls took 197 ms, and using the fully cached version took 170 ms.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Remove the wrappingTransform function and go back to the switch statement.
There was a bit of overhead to each function call due to using AZStd::function that just isn't necessary for this use case.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Add profile markers to the heightfield updates so that they're more visible.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Cleared state while component is deactivated.
The state was getting refreshed even while the component was in a deactivated state, which meant that it wasn't properly notifying of state changes when it became active since it wasn't detecting an actual change. By clearing the state when deactivated, and ensuring the state isn't getting refreshed *while* deactivated, the notifications work properly.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Fixed compile warning on unit test.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Addressed PR feedback - changed comments, reduced mutex scope
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
2021-12-30 12:43:00 -06:00
Mike Balfour
a10bf92739
Encapsulated gradient transform logic into separate class ( #6586 )
...
* First version of GradientTransform class.
The gradient transform logic is getting encapsulated into a class so that it can be cached and used by components in a much more optimal way than making ebus calls to the GradientTransform component on every transformed point.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Moved GradientTransform into its own source files.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Clean up and simplify GradientTransform logic.
Added extensive commenting and split TransformPositionToUVW into a separate method for normalizing (TransformPositionToUVWNormalized) so that there doesn't need to be any conditional logic. There's no runtime variance as to which one needs to be called from a given call site.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Added unit tests for GradientTransform.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Add comparison operators to GradientTransform so we can easily tell when it has changed.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Updated comments to be more Doxygen-friendly.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
2021-12-29 13:44:03 -06:00
Mike Balfour
3e9b76cdee
Image Gradient: Switch to shared_mutex ( #6558 )
...
* Improve lock contention by switching to a shared_lock.
ImageGradient is accessed via a many-reader-one-writer pattern, so a shared_lock causes less contention in the common "read" case.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Remove chatty profile marker.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
2021-12-23 14:16:22 -06:00
Mike Balfour
39ba06b84e
misc small terrain bugfixes ( #5834 )
...
* Removed "chatty" profile markers.
These three markers were making terrain refreshes take ~200% longer in profile builds.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Terrain surface data wasn't updating its AABB correctly.
The code was making an invalid assumption that changes to the world bounds would result in an invalid dirtyRegion. It actually gets a valid region encapsulating the old and new bounds. The fix is an additional check to see if the terrain bounds changed.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
* Addressed previous PR feedback that terrainSystem ought to be a local variable in each test.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com >
2021-11-23 09:21:27 -06:00
Artur K
f44169f7fa
Cleanup SerializeContext.h pt.1 ( #4264 )
...
* Remove AssetSerializer inclusion from SerializeContext header
Moved a few Reflect methods to new cpp files.
In addition, some preparations for further header dependency reductions.
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com >
* Fix smoke test lua failures.
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com >
* Windows build fixes.
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com >
* Missing license headers
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com >
* Fix white-space issues.
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com >
* Code review fix for AzToolsFramework/AssetEditor/AssetEditorBus.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 >
* Fix inheritance list wrapping broken by older clang-format
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com >
Co-authored-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com >
2021-09-29 11:31:01 -05:00
Esteban Papp
35a7ad612b
Gems/GradientSignal
...
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com >
2021-09-10 20:18:37 -07:00
Esteban Papp
3ebf045cb5
Gems/GradientSignal
...
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com >
2021-08-20 18:01:03 -07:00
Jeremy Ong
df9b4d4a2f
Deprecate profiler categories based on global enum
...
(to be supplanted by registered budgets in the future)
Signed-off-by: Jeremy Ong <jcong@amazon.com >
2021-08-18 17:33:09 -06:00
Esteban Papp
b33a4db332
Merge branch 'development' into cmake/SPEC-2513_w4267
2021-08-02 18:03:04 -07:00
pappeste
0af39dd633
GradientSignal
...
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com >
2021-07-27 19:30:01 -07:00
dtamkin1
731640492e
Merge branch 'development' of https://github.com/o3de/o3de into GroupToggleSwitch
2021-07-23 16:28:45 -05:00
sphrose
9639003a7d
LYN-4774 Fix missing box icons inside the main Viewport ( #2297 )
...
* LYN-4774 Fix missing box icons inside the main Viewport
Signed-off-by: sphrose <82213493+sphrose@users.noreply.github.com >
* V2 icons
Signed-off-by: sphrose <82213493+sphrose@users.noreply.github.com >
* Bug fixes
Signed-off-by: sphrose <82213493+sphrose@users.noreply.github.com >
2021-07-21 16:33:04 -07:00
Esteban Papp
1f9b284de2
Merge branch 'development' into cmake/SPEC-7179
...
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com >
# Conflicts:
# Code/Editor/Plugins/ComponentEntityEditorPlugin/ComponentEntityEditorPlugin_precompiled.h
# Code/Editor/Plugins/EditorCommon/EditorCommon_precompiled.h
# Code/Editor/Plugins/EditorCommon/stdafx.cpp
# Code/Editor/Plugins/FFMPEGPlugin/FFMPEGPlugin_precompiled.h
# Code/Editor/Plugins/PerforcePlugin/PerforcePlugin_precompiled.h
# Code/Editor/Plugins/ProjectSettingsTool/ProjectSettingsTool_precompiled.h
# Code/Framework/AzToolsFramework/AzToolsFramework/AzToolsFramework_precompiled.h
# Code/Tools/AssetProcessor/native/precompiled.h
# Code/Tools/Standalone/StandaloneTools_precompiled.h
# Gems/AssetMemoryAnalyzer/Code/Source/AssetMemoryAnalyzer_precompiled.h
# Gems/Atom/Asset/ImageProcessingAtom/Code/Source/ImageProcessing_precompiled.h
# Gems/Atom/RHI/DX12/Code/Source/RHI/Atom_RHI_DX12_precompiled.h
# Gems/Atom/RHI/Metal/Code/Include/Platform/Mac/Atom_RHI_Metal_precompiled_Platform.h
# Gems/Atom/RHI/Metal/Code/Include/Platform/iOS/Atom_RHI_Metal_precompiled_Platform.h
# Gems/Atom/RHI/Metal/Code/Source/Atom_RHI_Metal_precompiled.h
# Gems/Atom/RHI/Metal/Code/atom_rhi_metal_common_files.cmake
# Gems/Atom/RHI/Null/Code/Source/Atom_RHI_Null_precompiled.h
# Gems/Atom/RHI/Null/Code/atom_rhi_null_common_files.cmake
# Gems/Atom/RHI/Vulkan/Code/Include/Platform/Android/Atom_RHI_Vulkan_precompiled_Platform.h
# Gems/Atom/RHI/Vulkan/Code/Include/Platform/Linux/Atom_RHI_Vulkan_precompiled_Platform.h
# Gems/Atom/RHI/Vulkan/Code/Include/Platform/Mac/Atom_RHI_Vulkan_precompiled_Platform.h
# Gems/Atom/RHI/Vulkan/Code/Include/Platform/Windows/Atom_RHI_Vulkan_precompiled_Platform.h
# Gems/Atom/RHI/Vulkan/Code/Source/Atom_RHI_Vulkan_precompiled.h
# Gems/Atom/RHI/Vulkan/Code/Source/RHI/SwapChain.cpp
# Gems/Atom/RHI/Vulkan/Code/atom_rhi_vulkan_common_files.cmake
# Gems/AtomLyIntegration/AtomFont/Code/Include/AtomLyIntegration/AtomFont/AtomFont_precompiled.h
# Gems/Blast/Code/Source/StdAfx.cpp
# Gems/Camera/Code/Source/Camera_precompiled.h
# Gems/EMotionFX/Code/Source/EMotionFX_precompiled.h
# Gems/FastNoise/Code/Source/FastNoise_precompiled.h
# Gems/Gestures/Code/Source/Gestures_precompiled.h
# Gems/GradientSignal/Code/Source/GradientSignal_precompiled.h
# Gems/GraphCanvas/Code/precompiled.h
# Gems/ImGui/Code/Source/ImGui_precompiled.h
# Gems/InAppPurchases/Code/Source/InAppPurchases_precompiled.h
# Gems/LmbrCentral/Code/Source/LmbrCentral_precompiled.h
# Gems/LmbrCentral/Code/Tests/ShapeGeometryUtilTest.cpp
# Gems/LyShine/Code/Editor/UiCanvasEditor_precompiled.h
# Gems/LyShine/Code/Source/Animation/LyShine_precompiled.h
# Gems/LyShine/Code/Source/LyShine_precompiled.h
# Gems/LyShineExamples/Code/Source/LyShineExamples_precompiled.h
# Gems/Maestro/Code/Source/Cinematics/Maestro_precompiled.h
# Gems/Maestro/Code/Source/Maestro_precompiled.h
# Gems/MessagePopup/Code/Source/MessagePopup_precompiled.h
# Gems/Metastream/Code/Source/Metastream_precompiled.h
# Gems/Microphone/Code/Source/Microphone_precompiled.h
# Gems/Multiplayer/Code/Source/Multiplayer_precompiled.h
# Gems/PhysX/Code/NumericalMethods/Source/NumericalMethods_precompiled.h
# Gems/PhysX/Code/Source/PhysXUnsupported_precompiled.h
# Gems/PhysX/Code/Source/PhysX_precompiled.h
# Gems/PhysX/Code/physx_unsupported_files.cmake
# Gems/PhysXDebug/Code/Source/PhysXDebugUnsupported_precompiled.h
# Gems/PhysXDebug/Code/Source/PhysXDebug_precompiled.h
# Gems/ScriptCanvas/Code/Editor/precompiled.h
# Gems/ScriptCanvas/Code/Source/precompiled.h
# Gems/ScriptCanvasDeveloper/Code/Source/precompiled.h
# Gems/ScriptCanvasPhysics/Code/Source/ScriptCanvasPhysics_precompiled.h
# Gems/ScriptEvents/Code/Source/precompiled.h
# Gems/ScriptEvents/Code/Tests/Editor/EditorTests.cpp
# Gems/ScriptedEntityTweener/Code/Source/ScriptedEntityTweener_precompiled.h
# Gems/SliceFavorites/Code/Source/SliceFavorites_precompiled.h
# Gems/StartingPointCamera/Code/Source/StartingPointCamera_precompiled.h
# Gems/StartingPointInput/Code/Source/StartingPointInput_precompiled.h
# Gems/StartingPointMovement/Code/Source/StartingPointMovement_precompiled.h
# Gems/SurfaceData/Code/Source/SurfaceData_precompiled.h
# Gems/TextureAtlas/Code/Source/TextureAtlas_precompiled.h
# Gems/TickBusOrderViewer/Code/Source/TickBusOrderViewer_precompiled.h
# Gems/Twitch/Code/Source/Twitch_precompiled.h
# Gems/VirtualGamepad/Code/Source/VirtualGamepad_precompiled.h
# Gems/WhiteBox/Code/Source/WhiteBoxUnsupported_precompiled.h
# Gems/WhiteBox/Code/Source/WhiteBox_precompiled.h
2021-07-16 15:42:37 -07:00
Steve Pham
38261d0800
Shorten copyright headers by splitting into 2 lines ( #2213 )
...
* Updated all copyright headers to split the longer original copyright line into 2 shorter lines
Signed-off-by: Steve Pham <spham@amazon.com >
2021-07-16 15:25:48 -07:00
dtamkin1
fed37e8e6d
Removed the ChangeNotify event in each attribute
...
Signed-off-by: dtamkin1 <jotamkin@amazon.com >
2021-07-13 18:02:25 -05:00
Jose
bc9d0eb0e1
Added unit tests for groups and toggle groups, fixed comments and syntax
...
Signed-off-by: Jose <jotamkin@amazon.com >
2021-07-13 14:55:05 -05:00
Esteban Papp
33a19b05bc
GradientSignal
...
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com >
2021-07-12 19:51:39 -07:00
Jose
0502475fa6
Created a toggle switch to enable and disable groups through the EditContext
...
Signed-off-by: Jose <jotamkin@amazon.com >
2021-07-07 14:09:26 -05:00
Steve Pham
b4a2edec6a
Final update copyright headers to reference license files at the repo root ( #1693 )
...
* Final update copyright headers to reference license files at the repo root
Signed-off-by: spham <spham@amazon.com >
* Fix copyright validator unit tests to support the stale O3DE header scenario
Signed-off-by: spham <spham@amazon.com >
2021-06-30 19:51:55 -07:00
Terry Michaels
21ebff5709
Updated help search and all docs.o3de.org links to o3de.org ( #1594 )
2021-06-25 15:23:57 -05:00
Terry Michaels
1e457928f5
Update help URLs and remove unneeded links ( #1520 )
2021-06-23 14:42:33 -05:00
Steve Pham
70042fcdcd
O3DE Copyright Updates for Linux Foundation ( #1504 )
2021-06-23 10:55:22 -07:00
Esteban Papp
36cb0f6d40
SPEC-7178 Removal of precompiled cpp files ( #1171 )
...
* SPEC-7178 Removal of precompiled cpp files
* Missing files...
2021-06-07 15:59:58 -07:00
greerdv
fcfb5a7941
refactor vector scale transform function usages in GradientSignal
2021-05-28 10:50:35 +01:00