From 3298795a7b09d4133728d95d95acad59da67735c Mon Sep 17 00:00:00 2001 From: Andrey Sidorov Date: Tue, 1 May 2012 13:11:40 +1000 Subject: [PATCH] use padded 4 bytes for all CreatePicture parameters --- lib/x11/ext/render.js | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/lib/x11/ext/render.js b/lib/x11/ext/render.js index 817e55d..cfe6914 100644 --- a/lib/x11/ext/render.js +++ b/lib/x11/ext/render.js @@ -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)