mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 04:20:08 +01:00
draw: fix incorrect color of flat-shaded clipped lines
When we clipped a line weren't copying the provoking vertex color to the second vertex. We also weren't checking for first vs. last provoking vertex. Fixes failures found with the new piglit line-flat-clip-color test. Cc: "10.0, 10.1" <mesa-stable@lists.freedesktop.org> Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
This commit is contained in:
parent
349b76a553
commit
fc3fcd1e01
1 changed files with 12 additions and 1 deletions
|
|
@ -588,7 +588,12 @@ do_clip_line( struct draw_stage *stage,
|
|||
|
||||
if (v0->clipmask) {
|
||||
interp( clipper, stage->tmp[0], t0, v0, v1, viewport_index );
|
||||
copy_flat(stage, stage->tmp[0], v0);
|
||||
if (stage->draw->rasterizer->flatshade_first) {
|
||||
copy_flat(stage, stage->tmp[0], v0); /* copy v0 color to tmp[0] */
|
||||
}
|
||||
else {
|
||||
copy_flat(stage, stage->tmp[0], v1); /* copy v1 color to tmp[0] */
|
||||
}
|
||||
newprim.v[0] = stage->tmp[0];
|
||||
}
|
||||
else {
|
||||
|
|
@ -597,6 +602,12 @@ do_clip_line( struct draw_stage *stage,
|
|||
|
||||
if (v1->clipmask) {
|
||||
interp( clipper, stage->tmp[1], t1, v1, v0, viewport_index );
|
||||
if (stage->draw->rasterizer->flatshade_first) {
|
||||
copy_flat(stage, stage->tmp[1], v0); /* copy v0 color to tmp[1] */
|
||||
}
|
||||
else {
|
||||
copy_flat(stage, stage->tmp[1], v1); /* copy v1 color to tmp[1] */
|
||||
}
|
||||
newprim.v[1] = stage->tmp[1];
|
||||
}
|
||||
else {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue