mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-06 21:27:40 +00:00
Added channel mask.
This commit is contained in:
@@ -246,12 +246,15 @@ function GuacamoleClient(display, tunnel) {
|
|||||||
|
|
||||||
"png": function(parameters) {
|
"png": function(parameters) {
|
||||||
|
|
||||||
var layer = parseInt(parameters[0]);
|
var channelMask = parseInt(parameters[0]);
|
||||||
var x = parseInt(parameters[1]);
|
var layer = getLayer(parseInt(parameters[1]));
|
||||||
var y = parseInt(parameters[2]);
|
var x = parseInt(parameters[2]);
|
||||||
var data = parameters[3];
|
var y = parseInt(parameters[3]);
|
||||||
|
var data = parameters[4];
|
||||||
|
|
||||||
getLayer(layer).draw(
|
layer.setChannelMask(channelMask);
|
||||||
|
|
||||||
|
layer.draw(
|
||||||
x,
|
x,
|
||||||
y,
|
y,
|
||||||
"data:image/png;base64," + data
|
"data:image/png;base64," + data
|
||||||
@@ -265,17 +268,20 @@ function GuacamoleClient(display, tunnel) {
|
|||||||
|
|
||||||
"copy": function(parameters) {
|
"copy": function(parameters) {
|
||||||
|
|
||||||
var srcL = parseInt(parameters[0]);
|
var srcL = getLayer(parseInt(parameters[0]));
|
||||||
var srcX = parseInt(parameters[1]);
|
var srcX = parseInt(parameters[1]);
|
||||||
var srcY = parseInt(parameters[2]);
|
var srcY = parseInt(parameters[2]);
|
||||||
var srcWidth = parseInt(parameters[3]);
|
var srcWidth = parseInt(parameters[3]);
|
||||||
var srcHeight = parseInt(parameters[4]);
|
var srcHeight = parseInt(parameters[4]);
|
||||||
var dstL = parseInt(parameters[5]);
|
var channelMask = parseInt(parameters[5]);
|
||||||
var dstX = parseInt(parameters[6]);
|
var dstL = getLayer(parseInt(parameters[6]));
|
||||||
var dstY = parseInt(parameters[7]);
|
var dstX = parseInt(parameters[7]);
|
||||||
|
var dstY = parseInt(parameters[8]);
|
||||||
|
|
||||||
getLayer(dstL).copyRect(
|
dstL.setChannelMask(channelMask);
|
||||||
getLayer(srcL),
|
|
||||||
|
dstL.copyRect(
|
||||||
|
srcL,
|
||||||
srcX,
|
srcX,
|
||||||
srcY,
|
srcY,
|
||||||
srcWidth,
|
srcWidth,
|
||||||
|
@@ -202,6 +202,31 @@ function Layer(width, height) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var compositeOperation = {
|
||||||
|
/* 0x0 NOT IMPLEMENTED */
|
||||||
|
0x1: "destination-in",
|
||||||
|
0x2: "destination-out",
|
||||||
|
/* 0x3 NOT IMPLEMENTED */
|
||||||
|
0x4: "source-in",
|
||||||
|
/* 0x5 NOT IMPLEMENTED */
|
||||||
|
0x6: "source-atop",
|
||||||
|
/* 0x7 NOT IMPLEMENTED */
|
||||||
|
0x8: "source-out",
|
||||||
|
0x9: "destination-atop",
|
||||||
|
0xA: "xor",
|
||||||
|
0xB: "destination-over",
|
||||||
|
0xC: "source-copy",
|
||||||
|
/* 0xD NOT IMPLEMENTED */
|
||||||
|
0xE: "source-over",
|
||||||
|
0xF: "lighter",
|
||||||
|
};
|
||||||
|
|
||||||
|
display.setChannelMask = function(mask) {
|
||||||
|
reserveJob(function() {
|
||||||
|
displayContext.globalCompositeOperation = compositeOperation[mask];
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
return display;
|
return display;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user