OpenXRCompositionLayer
Общая основа поверхностей OpenXR composition layers.
Базовая Entity3D для вывода отдельной поверхности через OpenXR compositor. Используйте конкретную форму Quad/Cylinder/Equirect. LayerViewport, AlphaBlend и native SortOrder не являются обычным GUI z-index. Назначайте отдельный viewport с положительным Size и явным Always update; ссылка не передаёт владение.
Наличие Entity и IsNativelySupported не доказывает готовность swapchain или кадра. В редакторе/без API и при отсутствии runtime-поддержки возможен mesh fallback; его качество, depth behavior и spectator view отличаются. SortOrder на fallback mesh не действует.
Camera ancestor выбирает head-locked пространство; иначе world-locked. Не используйте scale/shear в иерархии, меняйте размеры формы. LocalFloor не размещает меню перед переместившимся игроком. Hole punch требует отрицательного SortOrder и проверки композиции на устройстве.
Настройка и QuadUiRay. 20 headless проверок покрывают ray-to-pixel helper и metadata, но не native submission, GUI events, hole-punch pixels, шлем или export. В этой редактуре проверены только выбранные основные члены базового класса, не весь его API.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Свойства19
AlphaBlendСвойство
public bool AlphaBlend { get; set; }Разрешает композицию по alpha слоя; изначально false. Для прозрачного UI также нужен TransparentBg viewport и действительно прозрачный фон UI. Setter обновляет native flag и fallback material, но не проверяет видимый результат в шлеме.
AndroidSurfaceSizeСвойство
public Vector2I AndroidSurfaceSize { get; set; }Запрошенный размер Android surface в пикселях, по умолчанию 1024×1024. Задавайте положительные компоненты до получения surface. Не меняет LayerViewport.Size. Изменение уже созданной surface требует Android swapchain-update extension; getter возвращает запрос, а не подтверждённый размер производителя кадров.
EnableHolePunchСвойство
public bool EnableHolePunch { get; set; }Включает hole-punch mesh/материал, изначально false. Для native-пути нужен отрицательный SortOrder, например -1; неотрицательный порядок вызывает configuration warning. Один флаг не гарантирует корректное перекрытие. На fallback меняется depth-test поведение материала; пиксели не проверены.
EyeVisibilityСвойство
public OpenXRCompositionLayer.EyeVisibilityEnum EyeVisibility { get; set; }Глаза, которым отправляется native слой: Both по умолчанию, Left или Right. Не является маской Entity видимости или выбором viewport. Меняет поле native Quad/Cylinder/Equirect; поведение обычного mesh fallback этим параметром не подтверждено.
LayerViewportСвойство
public SubViewport LayerViewport { get; set; }Назначенный SubViewport или null. Один viewport нельзя использовать несколькими слоями в дереве. При назначении WhenVisible/WhenParentVisible меняются на Always с предупреждением; Disabled автоматически не исправляется. С включённой Android surface ненулевой viewport отклоняется. Ссылка заимствованная, не передаёт владение; перед удалением отдельно принадлежащего viewport отсоедините его.
ProtectedContentСвойство
public bool ProtectedContent { get; set; }Запрос защищённого содержимого, по умолчанию false. Передаётся как флаг создания XR swapchain; задавайте до создания surface/swapchain. Getter читает запрос, а не статус защиты. Не является DRM или гарантией запрета захвата: поддержка, ошибки создания и безопасность требуют проверки на целевом устройстве.
SortOrderСвойство
public int SortOrder { get; set; }Порядок native composition, изначально 1: более высокие значения впереди. Основная projection занимает 0; избегайте равенства 0, оно может конфликтовать с projection. Отрицательный порядок помещает слой позади неё и нужен для hole punch. На обычную fallback mesh этот порядок не действует; это не z-index GUI и не физическое расстояние.
SwapchainStateAlphaSwizzleСвойство
public OpenXRCompositionLayer.Swizzle SwapchainStateAlphaSwizzle { get; set; }Источник выходного alpha канала выборки слоя, по умолчанию Alpha. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
SwapchainStateBlueSwizzleСвойство
public OpenXRCompositionLayer.Swizzle SwapchainStateBlueSwizzle { get; set; }Источник выходного синего канала выборки слоя, по умолчанию Blue. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
SwapchainStateBorderColorСвойство
public Color SwapchainStateBorderColor { get; set; }Цвет выборки вне текстуры при ClampToBorder, по умолчанию прозрачный чёрный Color(0,0,0,0). Не перекрашивает viewport или фон UI. Видимость alpha зависит также от AlphaBlend и прозрачности содержимого; изменение цвета само по себе не подтверждает прозрачную композицию. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
SwapchainStateGreenSwizzleСвойство
public OpenXRCompositionLayer.Swizzle SwapchainStateGreenSwizzle { get; set; }Источник выходного зелёного канала выборки слоя, по умолчанию Green. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
SwapchainStateHorizontalWrapСвойство
public OpenXRCompositionLayer.Wrap SwapchainStateHorizontalWrap { get; set; }Адресация текстуры по горизонтали, по умолчанию ClampToBorder. Repeat повторяет изображение, MirroredRepeat чередует направление, ClampToEdge продолжает край; ClampToBorder использует BorderColor. В OpenGL ES MirrorClampToEdge преобразуется в ClampToEdge, без зеркалирования. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
SwapchainStateMagFilterСвойство
public OpenXRCompositionLayer.Filter SwapchainStateMagFilter { get; set; }Фильтр увеличения изображения слоя, по умолчанию Linear. Nearest подходит для резких пикселей, Linear — для интерполяции. Cubic требует поддержки соответствующего графического расширения. Не увеличивает разрешение LayerViewport. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
SwapchainStateMaxAnisotropyСвойство
public float SwapchainStateMaxAnisotropy { get; set; }Запрошенная максимальная анизотропия, по умолчанию 1. Помогает выборке наклонных поверхностей при поддержке compositor. Используйте конечное значение >=1 в пределах устройства. Setter сохраняет даже 0 без проверки; getter не подтверждает допустимость или применение на GPU. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
SwapchainStateMinFilterСвойство
public OpenXRCompositionLayer.Filter SwapchainStateMinFilter { get; set; }Фильтр уменьшения изображения слоя, по умолчанию Linear. Nearest сохраняет резкие пиксели, Linear сглаживает выборку. Cubic передаётся как графическое расширение и требует поддержки устройства. Сохранённый enum не подтверждает применение compositor. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
SwapchainStateMipmapModeСвойство
public OpenXRCompositionLayer.MipmapMode SwapchainStateMipmapMode { get; set; }Выбор mip-уровней при уменьшении, по умолчанию Linear; также доступны Nearest и Disabled. Параметр не создаёт mipmaps. В текущем Vulkan mapping Disabled тоже передаётся как Linear: не рассчитывайте на отключение mip-выборки этим значением на всех backend. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
SwapchainStateRedSwizzleСвойство
public OpenXRCompositionLayer.Swizzle SwapchainStateRedSwizzle { get; set; }Источник выходного красного канала выборки слоя, по умолчанию Red. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
SwapchainStateVerticalWrapСвойство
public OpenXRCompositionLayer.Wrap SwapchainStateVerticalWrap { get; set; }Адресация текстуры по вертикали, по умолчанию ClampToBorder. Управляет выборкой за пределами текстуры, а не высотой поверхности или viewport. В OpenGL ES MirrorClampToEdge преобразуется в ClampToEdge; одинаковый enum не гарантирует одинаковую картинку на разных backend. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
UseAndroidSurfaceСвойство
public bool UseAndroidSurface { get; set; }Выбирает Android surface вместо SubViewport, по умолчанию false. Включение снимает LayerViewport; выключение не возвращает прежний viewport — назначьте его заново. Нужны Android и XR_FB_android_surface_swapchain_create. Успешное присваивание флага на Windows не создаёт surface и не доказывает поддержку.
Методы41
GetAlphaBlendbool
public bool GetAlphaBlend();Возвращает сохранённое значение. Разрешает композицию по alpha слоя; изначально false. Для прозрачного UI также нужен TransparentBg viewport и действительно прозрачный фон UI. Setter обновляет native flag и fallback material, но не проверяет видимый результат в шлеме.
boolРазрешает композицию по alpha слоя; изначально false. Для прозрачного UI также нужен TransparentBg viewport и действительно прозрачный фон UI. Setter обновляет native flag и fallback material, но не проверяет видимый результат в шлеме.
GetAlphaSwizzleOpenXRCompositionLayer.Swizzle
public OpenXRCompositionLayer.Swizzle GetAlphaSwizzle();Читает сохранённый запрос. Источник выходного alpha канала выборки слоя, по умолчанию Alpha. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
OpenXRCompositionLayer.SwizzleСохранённое значение настройки; не подтверждает её применение compositor.
GetAndroidSurfaceJavaObject
public JavaObject GetAndroidSurface();Возвращает JavaObject для android.view.Surface, удерживаемый слоем, либо null. На Android получение может лениво создать surface; это не чистая проверка готовности. Нужны UseAndroidSurface и соответствующая OpenXR extension. Не освобождайте заимствованную обёртку; остановите внешнего производителя до удаления слоя. На Windows XR-off проверен только null.
JavaObjectВозвращает JavaObject для android.view.Surface, удерживаемый слоем, либо null. На Android получение может лениво создать surface; это не чистая проверка готовности. Нужны UseAndroidSurface и соответствующая OpenXR extension. Не освобождайте заимствованную обёртку; остановите внешнего производителя до удаления слоя. На Windows XR-off проверен только null.
GetAndroidSurfaceSizeVector2I
public Vector2I GetAndroidSurfaceSize();Читает сохранённый запрос. Запрошенный размер Android surface в пикселях, по умолчанию 1024×1024. Задавайте положительные компоненты до получения surface. Не меняет LayerViewport.Size. Изменение уже созданной surface требует Android swapchain-update extension; getter возвращает запрос, а не подтверждённый размер производителя кадров.
Vector2IСохранённое значение настройки; не подтверждает её применение compositor.
GetBlueSwizzleOpenXRCompositionLayer.Swizzle
public OpenXRCompositionLayer.Swizzle GetBlueSwizzle();Читает сохранённый запрос. Источник выходного синего канала выборки слоя, по умолчанию Blue. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
OpenXRCompositionLayer.SwizzleСохранённое значение настройки; не подтверждает её применение compositor.
GetBorderColorColor
public Color GetBorderColor();Читает сохранённый запрос. Цвет выборки вне текстуры при ClampToBorder, по умолчанию прозрачный чёрный Color(0,0,0,0). Не перекрашивает viewport или фон UI. Видимость alpha зависит также от AlphaBlend и прозрачности содержимого; изменение цвета само по себе не подтверждает прозрачную композицию. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
ColorСохранённое значение настройки; не подтверждает её применение compositor.
GetEnableHolePunchbool
public bool GetEnableHolePunch();Возвращает сохранённое значение. Включает hole-punch mesh/материал, изначально false. Для native-пути нужен отрицательный SortOrder, например -1; неотрицательный порядок вызывает configuration warning. Один флаг не гарантирует корректное перекрытие. На fallback меняется depth-test поведение материала; пиксели не проверены.
boolВключает hole-punch mesh/материал, изначально false. Для native-пути нужен отрицательный SortOrder, например -1; неотрицательный порядок вызывает configuration warning. Один флаг не гарантирует корректное перекрытие. На fallback меняется depth-test поведение материала; пиксели не проверены.
GetEyeVisibilityOpenXRCompositionLayer.EyeVisibilityEnum
public OpenXRCompositionLayer.EyeVisibilityEnum GetEyeVisibility();Читает сохранённый запрос. Глаза, которым отправляется native слой: Both по умолчанию, Left или Right. Не является маской Entity видимости или выбором viewport. Меняет поле native Quad/Cylinder/Equirect; поведение обычного mesh fallback этим параметром не подтверждено.
OpenXRCompositionLayer.EyeVisibilityEnumСохранённое значение настройки; не подтверждает её применение compositor.
GetGreenSwizzleOpenXRCompositionLayer.Swizzle
public OpenXRCompositionLayer.Swizzle GetGreenSwizzle();Читает сохранённый запрос. Источник выходного зелёного канала выборки слоя, по умолчанию Green. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
OpenXRCompositionLayer.SwizzleСохранённое значение настройки; не подтверждает её применение compositor.
GetHorizontalWrapOpenXRCompositionLayer.Wrap
public OpenXRCompositionLayer.Wrap GetHorizontalWrap();Читает сохранённый запрос. Адресация текстуры по горизонтали, по умолчанию ClampToBorder. Repeat повторяет изображение, MirroredRepeat чередует направление, ClampToEdge продолжает край; ClampToBorder использует BorderColor. В OpenGL ES MirrorClampToEdge преобразуется в ClampToEdge, без зеркалирования. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
OpenXRCompositionLayer.WrapСохранённое значение настройки; не подтверждает её применение compositor.
GetLayerViewportSubViewport
public SubViewport GetLayerViewport();Возвращает сохранённое значение. Назначенный SubViewport или null. Один viewport нельзя использовать несколькими слоями в дереве. При назначении WhenVisible/WhenParentVisible меняются на Always с предупреждением; Disabled автоматически не исправляется. С включённой Android surface ненулевой viewport отклоняется. Ссылка заимствованная, не передаёт владение; перед удалением отдельно принадлежащего viewport отсоедините его.
SubViewportЗаимствованный назначенный viewport или null; владение не передаётся.
GetMagFilterOpenXRCompositionLayer.Filter
public OpenXRCompositionLayer.Filter GetMagFilter();Читает сохранённый запрос. Фильтр увеличения изображения слоя, по умолчанию Linear. Nearest подходит для резких пикселей, Linear — для интерполяции. Cubic требует поддержки соответствующего графического расширения. Не увеличивает разрешение LayerViewport. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
OpenXRCompositionLayer.FilterСохранённое значение настройки; не подтверждает её применение compositor.
GetMaxAnisotropyfloat
public float GetMaxAnisotropy();Читает сохранённый запрос. Запрошенная максимальная анизотропия, по умолчанию 1. Помогает выборке наклонных поверхностей при поддержке compositor. Используйте конечное значение >=1 в пределах устройства. Setter сохраняет даже 0 без проверки; getter не подтверждает допустимость или применение на GPU. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
floatСохранённое значение настройки; не подтверждает её применение compositor.
GetMinFilterOpenXRCompositionLayer.Filter
public OpenXRCompositionLayer.Filter GetMinFilter();Читает сохранённый запрос. Фильтр уменьшения изображения слоя, по умолчанию Linear. Nearest сохраняет резкие пиксели, Linear сглаживает выборку. Cubic передаётся как графическое расширение и требует поддержки устройства. Сохранённый enum не подтверждает применение compositor. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
OpenXRCompositionLayer.FilterСохранённое значение настройки; не подтверждает её применение compositor.
GetMipmapModeOpenXRCompositionLayer.MipmapMode
public OpenXRCompositionLayer.MipmapMode GetMipmapMode();Читает сохранённый запрос. Выбор mip-уровней при уменьшении, по умолчанию Linear; также доступны Nearest и Disabled. Параметр не создаёт mipmaps. В текущем Vulkan mapping Disabled тоже передаётся как Linear: не рассчитывайте на отключение mip-выборки этим значением на всех backend. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
OpenXRCompositionLayer.MipmapModeСохранённое значение настройки; не подтверждает её применение compositor.
GetRedSwizzleOpenXRCompositionLayer.Swizzle
public OpenXRCompositionLayer.Swizzle GetRedSwizzle();Читает сохранённый запрос. Источник выходного красного канала выборки слоя, по умолчанию Red. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
OpenXRCompositionLayer.SwizzleСохранённое значение настройки; не подтверждает её применение compositor.
GetSortOrderint
public int GetSortOrder();Возвращает сохранённое значение. Порядок native composition, изначально 1: более высокие значения впереди. Основная projection занимает 0; избегайте равенства 0, оно может конфликтовать с projection. Отрицательный порядок помещает слой позади неё и нужен для hole punch. На обычную fallback mesh этот порядок не действует; это не z-index GUI и не физическое расстояние.
intПорядок native composition, изначально 1: более высокие значения впереди. Основная projection занимает 0; избегайте равенства 0, оно может конфликтовать с projection. Отрицательный порядок помещает слой позади неё и нужен для hole punch. На обычную fallback mesh этот порядок не действует; это не z-index GUI и не физическое расстояние.
GetUseAndroidSurfacebool
public bool GetUseAndroidSurface();Читает сохранённый запрос. Выбирает Android surface вместо SubViewport, по умолчанию false. Включение снимает LayerViewport; выключение не возвращает прежний viewport — назначьте его заново. Нужны Android и XR_FB_android_surface_swapchain_create. Успешное присваивание флага на Windows не создаёт surface и не доказывает поддержку.
boolСохранённое значение настройки; не подтверждает её применение compositor.
GetVerticalWrapOpenXRCompositionLayer.Wrap
public OpenXRCompositionLayer.Wrap GetVerticalWrap();Читает сохранённый запрос. Адресация текстуры по вертикали, по умолчанию ClampToBorder. Управляет выборкой за пределами текстуры, а не высотой поверхности или viewport. В OpenGL ES MirrorClampToEdge преобразуется в ClampToEdge; одинаковый enum не гарантирует одинаковую картинку на разных backend. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
OpenXRCompositionLayer.WrapСохранённое значение настройки; не подтверждает её применение compositor.
IntersectsRayVector2
public Vector2 IntersectsRay(Vector3 origin, Vector3 direction);Возвращает UV пересечения world-space луча с геометрией конкретного слоя; miss — Vector2(-1,-1). Реализация базового класса всегда возвращает miss, формы переопределяют её. Для Quad проверены ортонормальные transform без scale/shear; Y UV направлена вниз. Это не physics raycast, не проверка видимости/стен и не отправка GUI input. Проверяйте попадание и переведите UV в пиксели viewport.
| Имя | Тип | По умолчанию |
|---|---|---|
origin | Vector3 | — |
direction | Vector3 | — |
originНачало луча в глобальных координатах; не локальная позиция контроллера. Передавайте конечные числа и проверяйте текущий трекинг.
directionНаправление луча в глобальных координатах, не точка назначения. Используйте конечный ненулевой нормализованный вектор, обычно -GlobalTransform.Basis.Z контроллера.
Vector2UV пересечения либо (-1,-1); результат не подтверждает отсутствие перекрывающей геометрии.
IsNativelySupportedbool
public bool IsNativelySupported();Проверяет поддержку конкретного layer type через текущие OpenXR API/extension. Без них false; Quad не требует отдельной shape extension, Cylinder/Equirect требуют соответствующих расширений. Используйте после старта сессии для выбора пути. true не гарантирует работающий swapchain, назначенный viewport, отправленный слой или видимые пиксели; false не запрещает fallback.
boolПоддержка типа в текущем API/extension, не готовность отображения.
IsProtectedContentbool
public bool IsProtectedContent();Читает сохранённый запрос. Запрос защищённого содержимого, по умолчанию false. Передаётся как флаг создания XR swapchain; задавайте до создания surface/swapchain. Getter читает запрос, а не статус защиты. Не является DRM или гарантией запрета захвата: поддержка, ошибки создания и безопасность требуют проверки на целевом устройстве.
boolСохранённое значение настройки; не подтверждает её применение compositor.
SetAlphaBlendvoid
public void SetAlphaBlend(bool enabled);Сохраняет настройку. Разрешает композицию по alpha слоя; изначально false. Для прозрачного UI также нужен TransparentBg viewport и действительно прозрачный фон UI. Setter обновляет native flag и fallback material, но не проверяет видимый результат в шлеме.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
enabledВключить композицию по alpha; совместно настройте прозрачность viewport/UI.
SetAlphaSwizzlevoid
public void SetAlphaSwizzle(OpenXRCompositionLayer.Swizzle mode);Источник выходного alpha канала выборки слоя, по умолчанию Alpha. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
| Имя | Тип | По умолчанию |
|---|---|---|
mode | OpenXRCompositionLayer.Swizzle | — |
modeИсточник выходного alpha канала выборки слоя, по умолчанию Alpha. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions.
SetAndroidSurfaceSizevoid
public void SetAndroidSurfaceSize(Vector2I size);Запрошенный размер Android surface в пикселях, по умолчанию 1024×1024. Задавайте положительные компоненты до получения surface. Не меняет LayerViewport.Size. Изменение уже созданной surface требует Android swapchain-update extension; getter возвращает запрос, а не подтверждённый размер производителя кадров.
| Имя | Тип | По умолчанию |
|---|---|---|
size | Vector2I | — |
sizeПоложительный размер surface в пикселях; не размер viewport.
SetBlueSwizzlevoid
public void SetBlueSwizzle(OpenXRCompositionLayer.Swizzle mode);Источник выходного синего канала выборки слоя, по умолчанию Blue. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
| Имя | Тип | По умолчанию |
|---|---|---|
mode | OpenXRCompositionLayer.Swizzle | — |
modeИсточник выходного синего канала выборки слоя, по умолчанию Blue. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions.
SetBorderColorvoid
public void SetBorderColor(Color color);Цвет выборки вне текстуры при ClampToBorder, по умолчанию прозрачный чёрный Color(0,0,0,0). Не перекрашивает viewport или фон UI. Видимость alpha зависит также от AlphaBlend и прозрачности содержимого; изменение цвета само по себе не подтверждает прозрачную композицию. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
| Имя | Тип | По умолчанию |
|---|---|---|
color | Color | — |
colorЦвет выборки вне текстуры при ClampToBorder, по умолчанию прозрачный чёрный Color(0,0,0,0). Не перекрашивает viewport или фон UI. Видимость alpha зависит также от AlphaBlend и прозрачности содержимого; изменение цвета само по себе не подтверждает прозрачную композицию.
SetEnableHolePunchvoid
public void SetEnableHolePunch(bool enable);Сохраняет настройку. Включает hole-punch mesh/материал, изначально false. Для native-пути нужен отрицательный SortOrder, например -1; неотрицательный порядок вызывает configuration warning. Один флаг не гарантирует корректное перекрытие. На fallback меняется depth-test поведение материала; пиксели не проверены.
| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
enableВключить hole punching; для native-пути также нужен SortOrder<0. Не подтверждает корректные пиксели.
SetEyeVisibilityvoid
public void SetEyeVisibility(OpenXRCompositionLayer.EyeVisibilityEnum eyeVisibility);Глаза, которым отправляется native слой: Both по умолчанию, Left или Right. Не является маской Entity видимости или выбором viewport. Меняет поле native Quad/Cylinder/Equirect; поведение обычного mesh fallback этим параметром не подтверждено.
| Имя | Тип | По умолчанию |
|---|---|---|
eyeVisibility | OpenXRCompositionLayer.EyeVisibilityEnum | — |
eyeVisibilityГлаза, которым отправляется native слой: Both по умолчанию, Left или Right. Не является маской Entity видимости или выбором viewport. Меняет поле native Quad/Cylinder/Equirect; поведение обычного mesh fallback этим параметром не подтверждено.
SetGreenSwizzlevoid
public void SetGreenSwizzle(OpenXRCompositionLayer.Swizzle mode);Источник выходного зелёного канала выборки слоя, по умолчанию Green. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
| Имя | Тип | По умолчанию |
|---|---|---|
mode | OpenXRCompositionLayer.Swizzle | — |
modeИсточник выходного зелёного канала выборки слоя, по умолчанию Green. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions.
SetHorizontalWrapvoid
public void SetHorizontalWrap(OpenXRCompositionLayer.Wrap mode);Адресация текстуры по горизонтали, по умолчанию ClampToBorder. Repeat повторяет изображение, MirroredRepeat чередует направление, ClampToEdge продолжает край; ClampToBorder использует BorderColor. В OpenGL ES MirrorClampToEdge преобразуется в ClampToEdge, без зеркалирования. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
| Имя | Тип | По умолчанию |
|---|---|---|
mode | OpenXRCompositionLayer.Wrap | — |
modeАдресация текстуры по горизонтали, по умолчанию ClampToBorder. Repeat повторяет изображение, MirroredRepeat чередует направление, ClampToEdge продолжает край; ClampToBorder использует BorderColor. В OpenGL ES MirrorClampToEdge преобразуется в ClampToEdge, без зеркалирования.
SetLayerViewportvoid
public void SetLayerViewport(SubViewport viewport);Сохраняет настройку. Назначенный SubViewport или null. Один viewport нельзя использовать несколькими слоями в дереве. При назначении WhenVisible/WhenParentVisible меняются на Always с предупреждением; Disabled автоматически не исправляется. С включённой Android surface ненулевой viewport отклоняется. Ссылка заимствованная, не передаёт владение; перед удалением отдельно принадлежащего viewport отсоедините его.
| Имя | Тип | По умолчанию |
|---|---|---|
viewport | SubViewport | — |
viewportЗаимствованный SubViewport либо null для отсоединения. Нужны положительный pixel Size и осознанный update mode; не делите один viewport между слоями в дереве.
SetMagFiltervoid
public void SetMagFilter(OpenXRCompositionLayer.Filter mode);Фильтр увеличения изображения слоя, по умолчанию Linear. Nearest подходит для резких пикселей, Linear — для интерполяции. Cubic требует поддержки соответствующего графического расширения. Не увеличивает разрешение LayerViewport. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
| Имя | Тип | По умолчанию |
|---|---|---|
mode | OpenXRCompositionLayer.Filter | — |
modeФильтр увеличения изображения слоя, по умолчанию Linear. Nearest подходит для резких пикселей, Linear — для интерполяции. Cubic требует поддержки соответствующего графического расширения. Не увеличивает разрешение LayerViewport.
SetMaxAnisotropyvoid
public void SetMaxAnisotropy(float value);Запрошенная максимальная анизотропия, по умолчанию 1. Помогает выборке наклонных поверхностей при поддержке compositor. Используйте конечное значение >=1 в пределах устройства. Setter сохраняет даже 0 без проверки; getter не подтверждает допустимость или применение на GPU. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
| Имя | Тип | По умолчанию |
|---|---|---|
value | float | — |
valueКонечная величина >=1 в пределах целевого устройства; автоматической проверки нет.
SetMinFiltervoid
public void SetMinFilter(OpenXRCompositionLayer.Filter mode);Фильтр уменьшения изображения слоя, по умолчанию Linear. Nearest сохраняет резкие пиксели, Linear сглаживает выборку. Cubic передаётся как графическое расширение и требует поддержки устройства. Сохранённый enum не подтверждает применение compositor. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
| Имя | Тип | По умолчанию |
|---|---|---|
mode | OpenXRCompositionLayer.Filter | — |
modeФильтр уменьшения изображения слоя, по умолчанию Linear. Nearest сохраняет резкие пиксели, Linear сглаживает выборку. Cubic передаётся как графическое расширение и требует поддержки устройства. Сохранённый enum не подтверждает применение compositor.
SetMipmapModevoid
public void SetMipmapMode(OpenXRCompositionLayer.MipmapMode mode);Выбор mip-уровней при уменьшении, по умолчанию Linear; также доступны Nearest и Disabled. Параметр не создаёт mipmaps. В текущем Vulkan mapping Disabled тоже передаётся как Linear: не рассчитывайте на отключение mip-выборки этим значением на всех backend. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
| Имя | Тип | По умолчанию |
|---|---|---|
mode | OpenXRCompositionLayer.MipmapMode | — |
modeВыбор mip-уровней при уменьшении, по умолчанию Linear; также доступны Nearest и Disabled. Параметр не создаёт mipmaps. В текущем Vulkan mapping Disabled тоже передаётся как Linear: не рассчитывайте на отключение mip-выборки этим значением на всех backend.
SetProtectedContentvoid
public void SetProtectedContent(bool protectedContent);Запрос защищённого содержимого, по умолчанию false. Передаётся как флаг создания XR swapchain; задавайте до создания surface/swapchain. Getter читает запрос, а не статус защиты. Не является DRM или гарантией запрета захвата: поддержка, ошибки создания и безопасность требуют проверки на целевом устройстве.
| Имя | Тип | По умолчанию |
|---|---|---|
protectedContent | bool | — |
protectedContentЗапрос защиты при создании swapchain, не подтверждение её действия.
SetRedSwizzlevoid
public void SetRedSwizzle(OpenXRCompositionLayer.Swizzle mode);Источник выходного красного канала выборки слоя, по умолчанию Red. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
| Имя | Тип | По умолчанию |
|---|---|---|
mode | OpenXRCompositionLayer.Swizzle | — |
modeИсточник выходного красного канала выборки слоя, по умолчанию Red. Можно выбрать Red, Green, Blue, Alpha, Zero или One; Zero/One задают постоянное значение. Меняет sampler mapping, не исходные пиксели ресурса; фактическое применение зависит от OpenXR sampler extensions.
SetSortOrdervoid
public void SetSortOrder(int order);Сохраняет настройку. Порядок native composition, изначально 1: более высокие значения впереди. Основная projection занимает 0; избегайте равенства 0, оно может конфликтовать с projection. Отрицательный порядок помещает слой позади неё и нужен для hole punch. На обычную fallback mesh этот порядок не действует; это не z-index GUI и не физическое расстояние.
| Имя | Тип | По умолчанию |
|---|---|---|
order | int | — |
orderПорядок native слоя: отрицательный позади projection, положительный впереди. Избегайте 0; не управляет fallback mesh.
SetUseAndroidSurfacevoid
public void SetUseAndroidSurface(bool enable);Выбирает Android surface вместо SubViewport, по умолчанию false. Включение снимает LayerViewport; выключение не возвращает прежний viewport — назначьте его заново. Нужны Android и XR_FB_android_surface_swapchain_create. Успешное присваивание флага на Windows не создаёт surface и не доказывает поддержку.
| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
enabletrue снимает LayerViewport; false не восстанавливает его.
SetVerticalWrapvoid
public void SetVerticalWrap(OpenXRCompositionLayer.Wrap mode);Адресация текстуры по вертикали, по умолчанию ClampToBorder. Управляет выборкой за пределами текстуры, а не высотой поверхности или viewport. В OpenGL ES MirrorClampToEdge преобразуется в ClampToEdge; одинаковый enum не гарантирует одинаковую картинку на разных backend. Для native применения нужны XR_FB_swapchain_update_state и расширение текущего Vulkan/OpenGL ES backend; без них настройка не применяется.
| Имя | Тип | По умолчанию |
|---|---|---|
mode | OpenXRCompositionLayer.Wrap | — |
modeАдресация текстуры по вертикали, по умолчанию ClampToBorder. Управляет выборкой за пределами текстуры, а не высотой поверхности или viewport. В OpenGL ES MirrorClampToEdge преобразуется в ClampToEdge; одинаковый enum не гарантирует одинаковую картинку на разных backend.
OpenXRCompositionLayer.EyeVisibilityEnum
OpenXRCompositionLayer.Filter
| Значение | Описание |
|---|---|
Cubic = 2 | При выборке текстуры выполняйте кубическую фильтрацию. |
Linear = 1 | Выполняйте линейную фильтрацию при выборке текстуры. |
Nearest = 0 | При выборке текстуры следует выполнять фильтрацию ближайшего соседа. |
OpenXRCompositionLayer.MipmapMode
| Значение | Описание |
|---|---|
Disabled = 0 | Отключить MIP-текстурирование. Примечание: MIP-текстурирование можно отключить только в режиме совместимости. |
Linear = 2 | Использовать линейную интерполяцию двух MIP-карт ближайшего разрешения. |
Nearest = 1 | Используйте mipmap ближайшего разрешения. |
OpenXRCompositionLayer.Swizzle
| Значение | Описание |
|---|---|
Alpha = 3 | Сопоставляет цветовой канал со значением альфа-канала. |
Blue = 2 | Сопоставляет цветовой канал со значением синего канала. Свиззл Альфа |
Green = 1 | Сопоставляет цветовой канал со значением зеленого канала. |
One = 5 | Сопоставляет цветовой канал со значением единицы. |
Red = 0 | Сопоставляет цветовой канал со значением красного канала. |
Zero = 4 | Сопоставляет цветовой канал со значением ноль. |
OpenXRCompositionLayer.Wrap
| Значение | Описание |
|---|---|
ClampToBorder = 0 | Закрепите текстуру по указанному цвету границы. |
ClampToEdge = 1 | Закрепите текстуру по цвету ее кромки. |
MirrorClampToEdge = 4 | Отразите текстуру один раз, а затем прикрепите её к цвету края. Примечание: Этот режим обтекания недоступен в рендере совместимости. |
MirroredRepeat = 3 | Повторяйте текстуру бесконечно, зеркально отображая ее при каждом повторе. |
Repeat = 2 | Повторяйте текстуру бесконечно. |