MCPcopy Create free account
hub / github.com/Snapchat/Valdi / processFrames

Method processFrames

snap_drawing/src/snap_drawing/cpp/Drawing/DrawLooper.cpp:319–348  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

317}
318
319void DrawLooper::processFrames(TimePoint time) {
320 _processingFrames = true;
321
322 while (processFrameForNextLayer(time)) {
323 }
324
325 bool needScheduleDraw = false;
326 bool needScheduleProcessFrame = false;
327 auto entriesLock = getEntriesLock();
328
329 for (const auto& it : _entries) {
330 if (it->getLayerRoot()->needsProcessFrame()) {
331 needScheduleProcessFrame = true;
332 }
333 if (it->getDrawState().needsDraw) {
334 needScheduleDraw = true;
335 }
336 }
337
338 _processingFrames = false;
339 _processFrameScheduled = false;
340
341 if (needScheduleProcessFrame) {
342 doScheduleProcessFrame();
343 }
344
345 if (needScheduleDraw && !_drawScheduled && !_inBackground) {
346 doScheduleDraw();
347 }
348}
349
350void DrawLooper::performCleanup(DrawLooper::CleanUpMode cleanUpMode) {
351 for (const auto& managedGraphicsContext : _managedGraphicsContexts) {

Callers 1

onFrameMethod · 0.80

Calls 2

needsProcessFrameMethod · 0.80
getDrawStateMethod · 0.80

Tested by

no test coverage detected