Commit Graph

60 Commits (1457ef6ee9f0e18b3fcebdb0c7c19b2cac5a19ed)

Author SHA1 Message Date
Tom Hulton-Harrop e34ea3bcaa
Fixes for viewport selection issues (#5494)
* 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>
4 years ago
Tom Hulton-Harrop 593f03efb4
Camera fixes follow-up (#5703)
* 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>
4 years ago
Tom Hulton-Harrop a6164ca2cd
Fix for camera roll behavior when in 'Be this camera' mode (#5658)
* 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>
4 years ago
jiaweig 0dfa08cac8
ATOM-16625 [RHI][Vulkan] Swapchain creation issue on viewports (#4854)
* 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>
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
Steve Pham e6464335af
Fix Vulkan issues with VK_ERROR_OUT_OF_DATE caused by the swapchain not being updated on a resize (#4740)
- 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>
4 years ago
hultonha 3d4c060fb5 updates to improve cursor lock behavior
Signed-off-by: hultonha <hultonha@amazon.co.uk>
4 years ago
hultonha 1d6542c274 initial wip code to update cursor states
Signed-off-by: hultonha <hultonha@amazon.co.uk>
4 years ago
hultonha 5c859cb134
Fix camera drift issues (#4576)
* 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>
4 years ago
SergeyAMZN 08e020f2b1
Merge pull request #4251 from aws-lumberyard-dev/nvsickle/RevertFrameTimer
Revert "Refresh rate driven rendering tick logic (#3375)"
4 years ago
hultonha ab0aa4973f
Remove camera LookAtAfterInterpolation (#4391)
Signed-off-by: hultonha <hultonha@amazon.co.uk>
4 years ago
hultonha c34b6ffe3b
Overhaul of how camera orbit/pivot behavior works (#4345)
* 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>
4 years ago
hultonha b865d2aec1
Add support for camera reference frames to support camera yaw in certain situations (#4088)
* 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>
4 years ago
nvsickle bcfe3d3878 Revert "Refresh rate driven rendering tick logic (#3375)"
This reverts commit db63dcbcd9.

Signed-off-by: nvsickle <nvsickle@amazon.com>
4 years ago
jiaweig 61a9223256
ATOM-16079 [RHI][Vulkan] - Linux Swapchain rendering issue on the first frame (#4129)
* 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>
4 years ago
Nicholas Van Sickle db63dcbcd9
Refresh rate driven rendering tick logic (#3375)
* 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>
4 years ago
hultonha 052ff90c9d
Preparatory work to allow for more viewport integration tests (#3961)
* 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>
4 years ago
hultonha a374ea29f2
Expose setting to adjust angular manipulator circle bound (#3932)
* add debug drawing for angular manipulator bounds

Signed-off-by: hultonha <hultonha@amazon.co.uk>

* remove editor viewport settings from RenderViewport

Signed-off-by: hultonha <hultonha@amazon.co.uk>

* add setting for angular manipulator circle bound

Signed-off-by: hultonha <hultonha@amazon.co.uk>

* update minimum value allowed for some camera settings

Signed-off-by: hultonha <hultonha@amazon.co.uk>

* updates following review feedback, some small tidy-up

Signed-off-by: hultonha <hultonha@amazon.co.uk>

* update comment

Signed-off-by: hultonha <hultonha@amazon.co.uk>
4 years ago
hultonha 5851031d2e
Expose the ability to control manipulator line bounds (#3890)
Signed-off-by: hultonha <hultonha@amazon.co.uk>
4 years ago
hultonha 8c573979a9
Updates to camera tests to support different delta times and some further tidy-up (#3324)
* 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>
4 years ago
hultonha 80e08dd947
Fix issue with mouse input for viewport camera (#3210)
* 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>
4 years ago
moudgils c2b8542bbd
Support for refresh rate and sync interval (#2989)
* Add support for querying the refresh rate and sync interval
4 years ago
hultonha 1169c82b98
Make camera controller priority customizable (#2826)
* 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>
4 years ago
hultonha 7393c86416 some formatting and naming changes after PR feedback
Signed-off-by: hultonha <hultonha@amazon.co.uk>
4 years ago
hultonha 86758fda35 documentation pass for modular viewport camera controller
Signed-off-by: hultonha <hultonha@amazon.co.uk>
4 years ago
hultonha 4268376587
Ensure camera system correctly consumes events when it is active (#2346)
* 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>
4 years ago
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>
4 years ago
Nicholas Van Sickle 867ae23664
Make Viewport input events fully Qt based (#2142)
* 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>
5 years ago
Chris Galvan 3b1873b045 Merged stabilization/2106 -> development (resolved merge conflicts).
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
5 years ago
nvsickle 4babf69361 Address a few more review things
Signed-off-by: nvsickle <nvsickle@amazon.com>
5 years ago
nvsickle 52ae7433b3 Use synthetic keyboard and mouse devices instead of synthetic input channels
Signed-off-by: nvsickle <nvsickle@amazon.com>
5 years ago
nvsickle f4c96fc9df -Rework input handling to filter through a global event filter
-Attempt to support remote desktop for viewport cursor capture

Signed-off-by: nvsickle <nvsickle@amazon.com>
5 years ago
nvsickle a4a038cb28 Switch RenderViewportWidget to using Qt events instead of AzFramework input events
Signed-off-by: nvsickle <nvsickle@amazon.com>
5 years ago
nvsickle 6b76eceb1f Add GetDpiScaleFactor to native window API
-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>
5 years ago
Chris Galvan d7574777a8 Resolved merge conflicts
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
5 years ago
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>
5 years ago
Gene Walters 4e14c0069b Merge branch 'upstream/stabilization/2106' into genewalt/gitflow_210628 5 years ago
Steve Pham 70042fcdcd
O3DE Copyright Updates for Linux Foundation (#1504) 5 years ago
Tom Hulton-Harrop dc343e2b65
Small camera updates (#1460, LYN-2315)
* add interpolation for goto position/orientation

* resize default camera look-at point
5 years ago
Tom Hulton-Harrop 0f09a6d8bf
Move new camera settings to the Settings Registry and connect them to viewport border elements (#1267)
* 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
5 years ago
Tom Hulton-Harrop cf08f4dab1
Improve camera orbit behavior (#1060) 5 years ago
Tom Hulton-Harrop 3947dcf213
Add some extra cvars to control orbit point appearance and remove unused ones (#1032) 5 years ago
Nicholas Van Sickle 5e87250f67
Fix viewport icon rendering on high DPI devices (#1006)
* 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
5 years ago
Tom Hulton-Harrop 50f5976e59
Rename and move ModernViewportCameraController (#866)
* rename ModernViewportCameraController to ModularViewportCameraController and move to AtomToolsFramework

* update names and includes after file moves
5 years ago
Tom Hulton-Harrop b2523217c3
Update snapping settings to be stored in the Settings Registry (#646)
* 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
5 years ago
Tom Hulton-Harrop c5a06b8953
Restore grid and angle snapping (#640)
Restore grid and angle snapping (LYN-3367)
5 years ago
AMZN-mnaumov 5fb923738e
Merge pull request #614 from aws-lumberyard-dev/Atom/mnaumov/ATOM-15474
[ATOM-15474] Material Editor camera controller zoom respects viewport boundary
5 years ago
mnaumov dfd0cbb0fd Material Editor camera controller zoom respects viewport boundary 5 years ago
hultonha a206896074 remove QPoint from lower-level interfaces, switch to use AzFramework::ScreenPoint 5 years ago
Nicholas Van Sickle 3c5c692148
Merge pull request #411 from aws-lumberyard-dev/nvsickle/FixBoxSelect
Fix viewport box selection
5 years ago