XR_KHR_extended_struct_name_lengths
Строка имени
XR_KHR_extended_struct_name_lengths
Тип расширения
Расширение экземпляра
Зарегистрированный добавочный номер
149
Пересмотр
2
Статус ратификации
Ратифицирован
Зависимости расширений и версий
Дата последнего изменения
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 (Кенни Веркамер)
- Исправить спецификацию длины имени структуры