Well, I’m back and catching up, just concentrating on a few bugfixes (I finally caught the animation weird-scaling problem thanks to some nice test data from nephastu) then it’s back into the material work. leedgitar pointed out in the forums that I should allow vertex programs to be used without fragment programs, because some cards only support vertex programs. This makes the design a little more complicated because we won’t be able to assume that a pass is entirely programmable or entirely non-programmable. I guess it’s also possible that you might want a fragment program without a vertex program, although this is probably more rare I would have thought, especially when using high-level shaders where you really need to use the same output structure from the vertex program as input to the fragment program.
Anyway, I intend to resolve this, it’ll mean that the programmable flag will go and be replaced with a couple of flags, each of which will be set implicitly rather than explicitly. That’s on my list for tomorrow, right now I have to persuade my head that it’s time to sleep even though it feels like 8pm (damn you, jet lag).