Browse Source

Don't create an ortho matrix when the viewport is 0 in any axis. (#1504)

* Don't create an ortho matrix when the viewport is 0 in any axis.
Not all compilers divide by 0 and return inf, some segfault.
The matrix is not used by anything when minimized, so it just needs to not be called.

* Better fix that always ensures the rlgl matrix is always valid

* Better fix that always ensures the rlgl matrix is always valid
Jeffery Myers 4 years ago
parent
commit
5d4aada526
1 changed files with 6 additions and 0 deletions
  1. 6 0
      src/rlgl.h

+ 6 - 0
src/rlgl.h

@@ -1100,6 +1100,12 @@ void rlFrustum(double left, double right, double bottom, double top, double znea
 // Multiply the current matrix by an orthographic matrix generated by parameters
 // Multiply the current matrix by an orthographic matrix generated by parameters
 void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar)
 void rlOrtho(double left, double right, double bottom, double top, double znear, double zfar)
 {
 {
+    if (right - left <= 0 || bottom - top <= 0)
+    {
+        *RLGL.State.currentMatrix = MatrixIdentity();
+        return;
+    }
+
     Matrix matOrtho = MatrixOrtho(left, right, bottom, top, znear, zfar);
     Matrix matOrtho = MatrixOrtho(left, right, bottom, top, znear, zfar);
 
 
     *RLGL.State.currentMatrix = MatrixMultiply(*RLGL.State.currentMatrix, matOrtho);
     *RLGL.State.currentMatrix = MatrixMultiply(*RLGL.State.currentMatrix, matOrtho);