From 2d9805123c7142ee7f49144ece4118beba22bb5c Mon Sep 17 00:00:00 2001 From: castano Date: Thu, 21 Oct 2010 18:54:46 +0000 Subject: [PATCH] Fix aliasing bug. Fixes issue 139. --- ChangeLog | 1 + src/nvmath/Vector.h | 18 +++++++++--------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 637e2e3..809b095 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,6 +7,7 @@ NVIDIA Texture Tools version 2.0.9 * Fix single color DXT1a compressor. Fixes issue 134. * Fix mirror sampling. Fixes issue 135. * Fix seek bug. Fixes issue 144. + * Fix aliasing bug. Fixes issue 139. NVIDIA Texture Tools version 2.0.8 * Fix float to fixed image conversion. Patch provided by Alex Pfaffe. Fixes issue 121. diff --git a/src/nvmath/Vector.h b/src/nvmath/Vector.h index bffdfbe..5b60672 100644 --- a/src/nvmath/Vector.h +++ b/src/nvmath/Vector.h @@ -68,7 +68,7 @@ public: scalar y() const; scalar z() const; - const Vector2 & xy() const; + Vector2 xy() const; scalar component(uint idx) const; @@ -111,8 +111,8 @@ public: scalar z() const; scalar w() const; - const Vector2 & xy() const; - const Vector3 & xyz() const; + Vector2 xy() const; + Vector3 xyz() const; scalar component(uint idx) const; @@ -231,9 +231,9 @@ inline scalar Vector3::x() const { return m_x; } inline scalar Vector3::y() const { return m_y; } inline scalar Vector3::z() const { return m_z; } -inline const Vector2 & Vector3::xy() const +inline Vector2 Vector3::xy() const { - return *(Vector2 *)this; + return Vector2(x(), y()); } inline scalar Vector3::component(uint idx) const @@ -332,14 +332,14 @@ inline scalar Vector4::y() const { return m_y; } inline scalar Vector4::z() const { return m_z; } inline scalar Vector4::w() const { return m_w; } -inline const Vector2 & Vector4::xy() const +inline Vector2 Vector4::xy() const { - return *(Vector2 *)this; + return Vector2(x(), y()); } -inline const Vector3 & Vector4::xyz() const +inline Vector3 Vector4::xyz() const { - return *(Vector3 *)this; + return Vector3(x(), y(), z()); } inline scalar Vector4::component(uint idx) const