void COverlayRenderer::CloseOverlay(const uint8_t plane) { CAutoLock lock(&m_csOverlayQueue); if (m_pPlanes[plane]) { ClearOverlay(plane); CopyToFrontBuffer(plane); OSDTexture nullTexture = {0}; nullTexture.plane = plane; m_pLib->HandleOSDUpdate(nullTexture); // C# side will release the front buffer if (m_pPlanes[plane]) { delete m_pPlanes[plane]; m_pPlanes[plane] = NULL; } if (m_pPlanesBackbuffer[plane]) { if (m_pPlanesBackbuffer[plane]->texture) m_pPlanesBackbuffer[plane]->texture->Release(); delete m_pPlanesBackbuffer[plane]; m_pPlanesBackbuffer[plane] = NULL; } } FreeOverlayQueue(plane); CancelTimers(); }
// -------------------------------------------------------------------------- // TAOState::CancelAll // -------------------------------------------------------------------------- // void TAOState::CancelAll() { LOG_1( _L("TAOState::CancelAll") ); // Cancel timers CancelTimers(); // Close current connection iStateContext.ConnectionManager().CloseConnection(); }