improved backend encapsulation

Various backend improvements are included in this commit, mostly for the
benefit of exporting. These include:
- Moving more non-GL code from OpenGL derivatives into base classes
- An "export mode" that changes the cache behavior of video backends
- Using the Viewer's UUID introduced a few commits ago
- No longer hardcoding the pixel format/render mode in the backend (since
  they'll inevitably differ when exporting vs previewing)
- Improved signalling for frames that are completed
This commit is contained in:
itsmattkc
2019-12-20 04:35:31 +11:00
parent 757aaa21c4
commit 8ace197d66
10 changed files with 142 additions and 109 deletions
+5 -3
View File
@@ -55,9 +55,6 @@ void AudioRenderBackend::ConnectViewer(ViewerOutput *node)
{
connect(node, SIGNAL(AudioChangedBetween(const rational&, const rational&)), this, SLOT(InvalidateCache(const rational&, const rational&)));
connect(node, SIGNAL(AudioGraphChanged()), this, SLOT(QueueRecompile()));
// FIXME: Hardcoded format, though I doubt this will change any time soon (maybe we'll shift to DBL at some point)
SetParameters(AudioRenderingParams(node->audio_params(), SAMPLE_FMT_FLT));
}
void AudioRenderBackend::DisconnectViewer(ViewerOutput *node)
@@ -117,3 +114,8 @@ QString AudioRenderBackend::CachePathName()
return this_cache_dir.filePath(QStringLiteral("pcm"));
}
bool AudioRenderBackend::CanRender()
{
return params_.is_valid();
}