コード例 #1
0
    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);
    }
コード例 #2
0
 public void SignalEndOfFrame(Megacool._TextureReadComplete ReadCompleteCallback)
 {
     if (pixelsRead == false)
     {
         ReadPixels(ReadCompleteCallback);
     }
 }
コード例 #3
0
    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);
    }
コード例 #4
0
        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();
            }
        }
コード例 #5
0
    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);
    }
コード例 #6
0
 private static extern void mcl_set_texture_read_complete_callback([MarshalAs(UnmanagedType.FunctionPtr)] Megacool._TextureReadComplete callbackPointer);
コード例 #7
0
 public void SignalEndOfFrame(Megacool._TextureReadComplete ReadCompleteCallback)
 {
     buffer.SignalEndOfFrame(ReadCompleteCallback);
 }
コード例 #8
0
 public void SetReadCompleteCallback(Megacool._TextureReadComplete callback)
 {
     ReadCompleteCallback = callback;
 }
コード例 #9
0
 public void InitializeCapture(double scaleFactor, Megacool._TextureReadComplete textureReadCallback)
 {
 }