createTextureMapの中でangle, angle, scaleが使われていないのが変です。
わたしは困ったときにはここに質問しています。
http://marupeke296.com/cgi-bin/cbbs/cbbs.cgi?H=F&no=0&P=R
http://marupeke296.com/TheRuleOfBBS.html
以下の if 文の中の float がまずそうに思います。
float scale; if(rh < rw) { float scale = rh / rw; } else { float scale = rw / rh; }
こうすべきだと思います。
float scale; if(rh < rw) { scale = rh / rw; } else { scale = rw / rh; }