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