OpenXR-Erweiterung „XR_ANDROID_trackables“

Namensstring

XR_ANDROID_trackables

Erweiterungstyp

Instanzerweiterung

Registrierte Durchwahlnummer

456

Revision

1

Erweiterungs- und Versionsabhängigkeiten

OpenXR 1.0

Datum der letzten Änderung

2024-09-30

IP-Status

Es sind keine Ansprüche aufgrund von Urheberrechten bekannt.

Mitwirkende

Spencer Quin, Google

Nihav Jain, Google

John Pursey, Google

Jared Finder, Google

Levana Chen, Google

Kenny Vercaemer, Google

Übersicht

Mit dieser Erweiterung kann die App auf Tracker in der physischen Umgebung zugreifen und an einem Tracker befestigte Anker erstellen.

Mit dieser Erweiterung werden Flugzeuge definiert. Andere Erweiterungen können zusätzliche Arten hinzufügen, die erfasst werden können. Mit XR_ANDROID_trackables_object werden beispielsweise Objekt-Trackables hinzugefügt und mit XR_ANDROID_depth_texture werden Tiefenbuffer hinzugefügt, die ein Raytracing zu beliebigen Punkten in der Umgebung ermöglichen.

Ein Trackable ist ein Objekt, das in der physischen Umgebung erfasst wird (siehe XrTrackableTypeANDROID):

  • eine Fläche (z.B. Wand, Boden, Decke, Tisch)
  • ein Objekt (z.B. Tastatur, Maus, Laptop)

Einen trackbaren Tracker erstellen

Ein XrTrackableTrackerANDROID ist ein Handle, der die Ressourcen darstellt, die zum Erkennen und Aktualisieren von Trackern eines bestimmten XrTrackableTypeANDROID in der Umgebung erforderlich sind.

XR_DEFINE_HANDLE(XrTrackableTrackerANDROID)

Die Funktion xrCreateTrackableTrackerANDROID ist so definiert:

XrResult xrCreateTrackableTrackerANDROID(
    XrSession                                   session,
    const XrTrackableTrackerCreateInfoANDROID*  createInfo,
    XrTrackableTrackerANDROID*                  trackableTracker);

Parameterbeschreibungen

Die Anwendung kann die Funktion xrCreateTrackableTrackerANDROID verwenden, um einen trackbaren Tracker zu erstellen.

  • XR_ERROR_FEATURE_UNSUPPORTED wird zurückgegeben, wenn das System keine Tracker des angegebenen Typs unterstützt.
  • XR_ERROR_PERMISSION_INSUFFICIENT wird zurückgegeben, wenn der anrufenden App die erforderlichen Berechtigungen nicht gewährt wurden.

Die Anwendung kann den zurückgegebenen Tracker-Handle in nachfolgenden API-Aufrufen verwenden. Der XrTrackableTrackerANDROID-Handle muss mit der Funktion xrDestroyTrackableTrackerANDROID freigegeben werden.

Gültige Verwendung (implizit)

Rückgabecodes

Erfolg

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

Fehler

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

Die Struktur XrTrackableTrackerCreateInfoANDROID ist so definiert:

typedef struct XrTrackableTrackerCreateInfoANDROID {
    XrStructureType           type;
    void*                     next;
    XrTrackableTypeANDROID    trackableType;
} XrTrackableTrackerCreateInfoANDROID;

Beschreibungen von Mitgliedern

  • type ist der XrStructureType dieser Struktur.
  • next ist NULL oder ein Zeiger auf die nächste Struktur in einer Strukturkette. Solche Strukturen sind in OpenXR oder dieser Erweiterung nicht definiert.
  • trackableType ist der XrTrackableTypeANDROID, der vom Tracker erfasst wird.

Die Struktur XrTrackableTrackerCreateInfoANDROID bietet Erstellungsoptionen für den XrTrackableTrackerANDROID, wenn sie an xrCreateTrackableTrackerANDROID übergeben wird.

In Erweiterungen können Strukturen definiert werden, die an next angehängt werden können, um eine zusätzliche Konfiguration für die trackbaren Tracker zu ermöglichen.

Gültige Verwendung (implizit)

Die Aufzählung XrTrackableTypeANDROID ist so definiert:

