What are you all doing now with GL3.0 and matrix stacks? IIRC GL3 did away with glPushMatrix() glPopMatrix()… Has anyone coded some nice utility to take over this to avoid having to code up some class that keeps track of all those matrices for you.
I have no need for such stacks. I’m using only glLoadMatrix function, so no problems with me on GL3. Before rendering object I just multiply object matrix with camera view matrix, and load it into modelview matrix state.
When such time comes when I will need to multiply more matrices and keep some hierarchy, then I’ll start to think of implementing such stack
I think the best thing to do is to write a class that does all that for you, it shouldn’t be that hard.
Minor correction, GL 3.0 hasn’t removed matrix stacks, it has marked them deprecated. If you are writing against 3.0 you still have access to those functions, they are not optional or removed in 3.0.
Thanks for clearing that up Rob, I will probably update my code to do away with matrix stacks if it’s feasible, and if not the next project will.
I know this question has been asked before and AFAIK there is not a definitive answer out there, but what time scale do people believe will pass for those deprecated calls to become obsolete?
Is this something which we can expect for definite in GL3.1 in people’s opinions?
At the moment my engine is 50/50. Where new stuff is going in I am relying on my own GL3.0 compliant maths library, but I still have legacy stuff to clean up.
The two time frames to look at are:
a) how soon do you need to move beyond the GL 3.0 feature set - you will be able to assess this once the GL 3.1 feature set is released.
b) how long vendors will provide drivers that can create 3.0 contexts.
My personal belief is that “b” should be a substantially long period of time. So if you are not driven to adopt 3.1 by the factors in “a”, then “b” becomes more important to you.
Remember that when 3.1 drivers are released, it will should still be possible to create 3.0 contexts - this is a change from past GL versions where the app didn’t tell the runtime what version it needed. The exception could be a vendor that chooses to enter the market with 3.1 as a minimum supported version (in which case your view of “a” might change.)