summaryrefslogtreecommitdiff
path: root/src/video_core/clipper.cpp
diff options
context:
space:
mode:
authorGravatar bunnei2016-05-10 23:00:40 -0400
committerGravatar bunnei2016-05-10 23:00:40 -0400
commit86ecbdfa4de5654fb1f3e998921af8db1d5373cf (patch)
treea1fa859a3e2a8183eb7b3d367c41aa91a747b39f /src/video_core/clipper.cpp
parentMerge pull request #1774 from lioncash/warn (diff)
parentOpenGL: Implement W-Buffers and fix depth-mapping (diff)
downloadyuzu-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.cpp4
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
95void ProcessTriangle(const OutputVertex &v0, const OutputVertex &v1, const OutputVertex &v2) { 93void ProcessTriangle(const OutputVertex &v0, const OutputVertex &v1, const OutputVertex &v2) {