| 597 | } |
| 598 | |
| 599 | std::vector<MxNWindowInfo> RenderWindowBridge::ListMxNWindows() const |
| 600 | { |
| 601 | MxNWindowListProvider provider; |
| 602 | StorageThreadDispatcherBase::Pointer dispatcher; |
| 603 | { |
| 604 | std::lock_guard<std::mutex> lock(m_Mutex); |
| 605 | provider = m_MxNWindowListProvider; |
| 606 | dispatcher = m_Dispatcher.Lock(); |
| 607 | } |
| 608 | |
| 609 | if (!provider) |
| 610 | throw std::runtime_error("No MxN window list provider is connected to the RenderWindowBridge"); |
| 611 | |
| 612 | std::vector<MxNWindowInfo> result; |
| 613 | Dispatch(dispatcher, [&]() { result = provider(); }); |
| 614 | return result; |
| 615 | } |
| 616 | |
| 617 | std::vector<unsigned char> RenderWindowBridge::TakeMxNEditorScreenshot( |
| 618 | std::optional<std::pair<int, int>> size, |