Open 3D Engine Atom Gem API Reference 23.10.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
AZ::RPI::ViewportContextManager Class Referencefinal

Exposes the AZ::Interface for ViewportContextRequestsInterface. More...

#include <ViewportContextManager.h>

Inherits AZ::RPI::ViewportContextRequestsInterface.

Public Member Functions

 AZ_RTTI (ViewportContextManager, "{1198B0B3-109A-4D34-B8EC-2E727ACD9740}", ViewportContextRequestsInterface)
 
void Shutdown ()
 
ViewportContextPtr CreateViewportContext (const Name &contextName, const CreationParameters &params) override
 
ViewportContextPtr GetViewportContextByName (const Name &contextName) const override
 Gets the ViewportContext registered to the given name, if any.
 
ViewportContextPtr GetViewportContextById (AzFramework::ViewportId id) const override
 Gets the registered ViewportContext with the corresponding ID, if any.
 
void RenameViewportContext (ViewportContextPtr viewportContext, const Name &newContextName) override
 
void EnumerateViewportContexts (AZStd::function< void(ViewportContextPtr)> visitorFunction) override
 Enumerates all registered ViewportContexts, calling visitorFunction once for each registered viewport.
 
AZ::Name GetDefaultViewportContextName () const override
 Gets the name of the default, primary ViewportContext, for common single-viewport scenarios.
 
void PushViewGroup (const Name &contextName, ViewGroupPtr viewGroup) override
 
bool PopViewGroup (const Name &contextName, ViewGroupPtr viewGroup) override
 
ViewGroupPtr GetCurrentViewGroup (const Name &contextName) override
 
ViewportContextPtr GetDefaultViewportContext () const override
 Get the ViewportConext which has default ViewportContext name.
 
ViewportContextPtr GetViewportContextByScene (const Scene *scene) const override
 
ViewPtr GetCurrentView (const Name &context)
 
ViewPtr GetCurrentStereoscopicView (const Name &context, ViewType viewType)
 
- Public Member Functions inherited from AZ::RPI::ViewportContextRequestsInterface
 AZ_RTTI (ViewportContextRequestsInterface, "{FDB82F02-7021-433B-AAD3-25B97EC69962}")
 
virtual AZ::Name GetDefaultViewportContextName () const =0
 Gets the name of the default, primary ViewportContext, for common single-viewport scenarios.
 
virtual ViewportContextPtr GetDefaultViewportContext () const =0
 Get the ViewportConext which has default ViewportContext name.
 
virtual ViewportContextPtr CreateViewportContext (const Name &contextName, const CreationParameters &params)=0
 
virtual ViewportContextPtr GetViewportContextByName (const Name &contextName) const =0
 Gets the ViewportContext registered to the given name, if any.
 
virtual ViewportContextPtr GetViewportContextById (AzFramework::ViewportId id) const =0
 Gets the registered ViewportContext with the corresponding ID, if any.
 
virtual ViewportContextPtr GetViewportContextByScene (const Scene *scene) const =0
 
virtual void RenameViewportContext (ViewportContextPtr viewportContext, const Name &newContextName)=0
 
virtual void EnumerateViewportContexts (AZStd::function< void(ViewportContextPtr)> visitorFunction)=0
 Enumerates all registered ViewportContexts, calling visitorFunction once for each registered viewport.
 
virtual void PushViewGroup (const Name &contextName, ViewGroupPtr viewGroup)=0
 
virtual bool PopViewGroup (const Name &contextName, ViewGroupPtr viewGroup)=0
 
virtual ViewGroupPtr GetCurrentViewGroup (const Name &contextName)=0
 

Static Public Attributes

static constexpr AzFramework::ViewportId StartingViewportId = 1000
 

Friends

class RPISystem
 
class ViewportContext
 

Detailed Description

Exposes the AZ::Interface for ViewportContextRequestsInterface.

Member Function Documentation

◆ CreateViewportContext()

ViewportContextPtr AZ::RPI::ViewportContextManager::CreateViewportContext ( const Name &  contextName,
const CreationParameters params 
)
overridevirtual

