While Fixing your time step, you should Free your draw step so that positions are interpolated between logic frames. Input runs at the logic rate, and drawing runs at the refresh rate. Separate drawing and logic. You can have an event queue for two timers that can be set to the refresh and logic rate then monitor it for events. If logic or rendering takes too long, skip visual frames as necessary, or force game time to slow down.
Edit bc I can't commentEdit3 Your input runsWhat I was getting at was that there's nothing special you need to do to handle this other than handle events in the order they occur.
Run your logic timer at whatever rate you want within reason. Process allThis is when you update the game state based on dV or dA or however you want to integrate. With overlap based collision this is also when you run collision detection. Now the difficulty I believe you were having was with "when to apply input and logic events at once, and then renderbased state changes". I believe you were questioning whether to aggregate input per logic update. Logic usually runs fast enough that you don't understand whatget more than one input event but in the case of mouse input you might get several move events within a relatively slow logic update. It seems the real problemquestion is herewhat to do with the input events in between logic updates. Edit2 I still don't get Do you feel it. Process events is necessary to apply the elapsed time to them? I have never in practice needed such precision that input events can't just be applied directly and consecutively and take effect on the order they occurnext logic frame.
Are you somehow polling for inputyour logic updates so infrequent or so expensive that this actually caused problems in real life?