1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2025-07-31 12:41:08 +00:00

Update spice-html5

This commit is contained in:
catborise 2020-01-23 15:49:43 +03:00
parent 34394c2b5e
commit 562fe5c3dc
36 changed files with 59278 additions and 1325 deletions
static/js/spice-html5

View file

@ -22,12 +22,15 @@
var encoder;
var QUIC_IMAGE_TYPE_INVALID = 0;
var QUIC_IMAGE_TYPE_GRAY = 1;
var QUIC_IMAGE_TYPE_RGB16 = 2;
var QUIC_IMAGE_TYPE_RGB24 = 3;
var QUIC_IMAGE_TYPE_RGB32 = 4;
var QUIC_IMAGE_TYPE_RGBA = 5;
var Constants = {
QUIC_IMAGE_TYPE_INVALID : 0,
QUIC_IMAGE_TYPE_GRAY : 1,
QUIC_IMAGE_TYPE_RGB16 : 2,
QUIC_IMAGE_TYPE_RGB24 : 3,
QUIC_IMAGE_TYPE_RGB32 : 4,
QUIC_IMAGE_TYPE_RGBA : 5,
};
var DEFevol = 3;
var DEFwmimax = 6;
var DEFwminext = 2048;
@ -191,17 +194,17 @@ function family_init(family, bpc, limit)
function quic_image_bpc(type)
{
switch (type) {
case QUIC_IMAGE_TYPE_GRAY:
case Constants.QUIC_IMAGE_TYPE_GRAY:
return 8;
case QUIC_IMAGE_TYPE_RGB16:
case Constants.QUIC_IMAGE_TYPE_RGB16:
return 5;
case QUIC_IMAGE_TYPE_RGB24:
case Constants.QUIC_IMAGE_TYPE_RGB24:
return 8;
case QUIC_IMAGE_TYPE_RGB32:
case Constants.QUIC_IMAGE_TYPE_RGB32:
return 8;
case QUIC_IMAGE_TYPE_RGBA:
case Constants.QUIC_IMAGE_TYPE_RGBA:
return 8;
case QUIC_IMAGE_TYPE_INVALID:
case Constants.QUIC_IMAGE_TYPE_INVALID:
default:
console.log("quic: bad image type\n");
return 0;
@ -1189,8 +1192,8 @@ QuicEncoder.prototype.quic_decode = function(buf, stride)
switch (this.type)
{
case QUIC_IMAGE_TYPE_RGB32:
case QUIC_IMAGE_TYPE_RGB24:
case Constants.QUIC_IMAGE_TYPE_RGB32:
case Constants.QUIC_IMAGE_TYPE_RGB24:
this.channels[0].correlate_row.zero = 0;
this.channels[1].correlate_row.zero = 0;
this.channels[2].correlate_row.zero = 0;
@ -1208,11 +1211,11 @@ QuicEncoder.prototype.quic_decode = function(buf, stride)
this.rows_completed++;
};
break;
case QUIC_IMAGE_TYPE_RGB16:
case Constants.QUIC_IMAGE_TYPE_RGB16:
console.log("quic: unsupported output format\n");
return false;
break;
case QUIC_IMAGE_TYPE_RGBA:
case Constants.QUIC_IMAGE_TYPE_RGBA:
this.channels[0].correlate_row.zero = 0;
this.channels[1].correlate_row.zero = 0;
this.channels[2].correlate_row.zero = 0;
@ -1237,12 +1240,12 @@ QuicEncoder.prototype.quic_decode = function(buf, stride)
}
break;
case QUIC_IMAGE_TYPE_GRAY:
case Constants.QUIC_IMAGE_TYPE_GRAY:
console.log("quic: unsupported output format\n");
return false;
break;
case QUIC_IMAGE_TYPE_INVALID:
case Constants.QUIC_IMAGE_TYPE_INVALID:
default:
console.log("quic: bad image type\n");
return false;
@ -1255,8 +1258,8 @@ QuicEncoder.prototype.simple_quic_decode = function(buf)
var stride = 4; /* FIXME - proper stride calc please */
if (!this.quic_decode_begin(buf))
return undefined;
if (this.type != QUIC_IMAGE_TYPE_RGB32 && this.type != QUIC_IMAGE_TYPE_RGB24
&& this.type != QUIC_IMAGE_TYPE_RGBA)
if (this.type != Constants.QUIC_IMAGE_TYPE_RGB32 && this.type != Constants.QUIC_IMAGE_TYPE_RGB24
&& this.type != Constants.QUIC_IMAGE_TYPE_RGBA)
return undefined;
var out = new Uint8Array(this.width*this.height*4);
out[0] = 69;
@ -1299,7 +1302,7 @@ function convert_spice_quic_to_web(context, spice_quic)
ret.data[i + 0] = spice_quic.outptr[i + 2];
ret.data[i + 1] = spice_quic.outptr[i + 1];
ret.data[i + 2] = spice_quic.outptr[i + 0];
if (spice_quic.type !== QUIC_IMAGE_TYPE_RGBA)
if (spice_quic.type !== Constants.QUIC_IMAGE_TYPE_RGBA)
ret.data[i + 3] = 255;
else
ret.data[i + 3] = 255 - spice_quic.outptr[i + 3];
@ -1334,3 +1337,9 @@ if (need_init)
if (!encoder)
throw("quic: failed to create encoder");
}
export {
Constants,
SpiceQuic,
convert_spice_quic_to_web,
};