Background
I've created a GUI using some FireMonkey controls.
- Some controls are animated and their appearance updates automatically.
- Some controls only update in response to user interaction (sliders etc).
Problem
Interaction with the user controls prevents updates to the animated controls, resulting in jerky discontinuous animation.
The animated control in the video above is driven by a TTimer component. The problem persists when using FireMonkey's animation components.
Investigation
The slider controls call Repaint() when adjusted. Smoothly adjusting a slider will generate a dense stream of Repaint() calls which block other controls from being updated.
What To Do?
Freezing animations while one control is continuously updated is not appropriate for my application. My first thought is to swap the Repaint() calls for something similar to the VCL Invalidate() method, but FireMonkey doesn't have anything comparable AFAIK.
Is there a good workaround for this problem?