| 159 | } |
| 160 | |
| 161 | void RenderingManager::RemoveRenderWindow(vtkRenderWindow *renderWindow) |
| 162 | { |
| 163 | if (m_RenderWindowList.erase(renderWindow)) |
| 164 | { |
| 165 | auto callbacks_it = this->m_RenderWindowCallbacksList.find(renderWindow); |
| 166 | if (callbacks_it != this->m_RenderWindowCallbacksList.end()) |
| 167 | { |
| 168 | renderWindow->RemoveObserver(callbacks_it->second.commands[0u]); |
| 169 | renderWindow->RemoveObserver(callbacks_it->second.commands[1u]); |
| 170 | renderWindow->RemoveObserver(callbacks_it->second.commands[2u]); |
| 171 | this->m_RenderWindowCallbacksList.erase(callbacks_it); |
| 172 | } |
| 173 | |
| 174 | auto rw_it = |
| 175 | std::find(m_AllRenderWindows.begin(), m_AllRenderWindows.end(), renderWindow); |
| 176 | |
| 177 | if (rw_it != m_AllRenderWindows.cend()) |
| 178 | { |
| 179 | // Decrease reference count for proper destruction |
| 180 | (*rw_it)->UnRegister(nullptr); |
| 181 | m_AllRenderWindows.erase(rw_it); |
| 182 | } |
| 183 | } |
| 184 | } |
| 185 | |
| 186 | const RenderingManager::RenderWindowVector &RenderingManager::GetAllRegisteredRenderWindows() |
| 187 | { |