]> git.tdb.fi Git - libs/gl.git/blobdiff - source/matrix.cpp
Adapt to the new vector/matrix slicing API in mspmath
[libs/gl.git] / source / matrix.cpp
index 4bf550aa090ffc44c2734992cd064e578ebb460a..ece99e344b903381a2a3dfc013ecdbff1571cffb 100644 (file)
@@ -1,6 +1,7 @@
 #include <algorithm>
 #include <cmath>
 #include <msp/geometry/affinetransformation.h>
+#include <msp/gl/extensions/msp_legacy_features.h>
 #include "error.h"
 #include "matrix.h"
 
@@ -59,7 +60,7 @@ Vector4 Matrix::operator*(const Vector4 &vec) const
 
 Vector3 Matrix::operator*(const Vector3 &vec) const
 {
-       return Vector3((*this)*Vector4(vec, 1.0f));
+       return ((*this)*compose(vec, 1.0f)).slice<3>(0);
 }
 
 float Matrix::operator[](unsigned i) const
@@ -195,6 +196,8 @@ void MatrixStack::update()
        if(!mode)
                return;
 
+       static Require _req(MSP_legacy_features);
+
        if(mode!=current_mode)
        {
                glMatrixMode(mode);