public void TestDisposedSize()
        {
            InfraredFrameData data = new InfraredFrameData();

            data.Dispose();
            Assert.AreEqual(data.SizeInBytes, 0);
        }
        public void TestDispose()
        {
            InfraredFrameData data = new InfraredFrameData();

            data.Dispose();
            Assert.AreEqual(data.DataPointer, IntPtr.Zero);
        }
 public void InfraredTestConstructor()
 {
     using (InfraredFrameData depthFrame = new InfraredFrameData())
     {
         InfraredFrameDataEventArgs args = new InfraredFrameDataEventArgs(depthFrame);
         Assert.AreEqual(depthFrame, args.FrameData);
     }
 }
        public void TestConstrutor()
        {
            InfraredFrameData data = new InfraredFrameData();
            bool pass = data.DataPointer != IntPtr.Zero;

            data.Dispose();
            Assert.AreEqual(true, pass);
        }
        /// <summary>
        /// Contructor
        /// </summary>
        /// <param name="frameData">Frame data</param>
        public InfraredFrameDataEventArgs(InfraredFrameData frameData)
        {
            if (frameData == null)
            {
                throw new ArgumentNullException("frameData");
            }

            this.frameData = frameData;
        }
Exemple #6
0
 public void TestNullDevice()
 {
     using (InfraredFrameData frame = new InfraredFrameData())
     {
         using (ImmutableInfraredTexture texture = new ImmutableInfraredTexture(null, frame))
         {
         }
     }
 }
        public void TestSize()
        {
            InfraredFrameData data = new InfraredFrameData();
            int  expected          = 512 * 424 * 2;
            bool pass = data.SizeInBytes == expected;

            data.Dispose();
            Assert.AreEqual(pass, true);
        }
        public void TestDisposeAccess()
        {
            InfraredFrameData data = new InfraredFrameData();

            data.Dispose();

            //Should throw exception
            var pointer = data.DataPointer;
        }
Exemple #9
0
 public void TestCreate()
 {
     using (InfraredFrameData frame = new InfraredFrameData())
     {
         using (ImmutableInfraredTexture texture = new ImmutableInfraredTexture(device, frame))
         {
             Assert.AreNotEqual(texture.ShaderView.NativePointer, IntPtr.Zero);
         }
     }
 }
Exemple #10
0
 public void TestCopy()
 {
     using (InfraredFrameData frame = new InfraredFrameData())
     {
         using (DynamicInfraredTexture texture = new DynamicInfraredTexture(device))
         {
             texture.Copy(device.ImmediateContext, frame);
         }
     }
 }
        public void TestMultipleDispose()
        {
            InfraredFrameData data = new InfraredFrameData();

            data.Dispose();
            //Second call to dispose should do nothing
            data.Dispose();

            Assert.AreEqual(data.DataPointer, IntPtr.Zero);
        }
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="sensor">Kinect sensor</param>
        public KinectSensorInfraredFrameProvider(KinectSensor sensor)
        {
            if (sensor == null)
            {
                throw new ArgumentNullException("sensor");
            }

            this.sensor = sensor;
            this.reader = this.sensor.InfraredFrameSource.OpenReader();
            this.reader.FrameArrived += FrameArrived;
            this.frameData            = new InfraredFrameData();
        }
Exemple #13
0
        /// <summary>
        /// Creates a dynamic depth texture, allocates GPU resources
        /// </summary>
        /// <param name="device">Direct3D Device</param>
        /// <param name="frameData">Initial frame data</param>
        public ImmutableInfraredTexture(Device device, InfraredFrameData frameData)
        {
            if (device == null)
            {
                throw new ArgumentNullException("device");
            }
            if (frameData == null)
            {
                throw new ArgumentNullException("frameData");
            }

            DataRectangle rect = new DataRectangle(frameData.DataPointer, Consts.DepthWidth * sizeof(ushort));

            this.texture    = new Texture2D(device, InfraredTextureDescriptors.DynamicResource, rect);
            this.shaderView = new ShaderResourceView(device, this.texture);
        }
Exemple #14
0
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            RenderForm form = new RenderForm("Kinect color sample");

            RenderDevice  device    = new RenderDevice(SharpDX.Direct3D11.DeviceCreationFlags.BgraSupport);
            RenderContext context   = new RenderContext(device);
            DX11SwapChain swapChain = DX11SwapChain.FromHandle(device, form.Handle);

            KinectSensor sensor = KinectSensor.GetDefault();

            sensor.Open();



            bool doQuit   = false;
            bool doUpload = false;
            InfraredFrameData                 currentData = null;
            DynamicInfraredTexture            irTexture   = new DynamicInfraredTexture(device);
            KinectSensorInfraredFrameProvider provider    = new KinectSensorInfraredFrameProvider(sensor);

            provider.FrameReceived += (sender, args) => { currentData = args.FrameData; doUpload = true; };

            form.KeyDown += (sender, args) => { if (args.KeyCode == Keys.Escape)
                                                {
                                                    doQuit = true;
                                                }
            };

            RenderLoop.Run(form, () =>
            {
                if (doQuit)
                {
                    form.Dispose();
                    return;
                }

                if (doUpload)
                {
                    irTexture.Copy(context, currentData);
                }

                context.RenderTargetStack.Push(swapChain);

                device.Primitives.ApplyFullTri(context, irTexture.ShaderView);

                device.Primitives.FullScreenTriangle.Draw(context);
                context.RenderTargetStack.Pop();
                swapChain.Present(0, SharpDX.DXGI.PresentFlags.None);
            });

            swapChain.Dispose();
            context.Dispose();
            device.Dispose();

            irTexture.Dispose();
            provider.Dispose();

            sensor.Close();
        }
Exemple #15
0
 /// <summary>
 /// Copy depth frame to graphics card
 /// </summary>
 /// <param name="context">Device context</param>
 /// <param name="data">Infrared frame data</param>
 public void Copy(DeviceContext context, InfraredFrameData data)
 {
     this.texture.Upload(context, data.DataPointer, data.SizeInBytes);
 }