summaryrefslogtreecommitdiff
path: root/client.html
diff options
context:
space:
mode:
Diffstat (limited to 'client.html')
-rw-r--r--client.html33
1 files changed, 33 insertions, 0 deletions
diff --git a/client.html b/client.html
index 7211bbe..64f51fd 100644
--- a/client.html
+++ b/client.html
@@ -211,6 +211,39 @@ function handleLoad(event)
break;
+ /* mask from surface */
+ case 'm':
+ source_id = base64_16(cmd, i);
+ i = i + 3;
+ sx = base64_16(cmd, i);
+ i = i + 3;
+ sy = base64_16(cmd, i);
+ i = i + 3;
+ w = base64_16(cmd, i);
+ i = i + 3;
+ h = base64_16(cmd, i);
+ i = i + 3;
+ dx = base64_16(cmd, i);
+ i = i + 3;
+ dy = base64_16(cmd, i);
+ i = i + 3;
+
+ var tmp = document.createElement("canvas");
+ tmp.width = w;
+ tmp.height = h;
+ var tmp_context = tmp.getContext("2d");
+ tmp_context.globalCompositeOperation = "copy";
+ tmp_context.drawImage(surfaces[source_id], sx, sy, w, h, 0, 0, w, h);
+ tmp_context.globalCompositeOperation = "source-in";
+ tmp_context.fillStyle = current_color;
+ tmp_context.fillRect(0, 0, w, h);
+
+ current_context.globalCompositeOperation = "source-over"
+ current_context.drawImage(tmp, 0, 0, w, h, dx, dy, w, h);
+ current_context.globalCompositeOperation = "copy"
+
+ break;
+
/* fill rect */
case 'r':
x = base64_16(cmd, i);