cogl: Set the layer matrix on the right layer instead of a random one
When uploading the layer matrix to GL it wasn't first calling glActiveTextureMatrix to set the right texture unit for the layer. This would end up setting the texture matrix on whatever layer happened to be previously active. This happened to work for test-cogl-multitexture presumably because it was coincidentally setting the layer matrix on the last used layer.
This commit is contained in:
@ -83,6 +83,8 @@ _cogl_pipeline_vertend_fixed_add_layer (CoglPipeline *pipeline,
|
|||||||
_cogl_matrix_stack_set (unit->matrix_stack,
|
_cogl_matrix_stack_set (unit->matrix_stack,
|
||||||
&authority->big_state->matrix);
|
&authority->big_state->matrix);
|
||||||
|
|
||||||
|
_cogl_set_active_texture_unit (unit_index);
|
||||||
|
|
||||||
_cogl_matrix_stack_flush_to_gl (unit->matrix_stack, COGL_MATRIX_TEXTURE);
|
_cogl_matrix_stack_flush_to_gl (unit->matrix_stack, COGL_MATRIX_TEXTURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -271,6 +271,8 @@ _cogl_pipeline_vertend_glsl_add_layer (CoglPipeline *pipeline,
|
|||||||
_cogl_matrix_stack_set (unit->matrix_stack,
|
_cogl_matrix_stack_set (unit->matrix_stack,
|
||||||
&authority->big_state->matrix);
|
&authority->big_state->matrix);
|
||||||
|
|
||||||
|
_cogl_set_active_texture_unit (unit_index);
|
||||||
|
|
||||||
_cogl_matrix_stack_flush_to_gl (unit->matrix_stack, COGL_MATRIX_TEXTURE);
|
_cogl_matrix_stack_flush_to_gl (unit->matrix_stack, COGL_MATRIX_TEXTURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user