diff options
| -rw-r--r-- | src/video_core/swrasterizer/rasterizer.h | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/video_core/swrasterizer/rasterizer.h b/src/video_core/swrasterizer/rasterizer.h index 2f0877581..66cd6cfd4 100644 --- a/src/video_core/swrasterizer/rasterizer.h +++ b/src/video_core/swrasterizer/rasterizer.h | |||
| @@ -19,10 +19,9 @@ struct Vertex : Shader::OutputVertex { | |||
| 19 | 19 | ||
| 20 | // Linear interpolation | 20 | // Linear interpolation |
| 21 | // factor: 0=this, 1=vtx | 21 | // factor: 0=this, 1=vtx |
| 22 | // Note: This function cannot be called after perspective divide | ||
| 22 | void Lerp(float24 factor, const Vertex& vtx) { | 23 | void Lerp(float24 factor, const Vertex& vtx) { |
| 23 | pos = pos * factor + vtx.pos * (float24::FromFloat32(1) - factor); | 24 | pos = pos * factor + vtx.pos * (float24::FromFloat32(1) - factor); |
| 24 | |||
| 25 | // TODO: Should perform perspective correct interpolation here... | ||
| 26 | quat = quat * factor + vtx.quat * (float24::FromFloat32(1) - factor); | 25 | quat = quat * factor + vtx.quat * (float24::FromFloat32(1) - factor); |
| 27 | color = color * factor + vtx.color * (float24::FromFloat32(1) - factor); | 26 | color = color * factor + vtx.color * (float24::FromFloat32(1) - factor); |
| 28 | tc0 = tc0 * factor + vtx.tc0 * (float24::FromFloat32(1) - factor); | 27 | tc0 = tc0 * factor + vtx.tc0 * (float24::FromFloat32(1) - factor); |
| @@ -30,12 +29,11 @@ struct Vertex : Shader::OutputVertex { | |||
| 30 | tc0_w = tc0_w * factor + vtx.tc0_w * (float24::FromFloat32(1) - factor); | 29 | tc0_w = tc0_w * factor + vtx.tc0_w * (float24::FromFloat32(1) - factor); |
| 31 | view = view * factor + vtx.view * (float24::FromFloat32(1) - factor); | 30 | view = view * factor + vtx.view * (float24::FromFloat32(1) - factor); |
| 32 | tc2 = tc2 * factor + vtx.tc2 * (float24::FromFloat32(1) - factor); | 31 | tc2 = tc2 * factor + vtx.tc2 * (float24::FromFloat32(1) - factor); |
| 33 | |||
| 34 | screenpos = screenpos * factor + vtx.screenpos * (float24::FromFloat32(1) - factor); | ||
| 35 | } | 32 | } |
| 36 | 33 | ||
| 37 | // Linear interpolation | 34 | // Linear interpolation |
| 38 | // factor: 0=v0, 1=v1 | 35 | // factor: 0=v0, 1=v1 |
| 36 | // Note: This function cannot be called after perspective divide | ||
| 39 | static Vertex Lerp(float24 factor, const Vertex& v0, const Vertex& v1) { | 37 | static Vertex Lerp(float24 factor, const Vertex& v0, const Vertex& v1) { |
| 40 | Vertex ret = v0; | 38 | Vertex ret = v0; |
| 41 | ret.Lerp(factor, v1); | 39 | ret.Lerp(factor, v1); |