| 300 | } |
| 301 | |
| 302 | void DrawLooper::drawFrames(TimePoint /*time*/) { |
| 303 | auto drawLock = getDrawLock(); |
| 304 | auto drawOperations = collectDrawOperations(); |
| 305 | drawOperationsBatch(drawOperations); |
| 306 | performCleanup(DrawLooper::CleanUpMode::PostDraw); |
| 307 | |
| 308 | auto entriesLock = getEntriesLock(); |
| 309 | _drawScheduled = false; |
| 310 | |
| 311 | for (const auto& it : _entries) { |
| 312 | if (it->getDrawState().needsDraw) { |
| 313 | scheduleDraw(entriesLock); |
| 314 | return; |
| 315 | } |
| 316 | } |
| 317 | } |
| 318 | |
| 319 | void DrawLooper::processFrames(TimePoint time) { |
| 320 | _processingFrames = true; |