X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fmatrix.cpp;h=ece99e344b903381a2a3dfc013ecdbff1571cffb;hb=50a0c7fd661fe6bfa3f929ad66e47cfab4a0fb87;hp=4bf550aa090ffc44c2734992cd064e578ebb460a;hpb=fa5b232a16e11d7950e80764497f0167ec9e3b41;p=libs%2Fgl.git diff --git a/source/matrix.cpp b/source/matrix.cpp index 4bf550aa..ece99e34 100644 --- a/source/matrix.cpp +++ b/source/matrix.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #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);