Commit Graph

57 Commits (6651ae3d784d9e2eb7a7f30f36f9729c3cba9852)

Author SHA1 Message Date
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>
4 years ago
Chris Galvan 3b1873b045 Merged stabilization/2106 -> development (resolved merge conflicts).
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
4 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
AMZN-koppersr 5e4094b258
Revamped AzFramework::Scene (#332)
Updated AzFramework::Scene to allow it to serve as the one-stop location for localized singletons. Localized singletons in this case are instance that can only occur once in an environment but multiple times within an application. As an example, this allows settings up a single camera per viewport for instance.

Highlights of changes:

Replaced the original ebuses with interfaces and events for easy of use and performance.
Removed the Entity Context specific code and moved that to new locations within the Entity Context itself.
Allowed basic inheritance. If a subsystem isn't found in a scene the parent can optionally be searched.
Scenes can enter a zombie state and avoid immediately being deleted. This is needed for situations where subsystems can't be destroyed until async calls have been completed.
5 years ago
nvsickle 9311dc4cb9 Fix RenderViewportWidget::ViewportWorldToScreen, which fixes box selection 5 years ago
nvsickle fb2ca8e02c Fix Editor crash in test teardown calling set_view_pane_layout
If Atom isn't initialized and able to produce a ViewportContext, the Editor would crash. This attempts to make the initialization fail a bit more gracefully and fixes the crash in the cases I've tested.
5 years ago