Implement start, line, and curve instructions.

This commit is contained in:
Michael Jumper
2012-03-12 17:27:42 -07:00
parent 88e897dcd2
commit c25a4edab7

View File

@@ -68,6 +68,24 @@ Guacamole.Client = function(tunnel) {
var displayWidth = 0;
var displayHeight = 0;
/**
* Translation from Guacamole protocol line caps to Layer line caps.
*/
var lineCap = {
0: "butt",
1: "round",
2: "square"
};
/**
* Translation from Guacamole protocol line caps to Layer line caps.
*/
var lineJoin = {
0: "bevel",
1: "miter",
2: "round"
};
// Create display
var display = document.createElement("div");
display.style.position = "relative";
@@ -299,6 +317,24 @@ Guacamole.Client = function(tunnel) {
},
"cstroke": function(parameters) {
var channelMask = parseInt(parameters[0]);
var layer = getLayer(parseInt(parameters[1]));
var cap = lineCap[parseInt(parameters[2])];
var join = lineJoin[parseInt(parameters[3])];
var thickness = parseInt(parameters[4]);
var r = parseInt(parameters[5]);
var g = parseInt(parameters[6]);
var b = parseInt(parameters[7]);
var a = parseInt(parameters[8]);
layer.setChannelMask(channelMask);
layer.strokeColor(cap, join, thickness, r, g, b, a);
},
"cursor": function(parameters) {
cursorHotspotX = parseInt(parameters[0]);
@@ -359,6 +395,16 @@ Guacamole.Client = function(tunnel) {
guac_client.disconnect();
},
"line": function(parameters) {
var layer = getLayer(parseInt(parameters[0]));
var x = parseInt(parameters[1]);
var y = parseInt(parameters[2]);
layer.lineTo(x, y);
},
"move": function(parameters) {
var layer_index = parseInt(parameters[0]);
@@ -457,6 +503,16 @@ Guacamole.Client = function(tunnel) {
},
"start": function(parameters) {
var layer = getLayer(parseInt(parameters[0]));
var x = parseInt(parameters[1]);
var y = parseInt(parameters[2]);
layer.moveTo(x, y);
},
"sync": function(parameters) {
var timestamp = parameters[0];