[PATCH] WineD3D: Use the ps_compile_args struct in glsl=0A=

Stefan Doesinger stefan at codeweavers.com
Mon Dec 15 19:31:52 CST 2008


=0A=
---=0A=
 dlls/wined3d/glsl_shader.c |   18 +++++++-----------=0A=
 1 files changed, 7 insertions(+), 11 deletions(-)=0A=
=0A=
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c=0A=
index f015778..8dd7672 100644=0A=
--- a/dlls/wined3d/glsl_shader.c=0A=
+++ b/dlls/wined3d/glsl_shader.c=0A=
@@ -500,7 +500,8 @@ static void shader_glsl_load_constants(=0A=
 =0A=
 /** Generate the variable & register declarations for the GLSL output =
target */=0A=
 static void shader_generate_glsl_declarations(IWineD3DBaseShader =
*iface, const shader_reg_maps *reg_maps,=0A=
-        SHADER_BUFFER *buffer, const WineD3D_GL_Info *gl_info)=0A=
+        SHADER_BUFFER *buffer, const WineD3D_GL_Info *gl_info,=0A=
+        const struct ps_compile_args *ps_args)=0A=
 {=0A=
     IWineD3DBaseShaderImpl* This =3D (IWineD3DBaseShaderImpl*) iface;=0A=
     IWineD3DDeviceImpl *device =3D (IWineD3DDeviceImpl *) =
This->baseShader.device;=0A=
@@ -574,7 +575,7 @@ static void =
shader_generate_glsl_declarations(IWineD3DBaseShader *iface, const s=0A=
             ps_impl->numbumpenvmatconsts++;=0A=
         }=0A=
 =0A=
-        if(device->stateBlock->renderState[WINED3DRS_SRGBWRITEENABLE]) {=0A=
+        if(ps_args->srgb_correction) {=0A=
             shader_addline(buffer, "const vec4 srgb_mul_low =3D =
vec4(%f, %f, %f, %f);\n",=0A=
                             srgb_mul_low, srgb_mul_low, srgb_mul_low, =
srgb_mul_low);=0A=
             shader_addline(buffer, "const vec4 srgb_comparison =3D =
vec4(%f, %f, %f, %f);\n",=0A=
@@ -3595,16 +3596,11 @@ static GLuint =
shader_glsl_generate_pshader(IWineD3DPixelShader *iface, SHADER_BU=0A=
     }=0A=
 =0A=
     /* Base Declarations */=0A=
-    shader_generate_glsl_declarations( (IWineD3DBaseShader*) This, =
reg_maps, buffer, &GLINFO_LOCATION);=0A=
+    shader_generate_glsl_declarations( (IWineD3DBaseShader*) This, =
reg_maps, buffer, &GLINFO_LOCATION, args);=0A=
 =0A=
     /* Pack 3.0 inputs */=0A=
-    if (reg_maps->shader_version >=3D WINED3DPS_VERSION(3,0))=0A=
-    {=0A=
-        if(((IWineD3DDeviceImpl *) =
This->baseShader.device)->strided_streams.u.s.position_transformed) {=0A=
-            pshader_glsl_input_pack(buffer, This->semantics_in, iface, =
pretransformed);=0A=
-        } else if(!use_vs((IWineD3DDeviceImpl *) =
This->baseShader.device)) {=0A=
-            pshader_glsl_input_pack(buffer, This->semantics_in, iface, =
fixedfunction);=0A=
-        }=0A=
+    if (reg_maps->shader_version >=3D WINED3DPS_VERSION(3,0) && =
args->vp_mode !=3D vertexshader) {=0A=
+        pshader_glsl_input_pack(buffer, This->semantics_in, iface, =
args->vp_mode);=0A=
     }=0A=
 =0A=
     /* Base Shader Body */=0A=
@@ -3670,7 +3666,7 @@ static void =
shader_glsl_generate_vshader(IWineD3DVertexShader *iface, SHADER_BUF=0A=
     shader_addline(buffer, "#version 120\n");=0A=
 =0A=
     /* Base Declarations */=0A=
-    shader_generate_glsl_declarations( (IWineD3DBaseShader*) This, =
reg_maps, buffer, &GLINFO_LOCATION);=0A=
+    shader_generate_glsl_declarations( (IWineD3DBaseShader*) This, =
reg_maps, buffer, &GLINFO_LOCATION, NULL);=0A=
 =0A=
     /* Base Shader Body */=0A=
     shader_generate_main( (IWineD3DBaseShader*) This, buffer, reg_maps, =
function);=0A=
-- =0A=
1.5.6.4=0A=
=0A=

------=_NextPart_000_002F_01C9613A.AE7B6690--




More information about the wine-patches mailing list