2
* (c) Software Lab. Alexander Burger
5
function drawCanvas(id, dly, x, y) {
6
var req = new XMLHttpRequest();
10
document.getElementsByTagName("BASE")[0].href + SesId +
11
"!jsDraw?" + id + "&+" + dly +
12
(y? "&+" + x + "&+" + y : x? "&" + x : "") );
13
req.responseType = "arraybuffer";
15
catch (e) {return true;}
16
req.onload = function() {
17
var lst = plio(new Uint8Array(req.response));
18
var ele = document.getElementById(id);
22
var ctx = ele.getContext("2d");
24
for (i = 0; i < lst.length; ++i) {
25
switch ((cmd = lst[i])[0]) { // In sync with "@lib/canvas.l"
28
ctx.fillText(cmd[1], cmd[2], cmd[3]);
32
ctx.moveTo(cmd[1], cmd[2]);
33
ctx.lineTo(cmd[3], cmd[4]);
38
ctx.clearRect(cmd[1], cmd[2], cmd[3], cmd[4]);
41
ctx.strokeRect(cmd[1], cmd[2], cmd[3], cmd[4]);
44
ctx.fillRect(cmd[1], cmd[2], cmd[3], cmd[4]);
53
ctx.moveTo(cmd[1], cmd[2]);
56
ctx.lineTo(cmd[1], cmd[2]);
59
ctx.bezierCurveTo(cmd[1], cmd[2], cmd[3], cmd[4], cmd[5], cmd[6]);
62
ctx.moveTo(cmd[1], cmd[2]);
63
ctx.lineTo(cmd[3], cmd[4]);
66
ctx.rect(cmd[1], cmd[2], cmd[3], cmd[4]);
69
ctx.arc(cmd[1], cmd[2], cmd[3], cmd[4], cmd[5], cmd[6]);
82
for (j = 0; j < cmd[3].length; j += 2)
83
ctx.fillRect(cmd[3][j], cmd[3][j+1], cmd[1], cmd[2]);
86
ctx.drawImage(cmd[1], cmd[2], cmd[3]);
89
ctx.translate(cmd[1], cmd[2]);
95
ctx.scale(cmd[1], cmd[2]);
105
ctx.fillStyle = cmd[1];
108
ctx.strokeStyle = cmd[1];
111
ctx.globalAlpha = cmd[1];
114
ctx.lineWidth = cmd[1];
117
ctx.lineCap = cmd[1];
120
ctx.lineJoin = cmd[1];
123
ctx.miterLimit = cmd[1];
126
ctx.globalCompositeOperation = cmd[1];
132
while (ele = ele.parentNode) {
133
if (ele.tagName == "FORM") {
134
post(ele, false, null, null);
139
// requestAnimationFrame(function() {drawCanvas(id, dly)});
141
// setTimeout(function() {drawCanvas(id, dly)}, dly);
143
setTimeout(function() {drawCanvas(id, dly)}, dly);
145
try {req.send(null);}