| 34 | } |
| 35 | |
| 36 | std::shared_ptr<DisplayLink> DisplayLinkWrapper::Make(std::function<void()> callback) { |
| 37 | if (DisplayLinkFunctions == nullptr || callback == nullptr) { |
| 38 | return nullptr; |
| 39 | } |
| 40 | auto* ret = new DisplayLinkWrapper(); |
| 41 | if (auto* displayLink = DisplayLinkFunctions->create(ret, DisplayLinkWrapperUpdate)) { |
| 42 | ret->displayLink = displayLink; |
| 43 | ret->callback = std::move(callback); |
| 44 | return std::shared_ptr<DisplayLink>(ret); |
| 45 | } |
| 46 | delete ret; |
| 47 | return nullptr; |
| 48 | } |
| 49 | |
| 50 | DisplayLinkWrapper::~DisplayLinkWrapper() { |
| 51 | DisplayLinkWrapper::stop(); |