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::RPISystemInterface Class Referenceabstract

Interface of RPISystem, which is the main entry point for the Atom renderer. More...

#include <RPISystemInterface.h>

Inherited by AZ::RPI::RPISystem.

Public Member Functions

 AZ_RTTI (RPISystemInterface, "{62E72C4F-A985-4001-9004-DE53029DBF11}")
 
 AZ_DISABLE_COPY_MOVE (RPISystemInterface)
 
virtual void InitializeSystemAssets ()=0
 Pre-load some system assets. This should be called once Critical Asset have compiled ready and before create any RPI instances.
 
virtual bool IsInitialized () const =0
 Was the RPI system initialized properly.
 
virtual bool IsNullRenderer () const =0
 
virtual void RegisterScene (ScenePtr scene)=0
 Register a created scene to RPISystem. Registered scene will be simulated and rendered in RPISystem ticks.
 
virtual void UnregisterScene (ScenePtr scene)=0
 Unregister a scene from RPISystem. The scene won't be simulated or rendered.
 
 AZ_DEPRECATED (virtual ScenePtr GetDefaultScene() const =0;, "This method has been deprecated. Please use GetSceneByName(name), GetSceneForEntityContextId(entityContextId) or Scene::GetSceneForEntityId(AZ::EntityId entityId) instead.")
 Deprecated. Use GetSceneByName(name), GetSceneForEntityContextId(entityContextId) or Scene::GetSceneForEntityId(AZ::EntityId entityId) instead.
 
virtual SceneGetScene (const SceneId &sceneId) const =0
 Get scene by using scene id.
 
virtual SceneGetSceneByName (const AZ::Name &name) const =0
 Get scene by using scene name.
 
virtual RenderPipelinePtr GetRenderPipelineForWindow (AzFramework::NativeWindowHandle windowHandle)=0
 Get the render pipeline created for a window.
 
virtual Data::Asset< ShaderAssetGetCommonShaderAssetForSrgs () const =0
 Returns the shader asset that is being used as the source for the SceneSrg and ViewSrg layouts.
 
virtual RHI::Ptr< RHI::ShaderResourceGroupLayoutGetSceneSrgLayout () const =0
 
virtual RHI::Ptr< RHI::ShaderResourceGroupLayoutGetViewSrgLayout () const =0
 
virtual void SimulationTick ()=0
 
virtual void RenderTick ()=0
 Tick for rendering one frame.
 
virtual void SetSimulationJobPolicy (RHI::JobPolicy jobPolicy)=0
 
virtual RHI::JobPolicy GetSimulationJobPolicy () const =0
 
virtual void SetRenderPrepareJobPolicy (RHI::JobPolicy jobPolicy)=0
 
virtual RHI::JobPolicy GetRenderPrepareJobPolicy () const =0
 
virtual const RPISystemDescriptorGetDescriptor () const =0
 Get RPI system descriptor.
 
virtual Name GetRenderApiName () const =0
 Return the name of the RHI back-end API (i.e. "dx12", "vulkan", etc.)
 
virtual uint64_t GetCurrentTick () const =0
 Get the index of current render tick.
 
virtual void SetApplicationMultisampleState (const RHI::MultisampleState &multisampleState)=0
 Application multisample state.
 
virtual const RHI::MultisampleStateGetApplicationMultisampleState () const =0
 
virtual XRRenderingInterfaceGetXRSystem () const =0
 Get the XR system for XR specific functionality.
 

Static Public Member Functions

static RPISystemInterfaceGet ()
 

Detailed Description

Interface of RPISystem, which is the main entry point for the Atom renderer.

Member Function Documentation

◆ GetCommonShaderAssetForSrgs()

virtual Data::Asset< ShaderAsset > AZ::RPI::RPISystemInterface::GetCommonShaderAssetForSrgs ( ) const
pure virtual

Returns the shader asset that is being used as the source for the SceneSrg and ViewSrg layouts.

Implemented in AZ::RPI::RPISystem.

◆ GetCurrentTick()

virtual uint64_t AZ::RPI::RPISystemInterface::GetCurrentTick ( ) const
pure virtual

Get the index of current render tick.

Implemented in AZ::RPI::RPISystem.

◆ GetDescriptor()

virtual const RPISystemDescriptor & AZ::RPI::RPISystemInterface::GetDescriptor ( ) const
pure virtual

