The question keermalec asks is the key to what you should implement...
It boiles down to: "what is overhead and should be done by a lib using one or 2 calls, and what should be done by the programmer himself". So in fact: your lib should provide functionality to create the platform the gameprogrammer can build his game on, without the hassle to setup windows, regulate texturemanagement, handle windowmessages, handle resolution / bitdepth crap, put up a console for debuginfo (thus make realtime debugging easier), handle gamedevice input etc...
When you do all that, the answer to keermalec''s question is clear: your lib provides the functionality that will allow the programmer to create the best platform for gamedevelopent: the programmer can start programming the GAME and focus on the GAME, instead of hassling all other kind of stuff.
Glut just creates a window with less functions.
To use demogl as a metaphore: demogl lets the programmer focus on the effects he wants to show, everything else is handled. Still the programmer has to program the effect totally by himself using opengl.
Now... your lib should provide the same kind of platform for a gamedeveloper: the developer still has to write the game in opengl but can use your lib''s functionality to just get stuff done: like "create an overlay" with 1 functioncall and let the developer render stuff on that overlay in a breeze. (so gameinfo can be drawn easily without the hassle to keep the gamegraphics separated from the gameinfo graphics.)
To give you a tip: in demogl I use effectclasses that can be put on layers. So to project that on a game: you could have 1 effectclass render the gamegfx on layer 1 and another one on layer 2, which lays on top of layer 1, that renders the gameinfo.
because the effects in my lib are fairly separated and the programmer has to set up communication between the effects himself it''s not that usable for games. You could f.e. implement AND the layer stuff AND do it in a way that the source of all data is coming from 1 central store (i.e. the gamedata) and still you have complete separated rendercode that can be placed on diffrent layers easily.
That way, a gamecoder can get productive way faster using your lib than f.e. using glut or write his own rendermanager lib thingy.
nice sideeffect is that you have instantly a selling point for your library to gameprogrammers
--
Get productive, Get DemoGL:
http://www.demogl.com