Merge pull request #277 from aws-lumberyard-dev/nvsickle/MoreMainFixes

Cherry-pick several 1.0 viewport fixes to main
This commit is contained in:
Nicholas Van Sickle
2021-04-23 09:50:07 -07:00
committed by GitHub
14 changed files with 147 additions and 23 deletions
@@ -118,6 +118,12 @@ namespace AZ
//! Update View's SRG values and compile. This should only be called once per frame before execute command lists.
void UpdateSrg();
using MatrixChangedEvent = AZ::Event<const AZ::Matrix4x4&>;
//! Notifies consumers when the world to view matrix has changed.
void ConnectWorldToViewMatrixChangedHandler(MatrixChangedEvent::Handler& handler);
//! Notifies consumers when the world to clip matrix has changed.
void ConnectWorldToClipMatrixChangedHandler(MatrixChangedEvent::Handler& handler);
private:
View() = delete;
View(const AZ::Name& name, UsageFlags usage);
@@ -182,6 +188,9 @@ namespace AZ
// view class doesn't contain subroutines called at the end of each frame
bool m_worldToClipMatrixChanged = true;
bool m_worldToClipPrevMatrixNeedsUpdate = false;
MatrixChangedEvent m_onWorldToClipMatrixChange;
MatrixChangedEvent m_onWorldToViewMatrixChange;
};
AZ_DEFINE_ENUM_BITWISE_OPERATORS(View::UsageFlags);
@@ -125,7 +125,9 @@ namespace AZ
AzFramework::WindowSize m_viewportSize;
SizeChangedEvent m_sizeChangedEvent;
MatrixChangedEvent m_viewMatrixChangedEvent;
MatrixChangedEvent::Handler m_onViewMatrixChangedHandler;
MatrixChangedEvent m_projectionMatrixChangedEvent;
MatrixChangedEvent::Handler m_onProjectionMatrixChangedHandler;
SceneChangedEvent m_sceneChangedEvent;
ViewportContextManager* m_manager;
RenderPipelinePtr m_currentPipeline;