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::RPISystem Class Referencefinal

Inherits AZ::RPI::RPISystemInterface, AZ::SystemTickBus::Handler, and AZ::Debug::TraceMessageBus::Handler.

Public Member Functions

 AZ_TYPE_INFO (RPISystem, "{D248ED01-1D68-4F76-9DD8-1332B11F452A}")
 
 AZ_CLASS_ALLOCATOR (RPISystem, AZ::SystemAllocator)
 
void Initialize (const RPISystemDescriptor &descriptor)
 
void Shutdown ()
 
bool IsInitialized () const override
 Was the RPI system initialized properly.
 
void InitializeSystemAssets () override
 Pre-load some system assets. This should be called once Critical Asset have compiled ready and before create any RPI instances.
 
bool IsNullRenderer () const override
 
void RegisterScene (ScenePtr scene) override
 Register a created scene to RPISystem. Registered scene will be simulated and rendered in RPISystem ticks.
 
void UnregisterScene (ScenePtr scene) override
 Unregister a scene from RPISystem. The scene won't be simulated or rendered.
 
SceneGetScene (const SceneId &sceneId) const override
 Get scene by using scene id.
 
SceneGetSceneByName (const AZ::Name &name) const override
 Get scene by using scene name.
 
ScenePtr GetDefaultScene () const override
 
RenderPipelinePtr GetRenderPipelineForWindow (AzFramework::NativeWindowHandle windowHandle) override
 Get the render pipeline created for a window.
 
Data::Asset< ShaderAssetGetCommonShaderAssetForSrgs () const override
 Returns the shader asset that is being used as the source for the SceneSrg and ViewSrg layouts.
 
RHI::Ptr< RHI::ShaderResourceGroupLayoutGetSceneSrgLayout () const override
 
RHI::Ptr< RHI::ShaderResourceGroupLayoutGetViewSrgLayout () const override
 
void SimulationTick () override
 
void RenderTick () override
 Tick for rendering one frame.
 
void SetSimulationJobPolicy (RHI::JobPolicy jobPolicy) override
 
RHI::JobPolicy GetSimulationJobPolicy () const override
 
void SetRenderPrepareJobPolicy (RHI::JobPolicy jobPolicy) override
 
RHI::JobPolicy GetRenderPrepareJobPolicy () const override
 
const RPISystemDescriptorGetDescriptor () const override
 Get RPI system descriptor.
 
Name GetRenderApiName () const override
 Return the name of the RHI back-end API (i.e. "dx12", "vulkan", etc.)
 
uint64_t GetCurrentTick () const override
 Get the index of current render tick.
 
void SetApplicationMultisampleState (const RHI::MultisampleState &multisampleState) override
 Application multisample state.
 
const RHI::MultisampleStateGetApplicationMultisampleState () const override
 
bool OnPreAssert (const char *fileName, int line, const char *func, const char *message) override
 
void RegisterXRSystem (XRRenderingInterface *xrSystemInterface)
 
void UnregisterXRSystem ()
 
XRRenderingInterfaceGetXRSystem () const override
 Get the XR system for XR specific functionality.
 
- Public Member Functions inherited from AZ::RPI::RPISystemInterface
 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 void Reflect (ReflectContext *context)
 
- Static Public Member Functions inherited from AZ::RPI::RPISystemInterface
static RPISystemInterfaceGet ()
 

Member Function Documentation

◆ GetApplicationMultisampleState()

const RHI::MultisampleState & AZ::RPI::RPISystem::GetApplicationMultisampleState ( ) const
overridevirtual

◆ GetCommonShaderAssetForSrgs()

Data::Asset< ShaderAsset > AZ::RPI::RPISystem::GetCommonShaderAssetForSrgs ( ) const
overridevirtual

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

Implements AZ::RPI::RPISystemInterface.

◆ GetCurrentTick()

uint64_t AZ::RPI::RPISystem::GetCurrentTick ( ) const
overridevirtual

Get the index of current render tick.

Implements AZ::RPI::RPISystemInterface.

◆ GetDescriptor()

const RPISystemDescriptor & AZ::RPI::RPISystem::GetDescriptor ( ) const
overridevirtual

