API reference
API reference
Select your platform
No SDKs available
No versions available

IsdkSystemNativeApi Class

Modifiers: open
Wrapper around the native API calls. Provided as a separate class to allow for mocking in tests.

Signature

open class IsdkSystemNativeApi

Constructors

IsdkSystemNativeApi ()
Signature
constructor()

Properties

targetedRegionCallback : Function2?
[Get][Set]
Callback to be invoked when native code calls onTargetedRegion. Set by IsdkSystem to dispatch to registered listeners.
Signature
var targetedRegionCallback: (Long, Long) -> Unit?

Methods

destroy ()
Signature
open fun destroy()
enableDebugTools ( enable )
Signature
open fun enableDebugTools(enable: Boolean)
Parameters
enable: Boolean
enableGaze ( enable )
Signature
open fun enableGaze(enable: Boolean)
Parameters
enable: Boolean
enableHmdGazeFallback ( enable )
Signature
open fun enableHmdGazeFallback(enable: Boolean)
Parameters
enable: Boolean
enableTransformers ( enable )
Signature
open fun enableTransformers(enable: Boolean)
Parameters
enable: Boolean
getEventDecoratorId ( decoratorName )
Signature
open fun getEventDecoratorId(decoratorName: String): Long
Parameters
decoratorName: String
Returns
Long
getEventDecoratorValueLong ( pointerEventId , decoratorId )
Signature
open fun getEventDecoratorValueLong(pointerEventId: Int, decoratorId: Long): Long?
Parameters
pointerEventId: Int
decoratorId: Long
Returns
Long?
init ( sceneHandle )
Signature
open fun init(sceneHandle: Long)
Parameters
sceneHandle: Long
nativeClearUIRegions ( interactableInstanceId )
Signature
external fun nativeClearUIRegions(interactableInstanceId: Long)
Parameters
interactableInstanceId: Long
nativeGetInteractableInstanceId ( entityId )
Signature
external fun nativeGetInteractableInstanceId(entityId: Long): Long
Parameters
entityId: Long
Returns
Long
nativeUpdateUIRegionsPacked ( panelEntityId , regionCount , packedFloats , regionIds , flags )
Updates UI regions using packed primitive arrays for optimal JNI performance.
Signature
external fun nativeUpdateUIRegionsPacked(panelEntityId: Long, regionCount: Int, packedFloats: FloatArray, regionIds: LongArray, flags: IntArray)
Parameters
panelEntityId: Long  The entity ID of the panel
regionCount: Int  Number of regions in the arrays
packedFloats: FloatArray  Packed floats: 9 per region posX, posY, posZ, rotX, rotY, rotZ, rotW, width, height
regionIds: LongArray  Region IDs (1-indexed)
flags: IntArray  Bit-packed flags: bit 0 = clickable, bit 1 = focusable, bit 2 = scrollable
onTargetedRegion ( interactableInstanceId , regionId )
Called from native code when gaze targeting selects a specific UI region. Delegates to the registered callback if one is set.
Signature
open fun onTargetedRegion(interactableInstanceId: Long, regionId: Long)
Parameters
interactableInstanceId: Long  The C++ instance ID of the targeted interactable (panel)
regionId: Long  The ID of the targeted region within that interactable (1-indexed)
setPanelCollisionPriority ( entityId , priority )
Sets the collision priority for a panel identified by entity ID.
Higher priority values will win collision resolution when panels overlap at the same depth. This is used to implement layer zIndex behavior where panels with higher zIndex should receive pointer events even when they are at the same depth as other panels.
Signature
open fun setPanelCollisionPriority(entityId: Long, priority: Float)
Parameters
entityId: Long  The entity ID of the panel
priority: Float  The collision priority (typically the layer's zIndex value)
setScenePointerDistance ( distance )
Signature
open fun setScenePointerDistance(distance: Float)
Parameters
distance: Float
tick ( dataModel , deltaSeconds , currentTimeSeconds )
Signature
open fun tick(dataModel: Long, deltaSeconds: Double, currentTimeSeconds: Double): Array<PointerEvent>?
Parameters
dataModel: Long
deltaSeconds: Double
currentTimeSeconds: Double
Returns
Array?