On 26 November 2014 at 19:08, Stefan Dösinger stefan@codeweavers.com wrote:
conv.f = tests[i].start;
hr = IDirect3DDevice8_SetRenderState(device, D3DRS_FOGSTART, conv.d);
I don't care particularly much, but it might be nicer to just add the union to tests[], and then just use "tests[i].start.d" here.
START_TEST(ddraw7) { HMODULE module = GetModuleHandleA("ddraw.dll"); @@ -8089,4 +8190,5 @@ START_TEST(ddraw7) test_resource_priority(); test_surface_desc_lock(); fog_interpolation_test();
- test_negative_fixedfunction_fog();
I prefer this name, but I think it's more important that equivalent tests have the same name between D3D versions. I'd probably just rename the d3d8 and d3d9 versions instead. For what it's worth, I still plan to merge device.c and visual.c at some point in the future, and I'll probably fixup the naming of the existing tests in visual.c around that time as well.
if (settings->ortho_fog)
{ /* Need to undo the [0.0 - 1.0] -> [-1.0 - 1.0] transformation from D3D to GL coordinates. */ shader_addline(buffer, "gl_FogFragCoord = gl_Position.z * 0.5 + 0.5;\n");
} else
{ shader_addline(buffer, "gl_FogFragCoord = ec_pos.z;\n");
if (!settings->transformed)
shader_addline(buffer, "gl_FogFragCoord = abs(gl_FogFragCoord);\n");
}
I think this looks pretty messy. I'd suggest
if (settings->ortho_fog) shader_addline(...); else if (!settings->transformed) shader_addline(...); else shader_addline(...);