Just a quick question about fine-tuning/optimization. If I'm making a 2D platformer with a parallax-scrolling background (meaning no two frames are the same) do I really need to clear my renderer for every iteration? The entire scene will be drawn-over anyways, so if I can get rid of one extra function every iteration, it could help to speed things up a little bit, though I realize that render-clearing is not a very expensive function. By the way, I'm using SDL2.
On tile based GPUs (commonly seen in mobile hardware) it is beneficial to clear the renderer, as it allows the GPU to dispose of the existing cached frame data.
Here's a quote from OpenGL Insights, dealing with the benefits of clearing the framebuffer on a tile based renderer:
"On a tile-based architecture, avoiding clears can be disasterous for performance: since the frame is built up in frame data, clearing all buffers will simply free up the existing frame data. In other words, not only is glClear very cheap, it actually improves performance by allowing unneeded frame data to be discarded."
No you don't need to.
As you said yourself, if you whole scene is drawn-over by the new rendered frame, then it makes no visual difference.
And as comments rightfully mentionned, it might have a positive or a negative impact on performance: profile on your target platform(s) to make your decision.
In the old days, it was common place to actually re-render only the parts of the frame buffer that required a change and keep the "old pixels" around to avoid costly clears. But today this is usually no longer a bottleneck.