Если прям надо разжевать как работает функция gradientFillRect и функция до этого - уточни)
Ну если знаешь, то буду признателен, если объяснишь, чтобы я меньше времени потратил на разбор.