title: QOpenGLWidget: Drawing at 60FPS while not interfering with its existing timing?
body: <p>I'm writing a shader editor using C++, Qt, and OpenGL.  I want the rendered scene to be interactive, and I want the user to be able to use variables from the surrounding environment, like mouse coordinates or window dimensions.</p>
  
  <p>As it stands, every time there's basically any sort of input (mouse moved, window brought to focus, key pressed, etc.) the OpenGL widget is redrawn.  This is how Qt's rendering works normally.</p>
  
  <p>However, I also want to let the user use regularly-changing inputs <strong>whose values don't depend on user interaction</strong>, like the system time, random numbers, and possibly even the webcam.  To do this in a meaningful way, I'd have to update the screen at a regular interval (which I'll probably let the user customize, as a matter of fact).</p>
  
  <p>If user input triggers a render while a timer does as well, or vice versa, then I will be wrestling with race conditions.  <strong>How do I avoid this?</strong></p>