wined3d: Move shader_fragment_enable to the fragment pipeline implementation.

It isn't related to the shader backend any longer. The nvts_enable in
the ffp code isn't quite right as well, it should be moved away once
there is a dedicated nvts fragment pipeline replacement
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 35cb760..ec43fec 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -253,7 +253,6 @@
     void (*shader_generate_pshader)(IWineD3DPixelShader *iface, SHADER_BUFFER *buffer);
     void (*shader_generate_vshader)(IWineD3DVertexShader *iface, SHADER_BUFFER *buffer);
     void (*shader_get_caps)(WINED3DDEVTYPE devtype, WineD3D_GL_Info *gl_info, struct shader_caps *caps);
-    void (*shader_fragment_enable)(IWineD3DDevice *iface, BOOL enable);
 } shader_backend_t;
 
 extern const shader_backend_t atifs_shader_backend;
@@ -547,16 +546,21 @@
     struct StateEntry   content;
 };
 
+struct fragment_pipeline {
+    void (*enable_extension)(IWineD3DDevice *iface, BOOL enable);
+    const struct StateEntryTemplate *states;
+};
+
 extern const struct StateEntryTemplate misc_state_template[];
 extern const struct StateEntryTemplate ffp_vertexstate_template[];
-extern const struct StateEntryTemplate ffp_fragmentstate_template[];
-extern const struct StateEntryTemplate atifs_fragmentstate_template[];
+extern const struct fragment_pipeline ffp_fragment_pipeline;
+extern const struct fragment_pipeline atifs_fragment_pipeline;
 
 /* "Base" state table */
 void compile_state_table(struct StateEntry *StateTable,
                          APPLYSTATEFUNC **dev_multistate_funcs,
                          const struct StateEntryTemplate *vertex,
-                         const struct StateEntryTemplate *fragment,
+                         const struct fragment_pipeline *fragment,
                          const struct StateEntryTemplate *misc);
 
 /* The new context manager that should deal with onscreen and offscreen rendering */
@@ -784,6 +788,7 @@
     struct StateEntry StateTable[STATE_HIGHEST + 1];
     /* Array of functions for states which are handled by more than one pipeline part */
     APPLYSTATEFUNC *multistate_funcs[STATE_HIGHEST + 1];
+    const struct fragment_pipeline *frag_pipe;
 
     /* To store */
     BOOL                    view_ident;        /* true iff view matrix is identity                */