XR_ANDROID_depth_texture

名称字符串

XR_ANDROID_depth_texture

扩展类型

实例扩展程序

已注册的扩展程序编号

703

修订版本

1

批准状态

未批准

扩展程序和版本依赖项

OpenXR 1.0

上次修改日期

2024-09-11

IP 状态

没有已知的 IP 权利主张。

创作贡献者

Sushant Kulkarni,Google
Cairn Overturf,Google
Spencer Quin,Google
Levana Chen,Google

概览

此扩展程序可让应用请求头戴式设备周围真实环境的深度图,并在创建时查询支持的深度分辨率。

此扩展程序旨在公开原始深度和平滑深度,以用于遮挡、命中测试和其他利用精确场景几何的任务,例如检测假脸。

备注

深度图由运行时生成,并使用 XrDepthSwapchainANDROID 与应用共享。在应用的整个生命周期内,运行时不得更改通过 xrEnumerateDepthResolutionsANDROID 返回的深度图像分辨率。

权限

此扩展程序会公开一个下采样的深度纹理,以缓解个人身份信息 (PII) 方面的担忧。Android 应用必须在清单中列出 android.permission.SCENE_UNDERSTANDING_FINE 权限,因为此扩展程序会暴露环境的几何信息。android.permission.SCENE_UNDERSTANDING_FINE 权限被视为危险权限。应用必须在运行时请求该权限才能使用以下函数:

(保护级别:危险)

检查系统功能

XrSystemDepthTrackingPropertiesANDROID 结构定义如下:

typedef struct XrSystemDepthTrackingPropertiesANDROID {
    XrStructureType    type;
    void*              next;
    XrBool32           supportsDepthTracking;
} XrSystemDepthTrackingPropertiesANDROID;

成员说明

  • type 是相应结构的 XrStructureType
  • nextNULL 或指向结构链中下一个结构的指针。核心 OpenXR 或此扩展程序中未定义任何此类结构。
  • supportsDepthTracking 是一个 XrBool32,用于指示当前系统是否支持深度跟踪。

应用可以通过在调用 xrGetSystemProperties 时使用 XrSystemDepthTrackingPropertiesANDROID 结构体扩展 XrSystemProperties 来检查系统是否支持深度跟踪。

当且仅当运行时针对 supportsDepthTracking 返回 XR_FALSE 时,该运行时必须xrCreateDepthSwapchainANDROID 返回 XR_ERROR_FEATURE_UNSUPPORTED

有效使用情况(隐式)

队列深度解决方案

xrEnumerateDepthResolutionsANDROID 函数的定义如下:

XrResult xrEnumerateDepthResolutionsANDROID(
    XrSession                                   session,
    uint32_t                                    resolutionCapacityInput,
    uint32_t*                                   resolutionCountOutput,
    XrDepthCameraResolutionANDROID*             resolutions);

参数说明

  • session 是枚举支持的深度分辨率的 XrSession
  • resolutionCapacityInputresolutions 的容量,或设为 0 以检索所需的容量。
  • resolutionCountOutput 是一个指针,指向写入的 uint64_t resolutions 数量;若 resolutionCapacityInput 容量不足,则指向所需的容量。
  • resolutions 是指向 XrDepthCameraResolutionANDROID 数组的指针,但如果 resolutionCapacityInput0,则可以NULL
  • 如需详细了解如何检索所需的 resolutions 大小,请参阅缓冲区大小参数部分。

xrEnumerateDepthResolutionsANDROID 会枚举当前会话支持的深度分辨率。深度分辨率按从最高到最低的运行时偏好顺序排列。应用使用其支持的最高偏好设置,以获得最佳性能和质量。

在会话的整个生命周期内,运行时必须始终从此枚举中返回相同的缓冲区内容。

有效使用情况(隐式)

  • XR_ANDROID_depth_texture 扩展程序必须先启用,然后才能调用 xrEnumerateDepthResolutionsANDROID
  • session 必须是有效的 XrSession 句柄
  • resolutionCountOutput 必须是指向 uint32_t 值的指针
  • 如果 resolutionCapacityInput 不是 0,则 resolutions 必须是指向 resolutionCapacityInputXrDepthCameraResolutionANDROID 值的数组的指针

返回代码

成功

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

失败

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_HANDLE_INVALID
  • XR_ERROR_INSTANCE_LOST
  • XR_ERROR_RUNTIME_FAILURE
  • XR_ERROR_SESSION_LOST
  • XR_ERROR_SIZE_INSUFFICIENT
  • XR_ERROR_VALIDATION_FAILURE

XrDepthCameraResolutionANDROID 枚举描述了创建 XrDepthSwapchainANDROID 时支持的深度分辨率。

typedef enum XrDepthCameraResolutionANDROID {
    XR_DEPTH_CAMERA_RESOLUTION_80x80_ANDROID = 0,
    XR_DEPTH_CAMERA_RESOLUTION_160x160_ANDROID = 1,
    XR_DEPTH_CAMERA_RESOLUTION_320x320_ANDROID = 2,
    XR_DEPTH_CAMERA_RESOLUTION_MAX_ENUM_ANDROID = 0x7FFFFFFF
} XrDepthCameraResolutionANDROID;

枚举值说明

  • XR_DEPTH_CAMERA_RESOLUTION_80x80_ANDROID - 深度图像和置信度图像的分辨率为 80x80。
  • XR_DEPTH_CAMERA_RESOLUTION_160x160_ANDROID - 深度图像和置信度图像的分辨率为 160x160。
  • XR_DEPTH_CAMERA_RESOLUTION_320x320_ANDROID - 深度图像和置信度图像的分辨率为 320x320。

创建深度交换链

XR_DEFINE_HANDLE(XrDepthSwapchainANDROID)

XrDepthSwapchainANDROID 是深度交换链句柄。

xrCreateDepthSwapchainANDROID 函数的定义如下:

XrResult xrCreateDepthSwapchainANDROID(
    XrSession                                   session,
    const XrDepthSwapchainCreateInfoANDROID*    createInfo,
    XrDepthSwapchainANDROID*                    swapchain);

参数说明

应用可以使用 xrCreateDepthSwapchainANDROID 函数来创建管理深度图像和置信度图像的深度交换链。

  • 如果系统不支持深度跟踪,运行时必须返回 XR_ERROR_FEATURE_UNSUPPORTED
  • 如果发出调用的应用未被授予所需权限,运行时必须返回 XR_ERROR_PERMISSION_INSUFFICIENT
  • 如果 XrDepthSwapchainCreateInfoANDROID 中指定的深度分辨率不受支持,则运行时必须返回 XR_ERROR_VALIDATION_FAILURE
  • 运行时仅在交换链创建时为 createInfo 设置了相应位时创建深度置信度图像。

返回的深度交换链句柄可以在后续 API 调用中使用。XrDepthSwapchainANDROID 句柄最终必须通过 xrDestroyDepthSwapchainANDROID 函数释放。

有效使用情况(隐式)

返回代码

成功

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

失败

  • XR_ERROR_FEATURE_UNSUPPORTED
  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_HANDLE_INVALID
  • XR_ERROR_INSTANCE_LOST
  • XR_ERROR_LIMIT_REACHED
  • XR_ERROR_OUT_OF_MEMORY
  • XR_ERROR_PERMISSION_INSUFFICIENT
  • XR_ERROR_RUNTIME_FAILURE
  • XR_ERROR_SESSION_LOST

XrDepthSwapchainCreateInfoANDROID 结构的定义如下:

typedef struct XrDepthSwapchainCreateInfoANDROID {
    XrStructureType                       type;
    const void*                           next;
    XrDepthCameraResolutionANDROID        resolution;
    XrDepthSwapchainCreateFlagsANDROID    createFlags;
} XrDepthSwapchainCreateInfoANDROID;

成员说明

当传递给 xrCreateDepthSwapchainANDROID 时,XrDepthSwapchainCreateInfoANDROID 结构会为 XrDepthSwapchainANDROID 提供创建选项。

有效使用情况(隐式)

XrDepthSwapchainCreateFlagsANDROID 指定了 XrDepthSwapchainANDROID 的创建选项。

typedef XrFlags64 XrDepthSwapchainCreateFlagsANDROID;

XrDepthSwapchainCreateFlagsANDROID 的有效位由 XrDepthSwapchainCreateFlagBitsANDROID 定义,具体如下:

// Flag bits for XrDepthSwapchainCreateFlagsANDROID
static const XrDepthSwapchainCreateFlagsANDROID XR_DEPTH_SWAPCHAIN_CREATE_SMOOTH_DEPTH_IMAGE_BIT_ANDROID = 0x00000001;
static const XrDepthSwapchainCreateFlagsANDROID XR_DEPTH_SWAPCHAIN_CREATE_SMOOTH_CONFIDENCE_IMAGE_BIT_ANDROID = 0x00000002;
static const XrDepthSwapchainCreateFlagsANDROID XR_DEPTH_SWAPCHAIN_CREATE_RAW_DEPTH_IMAGE_BIT_ANDROID = 0x00000004;
static const XrDepthSwapchainCreateFlagsANDROID XR_DEPTH_SWAPCHAIN_CREATE_RAW_CONFIDENCE_IMAGE_BIT_ANDROID = 0x00000008;

标志说明

  • XR_DEPTH_SWAPCHAIN_CREATE_SMOOTH_DEPTH_IMAGE_BIT_ANDROID - 表示交换链将提供平滑的深度图像。
  • XR_DEPTH_SWAPCHAIN_CREATE_SMOOTH_CONFIDENCE_IMAGE_BIT_ANDROID - 表示交换链将提供平滑的深度置信度图像。
  • XR_DEPTH_SWAPCHAIN_CREATE_RAW_DEPTH_IMAGE_BIT_ANDROID - 表示交换链将提供原始深度图像。
  • XR_DEPTH_SWAPCHAIN_CREATE_RAW_CONFIDENCE_IMAGE_BIT_ANDROID - 表示交换链将提供原始深度置信度映像。

xrDestroyDepthSwapchainANDROID 函数的定义如下:

XrResult xrDestroyDepthSwapchainANDROID(
    XrDepthSwapchainANDROID                     swapchain);

参数说明

xrDestroyDepthSwapchainANDROID 函数用于销毁深度交换链。在此调用之后,运行时可能会释放所有相关内存和资源。

有效使用情况(隐式)

线程安全

  • swapchain 及其任何子句柄的访问都必须在外部进行同步

返回代码

成功

  • XR_SUCCESS

失败

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_HANDLE_INVALID

访问深度纹理

xrEnumerateDepthSwapchainImagesANDROID 函数的定义如下:

XrResult xrEnumerateDepthSwapchainImagesANDROID(
    XrDepthSwapchainANDROID                     depthSwapchain,
    uint32_t                                    depthImageCapacityInput,
    uint32_t*                                   depthImageCountOutput,
    XrDepthSwapchainImageANDROID*               depthImages);

参数说明

  • depthSwapchain 是要从中获取图像的 XrDepthSwapchainANDROID
  • depthImageCapacityInputdepthImages 数组的容量,或设为 0 以请求获取所需的容量。
  • depthImageCountOutput 是一个指针,指向写入的 depthImages 数量;若 depthImageCapacityInput 容量不足,则指向所需的容量。
  • depthImages 是一个指向 XrDepthSwapchainImageANDROID 结构数组的指针。如果 depthImageCapacityInput 为 0,它可以NULL
  • 如需详细了解如何检索所需的 depthImages 大小,请参阅缓冲区大小参数部分。

xrEnumerateDepthSwapchainImagesANDROID 会填充一个 XrDepthSwapchainImageANDROID 结构数组。资源必须是常量,并且在 XrDepthSwapchainANDROID 的生命周期内有效。此函数的行为与 xrEnumerateSwapchainImages 类似。

在交换链的整个生命周期内,运行时 必须始终从此枚举中返回相同的缓冲区内容。

有效使用情况(隐式)

返回代码

成功

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

失败

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_HANDLE_INVALID
  • XR_ERROR_INSTANCE_LOST
  • XR_ERROR_RUNTIME_FAILURE
  • XR_ERROR_SESSION_LOST
  • XR_ERROR_SIZE_INSUFFICIENT
  • XR_ERROR_VALIDATION_FAILURE

XrDepthSwapchainImageANDROID 结构的定义如下:

typedef struct XrDepthSwapchainImageANDROID {
    XrStructureType    type;
    void*              next;
    const float*       rawDepthImage;
    const uint8_t*     rawDepthConfidenceImage;
    const float*       smoothDepthImage;
    const uint8_t*     smoothDepthConfidenceImage;
} XrDepthSwapchainImageANDROID;