typedef enum XrTrackableTypeANDROID {
    XR_TRACKABLE_TYPE_NOT_VALID_ANDROID = 0,
    XR_TRACKABLE_TYPE_PLANE_ANDROID = 1,
    XR_TRACKABLE_TYPE_DEPTH_ANDROID = 1000463000,
    XR_TRACKABLE_TYPE_OBJECT_ANDROID = 1000466000
} XrTrackableTypeANDROID;

Die Funktion xrDestroyTrackableTrackerANDROID ist so definiert:

XrResult xrDestroyTrackableTrackerANDROID(
    XrTrackableTrackerANDROID                   trackableTracker);

Parameterbeschreibungen

Die Funktion xrDestroyTrackableTrackerANDROID zerstört den Trackable-Tracker.

Wenn es keinen anderen gültigen XrTrackableTrackerANDROID gibt, der mit demselben XrTrackableTypeANDROID erstellt wurde, deaktiviert das System möglicherweise die für diesen Trackable-Typ erforderlichen Tracking-Dienste, um Systemressourcen zu sparen.

Gültige Verwendung (implizit)

Threadsicherheit

  • Der Zugriff auf trackableTracker und alle untergeordneten Handles muss extern synchronisiert werden.

Rückgabecodes

Erfolg

  • XR_SUCCESS

Fehler

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_HANDLE_INVALID

Alle Tracker abrufen

Das XrTrackableANDROID-Atom ist definiert als:

XR_DEFINE_ATOM(XrTrackableANDROID)

XrTrackableANDROID wird verwendet, um ein einzelnes Trackable zu repräsentieren, und ist nur innerhalb des Lebenszyklus des zugehörigen XrTrackableTrackerANDROID gültig.

Die Funktion xrGetAllTrackablesANDROID ist so definiert:

XrResult xrGetAllTrackablesANDROID(
    XrTrackableTrackerANDROID                   trackableTracker,
    uint32_t                                    trackableCapacityInput,
    uint32_t*                                   trackableCountOutput,
    XrTrackableANDROID*                         trackables);

Parameterbeschreibungen

  • trackableTracker ist der XrTrackableTrackerANDROID, der abgefragt werden soll.

  • trackableCapacityInput ist die Kapazität des trackables-Arrays oder 0, um eine Anfrage zum Abrufen der erforderlichen Kapazität anzugeben.

  • trackableCountOutput ist ein Verweis auf die Anzahl der geschriebenen trackables oder ein Verweis auf die erforderliche Kapazität, falls trackables nicht ausreicht.

  • trackables ist ein Verweis auf ein Array von XrTrackableANDROID. Es kann NULL sein, wenn trackableCapacityInput 0 ist.

  • Eine ausführliche Beschreibung zum Abrufen der erforderlichen trackables-Größe findest du im Abschnitt Parameter für die Puffergröße.

xrGetAllTrackablesANDROID füllt ein Array mit XrTrackableANDROID, das die in der Umgebung gefundenen Trackables darstellt. Der XrTrackableTypeANDROID der zurückgegebenen trackables muss mit dem XrTrackableTypeANDROID der trackableTracker übereinstimmen.

Einsehbares Flugzeug

Die Funktion xrGetTrackablePlaneANDROID ist so definiert:

XrResult xrGetTrackablePlaneANDROID(
    XrTrackableTrackerANDROID                   trackableTracker,
    const XrTrackableGetInfoANDROID*            getInfo,
    XrTrackablePlaneANDROID*                    planeOutput);

Parameterbeschreibungen

Die Funktion xrGetTrackablePlaneANDROID gibt Details zur trackbaren Ebene zurück, z. B. ihre Geometrie, Ausrichtung und den Tracking-Status.

Die Informationen zur Ebene werden mithilfe von XrTrackableGetInfoANDROID::time, XrTrackableGetInfoANDROID::baseSpace aufgelöst und relativ zum Basisbereich zum Zeitpunkt des Aufrufs von xrGetTrackablePlaneANDROID angegeben.

Gültige Verwendung (implizit)

Rückgabecodes

Erfolg

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

Fehler

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

Die Struktur XrTrackableGetInfoANDROID ist so definiert:

