[PATCH 1/2] wined3d: Implement special fog behavior for orthogonal projection matrices.

Henri Verbeet hverbeet at gmail.com
Tue Jul 23 02:33:36 CDT 2013


On 22 July 2013 20:24, Matteo Bruni <mbruni at codeweavers.com> wrote:
> @@ -3614,10 +3614,19 @@ void wined3d_ffp_get_vs_settings(const struct wined3d_state *state, const struct
>                      & WINED3D_FFP_LIGHT_TYPE_MASK) << WINED3D_FFP_LIGHT_TYPE_SHIFT(i);
>      }
>
> +    settings->ortho_fog = 0;
>      if (!state->render_states[WINED3D_RS_FOGENABLE])
>          settings->fog_mode = WINED3D_FFP_VS_FOG_OFF;
>      else if (state->render_states[WINED3D_RS_FOGTABLEMODE] != WINED3D_FOG_NONE)
> +    {
>          settings->fog_mode = WINED3D_FFP_VS_FOG_DEPTH;
> +
> +        if (state->transforms[WINED3D_TS_PROJECTION].u.m[0][3] == 0.0f
> +                && state->transforms[WINED3D_TS_PROJECTION].u.m[1][3] == 0.0f
> +                && state->transforms[WINED3D_TS_PROJECTION].u.m[2][3] == 0.0f
> +                && state->transforms[WINED3D_TS_PROJECTION].u.m[3][3] == 1.0f)
> +            settings->ortho_fog = 1;
> +    }
I'm going to guess "No, because the projection matrix is ignored.",
but does this "feature" apply to transformed vertices as well?



More information about the wine-devel mailing list