成员说明

  • type 是相应结构的 XrStructureType
  • nextNULL 或指向结构链中下一个结构的指针。核心 OpenXR 或此扩展程序中未定义任何此类结构。
  • rawDepthImage 是运行时分配的左视图和右视图的原始深度图像的 NULL 或指针。这些值以米为单位。特殊值:0.0 表示原始深度中的无效或空深度像素,Inf 表示已知深度,实际上是无限远,
  • rawDepthConfidenceImageNULL,还是运行时分配的左视图和右视图的原始深度置信度图像的指针。
  • smoothDepthImage 是运行时分配的左视图和右视图的平滑深度图像的 NULL 或指针。这些值以米为单位。特殊值:0.0 表示平滑深度中的无效或空深度像素,Inf 表示已知深度,实际上是无限远。
  • smoothDepthConfidenceImageNULL,还是运行时分配的左视图和右视图的平滑深度置信度图像的指针。

图像缓冲区指针仅在交换链的生命周期内有效。交换链销毁后,指针将被视为悬空指针。

XrDepthSwapchainImageANDROID 表示来自可读 XrDepthSwapchainANDROID 的深度图像,这些图像是在调用 xrCreateDepthSwapchainANDROID 时,根据 XrDepthSwapchainCreateInfoANDROID :: resolutionXrDepthSwapchainCreateInfoANDROID :: createFlags 中的描述分配的。对于每个深度图像:

有效使用情况(隐式)

xrAcquireDepthSwapchainImagesANDROID 函数的定义如下:

XrResult xrAcquireDepthSwapchainImagesANDROID(
    XrDepthSwapchainANDROID                     depthSwapchain,
    const XrDepthAcquireInfoANDROID*            acquireInfo,
    XrDepthAcquireResultANDROID*                acquireResult);

参数说明

应用可以使用 xrAcquireDepthSwapchainImagesANDROID 函数将最新的可用交换链图像索引(即 XrDepthAcquireResultANDROID :: acquiredIndex )获取到由 xrEnumerateDepthSwapchainImagesANDROID 枚举的 XrDepthSwapchainImageANDROID 数组中。返回的 XrDepthAcquireResultANDROID 还包含其他信息,例如解释深度数据所需的视野范围和姿势。在下次调用 xrAcquireDepthSwapchainImagesANDROID 之前,可以安全地从映像数组中的已获取槽读取数据。

在会话中,任何一对对应的 xrBeginFramexrEndFrame 调用之间,对 xrAcquireDepthSwapchainImagesANDROID 的调用不得超过一次。

有效使用情况(隐式)

返回代码

成功

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

失败

  • XR_ERROR_CALL_ORDER_INVALID
  • XR_ERROR_DEPTH_NOT_AVAILABLE_ANDROID
  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_HANDLE_INVALID
  • XR_ERROR_INSTANCE_LOST
  • XR_ERROR_LIMIT_REACHED
  • XR_ERROR_RUNTIME_FAILURE
  • XR_ERROR_SESSION_LOST
  • XR_ERROR_TIME_INVALID
  • XR_ERROR_VALIDATION_FAILURE

XrDepthAcquireInfoANDROID 结构的定义如下:

typedef struct XrDepthAcquireInfoANDROID {
    XrStructureType    type;
    const void*        next;
    XrSpace            space;
    XrTime             displayTime;
} XrDepthAcquireInfoANDROID;

成员说明

  • type 是相应结构的 XrStructureType
  • nextNULL 或指向结构链中下一个结构的指针。核心 OpenXR 或此扩展程序中未定义任何此类结构。
  • space 是一个 XrSpace,用于定义 XrDepthAcquireResultANDROID :: views 中返回的姿势的参考系。
  • displayTime 是一个 XrTime,用于指定计算 XrDepthAcquireResultANDROID :: views 中返回的姿势所用的时间。应用传递当前帧的预测展示时间。

有效使用情况(隐式)

XrDepthAcquireResultANDROID 结构定义如下:

typedef struct XrDepthAcquireResultANDROID {
    XrStructureType       type;
    const void*           next;
    uint32_t              acquiredIndex;
    XrTime                exposureTimestamp;
    XrDepthViewANDROID    views[2];
} XrDepthAcquireResultANDROID;

