Two major changes.
1. I changed code to use textures instead of fillRect
2. I split gradientUp/Left that were before merged onto a 3D array