mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
mesa: A change of gl_vertex_processing_mode needs an array update.
Since arrays also handle the mapping of current values into the disabled array slots, we need to tell the array update code that this mapping has changed. Also mark only dirty if it has changed. Reviewed-by: Brian Paul <brianp@vmware.com> Signed-off-by: Mathias Fröhlich <Mathias.Froehlich@web.de>
This commit is contained in:
parent
5b91786225
commit
bf328359a7
1 changed files with 17 additions and 3 deletions
|
|
@ -466,6 +466,20 @@ set_new_array(struct gl_context *ctx)
|
|||
}
|
||||
|
||||
|
||||
static void
|
||||
set_vertex_processing_mode(struct gl_context *ctx, gl_vertex_processing_mode m)
|
||||
{
|
||||
if (ctx->VertexProgram._VPMode == m)
|
||||
return;
|
||||
|
||||
/* On change we may get new maps into the current values */
|
||||
set_new_array(ctx);
|
||||
|
||||
/* Finally memorize the value */
|
||||
ctx->VertexProgram._VPMode = m;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Update ctx->VertexProgram._VPMode.
|
||||
* This is to distinguish whether we're running
|
||||
|
|
@ -477,11 +491,11 @@ void
|
|||
_mesa_update_vertex_processing_mode(struct gl_context *ctx)
|
||||
{
|
||||
if (ctx->_Shader->CurrentProgram[MESA_SHADER_VERTEX])
|
||||
ctx->VertexProgram._VPMode = VP_MODE_SHADER;
|
||||
set_vertex_processing_mode(ctx, VP_MODE_SHADER);
|
||||
else if (_mesa_arb_vertex_program_enabled(ctx))
|
||||
ctx->VertexProgram._VPMode = VP_MODE_SHADER;
|
||||
set_vertex_processing_mode(ctx, VP_MODE_SHADER);
|
||||
else
|
||||
ctx->VertexProgram._VPMode = VP_MODE_FF;
|
||||
set_vertex_processing_mode(ctx, VP_MODE_FF);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue