If we are talking about a game, the whole screen is redrawn every frame.
Otherwise you need to be more specific as to your goals.
What remains provably constant between frames is usually a bezel or a background image, and rendering this kind of thing is a large but dirt cheap blitting operation.
Everything else has a chance to remain constant (e.g. entering a pause mode, perfect immobility) but ordinarily there is no reason for optimizations:
- Your performance target is being able to draw all objects to the whole screen every frame: making a "lucky" case.cheaper is pointless.
Instead, drawing performance is improved by reducing the worst case number and cost of draw calls regardless of what changes from frame to frame (for instance, limiting the number of game entities in the game rules to limit drawn objects).
- Tracking regions where you aren't going to draw anything does little good: you are drawing objects, not screen regions, and a small dirty region means that the objects are concentrating the same amount of drawing effort into a smaller part of the frame buffer, which might or might not be good for performance.
Instead, you should cull objects to do less work, but culling criteria include importance, visibility and the like, not screen-space location.
Edited by LorenzoGatti, 22 August 2014 - 01:45 AM.