use padded 4 bytes for all CreatePicture parameters

This commit is contained in:
Andrey Sidorov 2012-05-01 13:11:40 +10:00
parent 95765c9385
commit 3298795a7b

View file

@ -105,19 +105,19 @@ exports.requireExt = function(display, callback)
}
var valueList = [
['repeat', 'C'],
['repeat', 'Cxxx'],
['alphaMap', 'L'],
['alphaXOrigin', 's'],
['alphaYOrigin', 's'],
['clipXOrigin', 's'],
['clipYOrigin', 's'],
['alphaXOrigin', 'sxx'],
['alphaYOrigin', 'sxx'],
['clipXOrigin', 'sxx'],
['clipYOrigin', 'sxx'],
['clipMask', 'L'],
['graphicsExposures', 'C'],
['subwindowMode', 'C'],
['polyEdge', 'C'],
['polyMode', 'C'],
['graphicsExposures', 'Cxxx'],
['subwindowMode', 'Cxxx'],
['polyEdge', 'Cxxx'],
['polyMode', 'Cxxx'],
['dither', 'L'],
['componentAlpha', 'C']
['componentAlpha', 'Cxxx']
];
var argumentLength = {
@ -130,6 +130,7 @@ exports.requireExt = function(display, callback)
ext.CreatePicture = function(pid, drawable, pictformat, values)
{
console.log([pid, drawable, pictformat, values]);
X.seq_num++;
captureStack();
var mask = 0;
@ -142,13 +143,15 @@ exports.requireExt = function(display, callback)
var valuesLength = 0;
for (var i=0; i < valueList.length; ++i)
{
var val = values[valueList[i][0]];
var name = valueList[i][0];
var val = values[name];
console.log([name, val]);
if (val) {
mask |= (1 << i);
params.push(val);
var valueFormat = valueList[i][1];
format += valueFormat;
valuesLength += argumentLength[valueFormat];
valuesLength += 4; //argumentLength[valueFormat];
}
}
var pad4 = (valuesLength + 3) >> 2;
@ -159,6 +162,7 @@ exports.requireExt = function(display, callback)
params[2] = reqLen;
params[6] = mask;
}
console.log(['CreatePicture', format, params]);
X.pack_stream.pack(format, params);
X.pack_stream.flush();
}
@ -367,6 +371,7 @@ exports.requireExt = function(display, callback)
}
ext.QueryPictFormat(function(err, formats) {
console.log(formats);
for (var i=0; i < formats.formats.length; ++i) {
var f = formats.formats[i];
if (f[2] == 1 && f[10] == 1)