Creates a ViewportContext and registers it by name. There may only be one context registered to a given name at any time. The ViewportContext will be automatically assigned a View from the stack registered to this context name. The ViewportContextManager does not take ownership of this ViewportContext, its lifecycle is the responsibility of the caller. ViewportContexts shall automatically unregister when they are destroyed.

Implements AZ::RPI::ViewportContextRequestsInterface.

◆ EnumerateViewportContexts()

void AZ::RPI::ViewportContextManager::EnumerateViewportContexts ( AZStd::function< void(ViewportContextPtr)>  visitorFunction)
overridevirtual

Enumerates all registered ViewportContexts, calling visitorFunction once for each registered viewport.

Implements AZ::RPI::ViewportContextRequestsInterface.

◆ GetCurrentViewGroup()

ViewGroupPtr AZ::RPI::ViewportContextManager::GetCurrentViewGroup ( const Name &  contextName)
overridevirtual

Gets the view group currently registered to a given context, assuming the context exists. This will be null if there is no registered ViewportContext and no view groups have been pushed for this context name.

Implements AZ::RPI::ViewportContextRequestsInterface.

◆ GetDefaultViewportContext()

ViewportContextPtr AZ::RPI::ViewportContextManager::GetDefaultViewportContext ( ) const
overridevirtual

Get the ViewportConext which has default ViewportContext name.

Implements AZ::RPI::ViewportContextRequestsInterface.

◆ GetDefaultViewportContextName()

AZ::Name AZ::RPI::ViewportContextManager::GetDefaultViewportContextName ( ) const
overridevirtual

Gets the name of the default, primary ViewportContext, for common single-viewport scenarios.

Implements AZ::RPI::ViewportContextRequestsInterface.

◆ GetViewportContextById()

ViewportContextPtr AZ::RPI::ViewportContextManager::GetViewportContextById ( AzFramework::ViewportId  id) const
overridevirtual

Gets the registered ViewportContext with the corresponding ID, if any.

Implements AZ::RPI::ViewportContextRequestsInterface.

◆ GetViewportContextByName()

ViewportContextPtr AZ::RPI::ViewportContextManager::GetViewportContextByName ( const Name &  contextName) const
overridevirtual

Gets the ViewportContext registered to the given name, if any.

Implements AZ::RPI::ViewportContextRequestsInterface.

◆ GetViewportContextByScene()

ViewportContextPtr AZ::RPI::ViewportContextManager::GetViewportContextByScene ( const Scene scene) const
overridevirtual

Gets the registered ViewportContext with matching RPI::Scene, if any. This function will return the first result.

Implements AZ::RPI::ViewportContextRequestsInterface.

◆ PopViewGroup()

bool AZ::RPI::ViewportContextManager::PopViewGroup ( const Name &  contextName,
ViewGroupPtr  viewGroup 
)
overridevirtual

Pops a view group off the stack for a given context name. A view group manages all stereoscopic and non-stereoscopic views. Returns true if the camera was successfully removed or false if the view wasn't removed, either because it wasn't found within any existing view groups or its removal was not allowed.

Note
The default camera's view group for a given viewport may not be removed from the view stack. You must push an additional camera view groups to override the default view group instead.

Implements AZ::RPI::ViewportContextRequestsInterface.

◆ PushViewGroup()

void AZ::RPI::ViewportContextManager::PushViewGroup ( const Name &  contextName,
ViewGroupPtr  viewGroup 
)
overridevirtual

Pushes a view group to the stack for a given context name. A view group manages all stereoscopic and non-stereoscopic views. The Views within a View Group must be declared a camera by having the View::UsageFlags::UsageCamera usage flag set. This View Group will be registered as the context's pipeline's default view group until the top of the camera stack changes.

Implements AZ::RPI::ViewportContextRequestsInterface.

◆ RenameViewportContext()

void AZ::RPI::ViewportContextManager::RenameViewportContext ( ViewportContextPtr  viewportContext,
const Name &  newContextName 
)
overridevirtual

Maps a ViewportContext to a new name, inheriting the View stack (if any) registered to that context name. This can be used to switch "default" viewports by registering a viewport with the default ViewportContext name but note that only one ViewportContext can be mapped to a context name at a time.

Implements AZ::RPI::ViewportContextRequestsInterface.


The documentation for this class was generated from the following file: