XR_KHR_extended_struct_name_lengths
Nazwa ciągu znaków
XR_KHR_extended_struct_name_lengths
Typ rozszerzenia
Rozszerzenie instancji
Zarejestrowany numer rozszerzenia
149
Wersja
2
Stan ratyfikacji
Zatwierdzone
Zależności rozszerzeń i wersji
Data ostatniej modyfikacji
2025-12-04
Stan IP
Brak znanych roszczeń dotyczących własności intelektualnej.
Twórcy
Matthew Langille, Meta Platforms
Andreas Selvik, Meta Platforms
Rylie Pavlik, Collabora, Ltd.
Przegląd
To rozszerzenie zwiększa maksymalne rozmiary nazw struktur i udostępnia nową funkcję umożliwiającą dostęp do tych nowych rozszerzonych nazw.
Funkcja xrStructureTypeToString2KHR umożliwia pobieranie nazw ciągów znaków elementów wyliczeniowych typu struktury o długościach przekraczających pierwotny limit 63 bajtów (64 bajty z uwzględnieniem znaku końca ciągu). Funkcja xrStructureTypeToString2KHR zwraca nazwy ciągów znaków dla elementów wyliczeniowych typu struktury o długości do 255 bajtów (256 bajtów z uwzględnieniem znaku końca ciągu). Aplikacja może używać funkcji xrStructureTypeToString2KHR jako zamiennika funkcji xrStructureTypeToString , ponieważ działa ona ze wszystkimi elementami wyliczeniowymi typu struktury niezależnie od długości nazwy ciągu znaków.
Pobieranie ciągów znaków elementów wyliczeniowych typu struktury
Jeśli do pobierania nazw ciągów znaków elementów wyliczeniowych typu struktury o długości nazwy przekraczającej 63 bajty używana jest oryginalna funkcja xrStructureTypeToString, jej działanie jest wyjaśnione w ten sposób. Funkcja xrStructureTypeToString musi wypełnić bufor prawidłową nazwą, z tym że ciąg znaków musi zostać obcięty na granicy punktu kodowego, aby zmieścić się w dostępnym buforze. Oznacza to, że zwracany ciąg znaków musi być zawsze prawidłowym ciągiem znaków UTF-8.
Funkcja xrStructureTypeToString2KHR jest zdefiniowana w ten sposób:
XrResult xrStructureTypeToString2KHR(
XrInstance instance,
XrStructureType value,
char buffer[XR_MAX_STRUCTURE_NAME_SIZE_EXTENDED_KHR]);
Opisy parametrów
instanceto uchwyt instancji, o której ciąg znaków ma zostać poproszony.valueto wartość XrStructureType, która ma zostać przekształcona w ciąg znaków.bufferto bufor, w którym zostanie zwrócony ciąg znaków.
Zwraca nazwę podanej wartości XrStructureType, kopiując prawidłowy ciąg znaków UTF-8 zakończony znakiem końca ciągu do parametru buffer .
We wszystkich przypadkach zwracany ciąg znaków musi być jednym z tych ciągów:
Wartości wyjściowe ciągu znaków typu struktury
- Literał zdefiniowany dla podanej wartości liczbowej w specyfikacji podstawowej lub rozszerzeniu. (np. wartość
XR_TYPE_INSTANCE_CREATE_INFOpowoduje zwrócenie ciągu znakówXR_TYPE_INSTANCE_CREATE_INFO) XR_UNKNOWN_STRUCTURE_TYPE_połączony z numerem typu struktury wyrażonym jako liczba dziesiętna.
W przypadku elementów wyliczeniowych typu struktury, których nazwy mieszczą się w pierwotnym limicie rozmiaru 63 bajtów, xrStructureTypeToString2KHR musi zwracać ten sam ciąg znaków co xrStructureTypeToString , aż do znaku końca ciągu.
Prawidłowe użycie (niejawne)
- Przed wywołaniem funkcji xrStructureTypeToString2KHR musi być włączone rozszerzenie
XR_KHR_extended_struct_name_lengths. -
instancemusi być prawidłowym uchwytem XrInstance. -
valuemusi być prawidłową wartością XrStructureType. -
buffermusi być tablicą znaków o długościXR_MAX_STRUCTURE_NAME_SIZE_EXTENDED_KHR
Kody powrotu
XR_SUCCESS
XR_ERROR_FUNCTION_UNSUPPORTEDXR_ERROR_HANDLE_INVALIDXR_ERROR_INSTANCE_LOSTXR_ERROR_RUNTIME_FAILUREXR_ERROR_VALIDATION_FAILURE
Element wyliczeniowy XR_MAX_STRUCTURE_NAME_SIZE_EXTENDED_KHR określa rozmiar bufora przekazywanego do funkcji xrStructureTypeToString2KHR .
#define XR_MAX_STRUCTURE_NAME_SIZE_EXTENDED_KHR 256
Nowe polecenia
Nowe stałe wyliczeniowe
XR_KHR_EXTENDED_STRUCT_NAME_LENGTHS_EXTENSION_NAMEXR_KHR_extended_struct_name_lengths_SPEC_VERSIONXR_MAX_STRUCTURE_NAME_SIZE_EXTENDED_KHR
Historia wersji
Wersja 1, 29 lutego 2024 r. (Matthew Langille)
- Początkowy opis rozszerzenia
Wersja 2, 4 grudnia 2025 r. (Kenny Vercaemer)
- Poprawka specyfikacji długości nazwy struktury