jam/js/x11/core/examples/smoketest/putimage1.js

72 lines
1.8 KiB
JavaScript
Raw Normal View History

2025-07-21 23:01:33 +02:00
var Buffer = require('buffer').Buffer;
var x11 = require('../../lib');
var Exposure = x11.eventMask.Exposure;
var PointerMotion = x11.eventMask.PointerMotion;
var bitmap = new Buffer(128*128*4); // 16384 bits, 2048 bytes bitmap
for (var i=0; i < bitmap.length; ++i)
{
var byteNum = i%4;
if (byteNum == 0)
bitmap[i] = parseInt((i/512)%256);
if (byteNum == 1)
bitmap[i] = parseInt((i/2048)%256);
if (byteNum == 2)
bitmap[i] = parseInt((i/256)%256);
if (byteNum == 2)
bitmap[i] = parseInt((i/1024)%256);
}
x11.createClient(function(err, display) {
if (err) throw err;
var X = display.client;
X.require('render', function(err, Render) {
var root = display.screen[0].root;
var white = display.screen[0].white_pixel;
var black = display.screen[0].black_pixel;
//console.log(display.screen[0]);
var wid = X.AllocID();
X.CreateWindow(
wid, root,
10, 10, 400, 300,
1, 1, 0,
{
backgroundPixel: white, eventMask: Exposure|PointerMotion
}
);
X.MapWindow(wid);
var gc = X.AllocID();
X.CreateGC(gc, wid, { foreground: black, background: white } );
var pixmap1 = X.AllocID();
X.CreatePixmap(pixmap1, wid, 32, 128, 128);
var pic = X.AllocID();
Render.CreatePicture(pic, pixmap1, Render.rgba32);
var pic1 = X.AllocID();
Render.CreatePicture(pic1, wid, Render.rgb24);
X.on('event', function(ev) {
if (ev.type == 12) // expose
{
X.PutImage(2, wid, gc, 128, 128, 0, 0, 0, 24, bitmap);
X.PutImage(2, pixmap1, gc, 128, 128, 0, 0, 0, 32, bitmap);
//Render.Composite(3, pic1, 0, pic, 0, 0, 0, 0, 30, 40, 128, 128);
}
});
X.on('error', function(e) {
console.log(e);
});
});
});