reckfellENGINE

OpenXRSpatialComponentData

Данные spatial snapshot: OpenXRSpatialComponentData.

На этой странице
class OpenXRSpatialComponentDataReckfellSharpНаследует RefCounted

Контейнер native component data для QuerySnapshot, не tracker, игровая Entity или готовая геометрия. В массиве запроса первым должен идти OpenXRSpatialQueryResultData; индексы остальных компонентов относятся к тем же строкам. Проверяйте поддержку компонента, успешный query и state строки до чтения значений.

SetCapacity выделяет память, но не делает её данными устройства. GetCapacity у query-result показывает длину выделенного массива; она может быть ненулевой без единого запроса. При ошибке/незавершённом запросе не используйте прежнее содержимое. Финальные output counts между двумя проходами отдельно публично не доступны; изменение количества результатов в runtime здесь не проверено.

Buffer getters требуют тот же живой snapshot. Скопируйте нужные массивы/строки до FreeSpatialSnapshot или конца borrowed capability callback. Не освобождайте snapshot повторно; свои контейнеры держите живыми на время использования. Raw poses не являются готовыми GlobalTransform и не применяют WorldOrigin/reference frame/WorldScale автоматически.

Базовый класс требует backend overrides для component type, allocation и output header. Пустая база возвращает MAX_ENUM sentinel и не добавляет capability. C# virtual type/capacity dispatch проверен, custom native header не проверялся.

Рабочая интеграция. На Windows XR-off выполнены 11 проверок metadata/capacity/virtual dispatch без чтения незаполненной памяти. Реальный snapshot, buffer values, pose/UUID/marker decoding, шлем и export не проверены. Движок не менялся.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

OpenXRSpatialComponentDataКонструктор
# OpenXRSpatialComponentData
C#
public OpenXRSpatialComponentData();

Создаёт принадлежащий вызывающему RefCounted контейнер query data с пустыми буферами. Не выполняет QuerySnapshot и не получает данные устройства. Выделение через SetCapacity не заполняет строки. Удерживайте свои контейнеры до окончания native запроса; provider-owned ресурсы не освобождайте.

Методы5

GetComponentTypelong
# GetComponentType
C#
public long GetComponentType();

Native spatial component type как long. Конкретные классы возвращают свой тип; базовый класс и OpenXRSpatialQueryResultData возвращают MAX_ENUM sentinel и не добавляются как обычный component filter. Тип не доказывает поддержку runtime или заполнение буфера.

Возвращает long

Native spatial component type как long. Конкретные классы возвращают свой тип; базовый класс и OpenXRSpatialQueryResultData возвращают MAX_ENUM sentinel и не добавляются как обычный component filter. Тип не доказывает поддержку runtime или заполнение буфера.

SetCapacityvoid
# SetCapacity
C#
public void SetCapacity(uint capacity);

Меняет ёмкость хранения, не запрашивает данные и не создаёт spatial entities. QuerySnapshot сам задаёт одинаковую ёмкость компонентам по первому count pass. Ручной вызов допустим для подготовки backend буферов, но не делает их читаемыми; после resize старое содержимое не считайте валидным. Не меняйте ёмкость во время native использования.

Параметры
ИмяТипПо умолчанию
capacityuint—
capacity

Меняет ёмкость хранения, не запрашивает данные и не создаёт spatial entities. QuerySnapshot сам задаёт одинаковую ёмкость компонентам по первому count pass. Ручной вызов допустим для подготовки backend буферов, но не делает их читаемыми; после resize старое содержимое не считайте валидным. Не меняйте ёмкость во время native использования.

_GetComponentTypeulong
# _GetComponentType
C#
public virtual ulong _GetComponentType();

Backend virtual hook, возвращающий корректный XrSpatialComponentTypeEXT как ulong. GetComponentType вызывает его через native bridge; C# override dispatch проверен. Выдуманный числовой тип не добавляет runtime capability. Для обычного приложения используйте готовый конкретный компонент.

Возвращает ulong

Backend virtual hook, возвращающий корректный XrSpatialComponentTypeEXT как ulong. GetComponentType вызывает его через native bridge; C# override dispatch проверен. Выдуманный числовой тип не добавляет runtime capability. Для обычного приложения используйте готовый конкретный компонент.

_GetStructureDataulong
# _GetStructureData
C#
public virtual ulong _GetStructureData(ulong next);

Backend virtual hook для адреса native output structure с pNext, связанным с переданным next. Заголовок, buffers и counts должны быть корректны и живы на время запроса. Возвращаемый ulong — указатель, не RID. Не вызывайте/не возвращайте произвольные адреса; custom native layout здесь не проверен.

Параметры
ИмяТипПо умолчанию
nextulong—
next

Адрес следующей native output structure или 0; не RID. Структуры/buffers должны оставаться живыми и иметь корректный layout.

Возвращает ulong

Backend virtual hook для адреса native output structure с pNext, связанным с переданным next. Заголовок, buffers и counts должны быть корректны и живы на время запроса. Возвращаемый ulong — указатель, не RID. Не вызывайте/не возвращайте произвольные адреса; custom native layout здесь не проверен.

_SetCapacityvoid
# _SetCapacity
C#
public virtual void _SetCapacity(uint capacity);

Backend virtual allocation hook. Обеспечьте хранилище указанной ёмкости и корректные native pointers/counts в собственной структуре; 0 освобождает/очищает логические слоты. Сам allocation не заполняет runtime data. C# capacity hook проверен без native layout/памяти custom header.

Параметры
ИмяТипПо умолчанию
capacityuint—
capacity

Меняет ёмкость хранения, не запрашивает данные и не создаёт spatial entities. QuerySnapshot сам задаёт одинаковую ёмкость компонентам по первому count pass. Ручной вызов допустим для подготовки backend буферов, но не делает их читаемыми; после resize старое содержимое не считайте валидным. Не меняйте ёмкость во время native использования.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.