# IAndroidXRModule

**This is an abstract class.**   

`#include <IAndroidXRModule.h>`

The public interface to this module.

In most cases, this interface is only public to sibling modules within this plugin.

## Summary

### Inheritance

Inherits from: `IModuleInterface`

| ### Public static functions ||
|---|---|
| `https://developer.android.com/develop/xr/unreal/reference/class/IAndroidXRModule#get()` | `https://developer.android.com/develop/xr/unreal/reference/class/IAndroidXRModule#class_i_android_x_r_module &` Singleton-like access to this module's interface. |
| `https://developer.android.com/develop/xr/unreal/reference/class/IAndroidXRModule#isavailable()` | `bool` Checks to see if this module is loaded and ready. |

| ### Public functions ||
|---|---|
| `https://developer.android.com/develop/xr/unreal/reference/class/IAndroidXRModule#begindebugutilslabelregion(const XrDebugUtilsLabelEXT & LabelInfo)=0` | `virtual bool` |
| `https://developer.android.com/develop/xr/unreal/reference/class/IAndroidXRModule#createdebugutilsmessenger(const XrDebugUtilsMessengerCreateInfoEXT & CreateInfo, XrDebugUtilsMessengerEXT & Messenger)=0` | `virtual bool` |
| `https://developer.android.com/develop/xr/unreal/reference/class/IAndroidXRModule#destroydebugutilsmessenger(XrDebugUtilsMessengerEXT & Messenger)=0` | `virtual bool` |
| `https://developer.android.com/develop/xr/unreal/reference/class/IAndroidXRModule#enddebugutilslabelregion()=0` | `virtual bool` |
| `https://developer.android.com/develop/xr/unreal/reference/class/IAndroidXRModule#enumeratedisplayrefreshrates(TArray< float > & DisplayRefreshRates)=0` | `virtual bool` |
| `https://developer.android.com/develop/xr/unreal/reference/class/IAndroidXRModule#getcamerapassthroughsupported()=0` | `virtual bool` |
| `https://developer.android.com/develop/xr/unreal/reference/class/IAndroidXRModule#getdisplayrefreshrate(float & DisplayRefreshRate)=0` | `virtual bool` |
| `https://developer.android.com/develop/xr/unreal/reference/class/IAndroidXRModule#getpassthroughcamerastate(https://developer.android.com/develop/xr/unreal/reference/other/AndroidXRTypes.h#eandroidxrpassthroughcamerastate & CameraState)=0` | `virtual bool` |
| `https://developer.android.com/develop/xr/unreal/reference/class/IAndroidXRModule#insertdebugutilslabel(const XrDebugUtilsLabelEXT & LabelInfo)=0` | `virtual bool` |
| `https://developer.android.com/develop/xr/unreal/reference/class/IAndroidXRModule#perfsettingssetperformancelevel(https://developer.android.com/develop/xr/unreal/reference/other/AndroidXRTypes.h#eandroidxrperfsettingsdomain SettingsDomain, https://developer.android.com/develop/xr/unreal/reference/other/AndroidXRTypes.h#eandroidxrperfsettingslevel SettingsLevel)=0` | `virtual bool` |
| `https://developer.android.com/develop/xr/unreal/reference/class/IAndroidXRModule#requestdisplayrefreshrate(float DisplayRefreshRate)=0` | `virtual bool` |
| `https://developer.android.com/develop/xr/unreal/reference/class/IAndroidXRModule#setandroidapplicationthread(https://developer.android.com/develop/xr/unreal/reference/other/AndroidXRTypes.h#eandroidxrandroidthreadtype ThreadType, uint32 ThreadID)=0` | `virtual bool` |
| `https://developer.android.com/develop/xr/unreal/reference/class/IAndroidXRModule#setdebugutilsobjectname(XrObjectType ObjectType, uint64 ObjectHandle, FString ObjectName)=0` | `virtual bool` |
| `https://developer.android.com/develop/xr/unreal/reference/class/IAndroidXRModule#submitdebugutilsmessage(XrDebugUtilsMessageSeverityFlagsEXT SeverityFlags, XrDebugUtilsMessageTypeFlagsEXT TypeFlags, const XrDebugUtilsMessengerCallbackDataEXT & CallbackData)=0` | `virtual bool` |

## Public static functions

### Get

```
IAndroidXRModule & Get()
```
Singleton-like access to this module's interface.

This is just for convenience! Beware of calling this during the shutdown phase, though. Your module might have been unloaded already.

<br />

| Details ||
|---|---|
| **Returns** | Returns singleton instance, loading the module on demand if needed |

### IsAvailable

```
bool IsAvailable()
```
Checks to see if this module is loaded and ready.

It is only valid to call [Get()](https://developer.android.com/develop/xr/unreal/reference/class/IAndroidXRModule#get) if [IsAvailable()](https://developer.android.com/develop/xr/unreal/reference/class/IAndroidXRModule#isavailable) returns true.

<br />

| Details ||
|---|---|
| **Returns** | True if the module is loaded and ready to use |

## Public functions

### BeginDebugUtilsLabelRegion

```
virtual bool BeginDebugUtilsLabelRegion(
  const XrDebugUtilsLabelEXT & LabelInfo
)=0
```

### CreateDebugUtilsMessenger

```
virtual bool CreateDebugUtilsMessenger(
  const XrDebugUtilsMessengerCreateInfoEXT & CreateInfo,
  XrDebugUtilsMessengerEXT & Messenger
)=0
```

### DestroyDebugUtilsMessenger

```
virtual bool DestroyDebugUtilsMessenger(
  XrDebugUtilsMessengerEXT & Messenger
)=0
```

### EndDebugUtilsLabelRegion

```
virtual bool EndDebugUtilsLabelRegion()=0
```

### EnumerateDisplayRefreshRates

```
virtual bool EnumerateDisplayRefreshRates(
  TArray< float > & DisplayRefreshRates
)=0
```

### GetCameraPassthroughSupported

```
virtual bool GetCameraPassthroughSupported()=0
```

### GetDisplayRefreshRate

```
virtual bool GetDisplayRefreshRate(
  float & DisplayRefreshRate
)=0
```

### GetPassthroughCameraState

```
virtual bool GetPassthroughCameraState(
  EAndroidXRPassthroughCameraState & CameraState
)=0
```

### InsertDebugUtilsLabel

```
virtual bool InsertDebugUtilsLabel(
  const XrDebugUtilsLabelEXT & LabelInfo
)=0
```

### PerfSettingsSetPerformanceLevel

```
virtual bool PerfSettingsSetPerformanceLevel(
  EAndroidXRPerfSettingsDomain SettingsDomain,
  EAndroidXRPerfSettingsLevel SettingsLevel
)=0
```

### RequestDisplayRefreshRate

```
virtual bool RequestDisplayRefreshRate(
  float DisplayRefreshRate
)=0
```

### SetAndroidApplicationThread

```
virtual bool SetAndroidApplicationThread(
  EAndroidXRAndroidThreadType ThreadType,
  uint32 ThreadID
)=0
```

### SetDebugUtilsObjectName

```
virtual bool SetDebugUtilsObjectName(
  XrObjectType ObjectType,
  uint64 ObjectHandle,
  FString ObjectName
)=0
```

### SubmitDebugUtilsMessage

```
virtual bool SubmitDebugUtilsMessage(
  XrDebugUtilsMessageSeverityFlagsEXT SeverityFlags,
  XrDebugUtilsMessageTypeFlagsEXT TypeFlags,
  const XrDebugUtilsMessengerCallbackDataEXT & CallbackData
)=0
```