Commit 2f3faf45 authored by Stefan Dösinger's avatar Stefan Dösinger Committed by Alexandre Julliard

wined3d: Put some ARB declarations in the right place.

TMP_POS is only used in vertex shaders, declare it in the vshader specific code. The sRGB constants are only used by pixel shaders, so move them to the ps specific code, and avoid reading the stateblock.
parent f484cbbf
......@@ -328,7 +328,6 @@ static void shader_generate_arb_declarations(IWineD3DBaseShader *iface, const sh
SHADER_BUFFER *buffer, const WineD3D_GL_Info *gl_info, DWORD *lconst_map)
{
IWineD3DBaseShaderImpl* This = (IWineD3DBaseShaderImpl*) iface;
IWineD3DDeviceImpl *device = (IWineD3DDeviceImpl *) This->baseShader.device;
DWORD i, cur, next_local = 0;
char pshader = shader_is_pshader_version(reg_maps->shader_version.type);
unsigned max_constantsF;
......@@ -352,8 +351,6 @@ static void shader_generate_arb_declarations(IWineD3DBaseShader *iface, const sh
} else {
max_constantsF = GL_LIMITS(vshader_constantsF) - 1;
}
/* Temporary Output register */
shader_addline(buffer, "TEMP TMP_OUT;\n");
}
for(i = 0; i < This->baseShader.limits.temporary; i++) {
......@@ -373,13 +370,6 @@ static void shader_generate_arb_declarations(IWineD3DBaseShader *iface, const sh
}
}
if(device->stateBlock->renderState[WINED3DRS_SRGBWRITEENABLE] && pshader) {
shader_addline(buffer, "PARAM srgb_consts1 = {%f, %f, %f, %f};\n",
srgb_mul_low, srgb_cmp, srgb_pow, srgb_mul_high);
shader_addline(buffer, "PARAM srgb_consts2 = {%f, %f, %f, %f};\n",
srgb_sub_high, 0.0, 0.0, 0.0);
}
/* Load local constants using the program-local space,
* this avoids reloading them each time the shader is used
*/
......@@ -2097,6 +2087,13 @@ static GLuint shader_arb_generate_pshader(IWineD3DPixelShader *iface,
}
}
if(args->srgb_correction) {
shader_addline(buffer, "PARAM srgb_consts1 = {%f, %f, %f, %f};\n",
srgb_mul_low, srgb_cmp, srgb_pow, srgb_mul_high);
shader_addline(buffer, "PARAM srgb_consts2 = {%f, %f, %f, %f};\n",
srgb_sub_high, 0.0, 0.0, 0.0);
}
/* Base Declarations */
shader_generate_arb_declarations( (IWineD3DBaseShader*) This, reg_maps, buffer, &GLINFO_LOCATION, lconst_map);
......@@ -2168,6 +2165,7 @@ static GLuint shader_arb_generate_vshader(IWineD3DVertexShader *iface,
priv_ctx.target_version = ARB;
}
shader_addline(buffer, "TEMP TMP_OUT;\n");
if(need_helper_const(gl_info)) {
shader_addline(buffer, "PARAM helper_const = { 2.0, -1.0, %d.0, 0.0 };\n", This->rel_offset);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment