The base interface for all video objects. More...

#include "murl_video_i_object.h"

Inheritance diagram for Murl::Video::IObject:

Public Member Functions

virtual Bool SetInitiallySuspended (Bool suspended)=0
 Set the initial suspension state hint. More...
 
virtual Bool SetAutomaticallySuspendableEnabled (Bool enabled)=0
 Enable/disable automatic suspension, if supported. More...
 
virtual Bool SetManuallySuspendableEnabled (Bool enabled)=0
 Enable/disable manual suspension, if supported. More...
 
virtual Bool SetEmergencySuspendableEnabled (Bool enabled)=0
 Enable/disable emergency suspension, if supported. More...
 
virtual Bool Init ()=0
 Initialize this object. More...
 
virtual Bool DeInit ()=0
 De-initialize this object. More...
 
virtual Bool Suspend ()=0
 Suspend this object. More...
 
virtual Bool Resume ()=0
 Resume this object. More...
 
virtual Bool Evict ()=0
 Evict any additional resources held by the object, if possible. More...
 
virtual Bool Update (Real localTime)=0
 Update the object. More...
 
virtual Bool IsInitialized () const =0
 Check if this object is initialized. More...
 
virtual Bool IsSuspended () const =0
 Check if this object is suspended. More...
 
virtual UInt32 GetRecentFrameCount () const =0
 Get the global number of the frame the object was most recently used in. More...
 
virtual UInt64 GetAllocatedResourceByteSize (IEnums::MemoryType memoryType) const =0
 Get the total number of allocated resource bytes. More...
 
- Public Member Functions inherited from Murl::IFactoryObject< IObject >
 ~IFactoryObject () override
 The destructor.
 
virtual const ClassInfo * GetObjectClassInfo () const=0
 Get the object instance's class info, if present. More...
 
virtual void ResetObjectProperties ()=0
 Reset the object instance's properties to their default values.
 

Additional Inherited Members

- Public Types inherited from Murl::IFactoryObject< IObject >
using ClassInfoArray = Array< const ClassInfo * >
 Definition of an array of ClassInfo objects.
 
- Static Public Member Functions inherited from Murl::IFactoryObject< IObject >
static const PropertyInfoGetPropertyInfo ()
 Get the class' property info struct. More...
 
static const AttributeInfoGetAttributeInfo ()
 Get the class' attribute info struct. More...
 
static void ResetProperties (IFactoryObject< IObject > *object)
 Reset an object instance's properties to their default values. More...
 

Detailed Description

The base interface for all video objects.

Member Function Documentation

◆ SetInitiallySuspended()

virtual Bool Murl::Video::IObject::SetInitiallySuspended ( Bool  suspended)
pure virtual

Set the initial suspension state hint.

If the initial suspension state is set to true, the object does not create any GPU-bound resources until it is actually referenced during rendering, if it supports this feature.

Parameters
suspendedThe initial suspension state.
Returns
true if successful.

◆ SetAutomaticallySuspendableEnabled()

virtual Bool Murl::Video::IObject::SetAutomaticallySuspendableEnabled ( Bool  enabled)
pure virtual

Enable/disable automatic suspension, if supported.

When automatic suspension is enabled, the object destroys its internally held GPU-bound resources whenever it has not been used during rendering of the most recent frame. The next time it is used again, all necessary resources are restored. Care must be taken not to enable this feature for objects that get activated and deactivated frequently, otherwise a lot of overhead is generated for destroying and recreating its resources.

Parameters
enabledIf true, automatic suspension is enabled.
Returns
true if successful.

◆ SetManuallySuspendableEnabled()

virtual Bool Murl::Video::IObject::SetManuallySuspendableEnabled ( Bool  enabled)
pure virtual

Enable/disable manual suspension, if supported.

When manual suspension is enabled, the object destroys its internally held GPU-bound resources whenever the object's owning renderer received a manual cleanup trigger via its BeginRendering() method.

Parameters
enabledIf true, manual suspension is enabled.
Returns
true if successful.

◆ SetEmergencySuspendableEnabled()

virtual Bool Murl::Video::IObject::SetEmergencySuspendableEnabled ( Bool  enabled)
pure virtual

Enable/disable emergency suspension, if supported.

Emergency suspension works in the same way as manual suspension, and is triggered via en emergency cleanup trigger via BeginRendering().

Parameters
enabledIf true, emergency suspension is enabled.
Returns
true if successful.

◆ Init()

virtual Bool Murl::Video::IObject::Init ( )
pure virtual

Initialize this object.

Called by the IRenderer owning this object.

Returns
true if successful.

◆ DeInit()

virtual Bool Murl::Video::IObject::DeInit ( )
pure virtual

De-initialize this object.

Called by the IRenderer owning this object.

Returns
true if successful.

◆ Suspend()

virtual Bool Murl::Video::IObject::Suspend ( )
pure virtual

Suspend this object.

Called by the IRenderer owning this object.

Returns
true if successful.

◆ Resume()

virtual Bool Murl::Video::IObject::Resume ( )
pure virtual

Resume this object.

Called by the IRenderer owning this object.

Returns
true if successful.

◆ Evict()

virtual Bool Murl::Video::IObject::Evict ( )
pure virtual

Evict any additional resources held by the object, if possible.

In addition to GPU resource suspension, this method also triggers an eviction of any system memory resources (if possible) to free up even more memory. Called by the IRenderer owning this object.

Returns
true if successful.

◆ Update()

virtual Bool Murl::Video::IObject::Update ( Real  localTime)
pure virtual

Update the object.

Called by the IRenderer owning this object.

Parameters
localTimeThe time stamp used.
Returns
true if successful.

◆ IsInitialized()

virtual Bool Murl::Video::IObject::IsInitialized ( ) const
pure virtual

Check if this object is initialized.

Returns
true if initialized.

◆ IsSuspended()

virtual Bool Murl::Video::IObject::IsSuspended ( ) const
pure virtual

Check if this object is suspended.

Returns
true if suspended.

◆ GetRecentFrameCount()

virtual UInt32 Murl::Video::IObject::GetRecentFrameCount ( ) const
pure virtual

Get the global number of the frame the object was most recently used in.

Returns
The most recent frame number.

◆ GetAllocatedResourceByteSize()

virtual UInt64 Murl::Video::IObject::GetAllocatedResourceByteSize ( IEnums::MemoryType  memoryType) const
pure virtual

Get the total number of allocated resource bytes.

Parameters
memoryTypeThe type of memory to query.
Returns
The number of allocated bytes.

The documentation for this interface was generated from the following file:
  • murl_video_i_object.h


Copyright © 2011-2024 Spraylight GmbH.