diff options
author | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2014-12-23 13:05:51 -0200 |
---|---|---|
committer | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2014-12-29 02:08:11 -0200 |
commit | 8369ee58035ca98f776428f6cccbcf987fee3bc9 (patch) | |
tree | 3c1800823ffe55529ba6dbcba0c4407d2da625f2 /src/video_core/pica.h | |
parent | fe186d3a598837ba7337f06399dfb8ae7930a070 (diff) |
Rasterizer: Pre-divide vertex attributes by W
Execute the division-by-W for perspective-correct interpolation of
values in the clipper, moving them out of the rasterization inner loop.
Diffstat (limited to 'src/video_core/pica.h')
-rw-r--r-- | src/video_core/pica.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/video_core/pica.h b/src/video_core/pica.h index 89d97e4e..38bac748 100644 --- a/src/video_core/pica.h +++ b/src/video_core/pica.h @@ -757,6 +757,26 @@ struct float24 { return float24::FromFloat32(ToFloat32() - flt.ToFloat32()); } + float24& operator *= (const float24& flt) { + value *= flt.ToFloat32(); + return *this; + } + + float24& operator /= (const float24& flt) { + value /= flt.ToFloat32(); + return *this; + } + + float24& operator += (const float24& flt) { + value += flt.ToFloat32(); + return *this; + } + + float24& operator -= (const float24& flt) { + value -= flt.ToFloat32(); + return *this; + } + float24 operator - () const { return float24::FromFloat32(-ToFloat32()); } |