MCPcopy Create free account
hub / github.com/NatronGitHub/Natron / blockingRender

Method blockingRender

Engine/BlockingBackgroundRender.cpp:43–72  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

41#include "Engine/Settings.h"
42
43NATRON_NAMESPACE_ENTER
44
45
46BlockingBackgroundRender::BlockingBackgroundRender(OutputEffectInstance* writer)
47 : _running(false)
48 , _writer(writer)
49{
50}
51
52void
53BlockingBackgroundRender::blockingRender(bool enableRenderStats,
54 int first,
55 int last,
56 int frameStep)
57{
58 // avoid race condition: the code must work even if renderFullSequence() calls notifyFinished()
59 // immediately.
60 QMutexLocker locker(&_runningMutex);
61
62 assert(_running == false);
63 _running = true;
64 _writer->renderFullSequence(true, enableRenderStats, this, first, last, frameStep);
65 if (appPTR->getCurrentSettings()->getNumberOfThreads() == -1) {
66 _running = false;
67 } else {
68 while (_running) {
69 _runningCond.wait(locker.mutex());
70 }
71 }
72}
73
74void
75BlockingBackgroundRender::notifyFinished()

Callers 1

Calls 3

renderFullSequenceMethod · 0.80
getNumberOfThreadsMethod · 0.80
getCurrentSettingsMethod · 0.80

Tested by

no test coverage detected