@OP:
Framework's response was kind of smartass, but there's truth in what he's saying.
To put it more plainly, there are different "levels" of graphics programming. The higher level ones tend to be easier to use and work on more platforms, and the lower ones tend to be much much harder to use, only work on one platform, but are more flexible.
So the real question you should ask yourself is... how flexible do you need your graphics lib to be? Do existing libs really not provide the flexibility you need?
The general pecking order is something like this:
<highest level>
Lib wrappers (ex: SFML, SDL, Allegro)
Graphics libs (DirectX, OpenGL)
Communication with video drivers (few programmers go this low level)
Communication with video hardware (virtually nobody but driver authors go this low)
<lowest level>
|
Typically people either go with a wrapper like SFML, or a more "direct" approach like OpenGL. The only real difference is how much flexibility they need. But either way you are using layer upon layer of someone else's code. You can never truely do everything 100% by yourself. At least not on modern machines... not if you want your program to work anywhere.
Using a lower level lib like OpenGL gives you about all the flexibility anyone could want. But it only does graphics and requires you to do additional setup. Things that logically are a simple single-step operation (like loading textures -- a single function call in SFML) turn into multiple-step operations (load image file, decompress image, convert to OpenGL compatible format, create a texture, bind it, write image data to it).
Additionally, wrapper libs take care of things that lower level libs simply don't. For example, OpenGL only does graphics output. You have to supply your own window and do your own window management. And if you want audio, you have to employ an entirely separate lib. On the other hand, higher level libs like SFML have all that bundled in one. What's more, they do it on multiple platforms... whereas anything you write yourself will likely only work on your OS.
Here's the other thing. Libs like SFML even
let you use OpenGL directly. You can just use them to make window management/texture loading/etc easier, but do all the actual drawing yourself direclty with OpenGL. So really, they offer virtually the same amount of flexibility.... so there is very little reason not to use them.
So weigh your options carefully and figure out whether this is really worth your time. I'm personally not above reinventing the wheel -- it can be a lot of fun sometimes. But if you're looking to be productive, it's not the right way to go.