Хорошо.
Это было тяжело.
Лучшее решение, которое я нашел для рисования везде, кроме круга, это
c.save();
c.beginPath();
c.moveTo(0, 0);
c.lineTo(x, 0);
c.arc(x, y, 75, - Math.PI / 2, Math.PI * 2 - Math.PI / 2, 1);
c.lineTo(x, 0);
c.lineTo(1000, 0);
c.lineTo(1000, 500);
c.lineTo(0, 500);
c.clip();
c.drawImage(window.tBitmap[0], x - 100, y - 100);
c.restore();
Не могу поверить, что нет лучшего решения. Но это работает для моих нужд.