1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-25 22:42:04 +02:00

code review + pause handling

This commit is contained in:
Laserlicht
2024-10-30 00:35:50 +01:00
parent a68522b370
commit bb73a35412
7 changed files with 54 additions and 7 deletions

View File

@@ -391,10 +391,10 @@ void CVideoInstance::tick(uint32_t msPassed)
if(videoEnded())
throw std::runtime_error("Video already ended!");
if(startTime == std::chrono::high_resolution_clock::time_point())
startTime = std::chrono::high_resolution_clock::now();
if(startTime == std::chrono::steady_clock::time_point())
startTime = std::chrono::steady_clock::now();
auto nowTime = std::chrono::high_resolution_clock::now();
auto nowTime = std::chrono::steady_clock::now();
double difference = std::chrono::duration_cast<std::chrono::milliseconds>(nowTime - startTime).count() / 1000.0;
int frameskipCounter = 0;
@@ -407,6 +407,22 @@ void CVideoInstance::tick(uint32_t msPassed)
loadNextFrame();
}
void CVideoInstance::activate()
{
if(deactivationStartTime != std::chrono::steady_clock::time_point())
{
auto pauseDuration = std::chrono::steady_clock::now() - deactivationStartTime;
startTime += pauseDuration;
deactivationStartTime = std::chrono::steady_clock::time_point();
}
}
void CVideoInstance::deactivate()
{
deactivationStartTime = std::chrono::steady_clock::now();
}
struct FFMpegFormatDescription
{
uint8_t sampleSizeBytes;