summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJesus Fernandez <jesus.fernandez@qt.io>2018-03-20 16:52:27 +0100
committerJesus Fernandez <Jesus.Fernandez@qt.io>2018-03-27 12:21:27 +0000
commit3d0c6d7e9dccf8e9e19719c3adacf981825be93d (patch)
treea4035cfc2ae203816c00c33d2602adccc37cf521 /src
parent50a4e6758786b0946b05327af7a3642121e5cff3 (diff)
Remove old partial binary message workaround
The original implementation of the plugin was created using Qt 5.8. A workaround was added to avoid partial binary messages. Apparently, this is not happening anymore, so the workaround is not needed anymore. Removing the workaround can provide a performance boost since the application sends the binary message in a single message and the browser does not need to rebuild the message. Change-Id: I18e7a1c559d8a5d677ab66131098a6a1e855d985 Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/platforms/webgl/qwebglwebsocketserver.cpp9
-rw-r--r--src/plugins/platforms/webgl/webqt.jsx25
2 files changed, 6 insertions, 28 deletions
diff --git a/src/plugins/platforms/webgl/qwebglwebsocketserver.cpp b/src/plugins/platforms/webgl/qwebglwebsocketserver.cpp
index ed7a4d6..1c1e6a1 100644
--- a/src/plugins/platforms/webgl/qwebglwebsocketserver.cpp
+++ b/src/plugins/platforms/webgl/qwebglwebsocketserver.cpp
@@ -203,14 +203,7 @@ void QWebGLWebSocketServer::sendMessage(QWebSocket *socket,
serialize(parameters);
stream << (quint32)0xbaadf00d;
}
- const quint32 totalMessageSize = data.size();
- const quint32 maxMessageSize = 1024;
- for (quint32 i = 0; i <= data.size() / maxMessageSize; ++i) {
- const quint32 offset = i * maxMessageSize;
- const quint32 size = qMin(totalMessageSize - offset, maxMessageSize);
- const auto chunk = QByteArray::fromRawData(data.constData() + offset, size);
- socket->sendBinaryMessage(chunk);
- }
+ socket->sendBinaryMessage(data);
return;
}
case MessageType::CreateCanvas:
diff --git a/src/plugins/platforms/webgl/webqt.jsx b/src/plugins/platforms/webgl/webqt.jsx
index 6a4e942..4c8f3a3 100644
--- a/src/plugins/platforms/webgl/webqt.jsx
+++ b/src/plugins/platforms/webgl/webqt.jsx
@@ -48,7 +48,6 @@ window.onload = function () {
var SWAP_DELAY = 16; //${swap_delay};
var contextData = { }; // context -> { shaderMap, programMap, ... }
var currentContext = 0;
- var binaryDataBuffer = new Uint8Array(0);
var currentWindowId = "";
var windowData = {};
var currentZIndex = 1;
@@ -916,21 +915,7 @@ window.onload = function () {
};
var handleBinaryMessage = function (event) {
- var appendBuffer = function(buffer1, buffer2) {
- var tmp = new Uint8Array(buffer1.byteLength + buffer2.byteLength);
- tmp.set(new Uint8Array(buffer1), 0);
- tmp.set(new Uint8Array(buffer2), buffer1.byteLength);
- return tmp.buffer;
- };
-
- var buffer = appendBuffer(binaryDataBuffer, event.data);
- var view = new DataView(buffer);
- if (view.getUint32(buffer.byteLength - 4) !== 0xbaadf00d) {
- binaryDataBuffer = buffer;
- return;
- }
- binaryDataBuffer = new ArrayBuffer(0);
-
+ var view = new DataView(event.data);
var offset = 0;
var obj = { "parameters" : [] };
obj["function"] = supportedFunctions[view.getUint8(offset)];
@@ -948,7 +933,7 @@ window.onload = function () {
else
obj["parameterCount"] = gl[obj["function"]].length;
function deserialize(container, count) {
- for (var i = 0; count != null ? i < count : offset + 4 < buffer.byteLength; ++i) {
+ for (var i = 0; count != null ? i < count : offset + 4 < event.data.byteLength; ++i) {
var character = view.getUint8(offset);
offset += 1;
var parameterType = String.fromCharCode(character);
@@ -968,13 +953,13 @@ window.onload = function () {
} else if (parameterType === 's') {
var stringSize = view.getUint32(offset);
offset += 4;
- var string = textDecoder.decode(new Uint8Array(buffer, offset, stringSize));
+ var string = textDecoder.decode(new Uint8Array(event.data, offset, stringSize));
container.push(string);
offset += stringSize;
} else if (parameterType === 'x') {
var dataSize = view.getUint32(offset);
offset += 4;
- var data = new Uint8Array(buffer, offset, dataSize);
+ var data = new Uint8Array(event.data, offset, dataSize);
var bytesRead = data.byteLength;
if (bytesRead !== dataSize)
console.error("invalid data");
@@ -996,7 +981,7 @@ window.onload = function () {
if (magic !== 0xbaadf00d) // sentinel expected at end of buffer
console.error('Invalid magic');
offset += 4;
- if (offset !== buffer.byteLength)
+ if (offset !== event.data.byteLength)
console.error("Invalid buffer");
if (!("function" in obj)) {