Commit: 231b5d96bbfd77253941dd37cc4929e4e119d706
Author: Mike Erwin
Date:   Tue Mar 21 00:25:47 2017 -0400
Branches: blender2.8
https://developer.blender.org/rB231b5d96bbfd77253941dd37cc4929e4e119d706

track dirty state of legacy matrix API

This is used to send latest matrix values to shader when drawing.

Previously handled by calling OpenGL matrix functions, followed by 
gpuMatrixUpdate_legacy. With this change that function is no longer needed.

Part of T49450

===================================================================

M       source/blender/gpu/intern/gpu_matrix.c

===================================================================

diff --git a/source/blender/gpu/intern/gpu_matrix.c 
b/source/blender/gpu/intern/gpu_matrix.c
index f5b6238469..40e718594c 100644
--- a/source/blender/gpu/intern/gpu_matrix.c
+++ b/source/blender/gpu/intern/gpu_matrix.c
@@ -138,6 +138,7 @@ void gpuPushMatrix(void)
 #if SUPPORT_LEGACY_MATRIX
        if (state.mode == MATRIX_MODE_INACTIVE) {
                glPushMatrix();
+               state.dirty = true;
                return;
        }
 #endif
@@ -156,6 +157,7 @@ void gpuPopMatrix(void)
 #if SUPPORT_LEGACY_MATRIX
        if (state.mode == MATRIX_MODE_INACTIVE) {
                glPopMatrix();
+               state.dirty = true;
                return;
        }
 #endif
@@ -170,8 +172,9 @@ void gpuLoadMatrix3D(const float m[4][4])
 {
 #if SUPPORT_LEGACY_MATRIX
        if (state.mode == MATRIX_MODE_INACTIVE) {
-                       glLoadMatrixf((const float*) m);
-                       return;
+               glLoadMatrixf((const float*) m);
+               state.dirty = true;
+               return;
        }
 #endif
 
@@ -214,6 +217,7 @@ void gpuTranslate2f(float x, float y)
 #if SUPPORT_LEGACY_MATRIX
        if (state.mode == MATRIX_MODE_INACTIVE) {
                glTranslatef(x, y, 0.0f);
+               state.dirty = true;
                return;
        }
 #endif
@@ -235,6 +239,7 @@ void gpuTranslate3f(float x, float y, float z)
 #if SUPPORT_LEGACY_MATRIX
        if (state.mode == MATRIX_MODE_INACTIVE) {
                glTranslatef(x, y, z);
+               state.dirty = true;
                return;
        }
 #endif
@@ -287,6 +292,7 @@ void gpuScaleUniform(float factor)
 #if SUPPORT_LEGACY_MATRIX
                case MATRIX_MODE_INACTIVE:
                        glScalef(factor, factor, factor); /* always scale Z 
since we can't distinguish 2D from 3D */
+                       state.dirty = true;
                        break;
 #endif
                default:
@@ -299,6 +305,7 @@ void gpuScale2f(float x, float y)
 #if SUPPORT_LEGACY_MATRIX
        if (state.mode == MATRIX_MODE_INACTIVE) {
                glScalef(x, y, 1.0f);
+               state.dirty = true;
                return;
        }
 #endif
@@ -320,6 +327,7 @@ void gpuScale3f(float x, float y, float z)
 #if SUPPORT_LEGACY_MATRIX
        if (state.mode == MATRIX_MODE_INACTIVE) {
                glScalef(x, y, z);
+               state.dirty = true;
                return;
        }
 #endif
@@ -342,6 +350,7 @@ void gpuMultMatrix3D(const float m[4][4])
 #if SUPPORT_LEGACY_MATRIX
        if (state.mode == MATRIX_MODE_INACTIVE) {
                glMultMatrixf((const float*) m);
+               state.dirty = true;
                return;
        }
 #endif
@@ -365,6 +374,7 @@ void gpuRotate2D(float deg)
 #if SUPPORT_LEGACY_MATRIX
        if (state.mode == MATRIX_MODE_INACTIVE) {
                glRotatef(deg, 0.0f, 0.0f, 1.0f);
+               state.dirty = true;
                return;
        }
 #endif
@@ -383,6 +393,7 @@ void gpuRotate3fv(float deg, const float axis[3])
 #if SUPPORT_LEGACY_MATRIX
        if (state.mode == MATRIX_MODE_INACTIVE) {
                glRotatef(deg, axis[0], axis[1], axis[2]);
+               state.dirty = true;
                return;
        }
 #endif
@@ -404,6 +415,7 @@ void gpuRotateAxis(float deg, char axis)
                        default: BLI_assert(false); /* bad axis */
                }
                glRotatef(deg, a[0], a[1], a[2]);
+               state.dirty = true;
                return;
        }
 #endif

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to