diff options
| author | 2016-05-10 23:00:40 -0400 | |
|---|---|---|
| committer | 2016-05-10 23:00:40 -0400 | |
| commit | 86ecbdfa4de5654fb1f3e998921af8db1d5373cf (patch) | |
| tree | a1fa859a3e2a8183eb7b3d367c41aa91a747b39f /src/video_core/clipper.cpp | |
| parent | Merge pull request #1774 from lioncash/warn (diff) | |
| parent | OpenGL: Implement W-Buffers and fix depth-mapping (diff) | |
| download | yuzu-86ecbdfa4de5654fb1f3e998921af8db1d5373cf.tar.gz yuzu-86ecbdfa4de5654fb1f3e998921af8db1d5373cf.tar.xz yuzu-86ecbdfa4de5654fb1f3e998921af8db1d5373cf.zip | |
Merge pull request #1621 from JayFoxRox/w-buffer
Implement W-buffer and fix depth-mapping
Diffstat (limited to 'src/video_core/clipper.cpp')
| -rw-r--r-- | src/video_core/clipper.cpp | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/src/video_core/clipper.cpp b/src/video_core/clipper.cpp index 2bc747102..db99ce666 100644 --- a/src/video_core/clipper.cpp +++ b/src/video_core/clipper.cpp | |||
| @@ -75,8 +75,6 @@ static void InitScreenCoordinates(OutputVertex& vtx) | |||
| 75 | viewport.halfsize_y = float24::FromRaw(regs.viewport_size_y); | 75 | viewport.halfsize_y = float24::FromRaw(regs.viewport_size_y); |
| 76 | viewport.offset_x = float24::FromFloat32(static_cast<float>(regs.viewport_corner.x)); | 76 | viewport.offset_x = float24::FromFloat32(static_cast<float>(regs.viewport_corner.x)); |
| 77 | viewport.offset_y = float24::FromFloat32(static_cast<float>(regs.viewport_corner.y)); | 77 | viewport.offset_y = float24::FromFloat32(static_cast<float>(regs.viewport_corner.y)); |
| 78 | viewport.zscale = float24::FromRaw(regs.viewport_depth_range); | ||
| 79 | viewport.offset_z = float24::FromRaw(regs.viewport_depth_far_plane); | ||
| 80 | 78 | ||
| 81 | float24 inv_w = float24::FromFloat32(1.f) / vtx.pos.w; | 79 | float24 inv_w = float24::FromFloat32(1.f) / vtx.pos.w; |
| 82 | vtx.color *= inv_w; | 80 | vtx.color *= inv_w; |
| @@ -89,7 +87,7 @@ static void InitScreenCoordinates(OutputVertex& vtx) | |||
| 89 | 87 | ||
| 90 | vtx.screenpos[0] = (vtx.pos.x * inv_w + float24::FromFloat32(1.0)) * viewport.halfsize_x + viewport.offset_x; | 88 | vtx.screenpos[0] = (vtx.pos.x * inv_w + float24::FromFloat32(1.0)) * viewport.halfsize_x + viewport.offset_x; |
| 91 | vtx.screenpos[1] = (vtx.pos.y * inv_w + float24::FromFloat32(1.0)) * viewport.halfsize_y + viewport.offset_y; | 89 | vtx.screenpos[1] = (vtx.pos.y * inv_w + float24::FromFloat32(1.0)) * viewport.halfsize_y + viewport.offset_y; |
| 92 | vtx.screenpos[2] = viewport.offset_z + vtx.pos.z * inv_w * viewport.zscale; | 90 | vtx.screenpos[2] = vtx.pos.z * inv_w; |
| 93 | } | 91 | } |
| 94 | 92 | ||
| 95 | void ProcessTriangle(const OutputVertex &v0, const OutputVertex &v1, const OutputVertex &v2) { | 93 | void ProcessTriangle(const OutputVertex &v0, const OutputVertex &v1, const OutputVertex &v2) { |