/// <summary> /// Initializes a new instance of the MainWindow class. /// </summary> public MainWindow() { this.InitializeComponent(); _cam = new KinectCam(); _cam.NewImage += CamOnNewImage; _imageMixer = new ImageMixer(_cam.ColorFrameDescription.Width, _cam.ColorFrameDescription.Height); _imageMixer.BackgroundImage.LoadFile("Background.jpg"); // TODO: Load background PNG file into BackgroundImage DataContext = _imageMixer; _client = new NetworkCamDriverClient(); _client.Connect("127.0.0.1", 9090); // TODO: Not best way to connect :) Thread.Sleep(1000); // Start a separate thread for sending image _sendThread = new Thread(SendThreadLoop) { Name = "SendThread", IsBackground = true }; _sendThread.Start(); }
private void CamOnNewImage(KinectCam sender, byte[] image) { // Copy to mixer _imageMixer.UpdateForeground(image); _imageMixer.RepaintFinishedImage(); InvalidateImage(_imageMixer.ForegroundImage); InvalidateImage(_imageMixer.FinishedImage); // Trigger new copy to backbuffer and send _nextImageWaiter.Set(); }