private void CreateManagedComponent() { switch (_senderTechnique) { case SenderTechniques.SenderTechniqueEnum.OpenGLSyphon: ComponentManager.AddManagedComponent <OpenGLCoreSyphon>(gameObject, handleCreatedManagedComponent); break; case SenderTechniques.SenderTechniqueEnum.MetalSyphon: ComponentManager.AddManagedComponent <MetalSyphon>(gameObject, handleCreatedManagedComponent); break; case SenderTechniques.SenderTechniqueEnum.Spout: ComponentManager.AddManagedComponent <SpoutSender>(gameObject, handleCreatedManagedComponent); break; case SenderTechniques.SenderTechniqueEnum.NDI: ComponentManager.AddManagedComponent <NdiSender>(gameObject, handleCreatedManagedComponent); break; default: Debug.LogError("Unexpected value of sender type"); break; } // Avoid side effects of components being enabled while this component is disabled if (!enabled) { ComponentManager.DisableManagedComponent <OpenGLCoreSyphon>(gameObject); ComponentManager.DisableManagedComponent <MetalSyphon>(gameObject); ComponentManager.DisableManagedComponent <NdiSender>(gameObject); ComponentManager.DisableManagedComponent <SpoutSender>(gameObject); } }
private void CreateTextureGetterAndRegister() { ComponentManager.AddManagedComponent <GetTextureByAsyncReadback>(gameObject, (textureFetcher) => { if (textureFetcher != null) { textureFetcher.RegisterOnNewFrameEvent(OnReadbackFrame); textureFetcher.RegisterOnSyncFrameEvent(OnReadbackSync); } else { Debug.LogError("NDI SENDER: unexpected missing textureFetcher"); } }); }
private void CreateTextureGetterAndRegister() { ComponentManager.AddManagedComponent <GetTextureByOnRenderImage>(gameObject, (textureFetcher) => { if (textureFetcher != null) { textureFetcher.registerOnNewTexture(ReceiveCameraTexture); textureFetcher.registerOnTextureResize(OnTextureResize); } else { Debug.LogError("GL SYPHON: unexpected missing textureFetcher"); } }); }