72 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			72 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								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);
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								});
							 |