No shaders needed, i expect all my games to work on wide variety of computers and graphics cards. So pixel shaders would be going out from that, limited to only new cards.

But as far as efficiency goes i can think of ways to improve it even further. For example i'm using glBegin(GL_POINTS),glVertex,glEnd sequence which could be replaced with vertex array. Each individual pixel call would add to array stack and once operations are done or pixel tool changes, or stack goes full, it would draw all at once. But as the drawing part is still very fast i don't think there's need to, yet.