I'm not re-implementing GLSL. I'm using GLSL.
Hah, of course. I meant "what are you re-implementing using
The old code used glRotate/glTranslate/etc, as well as glPushMatrix/glPopMatrix. I'm now using glm, and managing matixes myself.
Cool. That's not GLSL.
The old code used glLight, etc. I'm now using GLSL lights (phong shading)
I wouldn't merely consider this a transition from fixed-function to the programmable-pipeline. You're creating a completely new feature using GLSL.
I can feel a new gpwiki tutorial series coming..."OpenGL taught properly"
Personally, I've never used glBegin/glEnd in my own projects. Though I don't mind them if I'm just helping some one else or doing very simple test, I think the practices I've acquired are because I learned D3d first. Even with D3d, I only used its D3DX utility library while I was just trying to accomplish my first few steps. After investigating D3DX, I immediately realized it should be dropped. I came to the understanding that I needed to implement such things myself, yet my reasons didn't have very much to do with the pipeline. Reasons: control, extendability, targeting, features, understanding and so on. Stay away from third-party "feature-kits," especially if they're released without a good license. Anything third-party you use shouldn't fundamentally contribute to the internals of your project unless it's specialized for a specific feature that is hard/wasteful to do yourself. For example, it's an excellent idea to wrap good file-format libraries such as libpng, libjpeg, ogg vorbis and so on... by yourself.
If you use a third-party library that wraps these format-specific libraries into an all-in-one kit
, that's when 3rd-party involvement can really interfere with your needs. I suppose the glm library you're using is good because it appears to have a nice license and it seems fairly dedicated to a self-limited purpose.