1
|
=== modified file 'src/com/goldencode/p2j/ui/client/gui/driver/web/RawEncoder.java'
|
2
|
--- src/com/goldencode/p2j/ui/client/gui/driver/web/RawEncoder.java 2015-08-10 20:53:46 +0000
|
3
|
+++ src/com/goldencode/p2j/ui/client/gui/driver/web/RawEncoder.java 2015-08-22 19:36:14 +0000
|
4
|
@@ -78,6 +78,8 @@
|
5
|
encodedRectangle[b++] = (byte) colorModel.getGreen(pixel);
|
6
|
encodedRectangle[b++] = (byte) colorModel.getBlue(pixel);
|
7
|
encodedRectangle[b++] = (byte) colorModel.getAlpha(pixel);
|
8
|
+// System.err.println(colorModel.getRed(pixel) + ":" + colorModel.getGreen(pixel)
|
9
|
+// + ":" + colorModel.getBlue(pixel) + ":" + colorModel.getAlpha(pixel));
|
10
|
}
|
11
|
}
|
12
|
else
|
13
|
|
14
|
=== modified file 'src/com/goldencode/p2j/ui/client/gui/driver/web/VirtualScreenImpl.java'
|
15
|
--- src/com/goldencode/p2j/ui/client/gui/driver/web/VirtualScreenImpl.java 2015-08-21 15:40:44 +0000
|
16
|
+++ src/com/goldencode/p2j/ui/client/gui/driver/web/VirtualScreenImpl.java 2015-08-22 19:12:47 +0000
|
17
|
@@ -64,7 +64,7 @@
|
18
|
public VirtualScreenImpl(int width, int height)
|
19
|
{
|
20
|
this(new DirectColorModel(ColorSpace.getInstance(ColorSpace.CS_sRGB), 32, 0xFF, 0xFF00,
|
21
|
- 0xFF0000, 0xFF000000, true, DataBuffer.TYPE_INT), width, height);
|
22
|
+ 0xFF0000, 0xFF000000, false, DataBuffer.TYPE_INT), width, height);
|
23
|
}
|
24
|
|
25
|
/**
|
26
|
|
27
|
=== modified file 'src/com/goldencode/p2j/ui/client/gui/driver/web/res/p2j.screen.js'
|
28
|
--- src/com/goldencode/p2j/ui/client/gui/driver/web/res/p2j.screen.js 2015-08-22 11:48:56 +0000
|
29
|
+++ src/com/goldencode/p2j/ui/client/gui/driver/web/res/p2j.screen.js 2015-08-22 19:28:35 +0000
|
30
|
@@ -294,7 +294,7 @@
|
31
|
}
|
32
|
}
|
33
|
};
|
34
|
- };
|
35
|
+ }
|
36
|
|
37
|
/**
|
38
|
* Register the specified coordinates for mouse support.
|
39
|
@@ -363,7 +363,7 @@
|
40
|
break;
|
41
|
}
|
42
|
}
|
43
|
- }
|
44
|
+ };
|
45
|
|
46
|
// remove from the DOM
|
47
|
this.parentNode.removeChild(this);
|
48
|
@@ -898,16 +898,14 @@
|
49
|
this.drawRoundRect(ctx, x, y, width, height, diameter, this.rawColor, false);
|
50
|
break;
|
51
|
case ops.DRAW_IMAGE:
|
52
|
- //console.debug("drawing type: " + message[idx]);
|
53
|
x = p2j.socket.readInt32BinaryMessage(message, idx + 1);
|
54
|
y = p2j.socket.readInt32BinaryMessage(message, idx + 5);
|
55
|
+
|
56
|
width = p2j.socket.readInt32BinaryMessage(message, idx + 9);
|
57
|
height = p2j.socket.readInt32BinaryMessage(message, idx + 13);
|
58
|
- //console.debug(x + "x" + y + ", " + width + "x" + height);
|
59
|
+
|
60
|
var encoding = message[idx + 17];
|
61
|
- //console.debug("encoding type: " + encoding);
|
62
|
var key = p2j.socket.readInt32BinaryMessage(message, idx + 18);
|
63
|
- console.debug("hash: " + key);
|
64
|
var pixelsInBytes = width * height * 4;
|
65
|
var imgData;
|
66
|
var imgDataOffset;
|
67
|
@@ -1503,28 +1501,28 @@
|
68
|
var img = ctx.getImageData(this.origin.x + x, this.origin.y + y, width, height);
|
69
|
var data = img.data;
|
70
|
var pixelsInBytes = width * height * 4;
|
71
|
- var j = imgDataOffset;
|
72
|
- for (var i = 0; i < pixelsInBytes; i += 4, j += 4)
|
73
|
+ var offset = imgDataOffset;
|
74
|
+ for (var p = 0; p < pixelsInBytes; p += 4, offset += 4)
|
75
|
{
|
76
|
- var alpha = imgData[j + 3];
|
77
|
- var gamma = (256 - alpha) * data[i + 3];
|
78
|
- var beta = gamma >> 8;
|
79
|
+ var alpha = imgData[offset + 3];
|
80
|
+ var beta = 256 - alpha;
|
81
|
if (alpha == 255)
|
82
|
{
|
83
|
- data[i] = imgData[j];
|
84
|
- data[i + 1] = imgData[j + 1];
|
85
|
- data[i + 2] = imgData[j + 2];
|
86
|
- data[i + 3] = imgData[j + 3];
|
87
|
+ /** server sends non-premultiplied image data */
|
88
|
+ data[p] = imgData[offset];
|
89
|
+ data[p + 1] = imgData[offset + 1];
|
90
|
+ data[p + 2] = imgData[offset + 2];
|
91
|
+ data[p + 3] = imgData[offset + 3];
|
92
|
}
|
93
|
else if (alpha > 0)
|
94
|
{
|
95
|
- /** server sends premultiplied image data */
|
96
|
- data[i] = (imgData[j] * alpha + data[i] * beta) >> 8;
|
97
|
- data[i + 1] = (imgData[j + 1] * alpha + data[i + 1] * beta) >> 8;
|
98
|
- data[i + 2] = (imgData[j + 2] * alpha + data[i + 2] * beta) >> 8;
|
99
|
- data[i + 3] = (imgData[j + 3] * alpha + gamma) >> 8;
|
100
|
- }
|
101
|
- }
|
102
|
+ /** server sends non-premultiplied image data */
|
103
|
+ data[p] = (imgData[offset] * alpha + data[p] * beta) >> 8;
|
104
|
+ data[p + 1] = (imgData[offset + 1] * alpha + data[p + 1] * beta) >> 8;
|
105
|
+ data[p + 2] = (imgData[offset + 2] * alpha + data[p + 2] * beta) >> 8;
|
106
|
+ data[p + 3] = (imgData[offset + 3] * alpha + data[p + 3] * beta) >> 8;
|
107
|
+ };
|
108
|
+ };
|
109
|
ctx.putImageData(img, this.origin.x + x, this.origin.y + y);
|
110
|
};
|
111
|
|
112
|
|