LayerSecureContentFeature.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using System;
  2. using System.Runtime.InteropServices;
  3. using UnityEngine;
  4. using UnityEngine.XR.OpenXR;
  5. using UnityEngine.XR.OpenXR.Features;
  6. #if UNITY_EDITOR
  7. using UnityEditor.XR.OpenXR.Features;
  8. #endif
  9. namespace Unity.XR.OpenXR.Features.PICOSupport
  10. {
  11. #if UNITY_EDITOR
  12. [OpenXRFeature(UiName = "OpenXR Composition Layer Secure Content",
  13. Hidden = false,
  14. BuildTargetGroups = new[] { UnityEditor.BuildTargetGroup.Android },
  15. Company = "PICO",
  16. OpenxrExtensionStrings = extensionString,
  17. Version = "1.0.0",
  18. FeatureId = featureId)]
  19. #endif
  20. public class LayerSecureContentFeature : OpenXRFeatureBase
  21. {
  22. public const string featureId = "com.pico.openxr.feature.LayerSecureContent";
  23. public const string extensionString = "XR_FB_composition_layer_secure_content";
  24. public static bool isExtensionEnable =false;
  25. public override string GetExtensionString()
  26. {
  27. return extensionString;
  28. }
  29. public override void Initialize(IntPtr intPtr)
  30. {
  31. isExtensionEnable=_isExtensionEnable;
  32. }
  33. public override void SessionCreate()
  34. {
  35. PICOProjectSetting projectConfig = PICOProjectSetting.GetProjectConfig();
  36. if (projectConfig.useContentProtect)
  37. {
  38. SetSecureContentFlag(projectConfig.contentProtectFlags);
  39. }
  40. }
  41. public static void SetSecureContentFlag(SecureContentFlag flag)
  42. {
  43. if (!isExtensionEnable)
  44. {
  45. return;
  46. }
  47. setSecureContentFlag((int)flag);
  48. }
  49. const string extLib = "openxr_pico";
  50. [DllImport(extLib, EntryPoint = "PICO_setSecureContentFlag", CallingConvention = CallingConvention.Cdecl)]
  51. private static extern void setSecureContentFlag(Int32 flag);
  52. }
  53. }