From 63fbe2e67112609e48da5ed74d1eb9fed036de5f Mon Sep 17 00:00:00 2001 From: Andrey Sidorov Date: Mon, 26 Oct 2015 09:54:37 +1100 Subject: [PATCH] add SetPictureTransform --- lib/ext/render.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/lib/ext/render.js b/lib/ext/render.js index c16b60d..bbfc525 100644 --- a/lib/ext/render.js +++ b/lib/ext/render.js @@ -162,6 +162,22 @@ exports.requireExt = function(display, callback) return parseInt(f*65536); } + ext.SetPictureTransform = function(pid, matrix) { + X.seq_num++; + var format = 'CCSL'; + if (typeof matrix.length !== 9) + throw 'Render.SetPictureTransform: incorrect transform matrix. Must be array of 9 numbers'; + var params = [ext.majorOpcode, 28, 11, pid]; + for (var i=0; i < 9; ++i) { + format += 'L'; + if (typeof matrix[i] !== 'number') + throw 'Render.SetPictureTransform: matrix element must be a number'; + params.push(floatToFix(matrix[i])); + } + X.pack_stream.pack(format, params); + X.pack_stream.flush(); + }; + // see example of blur filter here: https://github.com/richoH/rxvt-unicode/blob/master/src/background.C ext.SetPictureFilter = function(pid, name, filterParams) { @@ -180,7 +196,7 @@ exports.requireExt = function(display, callback) if (name == 'nearest' || name == 'bilinear' || name == 'fast' || name == 'good' || name == 'best') { if (filterParams.length != 0) { - throw 'Render.SetPictureFilter: "' + name + '" - unexpected parameters for filters"; + throw 'Render.SetPictureFilter: "' + name + '" - unexpected parameters for filters'; } } else if (name == 'convolution' || ) { if (filterParams.length < 2 || filterParams[0]*filterParams[1] !== filterParams.length + 2) {