成员说明

  • type 是相应结构的 XrStructureType
  • nextNULL 或指向结构链中下一个结构的指针。核心 OpenXR 或此扩展程序中未定义任何此类结构。
  • acquiredIndex 是所获取纹理在 xrEnumerateDepthSwapchainImagesANDROID 枚举的 XrDepthSwapchainImageANDROID 数组中的索引。
  • exposureTimestamp 是一个 XrTime,用于指定捕获深度图的时间。
  • views 是一个包含两个 XrDepthViewANDROID 的数组,每个眼睛对应一个,其中索引 0 是左眼,索引 1 是右眼。

有效使用情况(隐式)

XrDepthViewANDROID 结构的定义如下:

typedef struct XrDepthViewANDROID {
    XrStructureType    type;
    const void*        next;
    XrFovf             fov;
    XrPosef            pose;
} XrDepthViewANDROID;

成员说明

  • type 是相应结构的 XrStructureType
  • nextNULL 或指向结构链中下一个结构的指针。核心 OpenXR 或此扩展程序中未定义任何此类结构。
  • fov 是一个 XrFovf,用于指定生成此视图时使用的视野范围。视图绝不会水平或垂直翻转。
  • pose 是一个 XrPosef,用于指定渲染深度图的姿势。参考帧在 XrDepthAcquireInfoANDROID 中指定。

有效使用情况(隐式)

深度跟踪的示例代码

以下示例代码演示了如何获取深度图像,以及如何使用深度值将深度图像坐标映射到舞台空间。

XrInstance instance;  // previously initialized
XrSystemId systemId;  // previously initialized
XrSession session; // previously initialized
XrSpace stageSpace; // space created for XR_REFERENCE_SPACE_TYPE_STAGE.

// The function pointers are previously initialized using xrGetInstanceProcAddr.
PFN_xrCreateDepthSwapchainANDROID xrCreateDepthSwapchainANDROID; // previously initialized
PFN_xrDestroyDepthSwapchainANDROID xrDestroyDepthSwapchainANDROID; // previously initialized
PFN_xrEnumerateDepthSwapchainImagesANDROID xrEnumerateDepthSwapchainImagesANDROID; // previously initialized
PFN_xrEnumerateDepthResolutionsANDROID xrEnumerateDepthResolutionsANDROID; // previously initialized
PFN_xrAcquireDepthSwapchainImagesANDROID xrAcquireDepthSwapchainImagesANDROID; // previously initialized

float tanf(float);

// Inspect system capability
XrSystemProperties properties{XR_TYPE_SYSTEM_PROPERTIES};
XrSystemDepthTrackingPropertiesANDROID depthTrackingProperties{XR_TYPE_SYSTEM_DEPTH_TRACKING_PROPERTIES_ANDROID};
properties.next = &depthTrackingProperties;
CHK_XR(xrGetSystemProperties(instance, systemId, &properties));
if (!depthTrackingProperties.supportsDepthTracking) {
  // depth tracking is not supported.
  return;
}

// Query the supported depth resolution.
XrDepthCameraResolutionANDROID supportedDepthResolution;
uint32_t supportedResolutionCount = 0;
CHK_XR(xrEnumerateDepthResolutionsANDROID(
    session, 1, &supportedResolutionCount, &supportedDepthResolution));

// Define metadata to access the raw and smooth depth along with confidences.
XrDepthSwapchainCreateInfoANDROID swapchainCreateInfo = {
  .type = XR_TYPE_DEPTH_SWAPCHAIN_CREATE_INFO_ANDROID,
  .next = nullptr,
  // Use the resolution supported by the runtime.
  .resolution = supportedDepthResolution,
  .createFlags =
    XR_DEPTH_SWAPCHAIN_CREATE_SMOOTH_DEPTH_IMAGE_BIT_ANDROID |
    XR_DEPTH_SWAPCHAIN_CREATE_SMOOTH_CONFIDENCE_IMAGE_BIT_ANDROID |
    XR_DEPTH_SWAPCHAIN_CREATE_RAW_DEPTH_IMAGE_BIT_ANDROID |
    XR_DEPTH_SWAPCHAIN_CREATE_RAW_CONFIDENCE_IMAGE_BIT_ANDROID,
};

XrDepthSwapchainANDROID depthSwapchain;
CHK_XR(xrCreateDepthSwapchainANDROID(
    session, &swapchainCreateInfo, &depthSwapchain));

