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