* Adding a temporary Orphan function to the InstanceDatabase, which will remove an instance from the database so it will not be found using Find or FindOrCreate. The instance will still persist until its use-count drops to 0, at which point it will be deleted. This is to enable the model asset to remove existing buffer/modellod/model instances and replace them with new instances that have the up to date data. Added unit tests for testing.
Signed-off-by: amzn-tommy <waltont@amazon.com>
* Fix an incorrect ceil and update ParallelInstance test cases for readability
Signed-off-by: amzn-tommy <waltont@amazon.com>
* overhaul to how camera orbit/pivot behavior works
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* update naming from orbit to pivot
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* fix camera unit tests
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* add additional tests for new camera pivot behavior
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* fix comment and add additional info for tests
Signed-off-by: hultonha <hultonha@amazon.co.uk>
Merge pull request #4006 from aws-lumberyard-dev/Atom/santora/UseLibPng
OpenImageIO is a huge library and overkill for Atom's needs, which is to just save and load png files at this time. Here we remove all dependence on OpenImageIO and use libpng instead. I introduced a PngFile wrapper class to assist with loading and saving png files.
Note that there is a bit more work to do before merging these changes. I am still working on adding libpng to the 3rdParty package system. Currently these changes only reflect the addition of the Windows package. We'll make the other platform packages available before merging.
Disables a problematic child reparenting code path in EditorEntityModel that led to the series of remove -> add -> remove notifications for reparented entities that led to unnecessary updates and a sporadic QSortFilterProxyModel crash
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Terrain feature processor improvements regarding material, mesh, and lod
- Now using a material with pbr lighting for terrain. Removed some of the old shader code that wasn't needed anymore
- Move heightmap image declaration to the material so it's not needed in the object SRG anymore
- Added prototype code (commented out) for smoothing the terrain with a b-spline weighting function
- Mesh data is all made with a proper mesh asset now.
- Added basic LOD support (no continuous LOD yet, but it does pop between lod levels)
- Moved RenderCommon to be accessible publicly. It contains stencil refs that should be public.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Fixing terrain's per object srg because of changes in the default per object srg.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* PR Fixes
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Removing unused static.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* first pass fixes for how entity space is handled in the viewport interaction model
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* small updates to simplify space handling
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* fix for influence group with one entity selected
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* some tidy-up and fix for scale manipulator snapping
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* couple of small fixes for scale manipulator
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* small comment update
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* fixes for integration test failures
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* add test for rotation manipulator
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* add test coverage for rotation manipulators
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* add tests for translation manipulators and some other tidy-up changes
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* add tests for translating a group of entities
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* add some tests for scale manipulators
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* some updates and formatting changes (clang-format) to ViewportScreen
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* simplify usage of lround code
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* update missed name updates
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* update usage of WorldToScreenNdc
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* updates following review feedback
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* some more small tidy-up changes
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* move static variables to be marked inline
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* small formatting fixes
Signed-off-by: hultonha <hultonha@amazon.co.uk>
• A previous change introduced a heading section of the top of the inspector
• The code was incorrectly attempting to delete child widgets and layouts from the layout of each section
• Size policies were also updated to give priority to the section containing the property groups
• Tested material component property editor and material editor to make sure that widgets were laid out correctly at the top of the inspector
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
MCPP should not add new line characters at the end of comment lines
Update for windows, mac and linux of mcpp package to 'mcpp-2.7.2-az.2-rev1'
Signed-off-by: garrieta <garrieta@amazon.com>
This allows for all the global static `InputChannelId`s to be `constexpr`
as well, which prevents some global constructors, including some CRC32
calculations on application startup.
Signed-off-by: Chris Burel <burelc@amazon.com>
* Remove the "TEST_SUPPORTED" traits.
Terrain unit tests should be usable on all platforms, so they shouldn't need a platform-specific trait to enable/disable.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Fix a few misc terrain bugs.
* Change Activate/Deactivate to happen immediately instead of deferring. There were too many order-of-operation bugs caused by trying to defer this.
* Added implementation for calculating normals.
* Fixed bug where GetHeightSynchronous wasn't stopping at the highest-priority layer.
* Added locks for SurfaceData bus to help ensure we lock our mutexes in the correct order and avoid deadlocks.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Add trivial TerrainSystem tests.
Tests construction, Activate(), Deactivate(), and destruction.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Unified Terrain system calls on single bus.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Added mock for TerrainDataNotificationBus listener.
Also added unit tests to verify the listener, and added in missing notification events.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Removed extra Sampler class.
Fixed up APIs to correctly pass Sampler and terrainExistsPtr around.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Switched MockTerrainSystem to be proper gmock.
This makes it for flexible to use and easier to reuse from other test environments.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Fix settings bug caused by bad order of operations that occurred when the methods moved to a different bus.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Eliminate extra EBus by simplifying area initialization.
Previously, there was a back-and-forth ebus signal used for the terrain system to find any terrain spawners that were created prior to the terrain system activation. Now it uses the more simple technique of just grabbing all the spawners that are currently hooked up to the spawner ebus.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Switch to NiceMock so that "uninteresting" mock calls get ignored.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Addressed PR feedback.
Filled in terrainExistsPtr at the end, and added it to GetNormal as well.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Fixed shader height calculation.
It was off by half a pixel, and it was interpolating, both of which were wrong.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Create initial LmbrCentral mocks that other Gems can use.
To help improve mock maintenance over time, this creates mocks in the same Gem as the systems being mocked, instead of the other Gems that need to use mocked systems during testing. This way, the mocks should more easily stay in sync with the interface that they mock out.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Null-guard any uses of Atom to make the class easier to unit test.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Add more mocked terrain services
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Moved Terrain mocks to publicly-available Mocks directory. Also added more unit tests.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Change debug code to use EXACT instead of BILINEAR height sampling, because it's specifically using the terrain grid.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Added support for the sampler filters.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Fix bad merge.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Add unit test to verify terrain layers define terrain regions.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Moved the AABB component mock into a private terrain header, since it's a specialized mock just for the terrain tests.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Moved sampler and normal calculations into TerrainSystem so that they can work across multiple adjacent areas.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Missed a couple of unit test changes.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Removed normal query as well, that needs a seprate unit test.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Removed unused variable that was only caught in Linux/Android builds.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Addressed PR feedback
Made the parameter names consistently listed in MockShapes.h.
Added comments to TerrainHeightGradientListComponent explaining why terrainExists is always true when a gradient exists.
Also fixed a bug where terrainExists should technically be *false* if no gradient exists.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Added more descriptive comments and names for ClampPosition.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Unit tests to verify height samplers work correctly.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Fix bug where wireframe didn't refresh when the setting changed.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Created TerrainWorldRenderer Component and moved all terrain rendering management code into it.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Fixed the icon references
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Removed expensive profile marker.
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>
* Fixed AR error - constexpr doesn't need to be in a lambda capture.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
The Linux platform has multiple windowing systems. Support for xcb is
currently in progress, support for Wayland is planned in the future. The
way the current xcb support is included is by making some file with a
`_xcb` suffix, and placing `#if PAL_TRAIT_LINUX_WINDOW_MANAGER_XCB` around
most of that file's contents.
With this change, all of the code in AzFramework that uses xcb directly is
inside the `Platform/Common/Xcb` subdirectory. It greatly reduces the
amount of code in compile-time `#ifdef` checks for the chosen windowing
system. It also provides a logical place to include O3DE-specific xcb
C++ wrappers and interfaces, without polluting non-xcb related code.
Signed-off-by: Chris Burel <burelc@amazon.com>
* Primary Support to compact shader visible Cbv/Srv/Uav heap if it fragments enough to run out of descriptor handles
- Split the main heap into two sections - static handles and dynamic handles for descriptor tables
- Add support to data drive number of allowed static handles
- Add support to data drive ability to compact the relevant shader visible heap as there is overhead associated with compaction
- If compaction is enabled we create two shader visible ehaps and ping pong between them since you can not compact an active heap as it needs to stay active for 3 frames atleast
- As part of compaction we copy over the static handles as is but recreate all the dynamic section(i.e descriptaor tables) by tracking all the active SRGs, reallocating the descriptor tables and updating them from the non-shader visible heap
- Enabled 3 fences for cpu/gpu synchronization so that cpu can get 3 frames ahead of gpu
- Use fixed_wstring for commandlist name as a perf optimization
Signed-off-by: moudgils <moudgils@amazon.com>
* - Disable Heap compaction by default
- Disable PSO caching when WARP is enabled
- Misc cleanup
Signed-off-by: moudgils <moudgils@amazon.com>
* Address Feedback
Signed-off-by: moudgils <moudgils@amazon.com>
* Address feedback
Signed-off-by: moudgils <moudgils@amazon.com>