multithreaded download and files that probably should have been in the last

commit

For testing the new iteration, the texture cache disk download was written
into the main thread instead of into the separate threads. Now they're back
in separate threads again.

Also I think some of these files probably should have been in the previous
commit.
This commit is contained in:
itsmattkc
2019-11-06 09:14:20 +11:00
parent 6de976c19f
commit 3b224c7638
16 changed files with 606 additions and 398 deletions
+9
View File
@@ -87,3 +87,12 @@ TimeRange ClipBlock::InputTimeAdjustment(NodeInput *input, const TimeRange &inpu
return Block::InputTimeAdjustment(input, input_time);
}
QVariant ClipBlock::Value(NodeOutput *output)
{
if (output == buffer_output()) {
// We just pass through the texture here, the renderer should have gotten the correct time from InputTimeAdjustment
return texture_input()->value();
}
return Block::Value(output);
}
+2
View File
@@ -46,6 +46,8 @@ public:
virtual TimeRange InputTimeAdjustment(NodeInput* input, const TimeRange& input_time) override;
virtual QVariant Value(NodeOutput* output) override;
private:
NodeInput* texture_input_;
+2 -2
View File
@@ -58,13 +58,13 @@ QString VideoInput::Code(NodeOutput *output)
if (output == texture_output()) {
return "#version 110\n"
"\n"
"varying vec2 olive_tex_coord;\n"
"varying vec2 v_texcoord;\n"
"\n"
"uniform sampler2D footage_in;\n"
"uniform mat4 matrix_in;\n"
"\n"
"void main(void) {\n"
" gl_FragColor = texture2D(footage_in, vec2(vec4(olive_tex_coord, 0.0, 1.0) * matrix_in));\n"
" gl_FragColor = texture2D(footage_in, vec2(vec4(v_texcoord, 0.0, 1.0) * matrix_in));\n"
"}\n";
}
-5
View File
@@ -164,11 +164,6 @@ public:
*/
void DisconnectAll();
/**
* @brief Add's unique information about this Node at the given time to a QCryptographicHash
*/
//virtual void Hash(QCryptographicHash* hash, NodeOutput *from, const rational& time);
/**
* @brief Convert a pointer to a value that can be sent between NodeParams
*/
+1 -1
View File
@@ -202,7 +202,6 @@ QByteArray NodeParam::ValueToBytes(const NodeParam::DataType &type, const QVaria
case kFont: return ValueToBytesInternal<QString>(value); // FIXME: This should probably be a QFont?
case kFile: return ValueToBytesInternal<QString>(value);
case kMatrix: return ValueToBytesInternal<QMatrix4x4>(value);
case kFootage: return ValueToBytesInternal<float>(value); // FIXME: Unsustainble, find some other way to match Footage
case kRational: return ValueToBytesInternal<rational>(value);
case kVec2: return ValueToBytesInternal<QVector2D>(value);
case kVec3: return ValueToBytesInternal<QVector3D>(value);
@@ -210,6 +209,7 @@ QByteArray NodeParam::ValueToBytes(const NodeParam::DataType &type, const QVaria
// These types have no persistent input
case kNone:
case kFootage:
case kTexture:
case kBlock:
case kTrack: