[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