Files
PrinceOfGlory/Packages/com.unity.xr.openxr/Runtime/CompositionLayers/OpenXRDefaultLayer.cs
2026-03-03 03:15:46 +08: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