fix drawing with color and do initial calculations in a future so render thread isn't blocked