Yes, I also think that it's too extensive to read in values from the hardware in every iteration. It might be a good compromise to read it at the beginning of a screen update - not for every pixel that is set...
Changing the mode in the middle of a screen update would probably indicate a more serious design flaw anyways
and it would probably result in a half drawn screen
Again - this is just an illustration - something that
kinda does what you want - something to get you started, so you can work on the more interesting stuff like the GUI framework, parallel to working on graphics drivers