﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using UnityEngine;

namespace RememorySDK
{
    public class UnityDepthCompression
    {
#if UNITY_EDITOR_OSX
        public const string IMPORT_TARGET = "UnityDepthCompression_bundle";
#elif UNITY_IOS
    public const string IMPORT_TARGET = "__Internal";
#else
    public const string IMPORT_TARGET = "UnityDepthCompression";
#endif

        [DllImport(IMPORT_TARGET)]
        public static extern int EncodeRVL(short[] input, byte[] output, int numPixels);
        [DllImport(IMPORT_TARGET)]
        public static extern void DecodeRVL(byte[] input, short[] output, int numPixels);
    }

    public class DepthCompression : MonoBehaviour, IDepthCompression
    {
        public int EncodeRVL(ref short[] input, ref byte[] output, int numPixels)
        {
            int numBytes = UnityDepthCompression.EncodeRVL(input, output, numPixels);
            return numBytes;
        }

        public void DecodeRVL(ref byte[] input, ref short[] output, int numPixels)
        {
            UnityDepthCompression.DecodeRVL(input, output, numPixels);
        }
    }
}
