SafariのCanvas::createPattern が反転する
uupaa.js version 0.5のリリース作業に取り掛かっていますが、ひとつ非常にこまったバグが残っていたりします。
それは、Windows上のSafari3.1で発生するのですが、
<!DOCTYPE html> <html><head><title>Safari3.1(525.13.3) createPattern is overturnd</title></head><body> <div> <img id="img" src="cover0.jpg" alt="" /> <canvas id="canvas" style="outline: 1px solid blue" width="200" height="200"></canvas> </div> <script> window.onload = function() { var ctx = document.getElementById("canvas").getContext("2d"); var img = document.getElementById("img"); ctx.drawImage(img, 0, 0, 100, 100); var pattern = ctx.createPattern(ctx.canvas, ""); ctx.clearRect(0, 0, 200, 200); ctx.fillStyle = "green"; ctx.fillRect(0, 0, 200, 200); ctx.fillStyle = pattern; ctx.fillRect(10, 10, 190, 190); } </script></body></html>
こうすると、Safariだけパターンが反転した状態で描画されてしまうんです。
困ってしまって、 scale(1,-1) とか、rotate(180 * PI / 180) とかやってみたんですがダメっぽいのです。
時間を作ってWebKitのソースコードを追っかけてみるつもりですが、とりあえずversion 0.5でpunyosunset,waveエフェクトが上下反転するバグはそのままリリースする予定です。