프로젝트

일반

사용자정보

통계
| 개정판:

t1 / TFDContents / Assets / Standard Assets / Windows / Kinect / MultiSourceFrameReference.cs @ 9

이력 | 보기 | 이력해설 | 다운로드 (2.87 KB)

1
#if !(UNITY_WSA_10_0 && NETFX_CORE)
2
using RootSystem = System;
3
using System.Linq;
4
using System.Collections.Generic;
5
namespace Windows.Kinect
6
{
7
    //
8
    // Windows.Kinect.MultiSourceFrameReference
9
    //
10
    public sealed partial class MultiSourceFrameReference : Helper.INativeWrapper
11

    
12
    {
13
        internal RootSystem.IntPtr _pNative;
14
        RootSystem.IntPtr Helper.INativeWrapper.nativePtr { get { return _pNative; } }
15

    
16
        // Constructors and Finalizers
17
        internal MultiSourceFrameReference(RootSystem.IntPtr pNative)
18
        {
19
            _pNative = pNative;
20
            Windows_Kinect_MultiSourceFrameReference_AddRefObject(ref _pNative);
21
        }
22

    
23
        ~MultiSourceFrameReference()
24
        {
25
            Dispose(false);
26
        }
27

    
28
        [RootSystem.Runtime.InteropServices.DllImport("KinectUnityAddin", CallingConvention=RootSystem.Runtime.InteropServices.CallingConvention.Cdecl, SetLastError=true)]
29
        private static extern void Windows_Kinect_MultiSourceFrameReference_ReleaseObject(ref RootSystem.IntPtr pNative);
30
        [RootSystem.Runtime.InteropServices.DllImport("KinectUnityAddin", CallingConvention=RootSystem.Runtime.InteropServices.CallingConvention.Cdecl, SetLastError=true)]
31
        private static extern void Windows_Kinect_MultiSourceFrameReference_AddRefObject(ref RootSystem.IntPtr pNative);
32
        private void Dispose(bool disposing)
33
        {
34
            if (_pNative == RootSystem.IntPtr.Zero)
35
            {
36
                return;
37
            }
38

    
39
            __EventCleanup();
40

    
41
            Helper.NativeObjectCache.RemoveObject<MultiSourceFrameReference>(_pNative);
42
                Windows_Kinect_MultiSourceFrameReference_ReleaseObject(ref _pNative);
43

    
44
            _pNative = RootSystem.IntPtr.Zero;
45
        }
46

    
47

    
48
        // Public Methods
49
        [RootSystem.Runtime.InteropServices.DllImport("KinectUnityAddin", CallingConvention=RootSystem.Runtime.InteropServices.CallingConvention.Cdecl, SetLastError=true)]
50
        private static extern RootSystem.IntPtr Windows_Kinect_MultiSourceFrameReference_AcquireFrame(RootSystem.IntPtr pNative);
51
        public Windows.Kinect.MultiSourceFrame AcquireFrame()
52
        {
53
            if (_pNative == RootSystem.IntPtr.Zero)
54
            {
55
                throw new RootSystem.ObjectDisposedException("MultiSourceFrameReference");
56
            }
57

    
58
            RootSystem.IntPtr objectPointer = Windows_Kinect_MultiSourceFrameReference_AcquireFrame(_pNative);
59
            Helper.ExceptionHelper.CheckLastError();
60
            if (objectPointer == RootSystem.IntPtr.Zero)
61
            {
62
                return null;
63
            }
64

    
65
            return Helper.NativeObjectCache.CreateOrGetObject<Windows.Kinect.MultiSourceFrame>(objectPointer, n => new Windows.Kinect.MultiSourceFrame(n));
66
        }
67

    
68
        private void __EventCleanup()
69
        {
70
        }
71
    }
72

    
73
}
74
#endif