| 466 | } |
| 467 | |
| 468 | std::vector<WindowInfo> RenderWindowBridge::ListStdMultiWindows() const |
| 469 | { |
| 470 | StdMultiWindowListProvider provider; |
| 471 | StorageThreadDispatcherBase::Pointer dispatcher; |
| 472 | { |
| 473 | std::lock_guard<std::mutex> lock(m_Mutex); |
| 474 | provider = m_StdMultiWindowListProvider; |
| 475 | dispatcher = m_Dispatcher.Lock(); |
| 476 | } |
| 477 | |
| 478 | if (!provider) |
| 479 | throw std::runtime_error("No StdMulti window list provider is connected to the RenderWindowBridge"); |
| 480 | |
| 481 | std::vector<WindowInfo> result; |
| 482 | Dispatch(dispatcher, [&]() { result = provider(); }); |
| 483 | return result; |
| 484 | } |
| 485 | |
| 486 | std::vector<unsigned char> RenderWindowBridge::TakeStdMultiEditorScreenshot( |
| 487 | std::optional<std::pair<int, int>> size, |