reckfellENGINE

OpenXRFutureResult

Статус и Variant результат OpenXR async операции.

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

RefCounted результат, возвращаемый capability. Публичного constructor нет. Running/Finished/Cancelled описывают обработку, а не успех операции; Finished устанавливается до decoder callback, который заполняет GetResultValue. Проверяйте тип и значение результата.

В SDK 1.0.0 Completed типизирован как OpenXRFutureResult, тогда как native испускает Variant payload. Ручная bool emission на установленном Runtime дала bool обычному Variant listener и null C# event. Это воспроизведение контракта сигнала, не реальное async завершение. Сохраняйте исходный future и проверяйте GetStatus/GetResultValue; не разыменовывайте event argument.

SetResultValue не завершает запрос. Отмена меняет локальный статус; native ошибка отмены не доказывает остановку операции. Потребитель не должен регистрировать выдуманные handles или считать тайм-аут отсутствием поддержки.

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

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

Методы5

CancelFuturevoid
# CancelFuture
C#
public void CancelFuture();

Запрашивает отмену Running future через зарегистрированный OpenXRFutureExtension. Нужны живая сессия, активное расширение и зарегистрированный handle; не вызывайте для Finished/Cancelled. Локальный статус становится Cancelled и Completed получает Nil; даже native ошибка отмены сейчас только предупреждается, поэтому локальный статус не доказывает отмену работы устройством.

GetFutureulong
# GetFuture
C#
public ulong GetFuture();

Возвращает native XrFutureEXT как ulong, не итог операции, не RID и не UUID. Предназначен для backend завершения конкретной OpenXR операции; после завершения/отмены не считайте handle пригодным для нового запроса. Getter сам не проверяет его живость и не опрашивает runtime.

Возвращает ulong

Возвращает native XrFutureEXT как ulong, не итог операции, не RID и не UUID. Предназначен для backend завершения конкретной OpenXR операции; после завершения/отмены не считайте handle пригодным для нового запроса. Getter сам не проверяет его живость и не опрашивает runtime.

GetResultValueVariant
# GetResultValue
C#
public Variant GetResultValue();

Читает сохранённый Variant результат, изначально Nil. Тип и смысл задаёт конкретная операция: например bool или RID. GetStatus=Finished не означает успех; проверяйте VariantType, значение и состояние связанного объекта. До decoder callback результат может быть ещё Nil; Cancelled сигнал также не является полезным результатом.

Возвращает Variant

Читает сохранённый Variant результат, изначально Nil. Тип и смысл задаёт конкретная операция: например bool или RID. GetStatus=Finished не означает успех; проверяйте VariantType, значение и состояние связанного объекта. До decoder callback результат может быть ещё Nil; Cancelled сигнал также не является полезным результатом.

GetStatusOpenXRFutureResult.ResultStatus
# GetStatus
C#
public OpenXRFutureResult.ResultStatus GetStatus();

Возвращает Running, Finished или Cancelled. Registry помечает Finished до вызова decoder callback, а затем испускает Completed. Это локальный lifecycle, не результат persistence/discovery. Ошибка poll может оставить Running; отсутствие обновлений/тайм-аут не подтверждают отсутствие поддержки.

Возвращает OpenXRFutureResult.ResultStatus

Возвращает Running, Finished или Cancelled. Registry помечает Finished до вызова decoder callback, а затем испускает Completed. Это локальный lifecycle, не результат persistence/discovery. Ошибка poll может оставить Running; отсутствие обновлений/тайм-аут не подтверждают отсутствие поддержки.

SetResultValuevoid
# SetResultValue
C#
public void SetResultValue(Variant resultValue);

Сохраняет Variant в слоте результата; не меняет статус, не завершает запрос и не испускает Completed. Нужен backend decoder callback после native Complete конкретной операции. Не используйте со стороны потребителя, чтобы искусственно объявить запрос успешным; возвращаемое значение Callable само сюда не записывается.

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

Сохраняет Variant в слоте результата; не меняет статус, не завершает запрос и не испускает Completed. Нужен backend decoder callback после native Complete конкретной операции. Не используйте со стороны потребителя, чтобы искусственно объявить запрос успешным; возвращаемое значение Callable само сюда не записывается.

Сигналы и события1

CompletedСобытие
# Completed
C#
public event OpenXRFutureResult.CompletedEventHandler Completed;

Сигнал после обработки завершения или отмены. В SDK аргумент объявлен OpenXRFutureResult, но native передаёт result_value или Nil. На Runtime 1.0.0 ручной bool-сигнал дал bool в Variant listener и null в типизированном C# event. Не разыменовывайте аргумент как future и не используйте типизированный event для чтения bool/RID результата. Проверяйте сохранённый future через GetStatus/GetResultValue. Реальное async завершение не выполнялось.

Параметры обработчика
ИмяТипПо умолчанию
resultOpenXRFutureResult—
result

SDK объявляет OpenXRFutureResult, но native payload — result Variant/Nil; при bool typed event получил null. Не используйте аргумент как future.

OpenXRFutureResult.ResultStatus

ЗначениеОписание
Cancelled = 2

Асинхронная функция отменена.

Finished = 1

Асинхронная функция завершена.

Running = 0

Асинхронная функция работает.

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

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

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

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