On Sat, Jan 23, 2016 at 1:56 PM, Kenneth Graunke <kenn...@whitecape.org> wrote: > I'll be interested to see what you come up with. Maybe send a draft of > your idea so people can take a look before you bother to convert the > whole thing?
My immediate thought is to create a hash table of enum -> { avail, v, pred, func }. The availability would be initialized based on the predicate at ctx init time, as well as the value based on an optionally provided string (so like ctx->Const.foo). The function would be optional and would allow you to do whatever you wanted as a function of the context. At lookup time, you'd retrieve that struct, and return INVALID_ENUM if avail == false, v if !func, otherwise func(ctx). I'm a little concerned that the overhead at ctx init time will be high, so I'll keep an eye on that. Perhaps I could mitigate some of that with cleverness, perhaps delay the pred lookup and not initialize. -ilia _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev