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 displayWidth = 0;
var displayHeight = 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 // Create display
var display = document.createElement("div"); var display = document.createElement("div");
display.style.position = "relative"; 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) { "cursor": function(parameters) {
cursorHotspotX = parseInt(parameters[0]); cursorHotspotX = parseInt(parameters[0]);
@@ -359,6 +395,16 @@ Guacamole.Client = function(tunnel) {
guac_client.disconnect(); 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) { "move": function(parameters) {
var layer_index = parseInt(parameters[0]); var layer_index = parseInt(parameters[0]);
@@ -456,6 +502,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) { "sync": function(parameters) {