add SetPictureTransform

This commit is contained in:
Andrey Sidorov 2015-10-26 09:54:37 +11:00
parent 31785d9a5b
commit 63fbe2e671

View file

@ -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) {