public void InitializeCapture(double scaleFactor, Megacool._TextureReadComplete textureReadCompleteCallback) { AndroidJavaClass captureMethodClass = new AndroidJavaClass("co.megacool.megacool.Megacool$CaptureMethod"); switch (SystemInfo.graphicsDeviceType) { case UnityEngine.Rendering.GraphicsDeviceType.OpenGLES2: megacool.Call( "setCaptureMethod", captureMethodClass.GetStatic <AndroidJavaObject>("OPENGLES2"), scaleFactor ); break; case UnityEngine.Rendering.GraphicsDeviceType.OpenGLES3: megacool.Call( "setCaptureMethod", captureMethodClass.GetStatic <AndroidJavaObject>("OPENGLES3"), scaleFactor ); break; case UnityEngine.Rendering.GraphicsDeviceType.Vulkan: UnityEngine.Debug.LogWarning("Megacool: Capturing from Vulkan isn't supported " + "yet, switch to ES3 or ES2 to make capture work"); return; default: return; } // 1 is MCF_BOTTOM_LEFT mcl_set_source_origin(1); mcl_set_texture_read_complete_callback(textureReadCompleteCallback); }
public void SignalEndOfFrame(Megacool._TextureReadComplete ReadCompleteCallback) { if (pixelsRead == false) { ReadPixels(ReadCompleteCallback); } }
public void InitializeCapture(double scaleFactor, Megacool._TextureReadComplete TextureReadCompleteCallback) { #pragma warning disable RECS0018 if (scaleFactor == 0.0) { #pragma warning restore RECS0018 // Revert to default on 0 scaleFactor = 0.5; } this.scaleFactor = scaleFactor; recordingManager.SetReadCompleteCallback(TextureReadCompleteCallback); }
private void ReadPixels(Megacool._TextureReadComplete ReadCompleteCallback) { RenderTexture previous = RenderTexture.active; RenderTexture active = Megacool.Instance._RenderTexture; RenderTexture.active = active; currentFrame.ReadPixels(new Rect(0, 0, active.width, active.height), 0, 0); RenderTexture.active = previous; pixelsRead = true; if (ReadCompleteCallback != null) { ReadCompleteCallback(); } }
public void InitializeCapture(double scaleFactor, Megacool._TextureReadComplete callback) { int iosValue; switch (SystemInfo.graphicsDeviceType) { case UnityEngine.Rendering.GraphicsDeviceType.OpenGLES2: iosValue = 1; break; case UnityEngine.Rendering.GraphicsDeviceType.OpenGLES3: iosValue = 2; break; case UnityEngine.Rendering.GraphicsDeviceType.Metal: iosValue = 3; break; default: return; } mcl_set_capture_method_with_scale_factor(scaleFactor, iosValue); mcl_set_texture_read_complete_callback(callback); }
private static extern void mcl_set_texture_read_complete_callback([MarshalAs(UnmanagedType.FunctionPtr)] Megacool._TextureReadComplete callbackPointer);
public void SignalEndOfFrame(Megacool._TextureReadComplete ReadCompleteCallback) { buffer.SignalEndOfFrame(ReadCompleteCallback); }
public void SetReadCompleteCallback(Megacool._TextureReadComplete callback) { ReadCompleteCallback = callback; }
public void InitializeCapture(double scaleFactor, Megacool._TextureReadComplete textureReadCallback) { }