| 484 | } |
| 485 | |
| 486 | std::vector<unsigned char> RenderWindowBridge::TakeStdMultiEditorScreenshot( |
| 487 | std::optional<std::pair<int, int>> size, |
| 488 | ScreenshotFormat format) const |
| 489 | { |
| 490 | StdMultiEditorScreenshotProvider provider; |
| 491 | StorageThreadDispatcherBase::Pointer dispatcher; |
| 492 | { |
| 493 | std::lock_guard<std::mutex> lock(m_Mutex); |
| 494 | provider = m_StdMultiEditorScreenshotProvider; |
| 495 | dispatcher = m_Dispatcher.Lock(); |
| 496 | } |
| 497 | |
| 498 | if (!provider) |
| 499 | throw std::runtime_error("No StdMulti editor screenshot provider is connected to the RenderWindowBridge"); |
| 500 | |
| 501 | std::vector<unsigned char> result; |
| 502 | Dispatch(dispatcher, [&]() { result = provider(size, format); }); |
| 503 | return result; |
| 504 | } |
| 505 | |
| 506 | std::vector<unsigned char> RenderWindowBridge::TakeStdMultiWindowScreenshot( |
| 507 | const std::string& windowName, |