VR4Medical/ICI/Library/PackageCache/com.unity.xr.openxr@3903c1059bcf/Runtime/CompositionLayers/OpenXRDefaultLayer.cs
2025-07-29 13:45:50 +03:00

42 lines
1.4 KiB
C#

#if XR_COMPOSITION_LAYERS
using Unity.XR.CompositionLayers;
using Unity.XR.CompositionLayers.Layers;
using Unity.XR.CompositionLayers.Services;
using UnityEngine.XR.OpenXR.NativeTypes;
namespace UnityEngine.XR.OpenXR.CompositionLayers
{
internal class OpenXRDefaultLayer : OpenXRLayerProvider.ILayerHandler
{
unsafe void SetDefaultLayerAttributes(CompositionLayerManager.LayerInfo layerInfo)
{
var extensions = OpenXRLayerUtility.GetExtensionsChain(layerInfo, CompositionLayerExtension.ExtensionTarget.Layer);
OpenXRLayerUtility.SetDefaultSceneLayerExtensions(extensions);
var flags = layerInfo.Layer.LayerData.BlendType == BlendType.Premultiply ? XrCompositionLayerFlags.SourceAlpha : XrCompositionLayerFlags.SourceAlpha | XrCompositionLayerFlags.UnPremultipliedAlpha;
OpenXRLayerUtility.SetDefaultLayerFlags(flags);
}
public void CreateLayer(CompositionLayerManager.LayerInfo layerInfo) => SetDefaultLayerAttributes(layerInfo);
public void ModifyLayer(CompositionLayerManager.LayerInfo layerInfo) => SetDefaultLayerAttributes(layerInfo);
public void OnUpdate()
{
return;
}
public void RemoveLayer(int id)
{
return;
}
public void SetActiveLayer(CompositionLayerManager.LayerInfo layerInfo)
{
return;
}
}
}
#endif