Actually your question is legit. Indeed the zooming is dependant on the frametime. What you do is multiplying with delta T:
mview.zoom( ZOOM_FACTOR * delta_t );
If delta_t is in seconds, ZOOM_FACTOR will be the zoom factor that'll be applied in one second.
If delta_t is in seconds, ZOOM_FACTOR will be the zoom factor that'll be applied in one second.
It's more tricky. Since zooming is internally a multiplication and not an addition (as moving or rotating would be), the result is completely different; multiplying the zoom factor by the elapsed time would make it tiny very fast.
Look:
// Moving at 100 pixels/sec in one step (elapsed time is 1)
position = 0;
position += 100 * 1;
// position == 100
// Moving at 100 pixels/sec in two steps (elapsed time is 0.5)
position = 0;
position += 100 * 0.5;
position += 100 * 0.5;
// position == 100
// Zooming by 0.8/sec in one step (elapsed time is 1)
zoom = 1;
zoom *= 0.8 * 1;
// zoom == 0.8
// Zooming by 0.8/sec in two steps (elapsed time is 0.5)
zoom = 1;
zoom *= 0.8 * 0.5;
zoom *= 0.8 * 0.5;
// zoom == 0.16 !!!
Absolutely true, sorry for pointing out a wrong suggestion.
However zooming is still dependant on the frametime. If you simulate a very low or very high frametime then I bet it's recognizable.
What about using a different approach by modifying the zoom factor and setting it then instead of calling ZoomIn/Out() multiple times? Like:
zoom_factor += x * delta_t;
view.setZoom( zoom_factor );
If I'm not completely wrong (again ;)), that should do the trick. And in addition to that, you even have more control about the change rate more directly.