diff options
Diffstat (limited to 'src/libjin/Graphics/je_gl.cpp')
-rw-r--r-- | src/libjin/Graphics/je_gl.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/libjin/Graphics/je_gl.cpp b/src/libjin/Graphics/je_gl.cpp index f098f97..c58f0ac 100644 --- a/src/libjin/Graphics/je_gl.cpp +++ b/src/libjin/Graphics/je_gl.cpp @@ -15,7 +15,9 @@ namespace JinEngine : ogl2d::OpenGL() { mModelViewMatrices.push_back(Matrix()); - solve(); + mModelViewMatrix.setIdentity(); + for (Matrix& m : mModelViewMatrices) + mModelViewMatrix *= m; } void OpenGL::setColor(Channel r, Channel g, Channel b, Channel a) @@ -51,11 +53,6 @@ namespace JinEngine if (mModelViewMatrices.size() == 1) return; mModelViewMatrices.pop_back(); - solve(); - } - - void OpenGL::solve() - { mModelViewMatrix.setIdentity(); for (Matrix& m : mModelViewMatrices) mModelViewMatrix *= m; @@ -91,10 +88,15 @@ namespace JinEngine Matrix OpenGL::getModelViewMatrix(float x, float y, float sx, float sy, float r, float ox, float oy) { Matrix m; - m.setTransformation(x, y, sx, sy, r, ox, oy); + m.setTransformation(x, y, r, sx, sy, ox, oy); return mModelViewMatrix*m; } + Math::Matrix OpenGL::getModelViewMatrix(const Math::Transform& tansform) + { + return mModelViewMatrix * tansform.getMatrix(); + } + Matrix OpenGL::getModelViewMatrix() { return mModelViewMatrix; |