![]() |
RAMSES Documentation
27.0.130
Information for RAMSES users and developers
|
Convenience empty implementation of IRendererSceneControlEventHandler that can be used to derive from when only subset of event handling methods need to be implemented. More...
#include <IRendererSceneControlEventHandler.h>
Public Member Functions | |
virtual void | sceneStateChanged (sceneId_t sceneId, RendererSceneState state) override |
This method will be called when state of a scene changes. More... | |
virtual void | offscreenBufferLinked (displayBufferId_t offscreenBufferId, sceneId_t consumerScene, dataConsumerId_t consumerId, bool success) override |
This method will be called when the data link between offscreen buffer and scene's data slot is established. More... | |
virtual void | dataLinked (sceneId_t providerScene, dataProviderId_t providerId, sceneId_t consumerScene, dataConsumerId_t consumerId, bool success) override |
This method will be called when the data link between a data provider and data consumer is established. More... | |
virtual void | dataUnlinked (sceneId_t consumerScene, dataConsumerId_t consumerId, bool success) override |
This method will be called when the data link between a data provider and data consumer is destroyed. More... | |
virtual void | dataProviderCreated (sceneId_t sceneId, dataProviderId_t dataProviderId) override |
This method will be called whenever a data provider is created. More... | |
virtual void | dataProviderDestroyed (sceneId_t sceneId, dataProviderId_t dataProviderId) override |
This method will be called when a data provider is destroyed. More... | |
virtual void | dataConsumerCreated (sceneId_t sceneId, dataConsumerId_t dataConsumerId) override |
This method will be called whenever a data consumer is created. More... | |
virtual void | dataConsumerDestroyed (sceneId_t sceneId, dataConsumerId_t dataConsumerId) override |
This method will be called when a data consumer is destroyed. More... | |
virtual void | sceneFlushed (sceneId_t sceneId, sceneVersionTag_t sceneVersionTag) override |
This method will be called after a flush with version tag (ramses::Scene::flush) has been applied. More... | |
virtual void | sceneExpirationMonitoringEnabled (sceneId_t sceneId) override |
This method will be called whenever a scene which was not previously monitored for expiration has requested expiration monitoring by sending a scene flush with valid expiration timestamp (ramses::Scene::setExpirationTimestamp) and that flush was applied on renderer side. From this point on, the scene will be monitored, can expire and recover (sceneExpired, sceneRecoveredFromExpiration) until monitoring disabled again (sceneExpirationMonitoringDisabled). More... | |
virtual void | sceneExpirationMonitoringDisabled (sceneId_t sceneId) override |
This method will be called whenever a scene which was previously monitored for expiration has requested to stop being monitored by sending a scene flush with invalid expiration timestamp (ramses::Scene::setExpirationTimestamp) and that flush was applied on renderer side. This method will also be called if a previously monitored scene is unsubscribed from the renderer, i.e. drops state to ramses::RendererSceneState::Available from previous ramses::RendererSceneState::Ready (or potentially after canceled transition to ramses::RendererSceneState::Ready). From this point on, the scene will not be monitored anymore, regardless if it previously expired or not, i.e. there will be no expiration events (sceneExpired, sceneRecoveredFromExpiration) until monitoring enabled again (sceneExpirationMonitoringEnabled). More... | |
virtual void | sceneExpired (sceneId_t sceneId) override |
This method will be called if a scene which is enabled for expiration monitoring (sceneExpirationMonitoringEnabled) is on renderer (not necessarily rendered) at a state that expired, i.e. current time is after the expiration timestamp set via ramses::Scene::setExpirationTimestamp. This callback is called only once when the scene expires even if scene stays expired in subsequent frames. When the scene is updated again with a new not anymore expired timestamp, sceneRecoveredFromExpiration is called. More... | |
virtual void | sceneRecoveredFromExpiration (sceneId_t sceneId) override |
This method will be called if a scene which previously expired (ramses::Scene::setExpirationTimestamp and sceneExpired) was updated with a new expiration timestamp that is not expired anymore. This callback is called only once when the scene switches state from expired to not expired. This callback is not called when monitoring becomes disabled (sceneExpirationMonitoringDisabled) while scene is expired (sceneExpired). More... | |
virtual void | streamAvailabilityChanged (waylandIviSurfaceId_t streamId, bool available) override |
This method will be called when a new IVI video stream becomes available, or when an existing stream disappears In terms of Wayland protocol, a stream is available if an "ivi_application" exists which has created a wayland surface (wl_surface) with ivi_id=streamId, and the surface has at least one attached non-nullptr buffer (i.e. renderable content). More... | |
virtual void | objectsPicked (sceneId_t sceneId, const pickableObjectId_t *pickedObjects, uint32_t pickedObjectsCount) override |
This method will be called when there were scene objects picked. A ramses::PickableObject can be 'picked' via a pick input event which is passed to ramses::RendererSceneControl when the scene is rendered (see ramses::RendererSceneControl::handlePickEvent). More... | |
![]() | |
virtual | ~IRendererSceneControlEventHandler ()=default |
Empty destructor. More... | |
Convenience empty implementation of IRendererSceneControlEventHandler that can be used to derive from when only subset of event handling methods need to be implemented.
|
inlineoverridevirtual |
This method will be called whenever a data consumer is created.
The event is emitted also for every data consumer in a newly available scene.
sceneId | The scene id of the scene on which the event occurred |
dataConsumerId | The created data consumer id |
Implements ramses::IRendererSceneControlEventHandler.
Reimplemented in SceneStateEventHandler.
|
inlineoverridevirtual |
This method will be called when a data consumer is destroyed.
The event is emitted only when data consumer destroyed, not if scene becomes unavailable as a whole.
sceneId | The scene id of the scene on which the event occurred |
dataConsumerId | The destroyed data consumer id |
Implements ramses::IRendererSceneControlEventHandler.
|
inlineoverridevirtual |
This method will be called when the data link between a data provider and data consumer is established.
This is a result of ramses::RendererSceneControl::linkData call.
providerScene | The ID of scene where the data provider slot is |
providerId | The ID of data provider which was linked |
consumerScene | The ID of scene where the data consumer slot is |
consumerId | The ID of data consumer which was linked |
success | True if succeeded, false otherwise - check renderer logs for concrete error message. |
Implements ramses::IRendererSceneControlEventHandler.
|
inlineoverridevirtual |
This method will be called whenever a data provider is created.
The event is emitted also for every data provider in a newly available scene.
sceneId | The scene id of the scene on which the event occurred |
dataProviderId | The created data provider id |
Implements ramses::IRendererSceneControlEventHandler.
Reimplemented in SceneStateEventHandler.
|
inlineoverridevirtual |
This method will be called when a data provider is destroyed.
The event is emitted only when data provider destroyed, not if scene becomes unavailable as a whole.
sceneId | The scene id of the scene on which the event occurred |
dataProviderId | The destroyed data provider id |
Implements ramses::IRendererSceneControlEventHandler.
|
inlineoverridevirtual |
This method will be called when the data link between a data provider and data consumer is destroyed.
This is a result of ramses::RendererSceneControl::unlinkData call.
consumerScene | The ID of scene where the data consumer slot is |
consumerId | The ID of data consumer which was unlinked |
success | True if succeeded, false otherwise - check renderer logs for concrete error message. |
Implements ramses::IRendererSceneControlEventHandler.
|
inlineoverridevirtual |
This method will be called when there were scene objects picked. A ramses::PickableObject can be 'picked' via a pick input event which is passed to ramses::RendererSceneControl when the scene is rendered (see ramses::RendererSceneControl::handlePickEvent).
[in] | sceneId | ID of scene to which the picked objects belong. |
[in] | pickedObjects | Pointer to first ID of the picked objects array. This array is valid only for the time of calling this method. |
[in] | pickedObjectsCount | Number of picked object IDs in the pickedObjects array. |
Implements ramses::IRendererSceneControlEventHandler.
|
inlineoverridevirtual |
This method will be called when the data link between offscreen buffer and scene's data slot is established.
This is a result of ramses::RendererSceneControl::linkOffscreenBuffer call.
offscreenBufferId | The ID of offscreen buffer which is linked as data provider |
consumerScene | The ID of scene where the data consumer slot is |
consumerId | The ID of data consumer where the offscreen buffer is linked to |
success | True if succeeded, false otherwise - check renderer logs for concrete error message. |
Implements ramses::IRendererSceneControlEventHandler.
|
inlineoverridevirtual |
This method will be called whenever a scene which was previously monitored for expiration has requested to stop being monitored by sending a scene flush with invalid expiration timestamp (ramses::Scene::setExpirationTimestamp) and that flush was applied on renderer side. This method will also be called if a previously monitored scene is unsubscribed from the renderer, i.e. drops state to ramses::RendererSceneState::Available from previous ramses::RendererSceneState::Ready (or potentially after canceled transition to ramses::RendererSceneState::Ready). From this point on, the scene will not be monitored anymore, regardless if it previously expired or not, i.e. there will be no expiration events (sceneExpired, sceneRecoveredFromExpiration) until monitoring enabled again (sceneExpirationMonitoringEnabled).
sceneId | The scene id of the scene that will not be monitored for expiration anymore |
Implements ramses::IRendererSceneControlEventHandler.
|
inlineoverridevirtual |
This method will be called whenever a scene which was not previously monitored for expiration has requested expiration monitoring by sending a scene flush with valid expiration timestamp (ramses::Scene::setExpirationTimestamp) and that flush was applied on renderer side. From this point on, the scene will be monitored, can expire and recover (sceneExpired, sceneRecoveredFromExpiration) until monitoring disabled again (sceneExpirationMonitoringDisabled).
sceneId | The scene id of the scene that will be monitored for expiration |
Implements ramses::IRendererSceneControlEventHandler.
|
inlineoverridevirtual |
This method will be called if a scene which is enabled for expiration monitoring (sceneExpirationMonitoringEnabled) is on renderer (not necessarily rendered) at a state that expired, i.e. current time is after the expiration timestamp set via ramses::Scene::setExpirationTimestamp. This callback is called only once when the scene expires even if scene stays expired in subsequent frames. When the scene is updated again with a new not anymore expired timestamp, sceneRecoveredFromExpiration is called.
sceneId | The scene id of the scene on which the event occurred |
Implements ramses::IRendererSceneControlEventHandler.
|
inlineoverridevirtual |
This method will be called after a flush with version tag (ramses::Scene::flush) has been applied.
sceneId | The scene id of the scene which the versioned flush belongs to |
sceneVersionTag | The version tag of the scene flush |
Implements ramses::IRendererSceneControlEventHandler.
|
inlineoverridevirtual |
This method will be called if a scene which previously expired (ramses::Scene::setExpirationTimestamp and sceneExpired) was updated with a new expiration timestamp that is not expired anymore. This callback is called only once when the scene switches state from expired to not expired. This callback is not called when monitoring becomes disabled (sceneExpirationMonitoringDisabled) while scene is expired (sceneExpired).
sceneId | The scene id of the scene on which the event occurred |
Implements ramses::IRendererSceneControlEventHandler.
|
inlineoverridevirtual |
This method will be called when state of a scene changes.
Typically this is a result of ramses::RendererSceneControl::setSceneState call but can be also triggered externally (e.g. scene was unpublished by client). Note that there can be multiple state change callbacks in a row depending on number of state transitions needed between the previous state and target state when calling ramses::RendererSceneControl::setSceneState.
Limitation: This callback will not be executed if there is no display created and running. All published scenes (Available state) will be announced only after a display is created and running. Also all published scenes will be announced again if display is destroyed and created again and it is the only display on renderer.
sceneId | The ID of scene with changed state |
state | New state of the scene |
Implements ramses::IRendererSceneControlEventHandler.
|
inlineoverridevirtual |
This method will be called when a new IVI video stream becomes available, or when an existing stream disappears In terms of Wayland protocol, a stream is available if an "ivi_application" exists which has created a wayland surface (wl_surface) with ivi_id=streamId, and the surface has at least one attached non-nullptr buffer (i.e. renderable content).
It is possible that the ivi_application does not update its surface (by providing new buffers/frames), but RAMSES has no way of knowing that, hence a stream is not reported unavailable in that case.
A surface becomes unavailable whenever either the ivi_application is closed or when it attached a nullptr buffer to the stream surface with id=streamId (i.e. actively told wayland that it should not render contents to this ivi surface).
streamId | The IVI stream id |
available | True if the stream became available, and false if it disappeared |
Implements ramses::IRendererSceneControlEventHandler.