diff options
| author | yum <yum.food.vr@gmail.com> | 2024-04-25 15:52:24 -0700 |
|---|---|---|
| committer | yum <yum.food.vr@gmail.com> | 2024-04-25 15:52:24 -0700 |
| commit | 6eed98ff4e57326ebf7a41f0c180635a7bcac626 (patch) | |
| tree | 67f5e269bafb49608cab8a6b22534d83fd09b58b /Third_Party/at.pimaker.ltcgi/Adapters/LTCGI_USharpVideoAdapter.cs_disabled | |
| parent | b9671b47df8b17fa3143d4b0dbdecf9b77cc7607 (diff) | |
Add LTCGI
Also begin trying to fix fallback shaders.
Diffstat (limited to 'Third_Party/at.pimaker.ltcgi/Adapters/LTCGI_USharpVideoAdapter.cs_disabled')
| -rw-r--r-- | Third_Party/at.pimaker.ltcgi/Adapters/LTCGI_USharpVideoAdapter.cs_disabled | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/Third_Party/at.pimaker.ltcgi/Adapters/LTCGI_USharpVideoAdapter.cs_disabled b/Third_Party/at.pimaker.ltcgi/Adapters/LTCGI_USharpVideoAdapter.cs_disabled new file mode 100644 index 0000000..0c53fa7 --- /dev/null +++ b/Third_Party/at.pimaker.ltcgi/Adapters/LTCGI_USharpVideoAdapter.cs_disabled @@ -0,0 +1,63 @@ +#if UDONSHARP +using UdonSharp; +using UdonSharp.Video; +using UnityEngine; + +[UdonBehaviourSyncMode(BehaviourSyncMode.None)] +public class LTCGI_USharpVideoAdapter : UdonSharpBehaviour +{ + const string MATERIAL_PARAM_TEX = "_MainTex"; + const string MATERIAL_PARAM_OVERLAY_OPACITY = "_OverlayOpacity"; + const string MATERIAL_PARAM_GAMMA = "_Gamma"; + const string MATERIAL_PARAM_FLIPUV = "_FlipUV"; + + public USharpVideoPlayer VideoPlayer; + public CustomRenderTexture CRT; + + [Tooltip("Place the same Standby Texture as in your VideoScreenHandler here if you want it to reflect too. Should be black if unset.")] + public Texture StandbyTexture; + + private Material sharedMaterial; + + void Start() + { + sharedMaterial = CRT.material; + VideoPlayer.RegisterCallbackReceiver(this); + + sharedMaterial.SetFloat(MATERIAL_PARAM_OVERLAY_OPACITY, 0.0f); + } + + public void OnUSharpVideoModeChange() => OnUSharpVideoRenderTextureChange(); + + public void OnUSharpVideoRenderTextureChange() + { + var manager = VideoPlayer.GetVideoManager(); + var tex = manager.GetVideoTexture(); + var unity = VideoPlayer.IsUsingUnityPlayer(); + + if (tex == null) + { + Debug.Log("[LTCGI_USharpVideoAdapter] set to standby texture"); + sharedMaterial.SetTexture(MATERIAL_PARAM_TEX, StandbyTexture); + sharedMaterial.SetFloat(MATERIAL_PARAM_FLIPUV, 1.0f); + sharedMaterial.SetFloat(MATERIAL_PARAM_GAMMA, 0.0f); + } + else + { + sharedMaterial.SetTexture(MATERIAL_PARAM_TEX, tex); + if (unity) + { + Debug.Log("[LTCGI_USharpVideoAdapter] set to unity player"); + sharedMaterial.SetFloat(MATERIAL_PARAM_FLIPUV, 1.0f); + sharedMaterial.SetFloat(MATERIAL_PARAM_GAMMA, 0.0f); + } + else + { + Debug.Log("[LTCGI_USharpVideoAdapter] set to avpro player"); + sharedMaterial.SetFloat(MATERIAL_PARAM_FLIPUV, 0.0f); + sharedMaterial.SetFloat(MATERIAL_PARAM_GAMMA, 1.0f); + } + } + } +} +#endif
\ No newline at end of file |
