54 lines
1.5 KiB
JavaScript
54 lines
1.5 KiB
JavaScript
var Buffer = require('buffer').Buffer;
|
|
var x11 = require('../../lib');
|
|
var fs = require('fs');
|
|
var logo1bit = fs.readFileSync('./nodejs-black.bmp');
|
|
var pixmap = require('./bmp').decodeBuffer(logo1bit);
|
|
|
|
var xclient = x11.createClient();
|
|
var Exposure = x11.eventMask.Exposure;
|
|
var PointerMotion = x11.eventMask.PointerMotion;
|
|
|
|
var bitmap = new Buffer(128*128/8); // 16384 bits, 2048 bytes bitmap
|
|
for (var i=0; i < bitmap.length; ++i)
|
|
{
|
|
bitmap[i] = i % 256;
|
|
}
|
|
|
|
xclient.on('connect', function(err, display) {
|
|
var X = this;
|
|
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
|
|
wid, root,
|
|
10, 10, 400, 300,
|
|
0, 0, 0, 0,
|
|
{
|
|
backgroundPixel: white, eventMask: Exposure|PointerMotion
|
|
}
|
|
);
|
|
X.MapWindow(wid);
|
|
|
|
var gc = X.AllocID();
|
|
X.CreateGC(gc, wid, { foreground: black, background: white } );
|
|
|
|
X.on('event', function(ev) {
|
|
if (ev.type == 12) // expose
|
|
{
|
|
//X.PutImage(0, wid, gc, 128, 128, 20, 20, 0, 1, bitmap);
|
|
X.PutImage(0, wid, gc, pixmap.width, pixmap.height, 20, 20, 0, pixmap.depth, pixmap.data);
|
|
}
|
|
});
|
|
X.on('error', function(e) {
|
|
console.log(e);
|
|
});
|
|
});
|