From 016dc273c6ebe5c29a69c711e9bd09393d77d898 Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Fri, 9 Sep 2016 09:01:04 -0700 Subject: [PATCH] fix an SSE/SIMD 16-byte alignment issue --- examples/OpenGLWindow/SimpleCamera.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/examples/OpenGLWindow/SimpleCamera.cpp b/examples/OpenGLWindow/SimpleCamera.cpp index a78f4de25..f0ba375d2 100644 --- a/examples/OpenGLWindow/SimpleCamera.cpp +++ b/examples/OpenGLWindow/SimpleCamera.cpp @@ -6,7 +6,7 @@ #include "Bullet3Common/b3Transform.h" -struct SimpleCameraInternalData +B3_ATTRIBUTE_ALIGNED16(struct) SimpleCameraInternalData { SimpleCameraInternalData() :m_cameraTargetPosition(b3MakeVector3(0,0,0)), @@ -25,7 +25,11 @@ struct SimpleCameraInternalData tr.setIdentity(); tr.getOpenGLMatrix(m_offsetTransformVR); } - b3Vector3 m_cameraTargetPosition; + + B3_DECLARE_ALIGNED_ALLOCATOR(); + + B3_ATTRIBUTE_ALIGNED16(float) m_offsetTransformVR[16]; + b3Vector3 m_cameraTargetPosition; float m_cameraDistance; b3Vector3 m_cameraUp; b3Vector3 m_cameraForward; @@ -42,8 +46,7 @@ struct SimpleCameraInternalData bool m_enableVR; float m_viewMatrixVR[16]; float m_projectionMatrixVR[16]; - float m_offsetTransformVR[16]; - + };