code: public void invalidate() {
          if (transitionLength <= 0f) {
              currentColor.set(targetColor);
              redNeedsUpdate = greenNeedsUpdate = blueNeedsUpdate = alphaNeedsUpdate = false;
              transitionInProgress = false;
          } else {
              redNeedsUpdate = initialColor.r != targetColor.r;
              greenNeedsUpdate = initialColor.g != targetColor.g;
              blueNeedsUpdate = initialColor.b != targetColor.b;
              alphaNeedsUpdate = initialColor.a != targetColor.a;
  
              updateTransitionStatus();
              if (transitionInProgress) {
                  initialRedIsGreater = initialColor.r >= targetColor.r;
                  initialGreenIsGreater = initialColor.g >= targetColor.g;
                  initialBlueIsGreater = initialColor.b >= targetColor.b;
                  initialAlphaIsGreater = initialColor.a >= targetColor.a;
              }
          }
      }
docs: Reschedules color updates. Should be called upon manual color modifications.