// Enumerate depth images.
uint32_t imageCountOutput = 0;
CHK_XR(xrEnumerateDepthSwapchainImagesANDROID(
    depthSwapchain, 0, &imageCountOutput, nullptr));
std::vector<XrDepthSwapchainImageANDROID> depthImages(imageCountOutput);
for (int i = 0; i < imageCountOutput; i++) {
  depthImages[i].type = XR_TYPE_DEPTH_SWAPCHAIN_IMAGE_ANDROID;
}
CHK_XR(xrEnumerateDepthSwapchainImagesANDROID(
  depthSwapchain, imageCountOutput, &imageCountOutput, depthImages.data()));

while (1) {
    // ...
    // For every frame in frame loop
    // ...

    XrFrameState frameState;  // previously returned from xrWaitFrame
    const XrTime time = frameState.predictedDisplayTime;

    XrDepthAcquireInfoANDROID acquireInfo = {
        .type = XR_TYPE_DEPTH_ACQUIRE_INFO_ANDROID,
        .space = stageSpace,
        .displayTime = time
    };
    XrDepthAcquireResultANDROID acquireResult = {
        .type = XR_TYPE_DEPTH_ACQUIRE_RESULT_ANDROID,
    };
    CHK_XR(xrAcquireDepthSwapchainImagesANDROID(
        depthSwapchain, &acquireInfo, &acquireResult));

    // Each value in a depth image corresponds to a point in the real world.
    // The sample code below shows how to find the stageSpace position of
    // the point corresponding to a particular value in the depth image.

    // For this sample code, assume we are using a right handed coordinate system
    // with +X to the right, +Y up and -Z forward.

    XrDepthSwapchainImageANDROID *image =
        &depthImages[acquireResult.acquiredIndex];

    // Assume supported resolution is XR_DEPTH_CAMERA_RESOLUTION_160x160_ANDROID.
    const int imageResolution = 160;
    int imageY = 80; // value in [0, imageResolution)
    int imageX = 80; // value in [0, imageResolution)

    // Get depth value from left eye.
    // A right depth value is obtained with the following expression:
    // depthR = image->rawDepthImage[imageResolution*imageResolution+i*imageResolution+j]
    float depthL = image->rawDepthImage[imageY*imageResolution + imageX];
    XrDepthViewANDROID viewL = acquireResult.views[0];

    float tanL = tanf(viewL.fov.angleLeft);
    float tanR = tanf(viewL.fov.angleRight);
    float tanU = tanf(viewL.fov.angleUp);
    float tanD = tanf(viewL.fov.angleDown);

    float s = (imageX + 0.5f) / (float)imageResolution;
    float t = (imageY + 0.5f) / (float)imageResolution;

    // Calculate the depth camera space position of the point
    // corresponding to this depth value.
    XrVector3f posInCameraSpace;
    posInCameraSpace.z = -depthL;
    posInCameraSpace.x = (tanL + (tanR - tanL)*s)*depthL;
    posInCameraSpace.y = (tanD + (tanU - tanD)*t)*depthL;

    XrPosef depthCameraPoseL = viewL.pose;
    // Transform posInCameraSpace by depthCameraPoseL

    // ...
    // Finish frame loop
    // ...
}

新的对象类型

新命令

新结构

新枚举

新位掩码

新的枚举常量

  • XR_ANDROID_DEPTH_TEXTURE_EXTENSION_NAME
  • XR_ANDROID_depth_texture_SPEC_VERSION
  • 扩展 XrObjectType

    • XR_OBJECT_TYPE_DEPTH_SWAPCHAIN_ANDROID
  • 扩展 XrResult

    • XR_ERROR_DEPTH_NOT_AVAILABLE_ANDROID
  • 扩展 XrStructureType

    • XR_TYPE_DEPTH_ACQUIRE_INFO_ANDROID
    • XR_TYPE_DEPTH_ACQUIRE_RESULT_ANDROID
    • XR_TYPE_DEPTH_SWAPCHAIN_CREATE_INFO_ANDROID
    • XR_TYPE_DEPTH_SWAPCHAIN_IMAGE_ANDROID
    • XR_TYPE_DEPTH_VIEW_ANDROID
    • XR_TYPE_SYSTEM_DEPTH_TRACKING_PROPERTIES_ANDROID

问题

版本记录

  • 修订版本 1,2024 年 9 月 9 日(Levana Chen)

    • 初始扩展程序说明