From bd119318e0061f244ba2fc80a625a1baad7392e2 Mon Sep 17 00:00:00 2001 From: Andrey Sidorov Date: Mon, 3 Mar 2014 11:56:01 +1100 Subject: [PATCH] RenderLarge request --- lib/ext/glx.js | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/lib/ext/glx.js b/lib/ext/glx.js index eace56b..57a4863 100644 --- a/lib/ext/glx.js +++ b/lib/ext/glx.js @@ -213,7 +213,6 @@ exports.requireExt = function(display, callback) ext.Render = function(ctx, data) { X.seq_num++; var length = 0; - //console.log(data); if (Buffer.isBuffer(data)) length = 2+data.length/4; else if (Array.isArray(data)) { @@ -221,7 +220,6 @@ exports.requireExt = function(display, callback) for (var i=0; i < data.length; ++i) length += data[i].length/4; } - //console.log('LENGTH: ', length); X.pack_stream.pack('CCSL', [ext.majorOpcode, 1, length, ctx]); if (Buffer.isBuffer(data)) X.pack_stream.write_queue.push(data); @@ -233,6 +231,22 @@ exports.requireExt = function(display, callback) X.pack_stream.flush(); } + ext.RenderLarge = function(ctx, requestNum, requestTotal, data) { + X.seq_num++; + + //var data = Buffer.concat(data); + var padLength = data.length % 4; + var length = 4 + (data.length+padLength) / 4; + + X.pack_stream.pack('CCSLSSL', [ext.majorOpcode, 2, length, ctx, requestNum, requestTotal, data.length]); + + X.pack_stream.write_queue.push(data); + var pad = new Buffer(padLength); + pad.fill(0); + X.pack_stream.write_queue.push(pad); + X.pack_stream.flush(); + } + ext.renderPipeline = function(ctx) { return require('./glxrender')(this, ctx); }