wined3d: Load ModelView matrix for glLightfv calls.
Analogous to the light() function in state.c, the correct ModelView matrix has to be loaded when glLightfv is called.
This commit is contained in:
parent
20aee0673d
commit
8fff427bc0
|
@ -7208,6 +7208,11 @@ void glsl_vertex_pipe_view(struct wined3d_context *context, const struct wined3d
|
||||||
|
|
||||||
context->constant_update_mask |= WINED3D_SHADER_CONST_FFP_MODELVIEW;
|
context->constant_update_mask |= WINED3D_SHADER_CONST_FFP_MODELVIEW;
|
||||||
|
|
||||||
|
/* Light settings are affected by the ModelView transform in OpenGL, the View transform in Direct3D. */
|
||||||
|
gl_info->gl_ops.gl.p_glMatrixMode(GL_MODELVIEW);
|
||||||
|
gl_info->gl_ops.gl.p_glPushMatrix();
|
||||||
|
gl_info->gl_ops.gl.p_glLoadMatrixf(&state->transforms[WINED3D_TS_VIEW]._11);
|
||||||
|
|
||||||
for (k = 0; k < gl_info->limits.lights; ++k)
|
for (k = 0; k < gl_info->limits.lights; ++k)
|
||||||
{
|
{
|
||||||
if (!(light = state->lights[k]))
|
if (!(light = state->lights[k]))
|
||||||
|
@ -7218,6 +7223,8 @@ void glsl_vertex_pipe_view(struct wined3d_context *context, const struct wined3d
|
||||||
checkGLcall("glLightfv dirn");
|
checkGLcall("glLightfv dirn");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gl_info->gl_ops.gl.p_glPopMatrix();
|
||||||
|
|
||||||
for (k = 0; k < gl_info->limits.clipplanes; ++k)
|
for (k = 0; k < gl_info->limits.clipplanes; ++k)
|
||||||
{
|
{
|
||||||
if (!isStateDirty(context, STATE_CLIPPLANE(k)))
|
if (!isStateDirty(context, STATE_CLIPPLANE(k)))
|
||||||
|
|
Loading…
Reference in New Issue