Get RPI system descriptor.

Implemented in AZ::RPI::RPISystem.

◆ GetRenderApiName()

virtual Name AZ::RPI::RPISystemInterface::GetRenderApiName ( ) const
pure virtual

Return the name of the RHI back-end API (i.e. "dx12", "vulkan", etc.)

Implemented in AZ::RPI::RPISystem.

◆ GetRenderPipelineForWindow()

virtual RenderPipelinePtr AZ::RPI::RPISystemInterface::GetRenderPipelineForWindow ( AzFramework::NativeWindowHandle  windowHandle)
pure virtual

Get the render pipeline created for a window.

Implemented in AZ::RPI::RPISystem.

◆ GetScene()

virtual Scene * AZ::RPI::RPISystemInterface::GetScene ( const SceneId &  sceneId) const
pure virtual

Get scene by using scene id.

Implemented in AZ::RPI::RPISystem.

◆ GetSceneByName()

virtual Scene * AZ::RPI::RPISystemInterface::GetSceneByName ( const AZ::Name &  name) const
pure virtual

Get scene by using scene name.

Implemented in AZ::RPI::RPISystem.

◆ GetXRSystem()

virtual XRRenderingInterface * AZ::RPI::RPISystemInterface::GetXRSystem ( ) const
pure virtual

Get the XR system for XR specific functionality.

Implemented in AZ::RPI::RPISystem.

◆ InitializeSystemAssets()

virtual void AZ::RPI::RPISystemInterface::InitializeSystemAssets ( )
pure virtual

Pre-load some system assets. This should be called once Critical Asset have compiled ready and before create any RPI instances.

Implemented in AZ::RPI::RPISystem.

◆ IsInitialized()

virtual bool AZ::RPI::RPISystemInterface::IsInitialized ( ) const
pure virtual

Was the RPI system initialized properly.

Implemented in AZ::RPI::RPISystem.

◆ IsNullRenderer()

virtual bool AZ::RPI::RPISystemInterface::IsNullRenderer ( ) const
pure virtual

If the renderer is null. It's controlled by renderer=null command line option

Implemented in AZ::RPI::RPISystem.

◆ RegisterScene()

virtual void AZ::RPI::RPISystemInterface::RegisterScene ( ScenePtr  scene)
pure virtual

Register a created scene to RPISystem. Registered scene will be simulated and rendered in RPISystem ticks.

Implemented in AZ::RPI::RPISystem.

◆ RenderTick()

virtual void AZ::RPI::RPISystemInterface::RenderTick ( )
pure virtual

Tick for rendering one frame.

Implemented in AZ::RPI::RPISystem.

◆ SetApplicationMultisampleState()

virtual void AZ::RPI::RPISystemInterface::SetApplicationMultisampleState ( const RHI::MultisampleState multisampleState)
pure virtual

Application multisample state.

Implemented in AZ::RPI::RPISystem.

◆ SetRenderPrepareJobPolicy()

virtual void AZ::RPI::RPISystemInterface::SetRenderPrepareJobPolicy ( RHI::JobPolicy  jobPolicy)
pure virtual

Job policy for FeatureProcessor render prepare. When parallel jobs are enabled, this will usually spawn one job per FeatureProcessor per Scene.

Implemented in AZ::RPI::RPISystem.

◆ SetSimulationJobPolicy()

virtual void AZ::RPI::RPISystemInterface::SetSimulationJobPolicy ( RHI::JobPolicy  jobPolicy)
pure virtual

Job policy for FeatureProcessor simulation. When parallel jobs are enabled, this will usually spawn one job per FeatureProcessor per Scene.

Implemented in AZ::RPI::RPISystem.

◆ SimulationTick()

virtual void AZ::RPI::RPISystemInterface::SimulationTick ( )
pure virtual

Tick for graphics simulation that runs on the CPU. This will drive FeatureProcessor simulation activity. It should be called once per game-tick.

Implemented in AZ::RPI::RPISystem.

◆ UnregisterScene()

virtual void AZ::RPI::RPISystemInterface::UnregisterScene ( ScenePtr  scene)
pure virtual

Unregister a scene from RPISystem. The scene won't be simulated or rendered.

Implemented in AZ::RPI::RPISystem.


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