Get RPI system descriptor.

Implements AZ::RPI::RPISystemInterface.

◆ GetRenderApiName()

Name AZ::RPI::RPISystem::GetRenderApiName ( ) const
overridevirtual

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

Implements AZ::RPI::RPISystemInterface.

◆ GetRenderPipelineForWindow()

RenderPipelinePtr AZ::RPI::RPISystem::GetRenderPipelineForWindow ( AzFramework::NativeWindowHandle  windowHandle)
overridevirtual

Get the render pipeline created for a window.

Implements AZ::RPI::RPISystemInterface.

◆ GetRenderPrepareJobPolicy()

RHI::JobPolicy AZ::RPI::RPISystem::GetRenderPrepareJobPolicy ( ) const
overridevirtual

◆ GetScene()

Scene * AZ::RPI::RPISystem::GetScene ( const SceneId &  sceneId) const
overridevirtual

Get scene by using scene id.

Implements AZ::RPI::RPISystemInterface.

◆ GetSceneByName()

Scene * AZ::RPI::RPISystem::GetSceneByName ( const AZ::Name &  name) const
overridevirtual

Get scene by using scene name.

Implements AZ::RPI::RPISystemInterface.

◆ GetSceneSrgLayout()

RHI::Ptr< RHI::ShaderResourceGroupLayout > AZ::RPI::RPISystem::GetSceneSrgLayout ( ) const
overridevirtual

◆ GetSimulationJobPolicy()

RHI::JobPolicy AZ::RPI::RPISystem::GetSimulationJobPolicy ( ) const
overridevirtual

◆ GetViewSrgLayout()

RHI::Ptr< RHI::ShaderResourceGroupLayout > AZ::RPI::RPISystem::GetViewSrgLayout ( ) const
overridevirtual

◆ GetXRSystem()

XRRenderingInterface * AZ::RPI::RPISystem::GetXRSystem ( ) const
overridevirtual

Get the XR system for XR specific functionality.

Implements AZ::RPI::RPISystemInterface.

◆ InitializeSystemAssets()

void AZ::RPI::RPISystem::InitializeSystemAssets ( )
overridevirtual

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

Implements AZ::RPI::RPISystemInterface.

◆ IsInitialized()

bool AZ::RPI::RPISystem::IsInitialized ( ) const
overridevirtual

Was the RPI system initialized properly.

Implements AZ::RPI::RPISystemInterface.

◆ IsNullRenderer()

bool AZ::RPI::RPISystem::IsNullRenderer ( ) const
overridevirtual

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

Implements AZ::RPI::RPISystemInterface.

◆ RegisterScene()

void AZ::RPI::RPISystem::RegisterScene ( ScenePtr  scene)
overridevirtual

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

Implements AZ::RPI::RPISystemInterface.

◆ RenderTick()

void AZ::RPI::RPISystem::RenderTick ( )
overridevirtual

Tick for rendering one frame.

Implements AZ::RPI::RPISystemInterface.

◆ SetApplicationMultisampleState()

void AZ::RPI::RPISystem::SetApplicationMultisampleState ( const RHI::MultisampleState multisampleState)
overridevirtual

Application multisample state.

Implements AZ::RPI::RPISystemInterface.

◆ SetRenderPrepareJobPolicy()

void AZ::RPI::RPISystem::SetRenderPrepareJobPolicy ( RHI::JobPolicy  jobPolicy)
overridevirtual

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

Implements AZ::RPI::RPISystemInterface.

◆ SetSimulationJobPolicy()

void AZ::RPI::RPISystem::SetSimulationJobPolicy ( RHI::JobPolicy  jobPolicy)
overridevirtual

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

Implements AZ::RPI::RPISystemInterface.

◆ SimulationTick()

void AZ::RPI::RPISystem::SimulationTick ( )
overridevirtual

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

Implements AZ::RPI::RPISystemInterface.

◆ UnregisterScene()

void AZ::RPI::RPISystem::UnregisterScene ( ScenePtr  scene)
overridevirtual

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

Implements AZ::RPI::RPISystemInterface.


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