typedef struct XrTrackableGetInfoANDROID {
    XrStructureType       type;
    void*                 next;
    XrTrackableANDROID    trackable;
    XrSpace               baseSpace;
    XrTime                time;
} XrTrackableGetInfoANDROID;

Beschreibungen von Mitgliedern

  • type ist der XrStructureType dieser Struktur.
  • next ist NULL oder ein Zeiger auf die nächste Struktur in einer Strukturkette. Solche Strukturen sind in OpenXR oder dieser Erweiterung nicht definiert.
  • trackable ist die XrTrackableANDROID-Ebene, die abgefragt werden soll.
  • baseSpace Die Flugzeugpose ist dann relativ zu diesem XrSpace bei time.
  • time ist die XrTime, an der die Koordinaten relativ zur baseSpace ausgewertet werden sollen.

Die Struktur XrTrackableGetInfoANDROID bietet Abfrageoptionen, wenn sie an xrGetTrackablePlaneANDROID übergeben wird. trackable muss mit dem trackableTracker übereinstimmen, das in xrGetTrackablePlaneANDROID verwendet wird.

XR_ERROR_MISMATCHING_TRACKABLE_TYPE_ANDROID wird zurückgegeben, wenn der trackbare Typ der trackable nicht XR_TRACKABLE_TYPE_PLANE_ANDROID ist.

Gültige Verwendung (implizit)

Die Struktur XrTrackablePlaneANDROID ist so definiert:

typedef struct XrTrackablePlaneANDROID {
    XrStructureType           type;
    void*                     next;
    XrTrackingStateANDROID    trackingState;
    XrPosef                   centerPose;
    XrExtent2Df               extents;
    XrPlaneTypeANDROID        planeType;
    XrPlaneLabelANDROID       planeLabel;
    XrTrackableANDROID        subsumedByPlane;
    XrTime                    lastUpdatedTime;
    uint32_t                  vertexCapacityInput;
    uint32_t*                 vertexCountOutput;
    XrVector2f*               vertices;
} XrTrackablePlaneANDROID;

Beschreibungen von Mitgliedern

  • type ist der XrStructureType dieser Struktur.
  • next ist NULL oder ein Zeiger auf die nächste Struktur in einer Strukturkette. Solche Strukturen sind in OpenXR oder dieser Erweiterung nicht definiert.
  • trackingState ist der XrTrackingStateANDROID des Flugzeugs.
  • centerPose ist ein XrPosef, das die Position und Ausrichtung der Ebene im Referenzrahmen des entsprechenden XrTrackableGetInfoANDROID::baseSpace definiert. Eine Identitätsorientierung stellt hier Koordinatenaxes dar, bei denen +Y parallel zur Normale der Ebene ist.
  • extents ist die XrExtent2Df-Dimension der Ebene.
  • planeType ist der XrPlaneTypeANDROID, den die Laufzeit für diese Ebene festgelegt hat.
  • planeLabel ist das XrPlaneLabelANDROID, das die Laufzeit für diese Ebene festgelegt hat.
  • subsumedByPlane ist die XrTrackableANDROID der Ebene, die diese Ebene umfasst (XR_NULL_TRACKABLE_ANDROID, wenn keine vorhanden ist).
  • lastUpdatedTime ist die XrTime der letzten Aktualisierung des Plans.
  • vertexCapacityInput ist die Kapazität des vertices-Arrays oder 0, um eine Anfrage zum Abrufen der erforderlichen Kapazität anzugeben.
  • vertexCountOutput ist ein Verweis auf die Anzahl der geschriebenen vertices oder ein Verweis auf die erforderliche Kapazität, falls vertices nicht ausreicht.
  • vertices ist ein Verweis auf ein Array von XrVector2f. Es kann NULL sein, wenn vertexCapacityInput 0 ist. Die Eckpunkte werden gegen den Uhrzeigersinn angeordnet. Das Polygon darf konkav sein und darf sich nicht selbst schneiden.
  • Eine ausführliche Beschreibung zum Abrufen der erforderlichen vertices-Größe findest du im Abschnitt Parameter für die Puffergröße.

Gültige Verwendung (implizit)

Die XrTrackingStateANDROID-Aufzählung beschreibt den Tracking-Status eines XrTrackableANDROID.

