XR_KHR_extended_struct_name_lengths

Строка имени

XR_KHR_extended_struct_name_lengths

Тип расширения

Расширение экземпляра

Зарегистрированный добавочный номер

149

Пересмотр

2

Статус ратификации

Ратифицирован

Зависимости расширений и версий

OpenXR 1.0

Дата последнего изменения

2025-12-04

Статус IP

Известных претензий на интеллектуальную собственность нет.

Авторы

Мэтью Лангилл, Meta Platforms
Андреас Селвик, Meta Platforms
Райли Павлик, Collabora, Ltd.

Обзор

Это расширение увеличивает максимальный размер имен структур и предоставляет новую функцию для доступа к этим новым расширенным именам.

Функция xrStructureTypeToString2KHR позволяет получать строковые имена перечислений типов структур, длина которых превышает исходный лимит в 63 байта (64 байта, включая нулевой символ-терминатор). xrStructureTypeToString2KHR возвращает строковые имена перечислений типов структур длиной до 255 байт (256 байт, включая нулевой символ-терминатор). Приложение может использовать xrStructureTypeToString2KHR в качестве замены xrStructureTypeToString , поскольку она работает со всеми перечислениями типов структур, независимо от длины строкового имени.

Получение строк перечисления типов структур

Если исходный метод xrStructureTypeToString используется для получения строковых имен для перечислений типов структур с длиной имени более 63 байт, его поведение уточняется следующим образом. Метод xrStructureTypeToString должен заполнять буфер правильным именем, за исключением того, что строка должна быть усечена на границе кодовой точки, чтобы поместиться в доступный буфер. То есть возвращаемая строка всегда должна быть допустимой UTF-8.

Функция xrStructureTypeToString2KHR определена следующим образом:

XrResult xrStructureTypeToString2KHR(
    XrInstance                                  instance,
    XrStructureType                             value,
    char                                        buffer[XR_MAX_STRUCTURE_NAME_SIZE_EXTENDED_KHR]);

Описание параметров

  • instance — это дескриптор экземпляра, у которого запрашивается строка.
  • value — это значение XrStructureType , которое нужно преобразовать в строку.
  • buffer — это буфер, который будет использоваться для возврата строки.

Возвращает имя предоставленного значения XrStructureType , копируя допустимую строку UTF-8 с нулевым завершением в buffer .

Во всех случаях возвращаемая строка должна быть одной из следующих:

Тип структуры: строка. Выходные значения:

  • Строковый литерал, определенный для предоставленного числового значения в основной спецификации или расширении. (например, значение XR_TYPE_INSTANCE_CREATE_INFO приводит к строке XR_TYPE_INSTANCE_CREATE_INFO )
  • XR_UNKNOWN_STRUCTURE_TYPE_ объединяется с номером типа структуры, выраженным в виде десятичного числа.

Для перечислений типов структур, имена которых укладываются в исходный лимит размера в 63 байта, функция xrStructureTypeToString2KHR должна возвращать ту же результирующую строку, что и xrStructureTypeToString , вплоть до нулевого символа-терминатора.

Допустимое использование (неявное)

  • Расширение XR_KHR_extended_struct_name_lengths необходимо включить перед вызовом функции xrStructureTypeToString2KHR.
  • instance должен быть допустимым дескриптором XrInstance.
  • value должно быть допустимым значением XrStructureType.
  • buffer должен представлять собой символьный массив длиной XR_MAX_STRUCTURE_NAME_SIZE_EXTENDED_KHR

Коды возврата

Успех

  • XR_SUCCESS

Отказ

  • XR_ERROR_FUNCTION_UNSUPPORTED
  • XR_ERROR_HANDLE_INVALID
  • XR_ERROR_INSTANCE_LOST
  • XR_ERROR_RUNTIME_FAILURE
  • XR_ERROR_VALIDATION_FAILURE

Перечислитель XR_MAX_STRUCTURE_NAME_SIZE_EXTENDED_KHR определяет размер буфера, передаваемого в функцию xrStructureTypeToString2KHR .

#define XR_MAX_STRUCTURE_NAME_SIZE_EXTENDED_KHR 256

Новые команды

Новые константы перечислений

  • XR_KHR_EXTENDED_STRUCT_NAME_LENGTHS_EXTENSION_NAME
  • XR_KHR_extended_struct_name_lengths_SPEC_VERSION
  • XR_MAX_STRUCTURE_NAME_SIZE_EXTENDED_KHR

История версий

  • Редакция 1, 29.02.2024 (Мэтью Лангилл)

    • Первоначальное описание расширения
  • Редакция 2, 04.12.2025 (Кенни Веркамер)

    • Исправить спецификацию длины имени структуры