Stefan Dösinger wrote:
A function pointer is a nice idea actually. I don't think we'll ever need more than one extension per state line though,
You already have this case:
} else if(GL_SUPPORT(NV_REGISTER_COMBINERS) && GL_SUPPORT(NV_TEXTURE_SHADER2)) { return &nvts_fragment_pipeline;
IMO the current way is easier to read,
I don't know about that - a pointer called "is_<something>_supported" seems just as readable to me.
and until we need a more flexible solution I'd pledge to keep the current code, since no matter what we(I) would have to rewrite it. It is a pain to rewrite/modify a set of patches so I don't want to do it unless we're certain we'll need it
I don't feel strongly about it either way, but the argument that "it will never happen" doesn't seem very convincing. "It will compile several ms slower" is probably a better case to make, but at Init3D-time we probably don't care how fast it is.
Ivan