typedef enum XrTrackingStateANDROID {
    XR_TRACKING_STATE_PAUSED_ANDROID = 0,
    XR_TRACKING_STATE_STOPPED_ANDROID = 1,
    XR_TRACKING_STATE_TRACKING_ANDROID = 2
} XrTrackingStateANDROID;

XrTrackingStateANDROID

Beschreibung

XR_TRACKING_STATE_PAUSED_ANDROID

Das Tracking für das Element oder den Anker ist pausiert, kann aber in Zukunft fortgesetzt werden.

XR_TRACKING_STATE_STOPPED_ANDROID

Das Tracking für dieses Trackable wurde beendet und wird nie wieder fortgesetzt.

XR_TRACKING_STATE_TRACKING_ANDROID

Das Objekt wird erfasst und seine Pose ist aktuell.

Die XrPlaneTypeANDROID-Enumeration ist der Typ eines XrTrackableANDROID-Flugzeugs.

typedef enum XrPlaneTypeANDROID {
    XR_PLANE_TYPE_HORIZONTAL_DOWNWARD_FACING_ANDROID = 0,
    XR_PLANE_TYPE_HORIZONTAL_UPWARD_FACING_ANDROID = 1,
    XR_PLANE_TYPE_VERTICAL_ANDROID = 2,
    XR_PLANE_TYPE_ARBITRARY_ANDROID = 3
} XrPlaneTypeANDROID;

Die XrPlaneLabelANDROID-Enumeration ist ein Label für eine XrTrackableANDROID-Ebene.

typedef enum XrPlaneLabelANDROID {
    XR_PLANE_LABEL_UNKNOWN_ANDROID = 0,
    XR_PLANE_LABEL_WALL_ANDROID = 1,
    XR_PLANE_LABEL_FLOOR_ANDROID = 2,
    XR_PLANE_LABEL_CEILING_ANDROID = 3,
    XR_PLANE_LABEL_TABLE_ANDROID = 4
} XrPlaneLabelANDROID;

Ankerbereich erstellen

XrResult xrCreateAnchorSpaceANDROID(
    XrSession                                   session,
    const XrAnchorSpaceCreateInfoANDROID*       createInfo,
    XrSpace*                                    anchorOutput);

Parameterbeschreibungen

  • session ist die XrSession, die den Ankerbereich erstellt.
  • createInfo ist ein Verweis auf ein XrAnchorSpaceCreateInfoANDROID-Objekt mit Parametern, die zum Erstellen des Ankerbereichs verwendet werden.
  • anchorOutput ist ein Verweis auf einen Handle, über den der erstellte XrSpace zurückgegeben wird.

Zu jedem Zeitpunkt werden sowohl die Position als auch die Richtung des Ankers erfasst oder nicht erfasst. Das bedeutet, dass sowohl XR_SPACE_LOCATION_POSITION_TRACKED_BIT als auch XR_SPACE_LOCATION_ORIENTATION_TRACKED_BIT festgelegt oder beide gelöscht werden müssen, wenn die Anwendung xrLocateSpace oder xrLocateSpaces für anchorOutput aufruft.

Die Anwendung muss den zurückgegebenen XrSpace mit xrDestroySpace freigeben.

  • XR_ERROR_FEATURE_UNSUPPORTED muss zurückgegeben werden, wenn das System keine Anker unterstützt.
  • XR_ERROR_TRACKABLE_TYPE_NOT_SUPPORTED_ANDROID muss zurückgegeben werden, wenn die jeweilige Ankeranbringung nicht unterstützt wird.

Gültige Verwendung (implizit)

Rückgabecodes

Erfolg

  • XR_SUCCESS
  • XR_SESSION_LOSS_PENDING

Fehler

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_TRACKABLE_TYPE_NOT_SUPPORTED_ANDROID
  • XR_ERROR_VALIDATION_FAILURE
  • XR_ERROR_RUNTIME_FAILURE
  • XR_ERROR_HANDLE_INVALID
  • XR_ERROR_INSTANCE_LOST
  • XR_ERROR_SESSION_LOST
  • XR_ERROR_LIMIT_REACHED
  • XR_ERROR_POSE_INVALID
  • XR_ERROR_TIME_INVALID
  • XR_ERROR_OUT_OF_MEMORY

Die Struktur XrAnchorSpaceCreateInfoANDROID ist so definiert:

typedef struct XrAnchorSpaceCreateInfoANDROID {
    XrStructureType       type;
    void*                 next;
    XrSpace               space;
    XrTime                time;
    XrPosef               pose;
    XrTrackableANDROID    trackable;
} XrAnchorSpaceCreateInfoANDROID;

Beschreibungen von Mitgliedern

  • type ist der XrStructureType dieser Struktur.
  • next ist NULL oder ein Zeiger auf die nächste Struktur in einer Strukturkette. Solche Strukturen sind in OpenXR oder dieser Erweiterung nicht definiert.
  • space ist der XrSpace, in dem die Markierung erstellt wird.
  • time ist der XrTime der Erstellung des Ankers.
  • pose ist die XrPosef des Ankers.
  • trackable ist die XrTrackableANDROID, an der der Anker befestigt wird. Es kann XR_NULL_TRACKABLE_ANDROID € kosten, einen räumlichen Anker zu erstellen.

Gültige Verwendung (implizit)

Beispielcode zum Abrufen aller Tracker

Im folgenden Beispielcode wird gezeigt, wie alle Tracker eines bestimmten Typs abgerufen werden.

XrSession session; // previously initialized

// The function pointers are previously initialized using xrGetInstanceProcAddr.
PFN_xrCreateTrackableTrackerANDROID xrCreateTrackableTrackerANDROID; // previously initialized
PFN_xrGetAllTrackablesANDROID xrGetAllTrackablesANDROID; // previously initialized
PFN_xrDestroyTrackableTrackerANDROID xrDestroyTrackableTrackerANDROID; // previously initialized

XrTrackableTrackerCreateInfoANDROID createInfo{XR_TYPE_TRACKABLE_TRACKER_CREATE_INFO_ANDROID};
createInfo.trackableType = XR_TRACKABLE_TYPE_PLANE_ANDROID;
XrTrackableTrackerANDROID planeTrackableTracker;
XrResult result = xrCreateTrackableTrackerANDROID(
  session,
  &createInfo,
  &planeTrackableTracker);
if (result != XR_SUCCESS) { /* Handle failures. */ }

uint32_t trackableCountOutput = 0;
std::vector<XrTrackableANDROID> allPlaneTrackables;

// Query the number of trackables available.
result = xrGetAllTrackablesANDROID(
  planeTrackableTracker,
  0,
  &trackableCountOutput,
  nullptr
);

if (result == XR_SUCCESS) {
  allPlaneTrackables.resize(trackableCountOutput, XR_NULL_HANDLE);

  // Fetch the actual trackable handles in the appropriately resized array.
  result = xrGetAllTrackablesANDROID(
    planeTrackableTracker,
    trackableCountOutput,
    &trackableCountOutput,
    allPlaneTrackables.data());

  if (result == XR_SUCCESS) {
    for (XrTrackableANDROID trackable : allPlaneTrackables) {
      // You now have all trackables of the specified type.
    }
  }
}

// Release trackable tracker.
result = xrDestroyTrackableTrackerANDROID(planeTrackableTracker);

Beispielcode zum Abrufen eines trackbaren Flugobjekts

Im folgenden Beispielcode wird gezeigt, wie Sie eine trackbare Ebene aus einer vorhandenen XrTrackableANDROID abrufen, die aus einem Trefferergebnis XR_ANDROID_raycast oder xrGetTrackablesANDROID stammt.

XrTrackableTrackerANDROID planeTracker; // previously created

// The function pointers are previously initialized using xrGetInstanceProcAddr.
PFN_xrGetTrackablePlaneANDROID xrGetTrackablePlaneANDROID; // previously initialized

XrTime updateTime; // Time used for the current frame's simulation update.
XrSpace appSpace; // Space created for XR_REFERENCE_SPACE_TYPE_LOCAL.
XrTrackableANDROID planeTrackable; // Acquired from a hit result or getTrackables().

XrTrackableGetInfoANDROID planeGetInfo;
planeGetInfo.type = XR_TYPE_TRACKABLE_GET_INFO_ANDROID;
planeGetInfo.next = nullptr;
planeGetInfo.trackable = planeTrackable;
planeGetInfo.space = appSpace;
planeGetInfo.time = updateTime;

