XR_ANDROID_recommended_resolution
String de nome
XR_ANDROID_recommended_resolution
Tipo de extensão
Extensão de instância
Número da extensão registrada
462
Revisão
1
Status de ratificação
Não ratificado
Dependências de extensão e versão
Data da última modificação
Status do IP
Colaboradores
Trevor Debrechtabel, Google
Spencer Quin, Google
Lachlan Ford, Google
Vasiliy Baranov, Google
Visão geral
Essa extensão permite que o ambiente de execução notifique o aplicativo quando a resolução recomendada muda, com base no desempenho atual do sistema, nas temperaturas do dispositivo ou em outros fatores.
Essa extensão modifica a especificação da seguinte maneira:
- O tempo de execução pode retornar conteúdo de buffer não idêntico da enumeração xrEnumerateViewConfigurationViews para os determinados
systemIdeviewConfigurationTypedurante o ciclo de vida da instância.
A estrutura XrEventDataRecommendedResolutionChangedANDROID é definida como:
typedef struct XrEventDataRecommendedResolutionChangedANDROID {
XrStructureType type;
const void* next;
} XrEventDataRecommendedResolutionChangedANDROID;
Descrições de membros
typeé o XrStructureType dessa estrutura.nextéNULLou um ponteiro para a próxima estrutura em uma cadeia de estruturas. Nenhuma dessas estruturas é definida no OpenXR principal ou nesta extensão.
Receber a estrutura de evento XrEventDataRecommendedResolutionChangedANDROID indica que a resolução recomendada mudou. O aplicativo precisa consultar o ambiente de execução para a nova resolução recomendada usando xrEnumerateViewConfigurationViews .
Uso válido (implícito)
- A extensão
XR_ANDROID_recommended_resolutionprecisa ser ativada antes de usar XrEventDataRecommendedResolutionChangedANDROID -
typeprecisa serXR_TYPE_EVENT_DATA_RECOMMENDED_RESOLUTION_CHANGED_ANDROID -
nextprecisa serNULLou um ponteiro válido para a próxima estrutura em uma cadeia de estruturas.
Exemplo de código
O exemplo de código a seguir demonstra como detectar eventos de mudança de resolução recomendada.
// 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;
}
}
Histórico de versões
Revisão 1, 04/04/2025 (Kenny Vercaemer)
- Descrição inicial da extensão