* improvements to editor selection in the viewport
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* fix issue with being able to select icons that are not showing for entities inside entity containers
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* update comment after review feedback
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* updates to viewport picking code to simplify the api
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* add test to replicate near clip intersection issue
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* small tidy-up changes
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* updates to how we perform world to screen and screen to world calculations, added test coverage and some tidy-up
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* add some more tests for ViewportInteractionImpl
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* minor tweaks before PR feedback
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* fix typo in fix
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* fix for manipulator test framework tests
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* updates to RPI::View and RenderPipeline after review feedback from VickyAtAZ
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* add constexpr to ScreenPoint, ScreenVector and ScreenSize initializing constructors
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* add PrintTo functions for Screen* types
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* downgrade error to warning temporarily
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* check incoming view is null
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* remove pragma optimize off
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* allow unconstrained camera when tracking transform and fix some camera interpolation issues
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* tests for interpolation fixes
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* add test for camera constraints change
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* updates following review feeedback
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* fix for camera roll behavior when in 'Be this camera' mode
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* updates for camera tests
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* fix for failing unit test - require default function
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* Refactor Vulkan swapchain so it can recreate when error occurs
Signed-off-by: jiaweig <jiaweig@amazon.com>
* revert the workaround
Signed-off-by: jiaweig <jiaweig@amazon.com>
* Move semaphore. Revert some viewport changes.
Signed-off-by: jiaweig <jiaweig@amazon.com>
* Added comments. Moved recreation out of AcquireNewImage.
Signed-off-by: jiaweig <jiaweig@amazon.com>
- Updated the RenderViewportWidget::event method to call 'SendWindowResizeEvent' on specific events
- Moved the onResize to one of the events in RenderViewportWidget::event
Signed-off-by: Steve Pham <spham@amazon.com>
* remove some unused code in RenderViewportWidget and make viewing devicePixelRatioF easier
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* updates to how cursor positions are calculate to handle the viewport widget moving
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* remove optional for previous position
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* add test to capture error with moving the widget
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* minor comment updates before publishing PR
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* 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>
* proof of concept change for fixing camera yaw rotation being ignored
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* updates to fully support camera roll
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* small fixes for PR
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* undo changes in EditorCameraComponent
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* add test to verify interaction between editor viewport view entity change and modular camera controller
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* add additional tests for updated camera behaviors
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* revert change to Camera Gem Output Name
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* move location of new files
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* fix tab/spaces issue
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* remove static from potentially unused functions
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* set camera lib name in CMakeLists.txt file
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* cosmetic CMakeLists.txt change
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* Fix out-of-date swapchain when QT window is not activated.
Signed-off-by: jiaweig <jiaweig@amazon.com>
* Removed new code of the previous hack.
Signed-off-by: jiaweig <jiaweig@amazon.com>
* Implement sync interval and refresh rate API for RenderViewportWidget
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Measure actual frame timings in the viewport info overlay.
Takes the median of the sum of (frame end - frame begin) to provide more a more representative view of when frames begin and end.
Note: Until VSync is internally supported by the event loop, this will produce nearly identical frame timings as the frame will spend as much time as needed synchronously waiting on a vblank.
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Make frame timing per-pipeline, wire up refresh rate info to ViewportContext
Signed-off-by: nvsickle <nvsickle@amazon.com>
* POC: Frame limit pipeline rendering
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Switch Editor tick to every 0ms to allow better tick accumulation behavior
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Move RPISystemComponent to the tick bus, remove tick accumulation logic
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Add `AddToRenderTickAtInterval` to RenderPipeline API
This allows a pipeline to update at a set cadence, instead of rendering every frame or being directly told when to tick.
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Make ViewportContext enforce a target framerate
-Adds GetFpsLimit/SetFpsLimit for actively limiting FPS
-Calculates a render tick interval based on vsync and the vps limit and updates the current pipeline
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Add r_fps_limit and ed_inactive_viewport_fps_limit cvars
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Quick null check from a crash I bumped into
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Fix off-by-one on FPS calculation (shouldn't include the not-yet-rendered frame)
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Clarify frame time begin initialization
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Fix TrackView export.
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Address some reviewer feedback, revert RPISystem API change, fix CPU profiler.
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Add g_simulation_tick_rate
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Address review feedback, make frame limit updates event driven
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Remove timestamp update from ComponentApplication::Tick
Signed-off-by: nvsickle <nvsickle@amazon.com>
* preparatory work to allow for more viewport integration tests
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* minor grammatical fix
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* fix for missed bus call update
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* updates to camera tests to support different delta times and some further tidy-up
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* support variable delta time in mouse move test
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* fix for drift accumulating in the viewport camera
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* fix typo and update how events are stored
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* respond to PR feedback and fix linux and windows build issues
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* fix failing unit tests in camera input
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* make 'should handle' logic customizable
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* updates to get priority function
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* minor comment tweak
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* add typename for struct initializer
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* fix for ensuring while the camera is 'active', events are consumed and not propagated
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* refactor how we decide which priority to repsond to events to
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* also -> only
Signed-off-by: hultonha <hultonha@amazon.co.uk>
* Make Viewport input events fully Qt based.
This should fix an issue with Qt touch event -> mouse event translation in the Editor, and may also fix issues with the Mac Editor and remote desktop (though, lacking the requisite hardware, I can test precisely none of these things personally).
See https://github.com/o3de/o3de/issues/1889
- Adapted LegacyViewportCameraController to use Movement::X & Y (mostly for testing purposes, it's on the slate for being removed soon)
- Moved cursor capture logic from RenderViewportWidget into QtEventToAzInputManager so that it can make sure it generates correct movement deltas
- Removed ViewportMouseCursorRequests::PreviousViewportCursorScreenPosition to have our viewport controllers use our dedicated Movement::X and Y channels instead, which will work in the launcher
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Address review feedback
Signed-off-by: nvsickle <nvsickle@amazon.com>
* Fix Linux build
Signed-off-by: nvsickle <nvsickle@amazon.com>
-This includes implementations of the API for the Editor and Windows, all other platforms will have a 1.0 scale for now
Signed-off-by: nvsickle <nvsickle@amazon.com>
* 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>
* ensure the new camera respects changing ui values and move camera settings to the settings registry
* factor out creation of modular camera controller
* small updates before posting PR
* updates following review feedback
* updates following review feedback
* Clarify ViewportWorldToScreen being in widget space and add DeviceScalingFactor
* -Fix viewport icons being draw wrong on high DPI displays
-Fix loading viewport icons from absolute paths, which
* Address review feedback, fix build
* add overload to ActionManager to support capturing an AZStd::function
* move snapping settings to new settings registry
* remove unneeded reference in ViewportSettings
* move viewport setting function implementations to .cpp file
* add more sensible default values for snapping
* fix variable name for angle snapping
* remove const from function prototype value parameters
* add import/export api for free functions
* change from std::bind to a lambda
* remove redundant const for constexpr string_view
* add AZStd alias for std::abs