XrTrackablePlaneANDROID plane = { XR_TYPE_TRACKABLE_PLANE_ANDROID };
result = xrGetTrackablePlaneANDROID(
  planeTracker,
  &planeGetInfo,
  &plane
);

if (result == XR_SUCCESS) {
  // Plane tracking state, center pose, extents, type now available in plane.
}

Beispielcode zum Erstellen eines Ankerbereichs

Im folgenden Beispielcode wird gezeigt, wie ein Ankerbereich erstellt wird, der an ein Trackable angehängt ist.

XrSession session; // Created at app startup.
XrTime updateTime; // Time used for the current frame's simulation update.
XrSpace appSpace; // Space created for XR_REFERENCE_SPACE_TYPE_LOCAL.
XrTrackableANDROID planeTrackable; // Acquired from a hit result or getTrackables().

// Create an anchor at (2, 2, 2) world-coordinates.
XrAnchorSpaceCreateInfoANDROID spatialAnchorCreateInfo;
spatialAnchorCreateInfo.type = XR_TYPE_ANCHOR_SPACE_CREATE_INFO_ANDROID;
spatialAnchorCreateInfo.next = nullptr;
spatialAnchorCreateInfo.space = appSpace;
spatialAnchorCreateInfo.time = updateTime;
spatialAnchorCreateInfo.pose = { { 0, 0, 0, 1 }, { 2, 2, 2 } };

XrSpace spatialAnchor = XR_NULL_HANDLE;
XrResult result = xrCreateAnchorSpaceANDROID(
  session,
  &spatialAnchorCreateInfo,
  &spatialAnchor
);

// Create an anchor attached to a trackable.
XrTrackablePlane plane = ...;
XrAnchorSpaceCreateInfoANDROID trackableAnchorCreateInfo;
trackableAnchorCreateInfo.type = XR_TYPE_ANCHOR_SPACE_CREATE_INFO_ANDROID;
trackableAnchorCreateInfo.next = nullptr;
trackableAnchorCreateInfo.space = appState;
trackableAnchorCreateInfo.pose = plane.centerPose;
trackableAnchorCreateInfo.trackable = planeTrackable;

XrSpace trackableAnchor = XR_NULL_HANDLE;
XrResult result = xrCreateAnchorSpaceANDROID(
  session,
  &trackableAnchorCreateInfo,
  &trackableAnchor
);
while (true) {
  // app update loop
  // ...

  // Get the current location of the anchor's space w.r.t the world.
  XrSpaceLocation anchorLocation = { XR_TYPE_SPACE_LOCATION };
  result = xrLocateSpace(trackableAnchor, appSpace, updateTime, &anchorLocation);

  if (anchor.trackingState == XR_TRACKING_STATE_TRACKING_ANDROID) {
    // Update anchor pose.
    doDrawingForAnchor(anchorLocation.pose);
  } else {
    // ...
  }
}

// Cleanup - destroy the space, detatch the anchor so its no longer tracked by the
// runtime and then release all resources held by it.
xrDestroySpace(spatialAnchor);
xrDestroySpace(trackableAnchor);

Neue Basistypen

Neue Objekttypen

Neue Enum-Konstanten

Die Aufzählung XrStructureType wurde um folgende Elemente erweitert:

  • XR_TYPE_TRACKABLE_GET_INFO_ANDROID
  • XR_TYPE_ANCHOR_SPACE_CREATE_INFO_ANDROID
  • XR_TYPE_TRACKABLE_PLANE_ANDROID
  • XR_TYPE_TRACKABLE_TRACKER_CREATE_INFO_ANDROID

Die Aufzählung XrObjectType wurde um Folgendes erweitert:

  • XR_OBJECT_TYPE_TRACKABLE_TRACKER_ANDROID

Die Aufzählung XrResult wurde um folgende Elemente erweitert:

  • XR_ERROR_MISMATCHING_TRACKABLE_TYPE_ANDROID
  • XR_ERROR_TRACKABLE_TYPE_NOT_SUPPORTED_ANDROID

Neue Enums

Neue Strukturen

Neue Funktionen

Probleme

Versionsverlauf

  • Revision 1, 27. September 2024 (Kenny Vercaemer)
    • Erste Beschreibung der Erweiterung.