private void CreateOffscreenViewer() { DestroyOffscreenViewer(); if (m_GngOffscreenViewer == null) { // create two decompression buffer object instances m_GngDecompBuffer1 = new GngDecompBuffer(); m_GngDecompBuffer1.SetBufferSize(width, heigth, GngDecompBufferFormat.dbfRGB32); m_GngDecompBuffer2 = new GngDecompBuffer(); m_GngDecompBuffer2.SetBufferSize(width, heigth, GngDecompBufferFormat.dbfRGB32); // create the offscreen viewer object instance m_GngOffscreenViewer = new GngOffscreenViewer(m_GngDecompBuffer1); m_NewPicDecompBuffer = m_GngDecompBuffer1; m_GngOffscreenViewer.GetTextParams(out GngViewTextParams Params); // display a timestamp in the viewer Params.InsertPicInfo = true; Params.FontSize = 20; m_GngOffscreenViewer.SetTextParams(Params); m_GngOffscreenViewer.SetOffscreenViewerSize(width, heigth, true); m_GngOffscreenViewer.Refresh(); // set callbacks of the offscreen viewer objects OffscreenViewerAcceptCallbackDelegate OffscreenViewerAcceptCallbackDelegateInstance = new OffscreenViewerAcceptCallbackDelegate(GngOffscreenViewer_AcceptCallbackDelegate); m_GngOffscreenViewer.SetOffscreenViewerAcceptCallBack(OffscreenViewerAcceptCallbackDelegateInstance); OffscreenViewerCallbackDelegate OffscreenViewerCallbackDelegateInstance = new OffscreenViewerCallbackDelegate(GngOffscreenViewer_CallbackDelegate); m_GngOffscreenViewer.SetOffscreenViewerCallBack(OffscreenViewerCallbackDelegateInstance); } }
private void DestroyOffscreenViewer() { if (m_GngOffscreenViewer != null) { m_GngOffscreenViewer.Disconnect(true); m_GngOffscreenViewer.CloseCustomDrawCallBack(); m_GngOffscreenViewer.CloseOffscreenViewerAcceptCallBack(); m_GngOffscreenViewer.CloseOffscreenViewerCallBack(); m_GngOffscreenViewer.Dispose(); m_GngOffscreenViewer = null; } m_NewPicDecompBuffer = null; if (m_GngDecompBuffer1 != null) { m_GngDecompBuffer1.Dispose(); m_GngDecompBuffer1 = null; } if (m_GngDecompBuffer2 != null) { m_GngDecompBuffer2.Dispose(); m_GngDecompBuffer2 = null; } }