/// <summary> /// Close and dispose all camera and DirectX stuff. /// </summary> public void CloseAll() { _bGraphIsBuilt = false; // stop rendering if (DX.MediaControl != null) { try { DX.MediaControl.StopWhenReady(); DX.MediaControl.Stop(); } catch (Exception ex) { Debug.WriteLine(ex); } } if (_pSampleGrabberHelper != null) { _pSampleGrabberHelper.Dispose(); _pSampleGrabberHelper = null; } DX.CloseInterfaces(); }
/// <summary> /// Adds SampleGrabber for screenshot making. /// </summary> private void AddFilter_SampleGrabber() { int hr = 0; // Get the SampleGrabber interface DX.SampleGrabber = new SampleGrabber() as ISampleGrabber; // Configure the sample grabber DX.SampleGrabberFilter = DX.SampleGrabber as IBaseFilter; _pSampleGrabberHelper = new SampleGrabberHelper(DX.SampleGrabber, false); _pSampleGrabberHelper.ConfigureMode(); // Add the sample grabber to the graph hr = DX.FilterGraph.AddFilter(DX.SampleGrabberFilter, "Sample Grabber"); DsError.ThrowExceptionForHR(hr); }