wined3d: Move PARAM C[] program.env[] into baseshader and out of vertex shaders.
This commit is contained in:
parent
6e7d06ad34
commit
683e5bfc55
|
@ -523,6 +523,11 @@ void generate_arb_declarations(IWineD3DBaseShader *iface, SHADER_BUFFER* buffer)
|
||||||
if (This->baseShader.textures_used & (1 << i))
|
if (This->baseShader.textures_used & (1 << i))
|
||||||
shader_addline(buffer, "MOV T%lu, fragment.texcoord[%lu];\n", i, i);
|
shader_addline(buffer, "MOV T%lu, fragment.texcoord[%lu];\n", i, i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Need to PARAM the environment parameters (constants) so we can use relative addressing */
|
||||||
|
shader_addline(buffer, "PARAM C[%d] = { program.env[0..%d] };\n",
|
||||||
|
This->baseShader.limits.constant_float,
|
||||||
|
This->baseShader.limits.constant_float - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Generate the variable & register declarations for the GLSL
|
/** Generate the variable & register declarations for the GLSL
|
||||||
|
|
|
@ -764,7 +764,7 @@ inline static void get_register_name(const DWORD param, char* regstr, char const
|
||||||
if (constants[reg])
|
if (constants[reg])
|
||||||
sprintf(regstr, "C%lu", reg);
|
sprintf(regstr, "C%lu", reg);
|
||||||
else
|
else
|
||||||
sprintf(regstr, "program.env[%lu]", reg);
|
sprintf(regstr, "C[%lu]", reg);
|
||||||
break;
|
break;
|
||||||
case D3DSPR_TEXTURE: /* case D3DSPR_ADDR: */
|
case D3DSPR_TEXTURE: /* case D3DSPR_ADDR: */
|
||||||
sprintf(regstr,"T%lu", reg);
|
sprintf(regstr,"T%lu", reg);
|
||||||
|
|
|
@ -1073,10 +1073,6 @@ inline static VOID IWineD3DVertexShaderImpl_GenerateShader(
|
||||||
This->baseShader.limits.constant_float =
|
This->baseShader.limits.constant_float =
|
||||||
min(95, This->baseShader.limits.constant_float);
|
min(95, This->baseShader.limits.constant_float);
|
||||||
|
|
||||||
shader_addline(&buffer, "PARAM C[%d] = { program.env[0..%d] };\n",
|
|
||||||
This->baseShader.limits.constant_float,
|
|
||||||
This->baseShader.limits.constant_float - 1);
|
|
||||||
|
|
||||||
/** Call the base shader generation routine to generate most
|
/** Call the base shader generation routine to generate most
|
||||||
of the vertex shader string for us */
|
of the vertex shader string for us */
|
||||||
generate_base_shader( (IWineD3DBaseShader*) This, &buffer, pFunction);
|
generate_base_shader( (IWineD3DBaseShader*) This, &buffer, pFunction);
|
||||||
|
|
Loading…
Reference in New Issue