reckfellENGINE

OpenXRStructureBase

Цепочка native структур параметров OpenXR.

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

RefCounted обёртка цепочки OpenXR extension structures. Используйте конкретные готовые configuration/component classes. Next хранит ссылку без защиты от циклов; GetHeader сначала обходит хвост, затем вызывает текущий _GetHeader.

Адреса ulong относятся к native памяти. Они не являются RID или безопасными managed данными и не продлевают lifetime. Базовый GetStructureType разыменовывает полученный заголовок; производные native классы могут вернуть constant даже при null header. Поэтому ненулевой type не подтверждает валидный указатель/поддержку. Не подставляйте произвольные адреса. Пустой базовый объект передаёт tail pointer дальше и даёт Unknown при null header.

Владейте своими ресурсами и отсоединяйте ссылки после использования; provider-owned ресурсы не освобождайте. Реализация custom header требует корректных layout/lifetime/pNext и отдельной native проверки; безопасная пустая цепочка этого не подтверждает.

На Windows headless XR-off выполнены 11 ограниченных проверок. Реальные async операции, cancellation, session teardown, native allocation и шлем не проверены. Исходники движка, Runtime и SDK не менялись.

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

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

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

Создаёт базовый RefCounted контейнер цепочки native OpenXR structures. Next изначально null; без реализации заголовка GetHeader(0)=0 и GetStructureType=Unknown. Не является валидной capability configuration автоматически. Собственный экземпляр освобождайте после отсоединения от запросов/цепочек; provider-owned обёртку не Dispose.

Свойства1

NextСвойство
# Next
C#
public OpenXRStructureBase Next { get; set; }

Следующая структура, либо null. Setter просто сохраняет ссылку: не копирует native data и не проверяет циклы. Не включайте один объект дважды и не создавайте ссылку на себя. Getter возвращает заимствованную обёртку; lifetime всей цепочки должен покрывать использующий её native вызов.

Методы5

GetHeaderulong
# GetHeader
C#
public ulong GetHeader(ulong next);

Возвращает адрес native заголовка как ulong. Сначала обходит Next, затем передаёт полученный tail pointer в _GetHeader текущей структуры; без override пропускает его дальше. 0 означает отсутствие структуры. Это указатель, не RID/размер/ID: не подставляйте числа и не сохраняйте после lifetime ресурсов. Неверный адрес может привести к native memory fault.

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

Адрес tail native structure или 0; не RID и не произвольное число. Lifetime структуры обязан покрывать вызов.

Возвращает ulong

Возвращает адрес native заголовка как ulong. Сначала обходит Next, затем передаёт полученный tail pointer в _GetHeader текущей структуры; без override пропускает его дальше. 0 означает отсутствие структуры. Это указатель, не RID/размер/ID: не подставляйте числа и не сохраняйте после lifetime ресурсов. Неверный адрес может привести к native memory fault.

GetNextOpenXRStructureBase
# GetNext
C#
public OpenXRStructureBase GetNext();

Следующая структура, либо null. Setter просто сохраняет ссылку: не копирует native data и не проверяет циклы. Не включайте один объект дважды и не создавайте ссылку на себя. Getter возвращает заимствованную обёртку; lifetime всей цепочки должен покрывать использующий её native вызов.

Возвращает OpenXRStructureBase

Следующая структура, либо null. Setter просто сохраняет ссылку: не копирует native data и не проверяет циклы. Не включайте один объект дважды и не создавайте ссылку на себя. Getter возвращает заимствованную обёртку; lifetime всей цепочки должен покрывать использующий её native вызов.

GetStructureTypeulong
# GetStructureType
C#
public ulong GetStructureType();

Возвращает XrStructureType как ulong через native virtual dispatch. Базовая реализация читает header и даёт Unknown (0) при null; производные классы могут вернуть constant независимо от header. У OpenXRSpatialContextPersistenceConfig проверен ненулевой type при GetHeader(0)=0. Не используйте type как проверку валидности указателя или поддержки; произвольный header базовая реализация не валидирует.

Возвращает ulong

Возвращает XrStructureType как ulong через native virtual dispatch. Базовая реализация читает header и даёт Unknown (0) при null; производные классы могут вернуть constant независимо от header. У OpenXRSpatialContextPersistenceConfig проверен ненулевой type при GetHeader(0)=0. Не используйте type как проверку валидности указателя или поддержки; произвольный header базовая реализация не валидирует.

SetNextvoid
# SetNext
C#
public void SetNext(OpenXRStructureBase entity);

Следующая структура, либо null. Setter просто сохраняет ссылку: не копирует native data и не проверяет циклы. Не включайте один объект дважды и не создавайте ссылку на себя. Getter возвращает заимствованную обёртку; lifetime всей цепочки должен покрывать использующий её native вызов.

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

Следующая структура, либо null. Setter просто сохраняет ссылку: не копирует native data и не проверяет циклы. Не включайте один объект дважды и не создавайте ссылку на себя. Getter возвращает заимствованную обёртку; lifetime всей цепочки должен покрывать использующий её native вызов.

_GetHeaderulong
# _GetHeader
C#
public virtual ulong _GetHeader(ulong next);

Виртуальная точка backend реализации: верните адрес собственного живого OpenXR header с pNext, указывающим на переданный next. Вызывается через GetHeader после обработки хвоста. Сам ulong не закрепляет managed память и не задаёт layout; используйте готовые native resource реализации. Пользовательский override с выделенной памятью здесь не проверен.

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

Адрес tail native structure или 0; не RID и не произвольное число. Lifetime структуры обязан покрывать вызов.

Возвращает ulong

Виртуальная точка backend реализации: верните адрес собственного живого OpenXR header с pNext, указывающим на переданный next. Вызывается через GetHeader после обработки хвоста. Сам ulong не закрепляет managed память и не задаёт layout; используйте готовые native resource реализации. Пользовательский override с выделенной памятью здесь не проверен.

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

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

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

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