renderers: add early functions for cancelling long render processes

This commit is contained in:
itsmattkc
2020-02-17 02:15:28 +11:00
parent 55cdd47933
commit 21affd4e58
6 changed files with 21 additions and 14 deletions
+5 -1
View File
@@ -122,6 +122,10 @@ NodeValueDatabase RenderWorker::GenerateDatabase(const Node* node, const TimeRan
// We need to insert tables into the database for each input
foreach (NodeParam* param, node->parameters()) {
if (IsCancelled()) {
return NodeValueDatabase();
}
if (param->type() == NodeParam::kInput) {
NodeInput* input = static_cast<NodeInput*>(param);
TimeRange input_time = node->InputTimeAdjustment(input, range);
@@ -136,7 +140,7 @@ NodeValueDatabase RenderWorker::GenerateDatabase(const Node* node, const TimeRan
DecoderPtr decoder = ResolveDecoderFromInput(stream);
if (decoder) {
FramePtr frame = RetrieveFromDecoder(decoder, input_time);
FramePtr frame = RetrieveFromDecoder(decoder, input_time, &IsCancelled());
if (frame) {
FrameToValue(stream, frame, &table);