hardcode 5ms window for rendering
This commit is contained in:
@@ -45,7 +45,7 @@ public:
|
|||||||
|
|
||||||
float elapsed = float(std::chrono::duration_cast<std::chrono::milliseconds>(now - last).count());
|
float elapsed = float(std::chrono::duration_cast<std::chrono::milliseconds>(now - last).count());
|
||||||
|
|
||||||
while(elapsed < 3 * _frameIntervalInMilliseconds / 4) {
|
while(elapsed < _frameIntervalInMilliseconds - 5) {
|
||||||
|
|
||||||
std::function<void()> task;
|
std::function<void()> task;
|
||||||
std::unique_lock<std::mutex> lock(_access);
|
std::unique_lock<std::mutex> lock(_access);
|
||||||
@@ -70,6 +70,25 @@ public:
|
|||||||
// Log("Took %f milliseconds for render", float(std::chrono::duration_cast<std::chrono::milliseconds>(frameEnd - frameStart).count()));
|
// Log("Took %f milliseconds for render", float(std::chrono::duration_cast<std::chrono::milliseconds>(frameEnd - frameStart).count()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
elapsed = float(std::chrono::duration_cast<std::chrono::milliseconds>(now - last).count());
|
||||||
|
|
||||||
|
while(elapsed < _frameIntervalInMilliseconds) {
|
||||||
|
std::function<void()> task;
|
||||||
|
std::unique_lock<std::mutex> lock(_access);
|
||||||
|
if (_tasks.empty()) {
|
||||||
|
_cond.wait_for(lock, std::chrono::duration<float, std::milli>(1));
|
||||||
|
now = std::chrono::high_resolution_clock::now();
|
||||||
|
elapsed = float(std::chrono::duration_cast<std::chrono::milliseconds>(now - last).count());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
task = std::move(_tasks.front());
|
||||||
|
_tasks.pop_front();
|
||||||
|
task();
|
||||||
|
|
||||||
|
now = std::chrono::high_resolution_clock::now();
|
||||||
|
elapsed = float(std::chrono::duration_cast<std::chrono::milliseconds>(now - last).count());
|
||||||
|
}
|
||||||
|
|
||||||
last = now;
|
last = now;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -139,6 +158,7 @@ public:
|
|||||||
|
|
||||||
void setFrameIntervalInMilliseconds(float frameIntervalInMilliseconds) {
|
void setFrameIntervalInMilliseconds(float frameIntervalInMilliseconds) {
|
||||||
_frameIntervalInMilliseconds = frameIntervalInMilliseconds;
|
_frameIntervalInMilliseconds = frameIntervalInMilliseconds;
|
||||||
|
Log("Set _frameIntervalInMilliseconds to %f", _frameIntervalInMilliseconds);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class Rt>
|
template <class Rt>
|
||||||
|
|||||||
Reference in New Issue
Block a user