Chaîne de nom

XR_ANDROID_recommended_resolution

Type d'extension

Extension d'instance

Numéro d'extension enregistré

462

Révision

1

État de ratification

Non ratifié

Dépendances d'extension et de version

OpenXR 1.0

Date de dernière modification

État de la propriété intellectuelle

Contributeurs

Trevor Debrechtabel, Google
Spencer Quin, Google
Lachlan Ford, Google
Vasiliy Baranov, Google

Présentation

Cette extension permet au runtime d'informer l'application lorsque la résolution recommandée change, en fonction des performances actuelles du système, de la température de l'appareil ou d'autres facteurs.

Cette extension modifie la spécification comme suit :

  • Le runtime peut renvoyer des contenus de mémoire tampon non identiques à partir de l'énumération xrEnumerateViewConfigurationViews pour les systemId et viewConfigurationType donnés pendant la durée de vie de l'instance.

La structure XrEventDataRecommendedResolutionChangedANDROID est définie comme suit :

typedef struct XrEventDataRecommendedResolutionChangedANDROID {
    XrStructureType    type;
    const void*        next;
} XrEventDataRecommendedResolutionChangedANDROID;

Descriptions des membres

  • type correspond au XrStructureType de cette structure.
  • next est NULL ou un pointeur vers la structure suivante dans une chaîne de structures. Aucune structure de ce type n'est définie dans le noyau OpenXR ni dans cette extension.

La réception de la structure d'événement XrEventDataRecommendedResolutionChangedANDROID indique que la résolution recommandée a changé. L'application doit interroger le runtime pour obtenir la nouvelle résolution recommandée à l'aide de xrEnumerateViewConfigurationViews .

Utilisation valide (implicite)

Exemple de code

L'exemple de code suivant montre comment écouter les événements de modification de la résolution recommandée.

// Created at app startup time.
XrInstance instance;
XrSystemId systemId; // Previously initialized.
uint32_t viewCountOutput; // Previously initialized.

// View configuration type the application uses.
XrViewConfigurationType viewConfigType;

// Poll events for recommended resolution changes.
XrEventDataBuffer event = {XR_TYPE_EVENT_DATA_BUFFER};
XrResult result = xrPollEvent(instance, &event);
if (result == XR_SUCCESS) {
  switch (event.type) {
    case XR_TYPE_EVENT_DATA_RECOMMENDED_RESOLUTION_CHANGED_ANDROID: {
        uint32_t viewCapacityInput = viewCountOutput;
        std::vector<XrViewConfigurationView> views(viewCapacityInput);
        result = xrEnumerateViewConfigurationViews(instance, systemId,
          viewConfigType, viewCapacityInput, &viewCountOutput, views.data());
        if(!XR_SUCCEEDED(result)) {
          // Handle error
        }

        // New recommended resolution is found in
        // views.recommendedImageRectWidth and views.recommendedImageRectHeight
        // Change the resolution for the viewConfigType
      break;
    }
    default:
      break;
  }
}

Historique des versions

  • Révision 1, 04/04/2025 (Kenny Vercaemer)

    • Description initiale de l'extension