Don't get me wrong but working directly with pixels isn't good as it can be werry slow and CPU consuming. Nowadays most of graphic engines use OPenGL or DirectX for renderning graphics becouse both of theese alows to use hardware support for speeding everything up. Also todays graphic engines works with faces and textures.
But I think I understand why you want to do this all by yourself as it can be great lerning expirience. At some point I was trying to do something similar by myself but have abandoned all becouse I didn't get the expected performance out of it.
Bookmarks