Move renderSamples() to DivDispatch implementations.

To prevent rendering samples for systems that are not in use.

Additionally, it gives the systems more flexibility to render the samples
according to their specific configuration.
This commit is contained in:
Laurens Holst 2022-05-01 19:57:44 +02:00
parent 58fe971a3c
commit 7f0074511c
16 changed files with 327 additions and 219 deletions

View file

@ -899,12 +899,14 @@ bool DivEngine::loadDMF(unsigned char* file, size_t len) {
song.unload();
song=ds;
recalcChans();
renderSamples();
saveLock.unlock();
BUSY_END;
if (active) {
initDispatch();
syncReset();
BUSY_BEGIN;
renderSamples();
reset();
BUSY_END;
}
} catch (EndOfFileException& e) {
logE("premature end of file!");
@ -1596,12 +1598,14 @@ bool DivEngine::loadFur(unsigned char* file, size_t len) {
song.unload();
song=ds;
recalcChans();
renderSamples();
saveLock.unlock();
BUSY_END;
if (active) {
initDispatch();
syncReset();
BUSY_BEGIN;
renderSamples();
reset();
BUSY_END;
}
} catch (EndOfFileException& e) {
logE("premature end of file!");
@ -2005,12 +2009,14 @@ bool DivEngine::loadMod(unsigned char* file, size_t len) {
song.unload();
song=ds;
recalcChans();
renderSamples();
saveLock.unlock();
BUSY_END;
if (active) {
initDispatch();
syncReset();
BUSY_BEGIN;
renderSamples();
reset();
BUSY_END;
}
success=true;
} catch (EndOfFileException& e) {