rricharz / Tek4010

Free Tektronix 4010, 4013, 4014 and 4015 terminal emulator for Raspberry Pi, Linux, macOS (Macintosh) and Windows

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Skipping frames

rricharz opened this issue · comments

If individual frames are skipped rather than shown on the screen, only certain parts of the drawing are highlighted. The bright spot animation does not show up for all drawn objects. But all objects are drawn properly.

The reason for this is that my current implementation of gtk3+ and cairo in main.c assumes that each call to tek4010_draw() or ards_draw() actually ends up in a frame shown on the screen. But this assumption is wrong. The gtk3+ implementation does not show frames on the screen faster than the actual screen refresh rate, and just skips frames under these circumstances.

This happens with very high resolution displays, or if actual frame rates are low in virtual environments such as VirtualBox.

The goal is to put something into place to make sure that each frame is actually shown on the screen, without affecting overall speed or cpu/gpu usage. Version 1.2.3 has improved this already by forcing a short delay after each call to tek4010_draw() or ards_draw().

In version 1.2.4 this has been fine tuned for a large variety of displays, cpu speeds and actual frame rates, including VirtualBox environments.