48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								var logo = require('./node-png').readPng('./node-logo.png');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var x11 = require('../../lib');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var Exposure = x11.eventMask.Exposure;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								x11.createClient(function(err, display)
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  var X = display.client;
							 | 
						||
| 
								 | 
							
								  X.require('render', function(err, Render) {
							 | 
						||
| 
								 | 
							
								    var root = display.screen[0].root;
							 | 
						||
| 
								 | 
							
								    main(root, X, Render);
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function main(root, X, Render) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var win, picWin, pic, gc;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  win = X.AllocID();
							 | 
						||
| 
								 | 
							
								  X.CreateWindow(
							 | 
						||
| 
								 | 
							
								     win, root,
							 | 
						||
| 
								 | 
							
								     0, 0, logo.width, logo.height,
							 | 
						||
| 
								 | 
							
								     0, 0, 0, 0,
							 | 
						||
| 
								 | 
							
								     { eventMask: Exposure }
							 | 
						||
| 
								 | 
							
								  );
							 | 
						||
| 
								 | 
							
								  X.MapWindow(win);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  gc = X.AllocID();
							 | 
						||
| 
								 | 
							
								  X.CreateGC(gc, win);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var logoPixmap = X.AllocID();
							 | 
						||
| 
								 | 
							
								  X.CreatePixmap(logoPixmap, win, 24, logo.width, logo.height);
							 | 
						||
| 
								 | 
							
								  // TODO: add proper png pixel conversion here
							 | 
						||
| 
								 | 
							
								  X.PutImage(2, logoPixmap, gc, logo.width, logo.height, 0, 0, 0, 24, logo.data);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var logoPicture = X.AllocID();
							 | 
						||
| 
								 | 
							
								  Render.CreatePicture(logoPicture, logoPixmap, Render.rgb24);
							 | 
						||
| 
								 | 
							
								  var winPicture = X.AllocID();
							 | 
						||
| 
								 | 
							
								  Render.CreatePicture(winPicture, win, Render.rgb24);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  X.on('event', function(ev) {
							 | 
						||
| 
								 | 
							
								    if (ev.name == 'Expose')
							 | 
						||
| 
								 | 
							
								      Render.Composite(3, logoPicture, 0, winPicture, 0, 0, 0, 0, 0, 0, logo.width, logo.height);
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								}
							 |