[1/10] WineD3D: Add extension information to the states

Stefan Dösinger stefan at codeweavers.com
Wed Jul 16 21:36:04 CDT 2008


> You already have this case:
> 
>     } else if(GL_SUPPORT(NV_REGISTER_COMBINERS) &&
> GL_SUPPORT(NV_TEXTURE_SHADER2)) {
>         return &nvts_fragment_pipeline;
Well, that is selecting the fragment pipeline implementation, which does
more than just picking a single state. It's mainly for the fragment_enable()
callback. Of course I could handle all the code choosing using one table
with many different lines with extension information. I don't think that is
useful though.

The difference between the pipeline interface selection and the state table
extension information is that the pipeline implementations have entirely
different codepaths(There's little in common between the nvts and atifs
codepath, for example), while the per-line extension selection cares about
minor differences in an otherwise consistent object(e.g. do we need NP2
fixups or do we not. This doesn't turn the vertex pipeline implementation
upside down like choosing between glsl or fixed function does)





More information about the wine-devel mailing list