diff options
author | Tony Wasserka <NeoBrainX@gmail.com> | 2014-08-12 20:04:28 +0200 |
---|---|---|
committer | Tony Wasserka <NeoBrainX@gmail.com> | 2014-08-25 22:03:18 +0200 |
commit | 162d641a301d87d5e25ca5d677b7f8f07f29e748 (patch) | |
tree | c22ef7138a8f27b9dfd363270856cceea50fd2bf /src/video_core/vertex_shader.h | |
parent | 62c36a4ef0a37fe83bb8f8680f928970bead545b (diff) |
Pica/Math: Improved the design of the Vec2/Vec3/Vec4 classes and simplified rasterizer code accordingly.
- Swizzlers now return const objects so that things like "first_vec4.xyz() = some_vec3" now will fail to compile (ideally we should support some vector holding references to make this actually work).
- The methods "InsertBeforeX/Y/Z" and "Append" have been replaced by more versions of MakeVec, which now also supports building new vectors from vectors.
- Vector library now follows C++ type promotion rules (hence, the result of Vec2<u8> with another Vec2<u8> is now a Vec2<int>).
Diffstat (limited to 'src/video_core/vertex_shader.h')
-rw-r--r-- | src/video_core/vertex_shader.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/video_core/vertex_shader.h b/src/video_core/vertex_shader.h index f0a8a5b6..847fdc45 100644 --- a/src/video_core/vertex_shader.h +++ b/src/video_core/vertex_shader.h @@ -27,7 +27,6 @@ struct OutputVertex { Math::Vec4<float24> dummy; // quaternions (not implemented, yet) Math::Vec4<float24> color; Math::Vec2<float24> tc0; - float24 tc0_v; // Padding for optimal alignment float24 pad[14]; @@ -36,6 +35,7 @@ struct OutputVertex { // position after perspective divide Math::Vec3<float24> screenpos; + float24 pad2; // Linear interpolation // factor: 0=this, 1=vtx @@ -59,6 +59,7 @@ struct OutputVertex { } }; static_assert(std::is_pod<OutputVertex>::value, "Structure is not POD"); +static_assert(sizeof(OutputVertex) == 32 * sizeof(float), "OutputVertex has invalid size"); union Instruction { enum class OpCode : u32 { |