reckfellENGINE

OpenXRFutureExtension

Backend registry и обработка OpenXR futures.

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

Зарегистрированный движком Object для backend OpenXR async запросов. Потребитель получает future от capability; RegisterFuture нужен реализациям расширений после получения настоящего XrFutureEXT. onSuccess декодирует native результат, а не начинает операцию.

Не создавайте wrapper как способ получить singleton: constructor меняет внутренний глобальный указатель. Не освобождайте зарегистрированный движком объект. IsActive — доступность XR_EXT_future/functions, не готовность конкретного запроса. Ошибка poll оставляет Running; проверяйте ошибки и жизненный цикл сессии.

При Finished callback получает сам OpenXRFutureResult; это отличается от проблемного Completed, где native передаёт payload. Изолированный XR-off тест проверил только registry metadata; отмена, реальные handles и обработка runtime не выполнялись.

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

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

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

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

Создаёт собственный native wrapper Object, а не возвращает зарегистрированный singleton. Constructor заменяет внутренний singleton pointer; в приложении не создавайте его ради получения поддержки. Используйте зарегистрированный движком объект и не освобождайте его. Изолированный диагностический экземпляр принадлежит тесту и требует Free, не только Dispose.

Методы3

CancelFuturevoid
# CancelFuture
C#
public void CancelFuture(ulong future);

Отменяет именно зарегистрированный native handle; не произвольное число. Нужны живая OpenXR instance и рабочая функция cancel. После попытки локальный future получает Cancelled и удаляется из registry, даже если native cancel сообщил ошибку. Это не гарантирует отмену уже начатых побочных эффектов; в XR-off этот путь не выполнялся.

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

Живой XrFutureEXT уже начатой операции, не выдуманный ulong; метод не проверяет семантическую корректность handle.

IsActivebool
# IsActive
C#
public bool IsActive();

True при активном XR_EXT_future и разрешённых функциях poll/cancel. Не запускает сессию и не подтверждает возможность конкретной async операции. Проверяйте на зарегистрированном wrapper после старта OpenXR; новый диагностический wrapper в XR-off вернул false.

Возвращает bool

True при активном XR_EXT_future и разрешённых функциях poll/cancel. Не запускает сессию и не подтверждает возможность конкретной async операции. Проверяйте на зарегистрированном wrapper после старта OpenXR; новый диагностический wrapper в XR-off вернул false.

RegisterFutureOpenXRFutureResult
# RegisterFuture
C#
public OpenXRFutureResult RegisterFuture(ulong future, Callable onSuccess = default);

Backend API регистрации handle, уже полученного от настоящего OpenXR async запроса. Не начинает операцию и не валидирует handle: изолированная XR-off проверка смогла зарегистрировать 0 как Running. Не передавайте выдуманные/повторные handles. onSuccess получает OpenXRFutureResult, вызывает native Complete нужной операции и SetResultValue. Потребитель обычно получает future от capability, а не вызывает этот метод.

Параметры
ИмяТипПо умолчанию
futureulong—
onSuccessCallabledefault
future

Живой XrFutureEXT уже начатой операции, не выдуманный ulong; метод не проверяет семантическую корректность handle.

onSuccess

Backend decoder callback с одним аргументом OpenXRFutureResult; вызывается после Finished, до Completed. Выполните native Complete и SetResultValue; при отмене не вызывается.

Возвращает OpenXRFutureResult

Backend API регистрации handle, уже полученного от настоящего OpenXR async запроса. Не начинает операцию и не валидирует handle: изолированная XR-off проверка смогла зарегистрировать 0 как Running. Не передавайте выдуманные/повторные handles. onSuccess получает OpenXRFutureResult, вызывает native Complete нужной операции и SetResultValue. Потребитель обычно получает future от capability, а не вызывает этот метод.

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

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

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

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