RenderLarge request

This commit is contained in:
Andrey Sidorov 2014-03-03 11:56:01 +11:00
parent ebb77199fc
commit bd119318e0

View file

@ -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);
}