wined3d: Move fields common to vertex shaders and pixel shaders to IWineD3DBaseShader.
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index dad25f6..f852536 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -1170,6 +1170,27 @@
 } SHADER_OPCODE;
 
 /*****************************************************************************
+ * IDirect3DBaseShader implementation structure
+ */
+typedef struct IWineD3DBaseShaderClass
+{
+    DWORD                           version;
+    CONST SHADER_OPCODE             *shader_ins;
+    CONST DWORD                     *function;
+    UINT                            functionLength;
+    GLuint                          prgId;
+} IWineD3DBaseShaderClass;
+
+typedef struct IWineD3DBaseShaderImpl {
+    /* IUnknown */
+    const IWineD3DBaseShaderVtbl    *lpVtbl;
+    LONG                            ref;
+
+    /* IWineD3DBaseShader */
+    IWineD3DBaseShaderClass         baseShader;
+} IWineD3DBaseShaderImpl;
+
+/*****************************************************************************
  * IDirect3DVertexShader implementation structure
  */
 typedef struct IWineD3DVertexShaderImpl {
@@ -1177,16 +1198,14 @@
     const IWineD3DVertexShaderVtbl *lpVtbl;
     LONG                        ref;     /* Note: Ref counting not required */
 
+    /* IWineD3DBaseShader */
+    IWineD3DBaseShaderClass     baseShader;
+
+    /* IWineD3DVertexShaderImpl */
     IUnknown                    *parent;
     IWineD3DDeviceImpl          *wineD3DDevice;
 
-    /* IWineD3DVertexShaderImpl */
-    CONST SHADER_OPCODE         *shader_ins;
-    CONST DWORD                 *function;
-    UINT                         functionLength;
-
     DWORD usage;
-    DWORD version;
 
     /* vertex declaration array mapping */
     BOOL                        namedArrays;    /* don't map use named functions */
@@ -1197,7 +1216,6 @@
     /* FIXME: This needs to be populated with some flags of VS_CONSTANT_NOT_USED, VS_CONSTANT_CONSTANT, VS_CONSTANT_INTEGER, VS_CONSTANT_BOOLEAN, VS_CONSTANT_FLOAT, a half byte bitmap will be the best option, but I'll keep it as chards for siplicity */
     /* run time datas...  */
     VSHADERDATA                *data;
-    GLuint                      prgId;
     IWineD3DVertexDeclaration  *vertexDeclaration;
 #if 0 /* needs reworking */
     /* run time datas */
@@ -1216,19 +1234,17 @@
     const IWineD3DPixelShaderVtbl *lpVtbl;
     LONG                        ref;     /* Note: Ref counting not required */
 
+    /* IWineD3DBaseShader */
+    IWineD3DBaseShaderClass     baseShader;
+
+    /* IWineD3DPixelShaderImpl */
     IUnknown                   *parent;
     IWineD3DDeviceImpl         *wineD3DDevice;
 
-    /* IWineD3DPixelShaderImpl */
-    const SHADER_OPCODE         *shader_ins;
-    CONST DWORD                *function;
-    UINT                        functionLength;
-    DWORD                       version;
     CHAR                        constants[WINED3D_PSHADER_MAX_CONSTANTS];
 
     /* run time data */
     PSHADERDATA                *data;
-    GLuint                      prgId;
 
 #if 0 /* needs reworking */
     PSHADERINPUTDATA input;